简介
通过前面几篇usb的文章,可以知道usb4604是挂载在芯片的hsci0上面,hsci0是usb phy的其中一类,它隶属于EHCI host controller。
dts
由于hsci0是usb phy的其中一类,而且它隶属于EHCI host controller,所以需要在dts中使能phy和ehci。关于这些属性是在samsung usb框架中是怎么解析的,可以参考前面几篇文章。
# exynos4.dtsi
exynos_usbphy: exynos-usbphy@125B0000 {
compatible = "samsung,exynos4210-usb2-phy";
reg = <0x125B0000 0x100>;
samsung,pmureg-phandle = <&pmu_system_controller>;
clocks = <&clock CLK_USB_DEVICE>, <&clock CLK_XUSBXTI>;
clock-names = "phy", "ref";
#phy-cells = <1>;
status = "disabled";
};
# exynos4412.dtsi
&exynos_usbphy {
compatible = "samsung,exynos4x12-usb2-phy";
samsung,sysreg-phandle = <&sys_reg>;
};
# exynos4412-tiny4412.dts
&exynos_usbphy {
status = "okay";
};
# exynos4.dtsi
ehci: ehci@12580000 {
compatible = "samsung,exynos4210-ehci";
reg = <0x12580000 0x100>;
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_USB_HOST>;
clock-names = "usbhost";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
phys = <&exynos_usbphy 1>; //1代表 host
status = "disabled";
};
port@1 {
reg = <1>;
phys = <&exynos_usbphy 2>; //2代表 hsci0
status = "disabled";
};
port@2 {
reg = <2>