* [PATCH] arm64: dts: imx8mq-nitrogen: add USB support
@ 2021-01-26 21:55 Adrien Grassein
2021-01-28 13:30 ` Gary Bisson
0 siblings, 1 reply; 3+ messages in thread
From: Adrien Grassein @ 2021-01-26 21:55 UTC (permalink / raw)
Cc: gary.bisson, troy.kisky, robh+dt, shawnguo, s.hauer, kernel,
festevam, linux-imx, devicetree, linux-arm-kernel, linux-kernel,
Adrien Grassein
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@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";
+};
+
+&usb3_phy0 {
+ vbus-supply = <®_usb_otg_vbus>;
+ status = "okay";
+};
+
+&usb_dwc3_1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usb3_phy1 {
+ status = "okay";
+};
+
&usdhc1 {
assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
assigned-clock-rates = <400000000>;
@@ -339,6 +369,12 @@ MX8MQ_IOMUXC_SD2_WP_GPIO2_IO20 0x16
>;
};
+ pinctrl_reg_usbotg_vbus: reg-usbotg-vbusgrp {
+ fsl,pins = <
+ MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x16
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x45
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: imx8mq-nitrogen: add USB support
2021-01-26 21:55 [PATCH] arm64: dts: imx8mq-nitrogen: add USB support Adrien Grassein
@ 2021-01-28 13:30 ` Gary Bisson
2021-01-28 15:42 ` Adrien Grassein
0 siblings, 1 reply; 3+ messages in thread
From: Gary Bisson @ 2021-01-28 13:30 UTC (permalink / raw)
To: Adrien Grassein
Cc: troy.kisky, robh+dt, shawnguo, s.hauer, kernel, festevam,
linux-imx, devicetree, linux-arm-kernel, linux-kernel
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@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.
> +};
> +
> +&usb3_phy0 {
> + vbus-supply = <®_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]?
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.
Regards,
Gary
[1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/1374834384-8071-1-git-send-email-p.zabel@pengutronix.de/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: imx8mq-nitrogen: add USB support
2021-01-28 13:30 ` Gary Bisson
@ 2021-01-28 15:42 ` Adrien Grassein
0 siblings, 0 replies; 3+ messages in thread
From: Adrien Grassein @ 2021-01-28 15:42 UTC (permalink / raw)
To: Gary Bisson
Cc: Troy Kisky, Rob Herring, Shawn Guo, Sascha Hauer, Sascha Hauer,
Fabio Estevam, dl-linux-imx, DTML, linux-arm-kernel,
linux-kernel
Hi Gary,
Le jeu. 28 janv. 2021 à 14:30, Gary Bisson
<gary.bisson@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@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 = <®_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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-01-28 15:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-26 21:55 [PATCH] arm64: dts: imx8mq-nitrogen: add USB support Adrien Grassein
2021-01-28 13:30 ` Gary Bisson
2021-01-28 15:42 ` Adrien Grassein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).