arm64: dts: colibri-imx8x: Add usb support
authorEmanuele Ghidoli <emanuele.ghidoli@toradex.com>
Sun, 1 Sep 2024 15:57:12 +0000 (17:57 +0200)
committerShawn Guo <shawnguo@kernel.org>
Wed, 4 Sep 2024 09:36:23 +0000 (17:36 +0800)
Add USB HOST and OTG support to Colibri-iMX8X carrier boards.

Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8x-colibri-aster.dtsi
arch/arm64/boot/dts/freescale/imx8x-colibri-eval-v3.dtsi
arch/arm64/boot/dts/freescale/imx8x-colibri-iris.dtsi
arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi

index bc659066e19af096d67e53945eda7a38fa29513c..c02dfdd75b6002f643404bf84da70f856470a952 100644 (file)
@@ -7,6 +7,10 @@
        status = "okay";
 };
 
+&extcon_usbc_det {
+       status = "okay";
+};
+
 /* Colibri Ethernet */
 &fec1 {
        status = "okay";
        status = "okay";
 };
 
+/* USB PHY for usbotg3 */
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       status = "okay";
+};
+
+/* USB PHY for usbotg1 */
+&usbphy1 {
+       status = "okay";
+};
+
 /* Colibri SDCard */
 &usdhc2 {
        status = "okay";
index 9af769ab8cebbdab47accd034fdc331d36e694f9..91de84772e1cb21fdcef1ca0806795ea8468c0ce 100644 (file)
        status = "okay";
 };
 
+&extcon_usbc_det {
+       status = "okay";
+};
+
 &i2c1 {
        status = "okay";
 
        status = "okay";
 };
 
+/* USB PHY for usbotg3 */
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       status = "okay";
+};
+
+/* USB PHY for usbotg1 */
+&usbphy1 {
+       status = "okay";
+};
+
 /* Colibri SD/MMC Card */
 &usdhc2 {
        status = "okay";
index 8d06925a8ebd05c38572db081bfd66927935dbea..a6b013cc69296e168d695ced3333dbd79445e278 100644 (file)
        status = "okay";
 };
 
+&extcon_usbc_det {
+       status = "okay";
+};
+
 /* Colibri FastEthernet */
 &fec1 {
        status = "okay";
        status = "okay";
 };
 
+/* USB PHY for usbotg3 */
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       status = "okay";
+};
+
+/* USB PHY for usbotg1 */
+&usbphy1 {
+       status = "okay";
+};
+
 /* Colibri SD/MMC Card */
 &usdhc2 {
        status = "okay";
index 49d105eb4769197af85317886bbb4acd13ef3248..56de45fb05e70d7ef9badac666f66b3eb3a2100e 100644 (file)
                };
        };
 
+       extcon_usbc_det: usbc-det {
+               compatible = "linux,extcon-usb-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbc_det>;
+               id-gpios = <&lsio_gpio5 9 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
        reg_module_3v3: regulator-module-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "+V3.3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
+
+       reg_usbh_vbus: regulator-usbh-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbh1_reg>;
+               gpio = <&lsio_gpio4 3 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "usbh_vbus";
+       };
 };
 
 /* TODO Analogue Inputs */
 
 /* TODO On-module i2s / Audio */
 
+&usbotg1 {
+       adp-disable;
+       disable-over-current;
+       extcon = <&extcon_usbc_det &extcon_usbc_det>;
+       hnp-disable;
+       power-active-high;
+       srp-disable;
+       vbus-supply = <&reg_usbh_vbus>;
+};
+
+&usbotg3_cdns3 {
+       dr_mode = "host";
+};
+
 /* On-module eMMC */
 &usdhc1 {
        bus-width = <8>;
        no-1-8-v;
 };
 
-/* TODO USB Client/Host */
-
-/* TODO USB Host */
-
 /* TODO VPU Encoder/Decoder */
 
 &iomuxc {