* [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q @ 2014-04-15 8:07 Antoine Ténart 2014-04-15 8:07 ` [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency " Antoine Ténart 2014-04-15 8:07 ` [PATCH 2/2] ARM: dts: berlin: add GPIO nodes " Antoine Ténart 0 siblings, 2 replies; 13+ messages in thread From: Antoine Ténart @ 2014-04-15 8:07 UTC (permalink / raw) To: sebastian.hesselbarth Cc: zmxu, jszhang, devicetree, Antoine Ténart, linux-kernel, alexandre.belloni, linux-arm-kernel This series add the support for the GPIOs of the Berlin BG2Q. We use the newly integrated dwapb GPIO driver here. This applies on top of Alexandre's BG2Q symbol introduction[1] and the dwapb gpio patch fixing IRQ initialization[2]. [1] https://patchwork.kernel.org/patch/3876141/ [2] https://lkml.org/lkml/2014/4/7/96 Antoine Ténart (2): ARM: berlin: add the LIBGPIO as a dependency for the BG2Q ARM: dts: berlin: add GPIO nodes for the BG2Q arch/arm/boot/dts/berlin2q.dtsi | 102 ++++++++++++++++++++++++++++++++++++++++ arch/arm/mach-berlin/Kconfig | 1 + 2 files changed, 103 insertions(+) -- 1.8.3.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q 2014-04-15 8:07 [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q Antoine Ténart @ 2014-04-15 8:07 ` Antoine Ténart 2014-04-15 9:07 ` Jisheng Zhang [not found] ` <1397549245-3338-2-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> 2014-04-15 8:07 ` [PATCH 2/2] ARM: dts: berlin: add GPIO nodes " Antoine Ténart 1 sibling, 2 replies; 13+ messages in thread From: Antoine Ténart @ 2014-04-15 8:07 UTC (permalink / raw) To: sebastian.hesselbarth Cc: zmxu, jszhang, devicetree, Antoine Ténart, linux-kernel, alexandre.belloni, linux-arm-kernel The BG2Q has GPIOs driven by the dwapb GPIO driver. Add the LIBGPIO as a dependency to be able to support them. Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com> --- arch/arm/mach-berlin/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig index 291f1cac6c3d..c31968712095 100644 --- a/arch/arm/mach-berlin/Kconfig +++ b/arch/arm/mach-berlin/Kconfig @@ -28,6 +28,7 @@ config MACH_BERLIN_BG2Q select CPU_V7 select HAVE_ARM_TWD if SMP select HAVE_SMP + select ARCH_REQUIRE_GPIOLIB endmenu -- 1.8.3.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q 2014-04-15 8:07 ` [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency " Antoine Ténart @ 2014-04-15 9:07 ` Jisheng Zhang 2014-04-15 9:26 ` Antoine Ténart [not found] ` <1397549245-3338-2-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> 1 sibling, 1 reply; 13+ messages in thread From: Jisheng Zhang @ 2014-04-15 9:07 UTC (permalink / raw) To: Antoine Ténart Cc: sebastian.hesselbarth@gmail.com, alexandre.belloni@free-electrons.com, Jimmy Xu, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Hi Antoine, On Tue, 15 Apr 2014 01:07:24 -0700 Antoine Ténart <antoine.tenart@free-electrons.com> wrote: > The BG2Q has GPIOs driven by the dwapb GPIO driver. Add the LIBGPIO as a > dependency to be able to support them. > > Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com> > --- > arch/arm/mach-berlin/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig > index 291f1cac6c3d..c31968712095 100644 > --- a/arch/arm/mach-berlin/Kconfig > +++ b/arch/arm/mach-berlin/Kconfig > @@ -28,6 +28,7 @@ config MACH_BERLIN_BG2Q > select CPU_V7 > select HAVE_ARM_TWD if SMP > select HAVE_SMP > + select ARCH_REQUIRE_GPIOLIB alphabetically sort. Others looks good ;) Thanks, Jisheng ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q 2014-04-15 9:07 ` Jisheng Zhang @ 2014-04-15 9:26 ` Antoine Ténart 0 siblings, 0 replies; 13+ messages in thread From: Antoine Ténart @ 2014-04-15 9:26 UTC (permalink / raw) To: Jisheng Zhang Cc: sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org, Jimmy Xu, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Hi Jisheng, On Tue, Apr 15, 2014 at 05:07:50PM +0800, Jisheng Zhang wrote: > On Tue, 15 Apr 2014 01:07:24 -0700 > Antoine Ténart <antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> wrote: […] > > diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig > > index 291f1cac6c3d..c31968712095 100644 > > --- a/arch/arm/mach-berlin/Kconfig > > +++ b/arch/arm/mach-berlin/Kconfig > > @@ -28,6 +28,7 @@ config MACH_BERLIN_BG2Q > > select CPU_V7 > > select HAVE_ARM_TWD if SMP > > select HAVE_SMP > > + select ARCH_REQUIRE_GPIOLIB > > alphabetically sort. You're right, will do. Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <1397549245-3338-2-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>]
* Re: [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q [not found] ` <1397549245-3338-2-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> @ 2014-04-15 9:16 ` Sebastian Hesselbarth 2014-04-15 9:27 ` Antoine Ténart 0 siblings, 1 reply; 13+ messages in thread From: Sebastian Hesselbarth @ 2014-04-15 9:16 UTC (permalink / raw) To: Antoine Ténart Cc: alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8, zmxu-eYqpPyKDWXRBDgjK7y7TUQ, jszhang-eYqpPyKDWXRBDgjK7y7TUQ, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA On 04/15/2014 10:07 AM, Antoine Ténart wrote: > The BG2Q has GPIOs driven by the dwapb GPIO driver. Add the LIBGPIO as a > dependency to be able to support them. > > Signed-off-by: Antoine Ténart <antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> > --- > arch/arm/mach-berlin/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig > index 291f1cac6c3d..c31968712095 100644 > --- a/arch/arm/mach-berlin/Kconfig > +++ b/arch/arm/mach-berlin/Kconfig > @@ -28,6 +28,7 @@ config MACH_BERLIN_BG2Q > select CPU_V7 > select HAVE_ARM_TWD if SMP > select HAVE_SMP > + select ARCH_REQUIRE_GPIOLIB Apart from Jisheng's comment, I think we can directly move it into arch/arm/Kconfig's MACH_BERLIN directly? Sebastian > endmenu > > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q 2014-04-15 9:16 ` Sebastian Hesselbarth @ 2014-04-15 9:27 ` Antoine Ténart 0 siblings, 0 replies; 13+ messages in thread From: Antoine Ténart @ 2014-04-15 9:27 UTC (permalink / raw) To: Sebastian Hesselbarth Cc: alexandre.belloni, zmxu, jszhang, linux-arm-kernel, devicetree, linux-kernel Sebastian, On Tue, Apr 15, 2014 at 11:16:49AM +0200, Sebastian Hesselbarth wrote: > On 04/15/2014 10:07 AM, Antoine Ténart wrote: […] > >diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig > >index 291f1cac6c3d..c31968712095 100644 > >--- a/arch/arm/mach-berlin/Kconfig > >+++ b/arch/arm/mach-berlin/Kconfig > >@@ -28,6 +28,7 @@ config MACH_BERLIN_BG2Q > > select CPU_V7 > > select HAVE_ARM_TWD if SMP > > select HAVE_SMP > >+ select ARCH_REQUIRE_GPIOLIB > > Apart from Jisheng's comment, I think we can directly move it > into arch/arm/Kconfig's MACH_BERLIN directly? I think so. Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q 2014-04-15 8:07 [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q Antoine Ténart 2014-04-15 8:07 ` [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency " Antoine Ténart @ 2014-04-15 8:07 ` Antoine Ténart [not found] ` <1397549245-3338-3-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> 1 sibling, 1 reply; 13+ messages in thread From: Antoine Ténart @ 2014-04-15 8:07 UTC (permalink / raw) To: sebastian.hesselbarth Cc: Antoine Ténart, alexandre.belloni, zmxu, jszhang, linux-arm-kernel, devicetree, linux-kernel The Marvell Berlin BG2Q has 6 GPIO ports compatible with the snps,dw-apb-gpio driver. This patch add the corresponding device tree nodes. Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com> --- arch/arm/boot/dts/berlin2q.dtsi | 102 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi index e6e556055dfc..b2625f896bc5 100644 --- a/arch/arm/boot/dts/berlin2q.dtsi +++ b/arch/arm/boot/dts/berlin2q.dtsi @@ -109,6 +109,78 @@ ranges = <0 0xe80000 0x10000>; interrupt-parent = <&aic>; + gpio0: gpio@0400 { + compatible = "snps,dw-apb-gpio"; + reg = <0x0400 0x400>; + #address-cells = <1>; + #size-cells = <0>; + + porta: gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <2>; + snps,nr-gpios = <32>; + reg = <0>; + interrupt-controller; + #interrupt-cells = <2>; + interrupts = <0>; + }; + }; + + gpio1: gpio@0800 { + compatible = "snps,dw-apb-gpio"; + reg = <0x0800 0x400>; + #address-cells = <1>; + #size-cells = <0>; + + portb: gpio-controller@1 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <2>; + snps,nr-gpios = <32>; + reg = <0>; + interrupt-controller; + #interrupt-cells = <2>; + interrupts = <1>; + }; + }; + + gpio2: gpio@0c00 { + compatible = "snps,dw-apb-gpio"; + reg = <0x0c00 0x400>; + #address-cells = <1>; + #size-cells = <0>; + + portc: gpio-controller@2 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <2>; + snps,nr-gpios = <32>; + reg = <0>; + interrupt-controller; + #interrupt-cells = <2>; + interrupts = <2>; + }; + }; + + gpio3: gpio@1000 { + compatible = "snps,dw-apb-gpio"; + reg = <0x1000 0x400>; + #address-cells = <1>; + #size-cells = <0>; + + portd: gpio-controller@3 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <2>; + snps,nr-gpios = <32>; + reg = <0>; + interrupt-controller; + #interrupt-cells = <2>; + interrupts = <3>; + }; + }; + timer0: timer@2c00 { compatible = "snps,dw-apb-timer"; reg = <0x2c00 0x14>; @@ -181,6 +253,36 @@ interrupt-parent = <&gic>; interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; }; + + gpio4: gpio@5000 { + compatible = "snps,dw-apb-gpio"; + reg = <0x5000 0x400>; + #address-cells = <1>; + #size-cells = <0>; + + porte: gpio-controller@4 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <2>; + snps,nr-gpios = <32>; + reg = <0>; + }; + }; + + gpio5: gpio@c000 { + compatible = "snps,dw-apb-gpio"; + reg = <0xc000 0x400>; + #address-cells = <1>; + #size-cells = <0>; + + portf: gpio-controller@5 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <2>; + snps,nr-gpios = <32>; + reg = <0>; + }; + }; }; pinctrl: pinctrl@0 { -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 13+ messages in thread
[parent not found: <1397549245-3338-3-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>]
* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q [not found] ` <1397549245-3338-3-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> @ 2014-04-15 9:23 ` Sebastian Hesselbarth [not found] ` <534CFA77.9030108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 13+ messages in thread From: Sebastian Hesselbarth @ 2014-04-15 9:23 UTC (permalink / raw) To: Antoine Ténart Cc: alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8, zmxu-eYqpPyKDWXRBDgjK7y7TUQ, jszhang-eYqpPyKDWXRBDgjK7y7TUQ, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA On 04/15/2014 10:07 AM, Antoine Ténart wrote: > The Marvell Berlin BG2Q has 6 GPIO ports compatible with the snps,dw-apb-gpio > driver. This patch add the corresponding device tree nodes. > > Signed-off-by: Antoine Ténart <antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> > --- > arch/arm/boot/dts/berlin2q.dtsi | 102 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 102 insertions(+) > > diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi > index e6e556055dfc..b2625f896bc5 100644 > --- a/arch/arm/boot/dts/berlin2q.dtsi > +++ b/arch/arm/boot/dts/berlin2q.dtsi > @@ -109,6 +109,78 @@ > ranges = <0 0xe80000 0x10000>; > interrupt-parent = <&aic>; > > + gpio0: gpio@0400 { > + compatible = "snps,dw-apb-gpio"; > + reg = <0x0400 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + porta: gpio-controller@0 { ePAPR recommended name is even more generic, i.e. "gpio". If that clashed in any way with other numbered names, I suggest to rename to "gpio-port" as actually the controller is the parent node and this represents one port (in the nomenclature of DW-APB-GPIO). > + compatible = "snps,dw-apb-gpio-port"; > + gpio-controller; > + #gpio-cells = <2>; > + snps,nr-gpios = <32>; 32 gpio pins for each of the 6 GPIO controllers? Either BG2Q is a GPIO beast or it is a mistake :P Can you please double-check? I am fine with using nr-gpios property now, but I guess BG2Q also has that CONFIG[1,2] registers to actually read out the features synthesized in? If I find some time, I'll prepare a patch for dw-apb-gpio to exploit that (optional) information instead of using nr-gpios. Otherwise, Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > + reg = <0>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = <0>; > + }; > + }; > + > + gpio1: gpio@0800 { > + compatible = "snps,dw-apb-gpio"; > + reg = <0x0800 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + portb: gpio-controller@1 { > + compatible = "snps,dw-apb-gpio-port"; > + gpio-controller; > + #gpio-cells = <2>; > + snps,nr-gpios = <32>; > + reg = <0>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = <1>; > + }; > + }; > + > + gpio2: gpio@0c00 { > + compatible = "snps,dw-apb-gpio"; > + reg = <0x0c00 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + portc: gpio-controller@2 { > + compatible = "snps,dw-apb-gpio-port"; > + gpio-controller; > + #gpio-cells = <2>; > + snps,nr-gpios = <32>; > + reg = <0>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = <2>; > + }; > + }; > + > + gpio3: gpio@1000 { > + compatible = "snps,dw-apb-gpio"; > + reg = <0x1000 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + portd: gpio-controller@3 { > + compatible = "snps,dw-apb-gpio-port"; > + gpio-controller; > + #gpio-cells = <2>; > + snps,nr-gpios = <32>; > + reg = <0>; > + interrupt-controller; > + #interrupt-cells = <2>; > + interrupts = <3>; > + }; > + }; > + > timer0: timer@2c00 { > compatible = "snps,dw-apb-timer"; > reg = <0x2c00 0x14>; > @@ -181,6 +253,36 @@ > interrupt-parent = <&gic>; > interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + gpio4: gpio@5000 { > + compatible = "snps,dw-apb-gpio"; > + reg = <0x5000 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + porte: gpio-controller@4 { > + compatible = "snps,dw-apb-gpio-port"; > + gpio-controller; > + #gpio-cells = <2>; > + snps,nr-gpios = <32>; > + reg = <0>; > + }; > + }; > + > + gpio5: gpio@c000 { > + compatible = "snps,dw-apb-gpio"; > + reg = <0xc000 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + portf: gpio-controller@5 { > + compatible = "snps,dw-apb-gpio-port"; > + gpio-controller; > + #gpio-cells = <2>; > + snps,nr-gpios = <32>; > + reg = <0>; > + }; > + }; > }; > > pinctrl: pinctrl@0 { > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <534CFA77.9030108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q [not found] ` <534CFA77.9030108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2014-04-15 9:35 ` Antoine Ténart 2014-04-15 10:00 ` Jisheng Zhang 1 sibling, 0 replies; 13+ messages in thread From: Antoine Ténart @ 2014-04-15 9:35 UTC (permalink / raw) To: Sebastian Hesselbarth Cc: alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8, zmxu-eYqpPyKDWXRBDgjK7y7TUQ, jszhang-eYqpPyKDWXRBDgjK7y7TUQ, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA Sebastian, On Tue, Apr 15, 2014 at 11:23:03AM +0200, Sebastian Hesselbarth wrote: > On 04/15/2014 10:07 AM, Antoine Ténart wrote: […] > >diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi > >index e6e556055dfc..b2625f896bc5 100644 > >--- a/arch/arm/boot/dts/berlin2q.dtsi > >+++ b/arch/arm/boot/dts/berlin2q.dtsi > >@@ -109,6 +109,78 @@ > > ranges = <0 0xe80000 0x10000>; > > interrupt-parent = <&aic>; > > > >+ gpio0: gpio@0400 { > >+ compatible = "snps,dw-apb-gpio"; > >+ reg = <0x0400 0x400>; > >+ #address-cells = <1>; > >+ #size-cells = <0>; > >+ > >+ porta: gpio-controller@0 { > > ePAPR recommended name is even more generic, i.e. "gpio". If > that clashed in any way with other numbered names, I suggest > to rename to "gpio-port" as actually the controller is the > parent node and this represents one port (in the nomenclature > of DW-APB-GPIO). I followed the dwapb GPIO binding documentation, but I think this is a good idea. I'll update. > >+ compatible = "snps,dw-apb-gpio-port"; > >+ gpio-controller; > >+ #gpio-cells = <2>; > >+ snps,nr-gpios = <32>; > > 32 gpio pins for each of the 6 GPIO controllers? Either BG2Q is a GPIO > beast or it is a mistake :P > > Can you please double-check? Maybe Jisheng can confirm this. > I am fine with using nr-gpios property now, but I guess BG2Q also > has that CONFIG[1,2] registers to actually read out the features > synthesized in? If I find some time, I'll prepare a patch for > dw-apb-gpio to exploit that (optional) information instead of > using nr-gpios. Maybe, that would be nice. Antoine > Otherwise, > > Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > >+ reg = <0>; > >+ interrupt-controller; > >+ #interrupt-cells = <2>; > >+ interrupts = <0>; > >+ }; > >+ }; > >+ > >+ gpio1: gpio@0800 { > >+ compatible = "snps,dw-apb-gpio"; > >+ reg = <0x0800 0x400>; > >+ #address-cells = <1>; > >+ #size-cells = <0>; > >+ > >+ portb: gpio-controller@1 { > >+ compatible = "snps,dw-apb-gpio-port"; > >+ gpio-controller; > >+ #gpio-cells = <2>; > >+ snps,nr-gpios = <32>; > >+ reg = <0>; > >+ interrupt-controller; > >+ #interrupt-cells = <2>; > >+ interrupts = <1>; > >+ }; > >+ }; > >+ > >+ gpio2: gpio@0c00 { > >+ compatible = "snps,dw-apb-gpio"; > >+ reg = <0x0c00 0x400>; > >+ #address-cells = <1>; > >+ #size-cells = <0>; > >+ > >+ portc: gpio-controller@2 { > >+ compatible = "snps,dw-apb-gpio-port"; > >+ gpio-controller; > >+ #gpio-cells = <2>; > >+ snps,nr-gpios = <32>; > >+ reg = <0>; > >+ interrupt-controller; > >+ #interrupt-cells = <2>; > >+ interrupts = <2>; > >+ }; > >+ }; > >+ > >+ gpio3: gpio@1000 { > >+ compatible = "snps,dw-apb-gpio"; > >+ reg = <0x1000 0x400>; > >+ #address-cells = <1>; > >+ #size-cells = <0>; > >+ > >+ portd: gpio-controller@3 { > >+ compatible = "snps,dw-apb-gpio-port"; > >+ gpio-controller; > >+ #gpio-cells = <2>; > >+ snps,nr-gpios = <32>; > >+ reg = <0>; > >+ interrupt-controller; > >+ #interrupt-cells = <2>; > >+ interrupts = <3>; > >+ }; > >+ }; > >+ > > timer0: timer@2c00 { > > compatible = "snps,dw-apb-timer"; > > reg = <0x2c00 0x14>; > >@@ -181,6 +253,36 @@ > > interrupt-parent = <&gic>; > > interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; > > }; > >+ > >+ gpio4: gpio@5000 { > >+ compatible = "snps,dw-apb-gpio"; > >+ reg = <0x5000 0x400>; > >+ #address-cells = <1>; > >+ #size-cells = <0>; > >+ > >+ porte: gpio-controller@4 { > >+ compatible = "snps,dw-apb-gpio-port"; > >+ gpio-controller; > >+ #gpio-cells = <2>; > >+ snps,nr-gpios = <32>; > >+ reg = <0>; > >+ }; > >+ }; > >+ > >+ gpio5: gpio@c000 { > >+ compatible = "snps,dw-apb-gpio"; > >+ reg = <0xc000 0x400>; > >+ #address-cells = <1>; > >+ #size-cells = <0>; > >+ > >+ portf: gpio-controller@5 { > >+ compatible = "snps,dw-apb-gpio-port"; > >+ gpio-controller; > >+ #gpio-cells = <2>; > >+ snps,nr-gpios = <32>; > >+ reg = <0>; > >+ }; > >+ }; > > }; > > > > pinctrl: pinctrl@0 { > > > -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q [not found] ` <534CFA77.9030108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2014-04-15 9:35 ` Antoine Ténart @ 2014-04-15 10:00 ` Jisheng Zhang 2014-04-15 10:26 ` Sebastian Hesselbarth 1 sibling, 1 reply; 13+ messages in thread From: Jisheng Zhang @ 2014-04-15 10:00 UTC (permalink / raw) To: Sebastian Hesselbarth Cc: Antoine Ténart, alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org, Jimmy Xu, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Hi Sebastian, On Tue, 15 Apr 2014 02:23:03 -0700 Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > On 04/15/2014 10:07 AM, Antoine Ténart wrote: > > The Marvell Berlin BG2Q has 6 GPIO ports compatible with the > > snps,dw-apb-gpio driver. This patch add the corresponding device tree > > nodes. > > > > Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com> > > --- > > arch/arm/boot/dts/berlin2q.dtsi | 102 > > ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) > > > > diff --git a/arch/arm/boot/dts/berlin2q.dtsi > > b/arch/arm/boot/dts/berlin2q.dtsi index e6e556055dfc..b2625f896bc5 100644 > > --- a/arch/arm/boot/dts/berlin2q.dtsi > > +++ b/arch/arm/boot/dts/berlin2q.dtsi > > @@ -109,6 +109,78 @@ > > ranges = <0 0xe80000 0x10000>; > > interrupt-parent = <&aic>; > > > > + gpio0: gpio@0400 { > > + compatible = "snps,dw-apb-gpio"; > > + reg = <0x0400 0x400>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + porta: gpio-controller@0 { > > ePAPR recommended name is even more generic, i.e. "gpio". If > that clashed in any way with other numbered names, I suggest > to rename to "gpio-port" as actually the controller is the > parent node and this represents one port (in the nomenclature > of DW-APB-GPIO). > > > + compatible = > > "snps,dw-apb-gpio-port"; > > + gpio-controller; > > + #gpio-cells = <2>; > > + snps,nr-gpios = <32>; > > 32 gpio pins for each of the 6 GPIO controllers? Either BG2Q is a GPIO Yes, BG2Q support 32 pins every port > beast or it is a mistake :P > > Can you please double-check? > > I am fine with using nr-gpios property now, but I guess BG2Q also > has that CONFIG[1,2] registers to actually read out the features > synthesized in? If I find some time, I'll prepare a patch for > dw-apb-gpio to exploit that (optional) information instead of > using nr-gpios. The problem is CONFIG1/2 registers don't exist on some versions. For example, the version used in BG2/BG2CD. So nr-gpio is necessary if we want to support these versions. Thanks, Jisheng -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q 2014-04-15 10:00 ` Jisheng Zhang @ 2014-04-15 10:26 ` Sebastian Hesselbarth [not found] ` <534D0943.2050100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 13+ messages in thread From: Sebastian Hesselbarth @ 2014-04-15 10:26 UTC (permalink / raw) To: Jisheng Zhang Cc: Antoine Ténart, alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org, Jimmy Xu, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 04/15/2014 12:00 PM, Jisheng Zhang wrote: > On Tue, 15 Apr 2014 02:23:03 -0700 > Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> On 04/15/2014 10:07 AM, Antoine Ténart wrote: >>> The Marvell Berlin BG2Q has 6 GPIO ports compatible with the >>> snps,dw-apb-gpio driver. This patch add the corresponding device tree >>> nodes. >>> >>> Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com> >>> --- >>> arch/arm/boot/dts/berlin2q.dtsi | 102 >>> ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) >>> >>> diff --git a/arch/arm/boot/dts/berlin2q.dtsi >>> b/arch/arm/boot/dts/berlin2q.dtsi index e6e556055dfc..b2625f896bc5 100644 >>> --- a/arch/arm/boot/dts/berlin2q.dtsi >>> +++ b/arch/arm/boot/dts/berlin2q.dtsi [...] >>> + compatible = >>> "snps,dw-apb-gpio-port"; >>> + gpio-controller; >>> + #gpio-cells = <2>; >>> + snps,nr-gpios = <32>; >> >> 32 gpio pins for each of the 6 GPIO controllers? Either BG2Q is a GPIO > > Yes, BG2Q support 32 pins every port Wow. Thanks for confirming this! >> I am fine with using nr-gpios property now, but I guess BG2Q also >> has that CONFIG[1,2] registers to actually read out the features >> synthesized in? If I find some time, I'll prepare a patch for >> dw-apb-gpio to exploit that (optional) information instead of >> using nr-gpios. > > The problem is CONFIG1/2 registers don't exist on some versions. > For example, the version used in BG2/BG2CD. So nr-gpio is necessary > if we want to support these versions. Hmm, are you sure about BG2? I remember reading it and it contains sane values. Anyway, a proper patch for dw-apb-gpio would include checking for sane (e.g. non-zero) values. And nr-gpios will always stay as fall-back just because e.g. sunxi does not have the CONFIG registers. Sebastian -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <534D0943.2050100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q [not found] ` <534D0943.2050100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2014-04-15 11:48 ` Alexandre Belloni 2014-04-15 12:50 ` Sebastian Hesselbarth 0 siblings, 1 reply; 13+ messages in thread From: Alexandre Belloni @ 2014-04-15 11:48 UTC (permalink / raw) To: Sebastian Hesselbarth Cc: Jisheng Zhang, Antoine Ténart, Jimmy Xu, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 15/04/2014 at 12:26:11 +0200, Sebastian Hesselbarth wrote : > On 04/15/2014 12:00 PM, Jisheng Zhang wrote: > >On Tue, 15 Apr 2014 02:23:03 -0700 > >Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >>On 04/15/2014 10:07 AM, Antoine Ténart wrote: > >>>The Marvell Berlin BG2Q has 6 GPIO ports compatible with the > >>>snps,dw-apb-gpio driver. This patch add the corresponding device tree > >>>nodes. > >>> > >>>Signed-off-by: Antoine Ténart <antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> > >>>--- > >>> arch/arm/boot/dts/berlin2q.dtsi | 102 > >>>++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) > >>> > >>>diff --git a/arch/arm/boot/dts/berlin2q.dtsi > >>>b/arch/arm/boot/dts/berlin2q.dtsi index e6e556055dfc..b2625f896bc5 100644 > >>>--- a/arch/arm/boot/dts/berlin2q.dtsi > >>>+++ b/arch/arm/boot/dts/berlin2q.dtsi > [...] > >>>+ compatible = > >>>"snps,dw-apb-gpio-port"; > >>>+ gpio-controller; > >>>+ #gpio-cells = <2>; > >>>+ snps,nr-gpios = <32>; > >> > >>32 gpio pins for each of the 6 GPIO controllers? Either BG2Q is a GPIO > > > >Yes, BG2Q support 32 pins every port > > Wow. Thanks for confirming this! > > >>I am fine with using nr-gpios property now, but I guess BG2Q also > >>has that CONFIG[1,2] registers to actually read out the features > >>synthesized in? If I find some time, I'll prepare a patch for > >>dw-apb-gpio to exploit that (optional) information instead of > >>using nr-gpios. > > > >The problem is CONFIG1/2 registers don't exist on some versions. > >For example, the version used in BG2/BG2CD. So nr-gpio is necessary > >if we want to support these versions. > > Hmm, are you sure about BG2? I remember reading it and it contains > sane values. Anyway, a proper patch for dw-apb-gpio would include > checking for sane (e.g. non-zero) values. And nr-gpios will always > stay as fall-back just because e.g. sunxi does not have the CONFIG > registers. > Shouldn't that be use nr-gpios and if not available, read the CONFIG registers? Else, what about bogus registers ? -- Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q 2014-04-15 11:48 ` Alexandre Belloni @ 2014-04-15 12:50 ` Sebastian Hesselbarth 0 siblings, 0 replies; 13+ messages in thread From: Sebastian Hesselbarth @ 2014-04-15 12:50 UTC (permalink / raw) To: Alexandre Belloni Cc: Jisheng Zhang, Jimmy Xu, devicetree@vger.kernel.org, Antoine Ténart, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org On 04/15/2014 01:48 PM, Alexandre Belloni wrote: > On 15/04/2014 at 12:26:11 +0200, Sebastian Hesselbarth wrote : >> On 04/15/2014 12:00 PM, Jisheng Zhang wrote: >>> On Tue, 15 Apr 2014 02:23:03 -0700 >>> Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> wrote: >>>> I am fine with using nr-gpios property now, but I guess BG2Q also >>>> has that CONFIG[1,2] registers to actually read out the features >>>> synthesized in? If I find some time, I'll prepare a patch for >>>> dw-apb-gpio to exploit that (optional) information instead of >>>> using nr-gpios. >>> >>> The problem is CONFIG1/2 registers don't exist on some versions. >>> For example, the version used in BG2/BG2CD. So nr-gpio is necessary >>> if we want to support these versions. >> >> Hmm, are you sure about BG2? I remember reading it and it contains >> sane values. Anyway, a proper patch for dw-apb-gpio would include >> checking for sane (e.g. non-zero) values. And nr-gpios will always >> stay as fall-back just because e.g. sunxi does not have the CONFIG >> registers. > > Shouldn't that be use nr-gpios and if not available, read the CONFIG > registers? Else, what about bogus registers ? Probably, it is a better idea to only look for CONFIG registers if nr-gpios is not set. Anyway, I'll really have to find more time first ;) Sebastian ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2014-04-15 12:50 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-04-15 8:07 [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q Antoine Ténart 2014-04-15 8:07 ` [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency " Antoine Ténart 2014-04-15 9:07 ` Jisheng Zhang 2014-04-15 9:26 ` Antoine Ténart [not found] ` <1397549245-3338-2-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> 2014-04-15 9:16 ` Sebastian Hesselbarth 2014-04-15 9:27 ` Antoine Ténart 2014-04-15 8:07 ` [PATCH 2/2] ARM: dts: berlin: add GPIO nodes " Antoine Ténart [not found] ` <1397549245-3338-3-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> 2014-04-15 9:23 ` Sebastian Hesselbarth [not found] ` <534CFA77.9030108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2014-04-15 9:35 ` Antoine Ténart 2014-04-15 10:00 ` Jisheng Zhang 2014-04-15 10:26 ` Sebastian Hesselbarth [not found] ` <534D0943.2050100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2014-04-15 11:48 ` Alexandre Belloni 2014-04-15 12:50 ` Sebastian Hesselbarth
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).