All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q
@ 2014-04-15  8:07 ` Antoine Ténart
  0 siblings, 0 replies; 37+ 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

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


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

* [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q
@ 2014-04-15  8:07 ` Antoine Ténart
  0 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 0/2] ARM: berlin: add GPIO support for the BG2Q
@ 2014-04-15  8:07 ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  8:07 UTC (permalink / raw)
  To: 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

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

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
  2014-04-15  8:07 ` Antoine Ténart
  (?)
@ 2014-04-15  8:07   ` Antoine Ténart
  -1 siblings, 0 replies; 37+ 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 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


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

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  8:07   ` Antoine Ténart
  0 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  8:07   ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  8:07 UTC (permalink / raw)
  To: 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

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

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
  2014-04-15  8:07 ` Antoine Ténart
@ 2014-04-15  8:07   ` Antoine Ténart
  -1 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  8:07   ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  8:07 UTC (permalink / raw)
  To: linux-arm-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 at 0400 {
+				compatible = "snps,dw-apb-gpio";
+				reg = <0x0400 0x400>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				porta: gpio-controller at 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 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 {
-- 
1.8.3.2

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

* Re: [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
  2014-04-15  8:07   ` Antoine Ténart
  (?)
@ 2014-04-15  9:07     ` Jisheng Zhang
  -1 siblings, 0 replies; 37+ messages in thread
From: Jisheng Zhang @ 2014-04-15  9:07 UTC (permalink / raw)
  To: Antoine Ténart
  Cc: sebastian.hesselbarth, alexandre.belloni, Jimmy Xu,
	linux-arm-kernel, devicetree, linux-kernel

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] 37+ 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
  0 siblings, 0 replies; 37+ messages in thread
From: Jisheng Zhang @ 2014-04-15  9:07 UTC (permalink / raw)
  To: Antoine Ténart
  Cc: sebastian.hesselbarth, alexandre.belloni, Jimmy Xu,
	linux-arm-kernel, devicetree, linux-kernel

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] 37+ messages in thread

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  9:07     ` Jisheng Zhang
  0 siblings, 0 replies; 37+ messages in thread
From: Jisheng Zhang @ 2014-04-15  9:07 UTC (permalink / raw)
  To: linux-arm-kernel

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] 37+ 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
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15  9:16 UTC (permalink / raw)
  To: Antoine Ténart
  Cc: alexandre.belloni, zmxu, jszhang, linux-arm-kernel, devicetree,
	linux-kernel

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@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

Apart from Jisheng's comment, I think we can directly move it
into arch/arm/Kconfig's MACH_BERLIN directly?

Sebastian

>   endmenu
>
>


^ permalink raw reply	[flat|nested] 37+ 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
  0 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  9:16     ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

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@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

Apart from Jisheng's comment, I think we can directly move it
into arch/arm/Kconfig's MACH_BERLIN directly?

Sebastian

>   endmenu
>
>

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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  9:23     ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15  9:23 UTC (permalink / raw)
  To: Antoine Ténart
  Cc: alexandre.belloni, zmxu, jszhang, linux-arm-kernel, devicetree,
	linux-kernel

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
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@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 {
>


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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  9:23     ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  9:23     ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15  9:23 UTC (permalink / raw)
  To: linux-arm-kernel

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

> +					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@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 {
>

^ permalink raw reply	[flat|nested] 37+ 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
  -1 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  9:26 UTC (permalink / raw)
  To: Jisheng Zhang
  Cc: sebastian.hesselbarth, alexandre.belloni, Jimmy Xu,
	linux-arm-kernel, devicetree, linux-kernel

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@free-electrons.com> 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

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

* Re: [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  9:26       ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  9:26 UTC (permalink / raw)
  To: Jisheng Zhang
  Cc: sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w,
	alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8, Jimmy Xu,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

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] 37+ messages in thread

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  9:26       ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  9:26 UTC (permalink / raw)
  To: linux-arm-kernel

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@free-electrons.com> 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

^ permalink raw reply	[flat|nested] 37+ 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
  -1 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 1/2] ARM: berlin: add the LIBGPIO as a dependency for the BG2Q
@ 2014-04-15  9:27       ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  9:27 UTC (permalink / raw)
  To: linux-arm-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] 37+ messages in thread

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  9:35       ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  9:35 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: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

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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  9:35       ` Antoine Ténart
  0 siblings, 0 replies; 37+ 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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15  9:35       ` Antoine Ténart
  0 siblings, 0 replies; 37+ messages in thread
From: Antoine Ténart @ 2014-04-15  9:35 UTC (permalink / raw)
  To: linux-arm-kernel

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

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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 10:00       ` Jisheng Zhang
  0 siblings, 0 replies; 37+ messages in thread
From: Jisheng Zhang @ 2014-04-15 10:00 UTC (permalink / raw)
  To: Sebastian Hesselbarth
  Cc: Antoine Ténart, alexandre.belloni, Jimmy Xu,
	linux-arm-kernel, devicetree, linux-kernel

Hi Sebastian,

On Tue, 15 Apr 2014 02:23:03 -0700
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> 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

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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 10:00       ` Jisheng Zhang
  0 siblings, 0 replies; 37+ 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, Jimmy Xu,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 10:00       ` Jisheng Zhang
  0 siblings, 0 replies; 37+ messages in thread
From: Jisheng Zhang @ 2014-04-15 10:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sebastian,

On Tue, 15 Apr 2014 02:23:03 -0700
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> 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 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).
> 
> > +					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

^ permalink raw reply	[flat|nested] 37+ 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
  -1 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15 10:26 UTC (permalink / raw)
  To: Jisheng Zhang
  Cc: Antoine Ténart, alexandre.belloni, Jimmy Xu,
	linux-arm-kernel, devicetree, linux-kernel

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:
>> 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


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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 10:26         ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ 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, Jimmy Xu,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 10:26         ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15 10:26 UTC (permalink / raw)
  To: linux-arm-kernel

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:
>> 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

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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 11:48           ` Alexandre Belloni
  0 siblings, 0 replies; 37+ 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,
	devicetree, linux-kernel

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

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

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

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 11:48           ` Alexandre Belloni
  0 siblings, 0 replies; 37+ 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,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 11:48           ` Alexandre Belloni
  0 siblings, 0 replies; 37+ messages in thread
From: Alexandre Belloni @ 2014-04-15 11:48 UTC (permalink / raw)
  To: linux-arm-kernel

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

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

^ permalink raw reply	[flat|nested] 37+ 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
  -1 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15 12:50 UTC (permalink / raw)
  To: Alexandre Belloni
  Cc: Jisheng Zhang, Antoine Ténart, Jimmy Xu, linux-arm-kernel,
	devicetree, linux-kernel

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] 37+ messages in thread

* Re: [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 12:50             ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15 12:50 UTC (permalink / raw)
  To: Alexandre Belloni
  Cc: Jisheng Zhang, Jimmy Xu, devicetree, Antoine Ténart,
	linux-kernel, linux-arm-kernel

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] 37+ messages in thread

* [PATCH 2/2] ARM: dts: berlin: add GPIO nodes for the BG2Q
@ 2014-04-15 12:50             ` Sebastian Hesselbarth
  0 siblings, 0 replies; 37+ messages in thread
From: Sebastian Hesselbarth @ 2014-04-15 12:50 UTC (permalink / raw)
  To: linux-arm-kernel

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] 37+ messages in thread

end of thread, other threads:[~2014-04-15 12:51 UTC | newest]

Thread overview: 37+ 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 ` 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: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
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

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.