Message ID | 20210930155633.2745201-5-frieder@fris.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Devicetree fixes and additions for Kontron SL/BL i.MX8MM boards | expand |
On Thu, Sep 30, 2021 at 05:56:27PM +0200, Frieder Schrempf wrote: > From: Frieder Schrempf <frieder.schrempf@kontron.de> > > The regulator reg_vdd_5v represents the fixed 5V supply on the board which > can't be switched off. Mark it as always-on. > > The regulator reg_rst_eth2 should keep the reset signal of the USB ethernet > adapter deassertet anytime. Fix the polarity and mark it as always-on. It seems to be wrong from the beginning that the reset is modelled by a regulator. > > Fixes: 21c4f45b335f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and baseboards") > Cc: stable@vger.kernel.org > Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> > --- > arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts > index 62ba3bd08a0c..f2c8ccefd1bf 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts > @@ -70,7 +70,9 @@ reg_rst_eth2: regulator-rst-eth2 { > regulator-name = "rst-usb-eth2"; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_usb_eth2>; > - gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; > + gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-always-on; > }; > > reg_vdd_5v: regulator-5v { > @@ -78,6 +80,7 @@ reg_vdd_5v: regulator-5v { > regulator-name = "vdd-5v"; > regulator-min-microvolt = <5000000>; > regulator-max-microvolt = <5000000>; > + regulator-always-on; You do not have any on/off control over the regulator. So how does this always-on property make any difference? Shawn > }; > }; > > -- > 2.33.0 >
On 05.10.21 09:09, Shawn Guo wrote: > On Thu, Sep 30, 2021 at 05:56:27PM +0200, Frieder Schrempf wrote: >> From: Frieder Schrempf <frieder.schrempf@kontron.de> >> >> The regulator reg_vdd_5v represents the fixed 5V supply on the board which >> can't be switched off. Mark it as always-on. >> >> The regulator reg_rst_eth2 should keep the reset signal of the USB ethernet >> adapter deassertet anytime. Fix the polarity and mark it as always-on. > > It seems to be wrong from the beginning that the reset is modelled by a > regulator. Right, but at least at the time when I upstreamed this, there was no way to pass the reset GPIO to a USB device driver and using a regulator seems to be an accepted workaround as far as I understand. > >> >> Fixes: 21c4f45b335f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and baseboards") >> Cc: stable@vger.kernel.org >> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> >> --- >> arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts >> index 62ba3bd08a0c..f2c8ccefd1bf 100644 >> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts >> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts >> @@ -70,7 +70,9 @@ reg_rst_eth2: regulator-rst-eth2 { >> regulator-name = "rst-usb-eth2"; >> pinctrl-names = "default"; >> pinctrl-0 = <&pinctrl_usb_eth2>; >> - gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; >> + gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>; >> + enable-active-high; >> + regulator-always-on; >> }; >> >> reg_vdd_5v: regulator-5v { >> @@ -78,6 +80,7 @@ reg_vdd_5v: regulator-5v { >> regulator-name = "vdd-5v"; >> regulator-min-microvolt = <5000000>; >> regulator-max-microvolt = <5000000>; >> + regulator-always-on; > > You do not have any on/off control over the regulator. So how does this > always-on property make any difference? Right, this doesn't make a difference and is definitely not a fix, I will drop it. Anyway, this regulator is just there for completeness of the hardware description. > >> }; >> }; >> >> -- >> 2.33.0 >>
On Tue, Oct 05, 2021 at 07:06:57PM +0200, Frieder Schrempf wrote: > On 05.10.21 09:09, Shawn Guo wrote: > > On Thu, Sep 30, 2021 at 05:56:27PM +0200, Frieder Schrempf wrote: > >> From: Frieder Schrempf <frieder.schrempf@kontron.de> > >> > >> The regulator reg_vdd_5v represents the fixed 5V supply on the board which > >> can't be switched off. Mark it as always-on. > >> > >> The regulator reg_rst_eth2 should keep the reset signal of the USB ethernet > >> adapter deassertet anytime. Fix the polarity and mark it as always-on. > > > > It seems to be wrong from the beginning that the reset is modelled by a > > regulator. > > Right, but at least at the time when I upstreamed this, there was no way > to pass the reset GPIO to a USB device driver and using a regulator > seems to be an accepted workaround as far as I understand. Do we have the solution in usb driver now? If so, we should probably switch to that, instead of patching the workaround? Shawn > > > > >> > >> Fixes: 21c4f45b335f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and baseboards") > >> Cc: stable@vger.kernel.org > >> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> > >> --- > >> arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 5 ++++- > >> 1 file changed, 4 insertions(+), 1 deletion(-) > >> > >> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts > >> index 62ba3bd08a0c..f2c8ccefd1bf 100644 > >> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts > >> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts > >> @@ -70,7 +70,9 @@ reg_rst_eth2: regulator-rst-eth2 { > >> regulator-name = "rst-usb-eth2"; > >> pinctrl-names = "default"; > >> pinctrl-0 = <&pinctrl_usb_eth2>; > >> - gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; > >> + gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>; > >> + enable-active-high; > >> + regulator-always-on; > >> }; > >> > >> reg_vdd_5v: regulator-5v { > >> @@ -78,6 +80,7 @@ reg_vdd_5v: regulator-5v { > >> regulator-name = "vdd-5v"; > >> regulator-min-microvolt = <5000000>; > >> regulator-max-microvolt = <5000000>; > >> + regulator-always-on; > > > > You do not have any on/off control over the regulator. So how does this > > always-on property make any difference? > > Right, this doesn't make a difference and is definitely not a fix, I > will drop it. Anyway, this regulator is just there for completeness of > the hardware description. > > > > >> }; > >> }; > >> > >> -- > >> 2.33.0 > >>
On 15.10.21 06:09, Shawn Guo wrote: > On Tue, Oct 05, 2021 at 07:06:57PM +0200, Frieder Schrempf wrote: >> On 05.10.21 09:09, Shawn Guo wrote: >>> On Thu, Sep 30, 2021 at 05:56:27PM +0200, Frieder Schrempf wrote: >>>> From: Frieder Schrempf <frieder.schrempf@kontron.de> >>>> >>>> The regulator reg_vdd_5v represents the fixed 5V supply on the board which >>>> can't be switched off. Mark it as always-on. >>>> >>>> The regulator reg_rst_eth2 should keep the reset signal of the USB ethernet >>>> adapter deassertet anytime. Fix the polarity and mark it as always-on. >>> >>> It seems to be wrong from the beginning that the reset is modelled by a >>> regulator. >> >> Right, but at least at the time when I upstreamed this, there was no way >> to pass the reset GPIO to a USB device driver and using a regulator >> seems to be an accepted workaround as far as I understand. > > Do we have the solution in usb driver now? If so, we should probably > switch to that, instead of patching the workaround? I had a look, but couldn't find anything. I remember there have been efforts in the past to provide a generic way for usb devices to manage resources like reset GPIOs and clocks (e.g. [1]), but it seems like nothing of this ever got merged. So for the moment I'd like to fix the existing solution, but I totally agree that this should be solved properly in the future. [1] https://lkml.org/lkml/2017/6/21/90 > >> >>> >>>> >>>> Fixes: 21c4f45b335f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and baseboards") >>>> Cc: stable@vger.kernel.org >>>> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> >>>> --- >>>> arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 5 ++++- >>>> 1 file changed, 4 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts >>>> index 62ba3bd08a0c..f2c8ccefd1bf 100644 >>>> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts >>>> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts >>>> @@ -70,7 +70,9 @@ reg_rst_eth2: regulator-rst-eth2 { >>>> regulator-name = "rst-usb-eth2"; >>>> pinctrl-names = "default"; >>>> pinctrl-0 = <&pinctrl_usb_eth2>; >>>> - gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; >>>> + gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>; >>>> + enable-active-high; >>>> + regulator-always-on; >>>> }; >>>> >>>> reg_vdd_5v: regulator-5v { >>>> @@ -78,6 +80,7 @@ reg_vdd_5v: regulator-5v { >>>> regulator-name = "vdd-5v"; >>>> regulator-min-microvolt = <5000000>; >>>> regulator-max-microvolt = <5000000>; >>>> + regulator-always-on; >>> >>> You do not have any on/off control over the regulator. So how does this >>> always-on property make any difference? >> >> Right, this doesn't make a difference and is definitely not a fix, I >> will drop it. Anyway, this regulator is just there for completeness of >> the hardware description. >> >>> >>>> }; >>>> }; >>>> >>>> -- >>>> 2.33.0 >>>>
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts index 62ba3bd08a0c..f2c8ccefd1bf 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -70,7 +70,9 @@ reg_rst_eth2: regulator-rst-eth2 { regulator-name = "rst-usb-eth2"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb_eth2>; - gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; + gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-always-on; }; reg_vdd_5v: regulator-5v { @@ -78,6 +80,7 @@ reg_vdd_5v: regulator-5v { regulator-name = "vdd-5v"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; + regulator-always-on; }; };