On Mon, Aug 26, 2024 at 11:59:13PM +0200, Francesco Dolcini wrote: > From: Emanuele Ghidoli <emanuele.ghidoli@xxxxxxxxxxx> > > Add USB HOST and OTG support to Colibri-iMX8X carrier boards. > > Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@xxxxxxxxxxx> > Signed-off-by: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx> > --- > .../dts/freescale/imx8x-colibri-aster.dtsi | 26 +++++++++++++ > .../dts/freescale/imx8x-colibri-eval-v3.dtsi | 26 +++++++++++++ > .../dts/freescale/imx8x-colibri-iris.dtsi | 26 +++++++++++++ > .../boot/dts/freescale/imx8x-colibri.dtsi | 37 +++++++++++++++++-- > 4 files changed, 111 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8x-colibri-aster.dtsi b/arch/arm64/boot/dts/freescale/imx8x-colibri-aster.dtsi > index bc659066e19a..c02dfdd75b60 100644 > --- a/arch/arm64/boot/dts/freescale/imx8x-colibri-aster.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8x-colibri-aster.dtsi > @@ -7,6 +7,10 @@ &colibri_gpio_keys { > status = "okay"; > }; > > +&extcon_usbc_det { > + status = "okay"; > +}; > + > /* Colibri Ethernet */ > &fec1 { > status = "okay"; > @@ -38,6 +42,28 @@ &lpuart3 { > 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"; > diff --git a/arch/arm64/boot/dts/freescale/imx8x-colibri-eval-v3.dtsi b/arch/arm64/boot/dts/freescale/imx8x-colibri-eval-v3.dtsi > index 9af769ab8ceb..91de84772e1c 100644 > --- a/arch/arm64/boot/dts/freescale/imx8x-colibri-eval-v3.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8x-colibri-eval-v3.dtsi > @@ -23,6 +23,10 @@ &colibri_gpio_keys { > status = "okay"; > }; > > +&extcon_usbc_det { > + status = "okay"; > +}; > + > &i2c1 { > status = "okay"; > > @@ -90,6 +94,28 @@ &fec1 { > 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"; > diff --git a/arch/arm64/boot/dts/freescale/imx8x-colibri-iris.dtsi b/arch/arm64/boot/dts/freescale/imx8x-colibri-iris.dtsi > index 8d06925a8ebd..a6b013cc6929 100644 > --- a/arch/arm64/boot/dts/freescale/imx8x-colibri-iris.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8x-colibri-iris.dtsi > @@ -21,6 +21,10 @@ &colibri_gpio_keys { > status = "okay"; > }; > > +&extcon_usbc_det { > + status = "okay"; > +}; > + > /* Colibri FastEthernet */ > &fec1 { > status = "okay"; > @@ -108,6 +112,28 @@ &lsio_pwm2 { > 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"; > diff --git a/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi b/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi > index 49d105eb4769..1199e311d6f9 100644 > --- a/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8x-colibri.dtsi > @@ -23,12 +23,31 @@ key-wakeup { > }; > }; > > + extcon_usbc_det: usbc-det { > + compatible = "linux,extcon-usb-gpio"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usbc_det>; > + id-gpio = <&lsio_gpio5 9 GPIO_ACTIVE_HIGH>; Not sure if I missed something, CHECK_DTBS report below warning. arch/arm64/boot/dts/freescale/imx8qxp-colibri-iris.dtb: usbc-det: 'id-gpio' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/extcon/linux,extcon-usb-gpio.yaml > + 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; Needn't regulator-always-on, because reg_usbh_vbus referece by other node. > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + regulator-name = "usbh_vbus"; > + }; > }; > > /* TODO Analogue Inputs */ > @@ -329,6 +348,20 @@ &lsio_pwm2 { > > /* 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 = <®_usbh_vbus>; > +}; > + > +&usbotg3_cdns3 { > + dr_mode = "host"; > +}; > + > /* On-module eMMC */ > &usdhc1 { > bus-width = <8>; > @@ -356,10 +389,6 @@ &usdhc2 { > no-1-8-v; > }; > > -/* TODO USB Client/Host */ > - > -/* TODO USB Host */ > - > /* TODO VPU Encoder/Decoder */ > > &iomuxc { > -- > 2.39.2 >