(
fdt: &mut FdtWriter,
dev_info: &T,
)
| 779 | } |
| 780 | |
| 781 | fn create_serial_node<T: DeviceInfoForFdt + Clone + Debug>( |
| 782 | fdt: &mut FdtWriter, |
| 783 | dev_info: &T, |
| 784 | ) -> FdtWriterResult<()> { |
| 785 | let compatible = b"arm,pl011\0arm,primecell\0"; |
| 786 | let serial_reg_prop = [dev_info.addr(), dev_info.length()]; |
| 787 | let irq = [ |
| 788 | GIC_FDT_IRQ_TYPE_SPI, |
| 789 | dev_info.irq() - IRQ_BASE, |
| 790 | IRQ_TYPE_EDGE_RISING, |
| 791 | ]; |
| 792 | |
| 793 | let serial_node = fdt.begin_node(&format!("pl011@{:x}", dev_info.addr()))?; |
| 794 | fdt.property("compatible", compatible)?; |
| 795 | fdt.property_array_u64("reg", &serial_reg_prop)?; |
| 796 | fdt.property_u32("clocks", CLOCK_PHANDLE)?; |
| 797 | fdt.property_string("clock-names", "apb_pclk")?; |
| 798 | fdt.property_array_u32("interrupts", &irq)?; |
| 799 | fdt.end_node(serial_node)?; |
| 800 | |
| 801 | Ok(()) |
| 802 | } |
| 803 | |
| 804 | fn create_rtc_node<T: DeviceInfoForFdt + Clone + Debug>( |
| 805 | fdt: &mut FdtWriter, |
no test coverage detected