linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags
@ 2020-09-17 18:52 Krzysztof Kozlowski
  2020-09-17 18:52 ` [PATCH v2 2/2] arm64: dts: rk3399: " Krzysztof Kozlowski
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2020-09-17 18:52 UTC (permalink / raw)
  To: Heiko Stuebner, Rob Herring, Johan Jonker, Krzysztof Kozlowski,
	Kever Yang, Vivek Unune, Alexis Ballier, Jagan Teki, Anand Moon,
	linux-arm-kernel, linux-rockchip, devicetree, linux-kernel

GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
These are simple defines so they could be used in DTS but they will not
have the same meaning:
1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING

Correct the interrupt flags without affecting the code:
  ACTIVE_HIGH => IRQ_TYPE_NONE

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Not tested on HW.

Changes since v1:
1. Correct title
---
 arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/rk3188-bqedison2qc.dts b/arch/arm/boot/dts/rk3188-bqedison2qc.dts
index 66a0ff196eb1..b191347894f6 100644
--- a/arch/arm/boot/dts/rk3188-bqedison2qc.dts
+++ b/arch/arm/boot/dts/rk3188-bqedison2qc.dts
@@ -7,6 +7,7 @@
 /dts-v1/;
 #include <dt-bindings/i2c/i2c.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "rk3188.dtsi"
 
 / {
@@ -479,7 +480,7 @@
 		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio3>;
-		interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PD2 IRQ_TYPE_NONE>;
 		interrupt-names = "host-wake";
 		brcm,drive-strength = <5>;
 		pinctrl-names = "default";
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] arm64: dts: rk3399: correct interrupt flags
  2020-09-17 18:52 [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags Krzysztof Kozlowski
@ 2020-09-17 18:52 ` Krzysztof Kozlowski
  2020-10-02 16:11 ` [PATCH v2 1/2] ARM: dts: rk3188: " Krzysztof Kozlowski
  2022-04-04  8:59 ` Heiko Stuebner
  2 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2020-09-17 18:52 UTC (permalink / raw)
  To: Heiko Stuebner, Rob Herring, Johan Jonker, Krzysztof Kozlowski,
	Kever Yang, Vivek Unune, Alexis Ballier, Jagan Teki, Anand Moon,
	linux-arm-kernel, linux-rockchip, devicetree, linux-kernel

GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
These are simple defines so they could be used in DTS but they will not
have the same meaning:
1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING

Correct the interrupt flags, assuming the author of the code wanted same
logical behavior behind the name "ACTIVE_xxx", this is:
  ACTIVE_HIGH => IRQ_TYPE_LEVEL_HIGH

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Not tested on HW.

Changes since v1:
1. Correct title
---
 arch/arm64/boot/dts/rockchip/rk3399-firefly.dts      | 3 ++-
 arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts   | 3 ++-
 arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi | 3 ++-
 arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts    | 3 ++-
 arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts     | 3 ++-
 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts   | 2 +-
 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts   | 2 +-
 arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi     | 3 ++-
 8 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index 6db18808b9c5..095d615950ca 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
@@ -676,7 +677,7 @@
 		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		brcm,drive-strength = <5>;
 		pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts b/arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts
index 341d074ed996..25cb807bcfa6 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts
@@ -2,6 +2,7 @@
 /dts-v1/;
 #include <dt-bindings/pwm/pwm.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
 
@@ -623,7 +624,7 @@
 		compatible = "brcm,bcm4329-fmac";
 		reg = <1>;
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		pinctrl-names = "default";
 		pinctrl-0 = <&wifi_host_wake_l>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
index e36837c04dc7..89dae74989bb 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
@@ -662,7 +663,7 @@
 		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		brcm,drive-strength = <5>;
 		pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts b/arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts
index 1fa80ac15464..113a71256171 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
@@ -503,7 +504,7 @@
 		compatible = "brcm,bcm4329-fmac";
 		reg = <1>;
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		pinctrl-names = "default";
 		pinctrl-0 = <&wifi_host_wake_l>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts b/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
index 6163ae8063a7..ae81fb9d363c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
@@ -7,6 +7,7 @@
 
 #include "dt-bindings/pwm/pwm.h"
 #include "dt-bindings/input/input.h"
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
 
@@ -691,7 +692,7 @@
 		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		pinctrl-names = "default";
 		pinctrl-0 = <&wifi_host_wake_l>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
