gpio: add DT bindings for lpc1850-gpio driver
authorJoachim Eastwood <manabian@gmail.com>
Sat, 2 May 2015 21:11:35 +0000 (23:11 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 5 May 2015 15:53:47 +0000 (17:53 +0200)
Signed-off-by: Joachim Eastwood <manabian@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.txt b/Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.txt
new file mode 100644 (file)
index 0000000..eb7cdd6
--- /dev/null
@@ -0,0 +1,39 @@
+NXP LPC18xx/43xx GPIO controller Device Tree Bindings
+-----------------------------------------------------
+
+Required properties:
+- compatible           : Should be "nxp,lpc1850-gpio"
+- reg                  : Address and length of the register set for the device
+- clocks               : Clock specifier (see clock bindings for details)
+- gpio-controller      : Marks the device node as a GPIO controller.
+- #gpio-cells          : Should be two
+                         - First cell is the GPIO line number
+                         - Second cell is used to specify polarity
+
+Optional properties:
+- gpio-ranges          : Mapping between GPIO and pinctrl
+
+Example:
+#define LPC_GPIO(port, pin)    (port * 32 + pin)
+#define LPC_PIN(port, pin)     (0x##port * 32 + pin)
+
+gpio: gpio@400f4000 {
+       compatible = "nxp,lpc1850-gpio";
+       reg = <0x400f4000 0x4000>;
+       clocks = <&ccu1 CLK_CPU_GPIO>;
+       gpio-controller;
+       #gpio-cells = <2>;
+       gpio-ranges =   <&pinctrl LPC_GPIO(0,0)  LPC_PIN(0,0)  2>,
+                       ...
+                       <&pinctrl LPC_GPIO(7,19) LPC_PIN(f,5)  7>;
+};
+
+gpio_joystick {
+       compatible = "gpio-keys-polled";
+       ...
+
+       button@0 {
+               ...
+               gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
+       };
+};