工具与软件:
我当前的电路板设计使用 GPIO0_44作为 USB0_ID、GPIO0_65作为 USB1_ID。
应如何在器件树源(DTS)中配置该文件?

This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我当前的电路板设计使用 GPIO0_44作为 USB0_ID、GPIO0_65作为 USB1_ID。
应如何在器件树源(DTS)中配置该文件?

有人可以帮助检查我的 DTS 设置吗?
/{
compatible = "ti,am62p5-sk", "ti,am62p5";
model = "Texas Instruments AM62P5 SK";
aliases {
usb0 = &usb0;
usb1 = &usb1;
}
// USB0 extcon
extcon_usb0: extcon-usb0 {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&main_gpio0 44 GPIO_ACTIVE_HIGH>;
};
// USB1 extcon
extcon_usb1: extcon-usb1 {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&main_gpio0 65 GPIO_ACTIVE_HIGH>;
};
}
&main_pmx0 {
bootph-all;
main_usb1_pins_default: main-usb1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */
>;
};
main_usb0_pins_default: main-usb0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0254, PIN_OUTPUT, 0) /* (G22) USB0_DRVVBUS */
>;
};
}
&usbss0 {
status = "okay";
ti,vbus-divider;
};
&usbss1 {
status = "okay";
ti,vbus-divider;
};
&usb0 {
pinctrl-names = "default";
pinctrl-0 = <&main_usb0_pins_default &pinctrl_usb0_id>;
extcon = <&extcon_usb0>;
status = "okay";
};
&usb1 {
pinctrl-names = "default";
pinctrl-0 = <&main_usb1_pins_default &pinctrl_usb1_id>;
extcon = <&extcon_usb1>;
status = "okay";
};
您好!
有关 USB 连接器的设备树绑定、请参阅此处: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/Documentation/devicetree/bindings/connector/usb-connector.yaml?h=ti-linux-6.6.y
有关实施示例、请参阅此处的: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi?h=ti-linux-6.6.y#n44
您还需要为用于 ID 的 GPIO 添加 PinMux。
此致、
Anshu
噢! 谢谢、我更新了 DTS。
但我在示例中看到它会创建一个连接器、指定连接器内的 ID 引脚、然后将其连接到 USB0的端口。
我的方法是使用 extcon_usb。 哪种方法更值得推荐? 或者我的方法不正确吗?
/{
compatible = "ti,am62p5-sk", "ti,am62p5";
model = "Texas Instruments AM62P5 SK";
aliases {
usb0 = &usb0;
usb1 = &usb1;
}
// USB0 extcon
extcon_usb0: extcon-usb0 {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&main_gpio0 44 GPIO_ACTIVE_HIGH>;
};
// USB1 extcon
extcon_usb1: extcon-usb1 {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&main_gpio0 65 GPIO_ACTIVE_HIGH>;
};
}
&main_pmx0 {
bootph-all;
main_usb1_pins_default: main-usb1-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */
>;
};
main_usb0_pins_default: main-usb0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0254, PIN_OUTPUT, 0) /* (G22) USB0_DRVVBUS */
>;
};
// USB_0_ID
pinctrl_usb0_id: main-gpio0-44-pins-default{
pinctrl-single,pins = <
AM62PX_IOPAD(0x00b4, PIN_INPUT, 7) /* (U25) GPMC0_CSn3.GPIO0_44 USB0_ID */
>;
};
// USB_1_ID
pinctrl_usb1_id: main-gpio0-65-pins-default{
pinctrl-single,pins = <
AM62PX_IOPAD(0x0108, PIN_INPUT, 7) /* (L21) MMC2_DAT3.GPIO0_65 USB1_ID */
>;
};
}
&usbss0 {
status = "okay";
ti,vbus-divider;
};
&usbss1 {
status = "okay";
ti,vbus-divider;
};
&usb0 {
pinctrl-names = "default";
pinctrl-0 = <&main_usb0_pins_default &pinctrl_usb0_id>;
extcon = <&extcon_usb0>;
status = "okay";
};
&usb1 {
pinctrl-names = "default";
pinctrl-0 = <&main_usb1_pins_default &pinctrl_usb1_id>;
extcon = <&extcon_usb1>;
status = "okay";
};
尊敬的 Yuyuan:
我的方法使用的是 extcon_usb。 哪种方法更值得推荐? 或者我的方法是否不正确?
我认为 AM62x USB 使用的 DWC3 USB 驱动程序支持这两种方法。
如果您遇到 extcon 设备树设置方面的任何问题、请告知我。