xref: /linux/Documentation/devicetree/bindings/gpio/renesas,rcar-gpio.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
17f7d408eSGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27f7d408eSGeert Uytterhoeven%YAML 1.2
37f7d408eSGeert Uytterhoeven---
47f7d408eSGeert Uytterhoeven$id: http://devicetree.org/schemas/gpio/renesas,rcar-gpio.yaml#
57f7d408eSGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
67f7d408eSGeert Uytterhoeven
77f7d408eSGeert Uytterhoeventitle: Renesas R-Car General-Purpose Input/Output Ports (GPIO)
87f7d408eSGeert Uytterhoeven
97f7d408eSGeert Uytterhoevenmaintainers:
107f7d408eSGeert Uytterhoeven  - Geert Uytterhoeven <geert+renesas@glider.be>
117f7d408eSGeert Uytterhoeven
127f7d408eSGeert Uytterhoevenproperties:
137f7d408eSGeert Uytterhoeven  compatible:
147f7d408eSGeert Uytterhoeven    oneOf:
157f7d408eSGeert Uytterhoeven      - items:
167f7d408eSGeert Uytterhoeven          - enum:
177f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7778      # R-Car M1
187f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7779      # R-Car H1
197f7d408eSGeert Uytterhoeven          - const: renesas,rcar-gen1-gpio # R-Car Gen1
207f7d408eSGeert Uytterhoeven
217f7d408eSGeert Uytterhoeven      - items:
227f7d408eSGeert Uytterhoeven          - enum:
2339c7c93dSLad Prabhakar              - renesas,gpio-r8a7742      # RZ/G1H
247f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7743      # RZ/G1M
257f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7744      # RZ/G1N
267f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7745      # RZ/G1E
277f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77470     # RZ/G1C
287f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7790      # R-Car H2
297f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7791      # R-Car M2-W
307f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7792      # R-Car V2H
317f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7793      # R-Car M2-N
327f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7794      # R-Car E2
337f7d408eSGeert Uytterhoeven          - const: renesas,rcar-gen2-gpio # R-Car Gen2 or RZ/G1
347f7d408eSGeert Uytterhoeven
357f7d408eSGeert Uytterhoeven      - items:
367f7d408eSGeert Uytterhoeven          - enum:
377f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a774a1     # RZ/G2M
387f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a774b1     # RZ/G2N
397f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a774c0     # RZ/G2E
40ddbc9712SLad Prabhakar              - renesas,gpio-r8a774e1     # RZ/G2H
417f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7795      # R-Car H3
427f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a7796      # R-Car M3-W
437f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77961     # R-Car M3-W+
447f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77965     # R-Car M3-N
457f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77970     # R-Car V3M
467f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77980     # R-Car V3H
477f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77990     # R-Car E3
487f7d408eSGeert Uytterhoeven              - renesas,gpio-r8a77995     # R-Car D3
497f7d408eSGeert Uytterhoeven          - const: renesas,rcar-gen3-gpio # R-Car Gen3 or RZ/G2
507f7d408eSGeert Uytterhoeven
512a84708cSGeert Uytterhoeven      - items:
52afd24a50SGeert Uytterhoeven          - enum:
5331212be4SGeert Uytterhoeven              - renesas,gpio-r8a779a0     # R-Car V3U
54afd24a50SGeert Uytterhoeven              - renesas,gpio-r8a779f0     # R-Car S4-8
553af20d27SGeert Uytterhoeven              - renesas,gpio-r8a779g0     # R-Car V4H
56*ff3d9bfaSGeert Uytterhoeven              - renesas,gpio-r8a779h0     # R-Car V4M
57afd24a50SGeert Uytterhoeven          - const: renesas,rcar-gen4-gpio # R-Car Gen4
58afd24a50SGeert Uytterhoeven
597f7d408eSGeert Uytterhoeven  reg:
607f7d408eSGeert Uytterhoeven    maxItems: 1
617f7d408eSGeert Uytterhoeven
627f7d408eSGeert Uytterhoeven  interrupts:
637f7d408eSGeert Uytterhoeven    maxItems: 1
647f7d408eSGeert Uytterhoeven
657f7d408eSGeert Uytterhoeven  clocks:
667f7d408eSGeert Uytterhoeven    maxItems: 1
677f7d408eSGeert Uytterhoeven
687f7d408eSGeert Uytterhoeven  power-domains:
697f7d408eSGeert Uytterhoeven    maxItems: 1
707f7d408eSGeert Uytterhoeven
717f7d408eSGeert Uytterhoeven  resets:
727f7d408eSGeert Uytterhoeven    maxItems: 1
737f7d408eSGeert Uytterhoeven
747f7d408eSGeert Uytterhoeven  gpio-controller: true
757f7d408eSGeert Uytterhoeven
767f7d408eSGeert Uytterhoeven  '#gpio-cells':
777f7d408eSGeert Uytterhoeven    const: 2
787f7d408eSGeert Uytterhoeven
797f7d408eSGeert Uytterhoeven  interrupt-controller: true
807f7d408eSGeert Uytterhoeven
817f7d408eSGeert Uytterhoeven  '#interrupt-cells':
827f7d408eSGeert Uytterhoeven    const: 2
837f7d408eSGeert Uytterhoeven
847f7d408eSGeert Uytterhoeven  gpio-ranges:
857f7d408eSGeert Uytterhoeven    maxItems: 1
867f7d408eSGeert Uytterhoeven
877f7d408eSGeert Uytterhoeven  gpio-reserved-ranges:
887f7d408eSGeert Uytterhoeven    minItems: 1
897f7d408eSGeert Uytterhoeven    maxItems: 8
907f7d408eSGeert Uytterhoeven
917f7d408eSGeert UytterhoevenpatternProperties:
927f7d408eSGeert Uytterhoeven  "^.*$":
937f7d408eSGeert Uytterhoeven    if:
947f7d408eSGeert Uytterhoeven      type: object
957f7d408eSGeert Uytterhoeven    then:
967f7d408eSGeert Uytterhoeven      properties:
977f7d408eSGeert Uytterhoeven        gpio-hog: true
987f7d408eSGeert Uytterhoeven        gpios: true
997f7d408eSGeert Uytterhoeven        input: true
1007f7d408eSGeert Uytterhoeven        output-high: true
1017f7d408eSGeert Uytterhoeven        output-low: true
1027f7d408eSGeert Uytterhoeven        line-name: true
1037f7d408eSGeert Uytterhoeven
1047f7d408eSGeert Uytterhoeven      required:
1057f7d408eSGeert Uytterhoeven        - gpio-hog
1067f7d408eSGeert Uytterhoeven        - gpios
1077f7d408eSGeert Uytterhoeven
1087f7d408eSGeert Uytterhoeven      additionalProperties: false
1097f7d408eSGeert Uytterhoeven
1107f7d408eSGeert Uytterhoevenrequired:
1117f7d408eSGeert Uytterhoeven  - compatible
1127f7d408eSGeert Uytterhoeven  - reg
1137f7d408eSGeert Uytterhoeven  - interrupts
1147f7d408eSGeert Uytterhoeven  - gpio-controller
1157f7d408eSGeert Uytterhoeven  - '#gpio-cells'
1167f7d408eSGeert Uytterhoeven  - gpio-ranges
1177f7d408eSGeert Uytterhoeven  - interrupt-controller
1187f7d408eSGeert Uytterhoeven  - '#interrupt-cells'
1197f7d408eSGeert Uytterhoeven
1207f7d408eSGeert Uytterhoevenif:
1217f7d408eSGeert Uytterhoeven  not:
1227f7d408eSGeert Uytterhoeven    properties:
1237f7d408eSGeert Uytterhoeven      compatible:
1247f7d408eSGeert Uytterhoeven        contains:
1257f7d408eSGeert Uytterhoeven          enum:
1267f7d408eSGeert Uytterhoeven            - renesas,rcar-gen1-gpio
1277f7d408eSGeert Uytterhoeventhen:
1287f7d408eSGeert Uytterhoeven  required:
1297f7d408eSGeert Uytterhoeven    - clocks
1307f7d408eSGeert Uytterhoeven    - power-domains
1317f7d408eSGeert Uytterhoeven    - resets
1327f7d408eSGeert Uytterhoeven
1337f7d408eSGeert UytterhoevenadditionalProperties: false
1347f7d408eSGeert Uytterhoeven
1357f7d408eSGeert Uytterhoevenexamples:
1367f7d408eSGeert Uytterhoeven  - |
1377f7d408eSGeert Uytterhoeven    #include <dt-bindings/clock/r8a77470-cpg-mssr.h>
1387f7d408eSGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
1397f7d408eSGeert Uytterhoeven    #include <dt-bindings/power/r8a77470-sysc.h>
1407f7d408eSGeert Uytterhoeven    gpio3: gpio@e6053000 {
1417f7d408eSGeert Uytterhoeven            compatible = "renesas,gpio-r8a77470", "renesas,rcar-gen2-gpio";
1427f7d408eSGeert Uytterhoeven            reg = <0xe6053000 0x50>;
1437f7d408eSGeert Uytterhoeven            interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1447f7d408eSGeert Uytterhoeven            clocks = <&cpg CPG_MOD 909>;
1457f7d408eSGeert Uytterhoeven            power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
1467f7d408eSGeert Uytterhoeven            resets = <&cpg 909>;
1477f7d408eSGeert Uytterhoeven            gpio-controller;
1487f7d408eSGeert Uytterhoeven            #gpio-cells = <2>;
1497f7d408eSGeert Uytterhoeven            gpio-ranges = <&pfc 0 96 30>;
1507f7d408eSGeert Uytterhoeven            gpio-reserved-ranges = <17 10>;
1517f7d408eSGeert Uytterhoeven            interrupt-controller;
1527f7d408eSGeert Uytterhoeven            #interrupt-cells = <2>;
1537f7d408eSGeert Uytterhoeven     };
154