From: antoine.tenart@free-electrons.com (Antoine Ténart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
Date: Tue, 15 Apr 2014 11:35:49 +0200 [thread overview]
Message-ID: <20140415093549.GD4584@kwain> (raw)
In-Reply-To: <534CFA77.9030108@gmail.com>
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 at 0400 {
> >+ compatible = "snps,dw-apb-gpio";
> >+ reg = <0x0400 0x400>;
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+
> >+ porta: gpio-controller at 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@gmail.com>
>
> >+ reg = <0>;
> >+ interrupt-controller;
> >+ #interrupt-cells = <2>;
> >+ interrupts = <0>;
> >+ };
> >+ };
> >+
> >+ gpio1: gpio at 0800 {
> >+ compatible = "snps,dw-apb-gpio";
> >+ reg = <0x0800 0x400>;
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+
> >+ portb: gpio-controller at 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 at 0c00 {
> >+ compatible = "snps,dw-apb-gpio";
> >+ reg = <0x0c00 0x400>;
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+
> >+ portc: gpio-controller at 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 at 1000 {
> >+ compatible = "snps,dw-apb-gpio";
> >+ reg = <0x1000 0x400>;
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+
> >+ portd: gpio-controller at 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 at 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 at 5000 {
> >+ compatible = "snps,dw-apb-gpio";
> >+ reg = <0x5000 0x400>;
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+
> >+ porte: gpio-controller at 4 {
> >+ compatible = "snps,dw-apb-gpio-port";
> >+ gpio-controller;
> >+ #gpio-cells = <2>;
> >+ snps,nr-gpios = <32>;
> >+ reg = <0>;
> >+ };
> >+ };
> >+
> >+ gpio5: gpio at c000 {
> >+ compatible = "snps,dw-apb-gpio";
> >+ reg = <0xc000 0x400>;
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+
> >+ portf: gpio-controller at 5 {
> >+ compatible = "snps,dw-apb-gpio-port";
> >+ gpio-controller;
> >+ #gpio-cells = <2>;
> >+ snps,nr-gpios = <32>;
> >+ reg = <0>;
> >+ };
> >+ };
> > };
> >
> > pinctrl: pinctrl at 0 {
> >
>
--
Antoine T?nart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: "Antoine Ténart" <antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Sebastian Hesselbarth
<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
zmxu-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org,
jszhang-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
Date: Tue, 15 Apr 2014 11:35:49 +0200 [thread overview]
Message-ID: <20140415093549.GD4584@kwain> (raw)
In-Reply-To: <534CFA77.9030108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
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
WARNING: multiple messages have this Message-ID (diff)
From: "Antoine Ténart" <antoine.tenart@free-electrons.com>
To: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: alexandre.belloni@free-electrons.com, zmxu@marvell.com,
jszhang@marvell.com, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
Date: Tue, 15 Apr 2014 11:35:49 +0200 [thread overview]
Message-ID: <20140415093549.GD4584@kwain> (raw)
In-Reply-To: <534CFA77.9030108@gmail.com>
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@gmail.com>
>
> >+ 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
next prev parent reply other threads:[~2014-04-15 9:35 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
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 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 ` Antoine Ténart
2014-04-15 8:07 ` Antoine Ténart
2014-04-15 9:07 ` Jisheng Zhang
2014-04-15 9:07 ` Jisheng Zhang
2014-04-15 9:26 ` Antoine Ténart
2014-04-15 9:26 ` Antoine Ténart
2014-04-15 9:26 ` Antoine Ténart
2014-04-15 9:16 ` Sebastian Hesselbarth
2014-04-15 9:16 ` Sebastian Hesselbarth
2014-04-15 9:16 ` Sebastian Hesselbarth
2014-04-15 9:27 ` Antoine Ténart
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
2014-04-15 8:07 ` Antoine Ténart
2014-04-15 9:23 ` Sebastian Hesselbarth
2014-04-15 9:23 ` Sebastian Hesselbarth
2014-04-15 9:23 ` Sebastian Hesselbarth
2014-04-15 9:35 ` Antoine Ténart [this message]
2014-04-15 9:35 ` Antoine Ténart
2014-04-15 9:35 ` Antoine Ténart
2014-04-15 10:00 ` Jisheng Zhang
2014-04-15 10:00 ` Jisheng Zhang
2014-04-15 10:00 ` Jisheng Zhang
2014-04-15 10:26 ` Sebastian Hesselbarth
2014-04-15 10:26 ` Sebastian Hesselbarth
2014-04-15 10:26 ` Sebastian Hesselbarth
2014-04-15 11:48 ` Alexandre Belloni
2014-04-15 11:48 ` Alexandre Belloni
2014-04-15 11:48 ` Alexandre Belloni
2014-04-15 12:50 ` Sebastian Hesselbarth
2014-04-15 12:50 ` Sebastian Hesselbarth
2014-04-15 12:50 ` Sebastian Hesselbarth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140415093549.GD4584@kwain \
--to=antoine.tenart@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.