Ну, насколько мне известно, в приведенной ниже структуре
ehci2: usb@01c1c000 {
compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
reg = <0x01c1c000 0x100>;
interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>;
resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
phys = <&usbphy 2>;
phy-names = "usb";
status = "disabled";
};
clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>;
представляет часы потребителя, т. Е. Входные часы, и называется "парами спецификаторов Phandle + Clock".Как вы упомянули, CLK_BUS_OHCI2 имеет значение 39, это означает, что USB-контроллер будет получать входные часы с выхода 39 из ccu
источника синхронизации.
В файле dtsi
, где вы разместили приведенный выше снимок экрана, должно бытьструктура, которая определяет ccu
, например, как это показано ниже:
ccu: clk@01c20060 {
#clock-cells = <1>;
compatible = "allwinner,sun7i-a20-ahb-gates-clk";
reg = <0x01c20060 0x8>;
clocks = <&ahb>;
clock-output-names = "ahb_usb0", "ahb_ehci0",
"ahb_ohci0", "ahb_ehci1", "ahb_ohci1",
"ahb_ss", "ahb_dma", "ahb_bist", "ahb_mmc0",
"ahb_mmc1", "ahb_mmc2", "ahb_mmc3", "ahb_ms",
"ahb_nand", "ahb_sdram", "ahb_ace",
"ahb_emac", "ahb_ts", "ahb_spi0", "ahb_spi1",
"ahb_spi2", "ahb_spi3", "ahb_sata",
"ahb_hstimer", "ahb_ve", "ahb_tvd", "ahb_tve0",
"ahb_tve1", "ahb_lcd0", "ahb_lcd1", "ahb_csi0",
"ahb_csi1", "ahb_hdmi1", "ahb_hdmi0",
"ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
"ahb_de_fe1", "ahb_gmac", "ahb_ehci2",
"ahb_mali";
};
В приведенной выше структуре есть несколько выходов источника синхронизации, поэтому источник 39 синхронизации должен использоваться вышеприведенным контроллером USB для приема входа синхронизации, обратите внимание, что #clock-cells = <1>;
представляет выходной сигнал с несколькими тактовыми сигналами, а #clock-cells = <0>;
- для выходного сигнала с одной тактовой частотой.
Структура ccu
является лишь примером.