From dd7079e79a94fdde2e0ff4c1d6f428f3b115211c Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Sun, 18 Dec 2016 13:54:17 +0100 Subject: brcm63xx: implement gpio_to_irq for bcm63xx-gpio Add support for mapping some GPIO lines to IRQs. GPIO to IRQ mappings were found out through experimentation, helped by having the GPIO as output still toggling the IRQ input. Based-on: http://patchwork.ozlabs.org/patch/660534/ Signed-off-by: Jonas Gorski --- target/linux/brcm63xx/dts/bcm6318.dtsi | 4 ++++ target/linux/brcm63xx/dts/bcm63268.dtsi | 4 ++++ target/linux/brcm63xx/dts/bcm6328.dtsi | 5 +++++ target/linux/brcm63xx/dts/bcm6348.dtsi | 4 ++++ target/linux/brcm63xx/dts/bcm6358.dtsi | 9 +++++++++ target/linux/brcm63xx/dts/bcm6362.dtsi | 5 +++++ target/linux/brcm63xx/dts/bcm6368.dtsi | 9 +++++++++ 7 files changed, 40 insertions(+) (limited to 'target/linux/brcm63xx/dts') diff --git a/target/linux/brcm63xx/dts/bcm6318.dtsi b/target/linux/brcm63xx/dts/bcm6318.dtsi index 776698068d..0371617978 100644 --- a/target/linux/brcm63xx/dts/bcm6318.dtsi +++ b/target/linux/brcm63xx/dts/bcm6318.dtsi @@ -65,6 +65,10 @@ #gpio-cells = <2>; ngpios = <18>; + + interrupt-parent = <&ext_intc>; + interrupts = <0 0>, <1 0>; + interrupt-names = "gpio1", "gpio2"; }; gpio0: gpio-controller@10000084 { diff --git a/target/linux/brcm63xx/dts/bcm63268.dtsi b/target/linux/brcm63xx/dts/bcm63268.dtsi index 47894f8b42..5a0a909563 100644 --- a/target/linux/brcm63xx/dts/bcm63268.dtsi +++ b/target/linux/brcm63xx/dts/bcm63268.dtsi @@ -72,6 +72,10 @@ #gpio-cells = <2>; ngpios = <20>; + + interrupt-parent = <&periph_intc>; + interrupts = <0 0>, <1 0>, <2 0>, <3 0>; + interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3"; }; gpio0: gpio-controller@100000c4 { diff --git a/target/linux/brcm63xx/dts/bcm6328.dtsi b/target/linux/brcm63xx/dts/bcm6328.dtsi index b49958a7b6..5eec6dec3a 100644 --- a/target/linux/brcm63xx/dts/bcm6328.dtsi +++ b/target/linux/brcm63xx/dts/bcm6328.dtsi @@ -62,6 +62,11 @@ gpio-controller; #gpio-cells = <2>; + + interrupt-parent = <&ext_intc>; + interrupts = <3 0>, <2 0>, <0 0>, <1 0>; + interrupt-names = "gpio12", "gpio15", + "gpio23", "gpio24"; }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6348.dtsi b/target/linux/brcm63xx/dts/bcm6348.dtsi index 7edda30845..d1219c031f 100644 --- a/target/linux/brcm63xx/dts/bcm6348.dtsi +++ b/target/linux/brcm63xx/dts/bcm6348.dtsi @@ -78,6 +78,10 @@ #gpio-cells = <2>; ngpios = <5>; + + interrupt-parent = <&ext_intc>; + interrupts = <0 0>, <1 0>, <2 0>, <3 0>; + interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3"; }; gpio0: gpio-controller@fffe0404 { diff --git a/target/linux/brcm63xx/dts/bcm6358.dtsi b/target/linux/brcm63xx/dts/bcm6358.dtsi index fa0b5b8a6e..9d95849b3a 100644 --- a/target/linux/brcm63xx/dts/bcm6358.dtsi +++ b/target/linux/brcm63xx/dts/bcm6358.dtsi @@ -94,6 +94,15 @@ #gpio-cells = <2>; ngpios = <8>; + + interrupts-extended = <&ext_intc1 0 0>, + <&ext_intc1 1 0>, + <&ext_intc0 0 0>, + <&ext_intc0 1 0>, + <&ext_intc0 2 0>, + <&ext_intc0 3 0>; + interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3", + "gpio4", "gpio5"; }; gpio0: gpio-controller@fffe0084 { diff --git a/target/linux/brcm63xx/dts/bcm6362.dtsi b/target/linux/brcm63xx/dts/bcm6362.dtsi index 40f6b9ec29..a6a5c1f1d0 100644 --- a/target/linux/brcm63xx/dts/bcm6362.dtsi +++ b/target/linux/brcm63xx/dts/bcm6362.dtsi @@ -80,6 +80,11 @@ gpio-controller; #gpio-cells = <2>; + + interrupt-parent = <&ext_intc>; + interrupts = <0 0>, <1 0>, <2 0>, <3 0>; + interrupt-names = "gpio24", "gpio25", + "gpio26", "gpio27"; }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6368.dtsi b/target/linux/brcm63xx/dts/bcm6368.dtsi index 52bcec4466..59ef41af47 100644 --- a/target/linux/brcm63xx/dts/bcm6368.dtsi +++ b/target/linux/brcm63xx/dts/bcm6368.dtsi @@ -84,6 +84,15 @@ #gpio-cells = <2>; ngpios = <6>; + + interrupts-extended = <&ext_intc1 0 0>, + <&ext_intc1 1 0>, + <&ext_intc0 0 0>, + <&ext_intc0 1 0>, + <&ext_intc0 2 0>, + <&ext_intc0 3 0>; + interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3", + "gpio4", "gpio5"; }; gpio0: gpio-controller@10000084 { -- cgit v1.2.3