Message ID | 20240826215922.13225-2-francesco@dolcini.it (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: dts: colibri-imx8x: Various improvements and additions | expand |
On Mon, Aug 26, 2024 at 11:59:13PM +0200, Francesco Dolcini wrote: > From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> > > 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> > --- > .../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 >
On Mon, Aug 26, 2024 at 06:14:58PM -0400, Frank Li wrote: > On Mon, Aug 26, 2024 at 11:59:13PM +0200, Francesco Dolcini wrote: > > From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> > > > > 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> > > --- > > .../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.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 This should be `id-gpios`. The binding for "linux,extcon-usb-gpio" was recently added, and this was not tested on the latest next (my fault), but on shawn imx branch and the old txt doc documented just `id-gpio`. We'll fix it. And thanks for catching it. > > + 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. Is this an issue? we expect this regulator to be always on, therefore this is described this way in the DT. Francesco
On Tue, Aug 27, 2024 at 12:28:06AM +0200, Francesco Dolcini wrote: > On Mon, Aug 26, 2024 at 06:14:58PM -0400, Frank Li wrote: > > On Mon, Aug 26, 2024 at 11:59:13PM +0200, Francesco Dolcini wrote: > > > From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com> > > > > > > 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> > > > --- > > > .../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.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 > > This should be `id-gpios`. The binding for "linux,extcon-usb-gpio" was recently > added, and this was not tested on the latest next (my fault), but on shawn imx branch and > the old txt doc documented just `id-gpio`. > > We'll fix it. And thanks for catching it. > > > > > + 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. > > Is this an issue? we expect this regulator to be always on, therefore this is > described this way in the DT. No a issue. If some device refer this regulator, suppose it only need power on when this device probe. No sure why need always on. > > Francesco >
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>; + 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 */ @@ -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 {