[v6,1/2] dt-bindings: gpio: uniphier: add UniPhier GPIO binding

Message ID 1506480022-8995-2-git-send-email-yamada.masahiro@socionext.com
State New
Headers show
Series
  • [v6,1/2] dt-bindings: gpio: uniphier: add UniPhier GPIO binding
Related show

Commit Message

Masahiro Yamada Sept. 27, 2017, 2:40 a.m.
This GPIO controller is used on UniPhier SoC family.

The vendor specific property "socionext,interrupt-ranges" is for
specifying interrupt mapping to the parent interrupt controller
because the mapping is not contiguous.  It works like "ranges",
but transforms "interrupts" instead of "reg".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Acked-by: Rob Herring <robh@kernel.org>

---


 .../devicetree/bindings/gpio/gpio-uniphier.txt     | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-uniphier.txt

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Linus Walleij Oct. 11, 2017, 8:43 a.m. | #1
On Wed, Oct 11, 2017 at 10:35 AM, Linus Walleij
<linus.walleij@linaro.org> wrote:
> On Wed, Sep 27, 2017 at 4:40 AM, Masahiro Yamada

> <yamada.masahiro@socionext.com> wrote:

>

>> This GPIO controller is used on UniPhier SoC family.

>>

>> The vendor specific property "socionext,interrupt-ranges" is for

>> specifying interrupt mapping to the parent interrupt controller

>> because the mapping is not contiguous.  It works like "ranges",

>> but transforms "interrupts" instead of "reg".

>>

>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

>> Acked-by: Rob Herring <robh@kernel.org>

>

> Patch applied.

>

>> +- socionext,interrupt-ranges: Specifies an interrupt number mapping between

>> +  this GPIO controller and its interrupt parent, in the form of arbitrary

>> +  number of <child-interrupt-base parent-interrupt-base length> triplets.

> (...)

>> +               socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>;

>

> Still uncertain about that thing.

>

> But as it is, you need running code, and we have rough consensus.

>

> So merging.

>

> If it turns out to be a bad binding we may need to patch in an alternative

> later.


Sorry I had to take it back out, because the <dt-bindings/*> stuff in the
other patch should also be in this patch rather than in the driver.

Please move that over here, and if you insist on those macros, also
use them in the example so we understand how this is supposed to
be used, i.e. also add a consumer node to the bindings example
if it is gonna use magic macros.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt b/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
new file mode 100644
index 0000000..6d9251a
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
@@ -0,0 +1,40 @@ 
+UniPhier GPIO controller
+
+Required properties:
+- compatible: Should be "socionext,uniphier-gpio".
+- reg: Specifies offset and length of the register set for the device.
+- gpio-controller: Marks the device node as a GPIO controller.
+- #gpio-cells: Should be 2.  The first cell is the pin number and the second
+  cell is used to specify optional parameters.
+- interrupt-parent: Specifies the parent interrupt controller.
+- interrupt-controller: Marks the device node as an interrupt controller.
+- #interrupt-cells: Should be 2.  The first cell defines the interrupt number.
+  The second cell bits[3:0] is used to specify trigger type as follows:
+    1 = low-to-high edge triggered
+    2 = high-to-low edge triggered
+    4 = active high level-sensitive
+    8 = active low level-sensitive
+  Valid combinations are 1, 2, 3, 4, 8.
+- ngpios: Specifies the number of GPIO lines.
+- gpio-ranges: Mapping to pin controller pins (as described in gpio.txt)
+- socionext,interrupt-ranges: Specifies an interrupt number mapping between
+  this GPIO controller and its interrupt parent, in the form of arbitrary
+  number of <child-interrupt-base parent-interrupt-base length> triplets.
+
+Optional properties:
+- gpio-ranges-group-names: Used for named gpio ranges (as described in gpio.txt)
+
+Example:
+	gpio: gpio@55000000 {
+		compatible = "socionext,uniphier-gpio";
+		reg = <0x55000000 0x200>;
+		interrupt-parent = <&aidet>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		gpio-ranges = <&pinctrl 0 0 0>;
+		gpio-ranges-group-names = "gpio_range";
+		ngpios = <248>;
+		socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>;
+	};