Re: [PATCH 05/11] dt-binding: Add ngpios property to GPIO controller node

From: Ray Jui
Date: Mon Oct 26 2015 - 14:08:50 EST


Hi Pramod,

On 10/26/2015 11:06 AM, Pramod Kumar wrote:
Hi Ray,

-----Original Message-----
From: Ray Jui [mailto:rjui@xxxxxxxxxxxx]
Sent: 26 October 2015 22:43
To: Pramod Kumar; Laurent Pinchart; Rob Herring
Cc: Pawel Moll; Mark Rutland; Ian Campbell; Kumar Gala; Scott Branden; Russell
King; Linus Walleij; linux-gpio@xxxxxxxxxxxxxxx; bcm-kernel-feedback-list; Jason
Uy; Masahiro Yamada; Thomas Gleixner; devicetree@xxxxxxxxxxxxxxx; linux-
arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Jonas Gorski
Subject: Re: [PATCH 05/11] dt-binding: Add ngpios property to GPIO controller
node

Hi Pramod,

On 10/26/2015 10:08 AM, Pramod Kumar wrote:


-----Original Message-----
From: Ray Jui [mailto:rjui@xxxxxxxxxxxx]
Sent: 23 October 2015 21:38
To: Laurent Pinchart; Rob Herring
Cc: Pramod Kumar; Pawel Moll; Mark Rutland; Ian Campbell; Kumar Gala;
Scott Branden; Russell King; Linus Walleij;
linux-gpio@xxxxxxxxxxxxxxx; bcm-kernel- feedback-list; Jason Uy;
Masahiro Yamada; Thomas Gleixner; devicetree@xxxxxxxxxxxxxxx;
linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux- kernel@xxxxxxxxxxxxxxx;
Jonas Gorski
Subject: Re: [PATCH 05/11] dt-binding: Add ngpios property to GPIO
controller node



On 10/23/2015 6:02 AM, Laurent Pinchart wrote:
Hi Rob,

On Friday 23 October 2015 06:51:28 Rob Herring wrote:
On Fri, Oct 23, 2015 at 4:08 AM, Laurent Pinchart wrote:
On Thursday 22 October 2015 18:41:05 Rob Herring wrote:
On Thu, Oct 22, 2015 at 1:52 PM, Ray Jui wrote:
On 10/22/2015 11:43 AM, Rob Herring wrote:
On Mon, Oct 19, 2015 at 12:43 AM, Pramod Kumar wrote:
Add ngpios property to the gpio controller's DT node so that
controller driver extracts total number of gpio lines present
in controller from DT and removes dependency on driver.

Signed-off-by: Pramod Kumar <pramodku@xxxxxxxxxxxx>
Reviewed-by: Ray Jui <rjui@xxxxxxxxxxxx>
Reviewed-by: Scott Branden <sbranden@xxxxxxxxxxxx>
---

Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.txt
| 5
+++
1 file changed, 5 insertions(+)

diff --git
a/Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.t
xt
b/Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.t
xt
index f92b833..655a8d7 100644
---
a/Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gpio.t
xt
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,cygnus-gp
+++ io
+++ .txt

@@ -10,6 +10,9 @@ Required properties:
Define the base and range of the I/O address space that
contains

the Cygnus

GPIO/PINCONF controller registers

+- ngpios:
+ Total number of GPIOs the controller provides

This must be optional for compatibility and the driver needs to
handle it not present.

You meant to be compatible with existing Cygnus devices, correct?

Just to clarify, here you suggest we still leave the existing
hard coded ngpios in the driver, in order to be compatible with
all existing Cygnus devices (while the Cygnus device tree
changes to use ngpio is still being merged and through different
maintainer), and have all new iProc SoCs switch to use ngpios from
device tree, right?

Yes, an existing dtb should continue to work with a new kernel.
You can add the DT property to the older devices too and then
eventually remove the hard coded values some time in the future.
That could be immediately (don't care about compatibility at
all), a couple of kernel cycles, never... It all depends on users
of the impacted platforms.

But shouldn't the property still be documented as required to
ensure that new DTs always include it ?

Good point. If the intent is to eventually remove it from the
driver, then yes. We probably need "required for new designs" as a
category or maybe "recommended"? The wording is not so important
here, but I'm thinking about as we try to standardize the naming.

Required for new designs sounds better than recommended. Or maybe
something like "Required (optional for backward compatibility)".


Yes, it should be phrased as "required for new designs" because all
new iProc SoCs using this GPIO driver need to have this in DT.

Thanks,

Ray

Thanks for providing feedback. I'll make sure to use this property under phrase
" required for new designs " in next patch set.

Regards,
Pramod


To confirm, is your plan:

1) Continue to support hardcoded ngpios in the driver for the current SoC Cygnus
2) Proceed with Cygnus DTS changes to switch to DT based ngpios configuration
3) Modify the document to make DT ngpios a required property for all new SoCs
including NSP, NS2, and etc.

?

Thanks,

Ray

Ok. This patch-set is to make this driver more generic so that all future SoCs , as you mentioned like NS2, NSP, Stingray, could use it. Since This Cygnus is in very very early stage and No customer is using it so we can afford it to address ngpio from DT and remove Cygnus hard coded values immediately from this patch. Otherwise we will see the same issue with "gpios-ranges" property and this will be highly inter-dependent as well.

Regards,
Pramod


That sounds fine to me. In this case, the patch set stays as it is and no change is required.

Thanks,

Ray
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/