index f0055ce2fda0..7df4e698b1c0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
@@ -19,7 +19,7 @@
 		compatible = "brcm,bcm4329-fmac";
 		reg = <1>;
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		pinctrl-names = "default";
 		pinctrl-0 = <&wifi_host_wake_l>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
index 4c7ebb1c5d2d..887a29898617 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
@@ -20,7 +20,7 @@
 		compatible = "brcm,bcm4329-fmac";
 		reg = <1>;
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		pinctrl-names = "default";
 		pinctrl-0 = <&wifi_host_wake_l>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
index 5e3ac589bc54..9a4cd799edde 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
@@ -7,6 +7,7 @@
 
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
 	sdio_pwrseq: sdio-pwrseq {
@@ -522,7 +523,7 @@
 		compatible = "brcm,bcm4329-fmac";
 		reg = <1>;
 		interrupt-parent = <&gpio0>;
-		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "host-wake";
 		pinctrl-names = "default";
 		pinctrl-0 = <&wifi_host_wake_l>;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags
  2020-09-17 18:52 [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags Krzysztof Kozlowski
  2020-09-17 18:52 ` [PATCH v2 2/2] arm64: dts: rk3399: " Krzysztof Kozlowski
@ 2020-10-02 16:11 ` Krzysztof Kozlowski
  2020-10-17 12:08   ` Heiko Stübner
  2022-04-04  8:59 ` Heiko Stuebner
  2 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Kozlowski @ 2020-10-02 16:11 UTC (permalink / raw)
  To: Heiko Stuebner, Rob Herring, Johan Jonker, Kever Yang,
	Vivek Unune, Alexis Ballier, Jagan Teki, Anand Moon,
	linux-arm-kernel, linux-rockchip, devicetree, linux-kernel

On Thu, Sep 17, 2020 at 08:52:10PM +0200, Krzysztof Kozlowski wrote:
> GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
> These are simple defines so they could be used in DTS but they will not
> have the same meaning:
> 1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
> 2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING
> 
> Correct the interrupt flags without affecting the code:
>   ACTIVE_HIGH => IRQ_TYPE_NONE
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> 
> ---
> 
> Not tested on HW.
> 
> Changes since v1:
> 1. Correct title
> ---
>  arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Hi,

Any comments/review/testing from Heiko or other Rockchip folks? Shall I
cc here someone?

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags
  2020-10-02 16:11 ` [PATCH v2 1/2] ARM: dts: rk3188: " Krzysztof Kozlowski
@ 2020-10-17 12:08   ` Heiko Stübner
  2022-04-02 16:49     ` Krzysztof Kozlowski
  0 siblings, 1 reply; 6+ messages in thread
From: Heiko Stübner @ 2020-10-17 12:08 UTC (permalink / raw)
  To: Rob Herring, Johan Jonker, Kever Yang, Vivek Unune,
	Alexis Ballier, Jagan Teki, Anand Moon, linux-arm-kernel,
	linux-rockchip, devicetree, linux-kernel, Krzysztof Kozlowski,
	jagan

Hi,

Am Freitag, 2. Oktober 2020, 18:11:28 CEST schrieb Krzysztof Kozlowski:
> On Thu, Sep 17, 2020 at 08:52:10PM +0200, Krzysztof Kozlowski wrote:
> > GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
> > These are simple defines so they could be used in DTS but they will not
> > have the same meaning:
> > 1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
> > 2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING
> > 
> > Correct the interrupt flags without affecting the code:
> >   ACTIVE_HIGH => IRQ_TYPE_NONE
> > 
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > 
> > ---
> > 
> > Not tested on HW.
> > 
> > Changes since v1:
> > 1. Correct title
> > ---
> >  arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Hi,
> 
> Any comments/review/testing from Heiko or other Rockchip folks? Shall I
> cc here someone?

I'm actually wondering about this ... I somehow remember writing a response,
but don't see it in my history - so it might have gotten lost before I
actually sent it.

I think the biggest issue I have is that none of that is tested on any
hardware and looking at other brcm wifi drivers in the kernel, the
interrupt polarity seems to be all over the place, some set it high,
some low and I even have seen edge triggers.

As all changes are in regard to (copied) brcm wifi node, it would be
really interesting to actually know what trigger is the right one.

I've Cc'ed Jagan who I think has worked on an affected board,
maybe he can check which trigger is correct.


Heiko




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags
  2020-10-17 12:08   ` Heiko Stübner
@ 2022-04-02 16:49     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-02 16:49 UTC (permalink / raw)
  To: Heiko Stübner
  Cc: Rob Herring, Johan Jonker, Kever Yang, Vivek Unune,
	Alexis Ballier, Jagan Teki, Anand Moon, linux-arm-kernel,
	linux-rockchip, devicetree, linux-kernel

On Sat, 17 Oct 2020 at 14:08, Heiko Stübner <heiko@sntech.de> wrote:
>
> Hi,
>
> Am Freitag, 2. Oktober 2020, 18:11:28 CEST schrieb Krzysztof Kozlowski:
> > On Thu, Sep 17, 2020 at 08:52:10PM +0200, Krzysztof Kozlowski wrote:
> > > GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
> > > These are simple defines so they could be used in DTS but they will not
> > > have the same meaning:
> > > 1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
> > > 2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING
> > >
> > > Correct the interrupt flags without affecting the code:
> > >   ACTIVE_HIGH => IRQ_TYPE_NONE
> > >
> > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > >
> > > ---
> > >
> > > Not tested on HW.
> > >
> > > Changes since v1:
> > > 1. Correct title
> > > ---
> > >  arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > Hi,
> >
> > Any comments/review/testing from Heiko or other Rockchip folks? Shall I
> > cc here someone?
>
> I'm actually wondering about this ... I somehow remember writing a response,
> but don't see it in my history - so it might have gotten lost before I
> actually sent it.
>
> I think the biggest issue I have is that none of that is tested on any
> hardware and looking at other brcm wifi drivers in the kernel, the
> interrupt polarity seems to be all over the place, some set it high,
> some low and I even have seen edge triggers.
>
> As all changes are in regard to (copied) brcm wifi node, it would be
> really interesting to actually know what trigger is the right one.
>
> I've Cc'ed Jagan who I think has worked on an affected board,
> maybe he can check which trigger is correct.

Hi Heiko,

Nothing moved here since 2020 and the DTSes still have incorrect flags
for interrupts.

I can rebase and resend (although maybe it still applies cleanly), but
more important - is someone going to take this patch? or test it?

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags
  2020-09-17 18:52 [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags Krzysztof Kozlowski
  2020-09-17 18:52 ` [PATCH v2 2/2] arm64: dts: rk3399: " Krzysztof Kozlowski
  2020-10-02 16:11 ` [PATCH v2 1/2] ARM: dts: rk3188: " Krzysztof Kozlowski
@ 2022-04-04  8:59 ` Heiko Stuebner
  2 siblings, 0 replies; 6+ messages in thread
From: Heiko Stuebner @ 2022-04-04  8:59 UTC (permalink / raw)
  To: Anand Moon, Kever Yang, devicetree, Jagan Teki, Rob Herring,
	Krzysztof Kozlowski, linux-rockchip, linux-arm-kernel,
	linux-kernel, Vivek Unune, Alexis Ballier, Johan Jonker
  Cc: Heiko Stuebner

On Thu, 17 Sep 2020 20:52:10 +0200, Krzysztof Kozlowski wrote:
> GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
> These are simple defines so they could be used in DTS but they will not
> have the same meaning:
> 1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
> 2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING
> 
> Correct the interrupt flags without affecting the code:
>   ACTIVE_HIGH => IRQ_TYPE_NONE

Applied, thanks!

[1/2] ARM: dts: rk3188: correct interrupt flags
      commit: 7e5a7e39d767b60d8631792bd3d7820a6f4a43f8
[2/2] arm64: dts: rk3399: correct interrupt flags
      commit: 57f3b0bf5c346f73a848c3d74270b21ed110e530

Best regards,
-- 
Heiko Stuebner <heiko@sntech.de>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-04-04  9:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-17 18:52 [PATCH v2 1/2] ARM: dts: rk3188: correct interrupt flags Krzysztof Kozlowski
2020-09-17 18:52 ` [PATCH v2 2/2] arm64: dts: rk3399: " Krzysztof Kozlowski
2020-10-02 16:11 ` [PATCH v2 1/2] ARM: dts: rk3188: " Krzysztof Kozlowski
2020-10-17 12:08   ` Heiko Stübner
2022-04-02 16:49     ` Krzysztof Kozlowski
2022-04-04  8:59 ` Heiko Stuebner

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).