Message ID | 5165A1DB.3020404@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
* Jon Hunter <jon-hunter@ti.com> [130410 10:35]: > Hi Tony, > > On 04/09/2013 04:23 PM, Tony Lindgren wrote: > > Hi Jon, > > > > Looks like at least 4430sdp nfsroot got broken with commit > > ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells > > property). > > Thanks for reporting. I am actually amazed that ethernet is > working on any OMAP board (with device-tree) that requires a > gpio as an interrupt because we have still not come to an > agreement on [1]. Looking at the OMAP4 SDP I believe this is > working by luck because there are other gpios in the same > bank that are active and so the bank is enabled. If that were > not the case then this would not work. > > Hence, I have not been testing ethernet when booting with > device-tree because we need to fix [1] which has been really > crippling my testing. So this needs to be resolved so ethernet > can work consistently on all omap boards. Cool. > > Do we need to pass the GPIO edge/level info now? > > Yes and here is a patch. I have tested on my OMAP4 SDP this > morning. Reviewing all the OMAP/AM dts(i) files I believe > that only the SDP and OMAP4-VAR-SOM are impacted by this. I > don't see any other boards currently using the gpio as an > interrupt-controller. Great. Just one comment: You might be able to already use the DT preprocessor now easily with linux next for the edge info. Regards, Tony > [1] comments.gmane.org/gmane.linux.ports.arm.omap/92192 > > From ed3e66bcd4c0cb3df4cb70e75c45fa4462f70565 Mon Sep 17 00:00:00 2001 > From: Jon Hunter <jon-hunter@ti.com> > Date: Wed, 10 Apr 2013 11:44:44 -0500 > Subject: [PATCH] ARM: dts: OMAP4: Fix ethernet IRQ for OMAP4 boards > > Commit ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells > property) updated the number of interrupt cells required for configuring > gpios as interrupts for other devices (such as ethernet controllers). > This update allowed the interrupt type (edge, level, etc) to be > configured via device-tree (as described in the > Documentation/devicetree/bindings/gpio/gpio-omap.txt). > > This broke ethernet support on the OMAP4 SDP board that defines a gpio > as the ethernet IRQ because the interrupt type (level, edge, etc) was > not getting configured correctly. This board use the ks8851 ethernet > chip which has an active low interrupt. Fix this by defining the gpio > interrupt as active-low in the device-tree binding. > > Please note that the OMAP4-VAR-SOM also uses the same ethernet > controller and it is expected it will have the same problem. So the > same fix is also applied to this board. > > Signed-off-by: Jon Hunter <jon-hunter@ti.com> > --- > arch/arm/boot/dts/omap4-sdp.dts | 2 +- > arch/arm/boot/dts/omap4-var-som.dts | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts > index c387bdc..25cbe43 100644 > --- a/arch/arm/boot/dts/omap4-sdp.dts > +++ b/arch/arm/boot/dts/omap4-sdp.dts > @@ -363,7 +363,7 @@ > spi-max-frequency = <24000000>; > reg = <0>; > interrupt-parent = <&gpio2>; > - interrupts = <2>; /* gpio line 34 */ > + interrupts = <2 8>; /* gpio line 34, low triggered */ > vdd-supply = <&vdd_eth>; > }; > }; > diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts > index 222a413..7e04103 100644 > --- a/arch/arm/boot/dts/omap4-var-som.dts > +++ b/arch/arm/boot/dts/omap4-var-som.dts > @@ -68,7 +68,7 @@ > spi-max-frequency = <24000000>; > reg = <0>; > interrupt-parent = <&gpio6>; > - interrupts = <11>; /* gpio line 171 */ > + interrupts = <11 8>; /* gpio line 171, low triggered */ > vdd-supply = <&vdd_eth>; > }; > }; > -- > 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Apr 10, 2013 at 7:31 PM, Jon Hunter <jon-hunter@ti.com> wrote: > Hi Tony, > > On 04/09/2013 04:23 PM, Tony Lindgren wrote: >> Hi Jon, >> >> Looks like at least 4430sdp nfsroot got broken with commit >> ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells >> property). > > Thanks for reporting. I am actually amazed that ethernet is > working on any OMAP board (with device-tree) that requires a > gpio as an interrupt because we have still not come to an > agreement on [1]. Looking at the OMAP4 SDP I believe this is > working by luck because there are other gpios in the same > bank that are active and so the bank is enabled. If that were > not the case then this would not work. > Hi Jon, Ethernet is working on 4430sdp since the optional "gpio" property is specified on the fixed regulator used by the eth device node. From arch/arm/boot/dts/omap4-sdp.dts: vdd_eth: fixedregulator-vdd-eth { compatible = "regulator-fixed"; regulator-name = "VDD_ETH"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio2 16 0>; /* gpio line 48 */ enable-active-high; regulator-boot-on; }; ... &mcspi1 { eth@0 { compatible = "ks8851"; spi-max-frequency = <24000000>; reg = <0>; interrupt-parent = <&gpio2>; interrupts = <2>; /* gpio line 34 */ vdd-supply = <&vdd_eth>; }; }; So is the regulator who is calling gpio_request() and enabling the GPIO bank and no the ks881 ethernet driver. That's why it was working although I think is just a DT hack and should be changed once we found a proper solution to fhis. Best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 04/10/2013 06:58 PM, Javier Martinez Canillas wrote: > On Wed, Apr 10, 2013 at 7:31 PM, Jon Hunter <jon-hunter@ti.com> wrote: >> Hi Tony, >> >> On 04/09/2013 04:23 PM, Tony Lindgren wrote: >>> Hi Jon, >>> >>> Looks like at least 4430sdp nfsroot got broken with commit >>> ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells >>> property). >> >> Thanks for reporting. I am actually amazed that ethernet is >> working on any OMAP board (with device-tree) that requires a >> gpio as an interrupt because we have still not come to an >> agreement on [1]. Looking at the OMAP4 SDP I believe this is >> working by luck because there are other gpios in the same >> bank that are active and so the bank is enabled. If that were >> not the case then this would not work. >> > > Hi Jon, > > Ethernet is working on 4430sdp since the optional "gpio" property is > specified on the fixed regulator used by the eth device node. > > From arch/arm/boot/dts/omap4-sdp.dts: > > vdd_eth: fixedregulator-vdd-eth { > compatible = "regulator-fixed"; > regulator-name = "VDD_ETH"; > regulator-min-microvolt = <3300000>; > regulator-max-microvolt = <3300000>; > gpio = <&gpio2 16 0>; /* gpio line 48 */ > enable-active-high; > regulator-boot-on; > }; > ... > &mcspi1 { > eth@0 { > compatible = "ks8851"; > spi-max-frequency = <24000000>; > reg = <0>; > interrupt-parent = <&gpio2>; > interrupts = <2>; /* gpio line 34 */ > vdd-supply = <&vdd_eth>; > }; > }; > > So is the regulator who is calling gpio_request() and enabling the > GPIO bank and no the ks881 ethernet driver. That's why it was working > although I think is just a DT hack and should be changed once we found > a proper solution to fhis. Right, in the above I mentioned it is working because of other gpios in the bank that are enabled. So I understand why it works, but wanted to point out that this is lucky :-) Jon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 11, 2013 at 2:28 AM, Jon Hunter <jon-hunter@ti.com> wrote: > > On 04/10/2013 06:58 PM, Javier Martinez Canillas wrote: >> On Wed, Apr 10, 2013 at 7:31 PM, Jon Hunter <jon-hunter@ti.com> wrote: >>> Hi Tony, >>> >>> On 04/09/2013 04:23 PM, Tony Lindgren wrote: >>>> Hi Jon, >>>> >>>> Looks like at least 4430sdp nfsroot got broken with commit >>>> ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells >>>> property). >>> >>> Thanks for reporting. I am actually amazed that ethernet is >>> working on any OMAP board (with device-tree) that requires a >>> gpio as an interrupt because we have still not come to an >>> agreement on [1]. Looking at the OMAP4 SDP I believe this is >>> working by luck because there are other gpios in the same >>> bank that are active and so the bank is enabled. If that were >>> not the case then this would not work. >>> >> >> Hi Jon, >> >> Ethernet is working on 4430sdp since the optional "gpio" property is >> specified on the fixed regulator used by the eth device node. >> >> From arch/arm/boot/dts/omap4-sdp.dts: >> >> vdd_eth: fixedregulator-vdd-eth { >> compatible = "regulator-fixed"; >> regulator-name = "VDD_ETH"; >> regulator-min-microvolt = <3300000>; >> regulator-max-microvolt = <3300000>; >> gpio = <&gpio2 16 0>; /* gpio line 48 */ >> enable-active-high; >> regulator-boot-on; >> }; >> ... >> &mcspi1 { >> eth@0 { >> compatible = "ks8851"; >> spi-max-frequency = <24000000>; >> reg = <0>; >> interrupt-parent = <&gpio2>; >> interrupts = <2>; /* gpio line 34 */ >> vdd-supply = <&vdd_eth>; >> }; >> }; >> >> So is the regulator who is calling gpio_request() and enabling the >> GPIO bank and no the ks881 ethernet driver. That's why it was working >> although I think is just a DT hack and should be changed once we found >> a proper solution to fhis. > > Right, in the above I mentioned it is working because of other gpios in > the bank that are enabled. So I understand why it works, but wanted to > point out that this is lucky :-) > > Jon > Indeed :-) I just thought it could be good to explain this so others will understand why it was working. Sorry for the noise and I hope we find a solution for this soon Javier -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Javier, On 04/11/2013 01:58 AM, Javier Martinez Canillas wrote: > On Wed, Apr 10, 2013 at 7:31 PM, Jon Hunter <jon-hunter@ti.com> wrote: >> Hi Tony, >> >> On 04/09/2013 04:23 PM, Tony Lindgren wrote: >>> Hi Jon, >>> >>> Looks like at least 4430sdp nfsroot got broken with commit >>> ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells >>> property). >> >> Thanks for reporting. I am actually amazed that ethernet is >> working on any OMAP board (with device-tree) that requires a >> gpio as an interrupt because we have still not come to an >> agreement on [1]. Looking at the OMAP4 SDP I believe this is >> working by luck because there are other gpios in the same >> bank that are active and so the bank is enabled. If that were >> not the case then this would not work. >> > > Hi Jon, > > Ethernet is working on 4430sdp since the optional "gpio" property is > specified on the fixed regulator used by the eth device node. > > From arch/arm/boot/dts/omap4-sdp.dts: > > vdd_eth: fixedregulator-vdd-eth { > compatible = "regulator-fixed"; > regulator-name = "VDD_ETH"; > regulator-min-microvolt = <3300000>; > regulator-max-microvolt = <3300000>; > gpio = <&gpio2 16 0>; /* gpio line 48 */ > enable-active-high; > regulator-boot-on; > }; > ... > &mcspi1 { > eth@0 { > compatible = "ks8851"; > spi-max-frequency = <24000000>; > reg = <0>; > interrupt-parent = <&gpio2>; > interrupts = <2>; /* gpio line 34 */ > vdd-supply = <&vdd_eth>; > }; > }; > > So is the regulator who is calling gpio_request() and enabling the > GPIO bank and no the ks881 ethernet driver. That's why it was working > although I think is just a DT hack and should be changed once we found > a proper solution to fhis. It is not really a hack. There is a regulator controlled by a GPIO that can control the Ethernet chip power. Both gpio48 and gpio34 are used for Ethernet. On some SDP version there is even a third line, but I was not able to find any evidence in the schematic I was using. Regards, Benoit -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 11, 2013 at 11:22 AM, Benoit Cousson <b-cousson@ti.com> wrote: > Hi Javier, > > On 04/11/2013 01:58 AM, Javier Martinez Canillas wrote: >> On Wed, Apr 10, 2013 at 7:31 PM, Jon Hunter <jon-hunter@ti.com> wrote: >>> Hi Tony, >>> >>> On 04/09/2013 04:23 PM, Tony Lindgren wrote: >>>> Hi Jon, >>>> >>>> Looks like at least 4430sdp nfsroot got broken with commit >>>> ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells >>>> property). >>> >>> Thanks for reporting. I am actually amazed that ethernet is >>> working on any OMAP board (with device-tree) that requires a >>> gpio as an interrupt because we have still not come to an >>> agreement on [1]. Looking at the OMAP4 SDP I believe this is >>> working by luck because there are other gpios in the same >>> bank that are active and so the bank is enabled. If that were >>> not the case then this would not work. >>> >> >> Hi Jon, >> >> Ethernet is working on 4430sdp since the optional "gpio" property is >> specified on the fixed regulator used by the eth device node. >> >> From arch/arm/boot/dts/omap4-sdp.dts: >> >> vdd_eth: fixedregulator-vdd-eth { >> compatible = "regulator-fixed"; >> regulator-name = "VDD_ETH"; >> regulator-min-microvolt = <3300000>; >> regulator-max-microvolt = <3300000>; >> gpio = <&gpio2 16 0>; /* gpio line 48 */ >> enable-active-high; >> regulator-boot-on; >> }; >> ... >> &mcspi1 { >> eth@0 { >> compatible = "ks8851"; >> spi-max-frequency = <24000000>; >> reg = <0>; >> interrupt-parent = <&gpio2>; >> interrupts = <2>; /* gpio line 34 */ >> vdd-supply = <&vdd_eth>; >> }; >> }; >> >> So is the regulator who is calling gpio_request() and enabling the >> GPIO bank and no the ks881 ethernet driver. That's why it was working >> although I think is just a DT hack and should be changed once we found >> a proper solution to fhis. > > It is not really a hack. There is a regulator controlled by a GPIO that > can control the Ethernet chip power. Both gpio48 and gpio34 are used for > Ethernet. On some SDP version there is even a third line, but I was not > able to find any evidence in the schematic I was using. > > Regards, > Benoit > Hi Benoit, I (wrongly) assumed that this was made just to bypass the fact that neither the ks881 driver nor the DT core call omap_gpio_request() to enable the GPIO bank module. But now thanks to your explanation I understand that gpio48 is also necessary to control the regulator and as Jon said the lucky fact is that both GPIO 48 and 34 are from the same GPIO bank module (gpio2). If that was not the case, this would probably not work. I should learn to not comment without looking at the schematic first. Thanks a lot and best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
* Jon Hunter <jon-hunter@ti.com> [130410 10:35]: > Hi Tony, > > On 04/09/2013 04:23 PM, Tony Lindgren wrote: > > Hi Jon, > > > > Looks like at least 4430sdp nfsroot got broken with commit > > ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells > > property). > > Thanks for reporting. I am actually amazed that ethernet is > working on any OMAP board (with device-tree) that requires a > gpio as an interrupt because we have still not come to an > agreement on [1]. Looking at the OMAP4 SDP I believe this is > working by luck because there are other gpios in the same > bank that are active and so the bank is enabled. If that were > not the case then this would not work. > > Hence, I have not been testing ethernet when booting with > device-tree because we need to fix [1] which has been really > crippling my testing. So this needs to be resolved so ethernet > can work consistently on all omap boards. > > > Do we need to pass the GPIO edge/level info now? > > Yes and here is a patch. I have tested on my OMAP4 SDP this > morning. Reviewing all the OMAP/AM dts(i) files I believe > that only the SDP and OMAP4-VAR-SOM are impacted by this. I > don't see any other boards currently using the gpio as an > interrupt-controller. I'll apply this into omap-for-v3.10/dt-fixes. Benoit, I'll have only dt stuff in that branch so it should play along with whatever you'll be applying as well. Regards, Tony > Cheers > Jon > > [1] comments.gmane.org/gmane.linux.ports.arm.omap/92192 > > From ed3e66bcd4c0cb3df4cb70e75c45fa4462f70565 Mon Sep 17 00:00:00 2001 > From: Jon Hunter <jon-hunter@ti.com> > Date: Wed, 10 Apr 2013 11:44:44 -0500 > Subject: [PATCH] ARM: dts: OMAP4: Fix ethernet IRQ for OMAP4 boards > > Commit ff5c9059 (ARM: dts: OMAP3+: Correct gpio #interrupts-cells > property) updated the number of interrupt cells required for configuring > gpios as interrupts for other devices (such as ethernet controllers). > This update allowed the interrupt type (edge, level, etc) to be > configured via device-tree (as described in the > Documentation/devicetree/bindings/gpio/gpio-omap.txt). > > This broke ethernet support on the OMAP4 SDP board that defines a gpio > as the ethernet IRQ because the interrupt type (level, edge, etc) was > not getting configured correctly. This board use the ks8851 ethernet > chip which has an active low interrupt. Fix this by defining the gpio > interrupt as active-low in the device-tree binding. > > Please note that the OMAP4-VAR-SOM also uses the same ethernet > controller and it is expected it will have the same problem. So the > same fix is also applied to this board. > > Signed-off-by: Jon Hunter <jon-hunter@ti.com> > --- > arch/arm/boot/dts/omap4-sdp.dts | 2 +- > arch/arm/boot/dts/omap4-var-som.dts | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts > index c387bdc..25cbe43 100644 > --- a/arch/arm/boot/dts/omap4-sdp.dts > +++ b/arch/arm/boot/dts/omap4-sdp.dts > @@ -363,7 +363,7 @@ > spi-max-frequency = <24000000>; > reg = <0>; > interrupt-parent = <&gpio2>; > - interrupts = <2>; /* gpio line 34 */ > + interrupts = <2 8>; /* gpio line 34, low triggered */ > vdd-supply = <&vdd_eth>; > }; > }; > diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts > index 222a413..7e04103 100644 > --- a/arch/arm/boot/dts/omap4-var-som.dts > +++ b/arch/arm/boot/dts/omap4-var-som.dts > @@ -68,7 +68,7 @@ > spi-max-frequency = <24000000>; > reg = <0>; > interrupt-parent = <&gpio6>; > - interrupts = <11>; /* gpio line 171 */ > + interrupts = <11 8>; /* gpio line 171, low triggered */ > vdd-supply = <&vdd_eth>; > }; > }; > -- > 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index c387bdc..25cbe43 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts @@ -363,7 +363,7 @@ spi-max-frequency = <24000000>; reg = <0>; interrupt-parent = <&gpio2>; - interrupts = <2>; /* gpio line 34 */ + interrupts = <2 8>; /* gpio line 34, low triggered */ vdd-supply = <&vdd_eth>; }; }; diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts index 222a413..7e04103 100644 --- a/arch/arm/boot/dts/omap4-var-som.dts +++ b/arch/arm/boot/dts/omap4-var-som.dts @@ -68,7 +68,7 @@ spi-max-frequency = <24000000>; reg = <0>; interrupt-parent = <&gpio6>; - interrupts = <11>; /* gpio line 171 */ + interrupts = <11 8>; /* gpio line 171, low triggered */ vdd-supply = <&vdd_eth>; }; };