]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dt-bindings: gpio: convert nxp,lpc1850-gpio.txt to yaml format
authorFrank Li <Frank.Li@nxp.com>
Mon, 2 Jun 2025 14:42:58 +0000 (10:42 -0400)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 10 Jun 2025 08:09:41 +0000 (10:09 +0200)
Convert nxp,lpc1850-gpio.txt to yaml format.

Additional changes:
- remove interrupt-controller and #interupt-cells from required list to
  match existed dts files.
- remove gpio consumer in examples.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250602144259.944257-1-Frank.Li@nxp.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.txt [deleted file]
Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.yaml [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
deleted file mode 100644 (file)
index 627efc7..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-NXP LPC18xx/43xx GPIO controller Device Tree Bindings
------------------------------------------------------
-
-Required properties:
-- compatible           : Should be "nxp,lpc1850-gpio"
-- reg                  : List of addresses and lengths of the GPIO controller
-                         register sets
-- reg-names            : Should be "gpio", "gpio-pin-ic", "gpio-group0-ic" and
-                         "gpio-gpoup1-ic"
-- clocks               : Phandle and clock specifier pair for GPIO controller
-- resets               : Phandle and reset specifier pair for GPIO controller
-- gpio-controller      : Marks the device node as a GPIO controller
-- #gpio-cells          : Should be two:
-                         - The first cell is the GPIO line number
-                         - The second cell is used to specify polarity
-- interrupt-controller : Marks the device node as an interrupt controller
-- #interrupt-cells     : Should be two:
-                         - The first cell is an interrupt number within
-                           0..9 range, for GPIO pin interrupts it is equal
-                           to 'nxp,gpio-pin-interrupt' property value of
-                           GPIO pin configuration, 8 is for GPIO GROUP0
-                           interrupt, 9 is for GPIO GROUP1 interrupt
-                         - The second cell is used to specify interrupt type
-
-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>, <0x40087000 0x1000>,
-             <0x40088000 0x1000>, <0x40089000 0x1000>;
-       reg-names = "gpio", "gpio-pin-ic",
-                   "gpio-group0-ic", "gpio-gpoup1-ic";
-       clocks = <&ccu1 CLK_CPU_GPIO>;
-       resets = <&rgu 28>;
-       gpio-controller;
-       #gpio-cells = <2>;
-       interrupt-controller;
-       #interrupt-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";
-       ...
-
-       button0 {
-               ...
-               interrupt-parent = <&gpio>;
-               interrupts = <1 IRQ_TYPE_EDGE_BOTH>;
-               gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
-       };
-};
diff --git a/Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.yaml b/Documentation/devicetree/bindings/gpio/nxp,lpc1850-gpio.yaml
new file mode 100644 (file)
index 0000000..0ef5f90
--- /dev/null
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/nxp,lpc1850-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC18xx/43xx GPIO controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    const: nxp,lpc1850-gpio
+
+  reg:
+    minItems: 1
+    maxItems: 4
+
+  reg-names:
+    minItems: 1
+    items:
+      - const: gpio
+      - const: gpio-pin-ic
+      - const: gpio-group0-ic
+      - const: gpio-gpoup1-ic
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 2
+    description: |
+      - The first cell is an interrupt number within
+        0..9 range, for GPIO pin interrupts it is equal
+        to 'nxp,gpio-pin-interrupt' property value of
+        GPIO pin configuration, 8 is for GPIO GROUP0
+        interrupt, 9 is for GPIO GROUP1 interrupt
+      - The second cell is used to specify interrupt type
+
+  gpio-ranges: true
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - gpio-controller
+  - '#gpio-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/lpc18xx-ccu.h>
+
+    gpio@400f4000 {
+        compatible = "nxp,lpc1850-gpio";
+        reg = <0x400f4000 0x4000>, <0x40087000 0x1000>,
+              <0x40088000 0x1000>, <0x40089000 0x1000>;
+        reg-names = "gpio", "gpio-pin-ic", "gpio-group0-ic", "gpio-gpoup1-ic";
+        clocks = <&ccu1 CLK_CPU_GPIO>;
+        resets = <&rgu 28>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+    };
+