[PATCH] arm64: dts: imx8mq-nitrogen: add USB support

Adrien Grassein adrien.grassein at gmail.com
Thu Jan 28 10:42:35 EST 2021


Hi Gary,


Le jeu. 28 janv. 2021 à 14:30, Gary Bisson
<gary.bisson at boundarydevices.com> a écrit :
>
> Hi Adrien,
>
> Thanks for improving Nitrogen upstream, much appreciated.
>
> On Tue, Jan 26, 2021 at 10:55:11PM +0100, Adrien Grassein wrote:
> > add USB support for imx8mq-nitrogen. It consists
> > in 2 phys: OTG and host.
> >
> > The OTG port uses a dedicated regulator for vbus.
> >
> > Signed-off-by: Adrien Grassein <adrien.grassein at gmail.com>
> > ---
> >  .../boot/dts/freescale/imx8mq-nitrogen.dts    | 36 +++++++++++++++++++
> >  1 file changed, 36 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts b/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
> > index 81d269296610..fb8acd83a280 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
> > @@ -34,6 +34,17 @@ power {
> >               };
> >       };
> >
> > +     reg_usb_otg_vbus: regulator-usb-otg-vbus {
> > +             compatible = "regulator-fixed";
> > +             pinctrl-names = "default";
> > +             pinctrl-0 = <&pinctrl_reg_usbotg_vbus>;
> > +             regulator-name = "usb_otg_vbus";
> > +             regulator-min-microvolt = <5000000>;
> > +             regulator-max-microvolt = <5000000>;
> > +             gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
> > +             enable-active-high;
> > +     };
> > +
> >       reg_vref_0v9: regulator-vref-0v9 {
> >               compatible = "regulator-fixed";
> >               regulator-name = "vref-0v9";
> > @@ -190,6 +201,25 @@ &uart2 {
> >       status = "okay";
> >  };
> >
> > +&usb_dwc3_0 {
> > +     dr_mode = "otg";
> > +     status = "okay";
>
> Please add a pinctrl here to mux GPIO1_IO13 as over current pin.
> But I confirm the port is working.

OK, I will do a new version of the patch.

>
> > +};
> > +
> > +&usb3_phy0 {
> > +     vbus-supply = <&reg_usb_otg_vbus>;
> > +     status = "okay";
> > +};
> > +
> > +&usb_dwc3_1 {
> > +     dr_mode = "host";
> > +     status = "okay";
> > +};
>
> The Host port doesn't work for me. This is because of the missing reset
> signal. Maybe it's time to revive the gpio-reset driver [1]?

On my side, all the ports are working correctly without any
intervention from the user.
(I have a Nitrogen 8M rev 3.0 and I test with a simple keyboard).

>
> Anyway, here is how to fix the USB Host ports:
> # gpioset 0 14=1
>
> I guess it'd be best to have a proper reset solution before merging the
> host port addition.
>

Maybe I can add the reset signal to the DW3 driver?
I guess that Boundary is not the only board maker to use a resettable USB HUB.


> Regards,
> Gary
>
> [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/1374834384-8071-1-git-send-email-p.zabel@pengutronix.de/

Thanks,
Adrien



More information about the linux-arm-kernel mailing list