xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/gpio/renesas,rcar-gpio.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/gpio/renesas,rcar-gpio.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: Renesas R-Car General-Purpose Input/Output Ports (GPIO)
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Geert Uytterhoeven <geert+renesas@glider.be>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunproperties:
13*4882a593Smuzhiyun  compatible:
14*4882a593Smuzhiyun    oneOf:
15*4882a593Smuzhiyun      - items:
16*4882a593Smuzhiyun          - enum:
17*4882a593Smuzhiyun              - renesas,gpio-r8a7778      # R-Car M1
18*4882a593Smuzhiyun              - renesas,gpio-r8a7779      # R-Car H1
19*4882a593Smuzhiyun          - const: renesas,rcar-gen1-gpio # R-Car Gen1
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun      - items:
22*4882a593Smuzhiyun          - enum:
23*4882a593Smuzhiyun              - renesas,gpio-r8a7742      # RZ/G1H
24*4882a593Smuzhiyun              - renesas,gpio-r8a7743      # RZ/G1M
25*4882a593Smuzhiyun              - renesas,gpio-r8a7744      # RZ/G1N
26*4882a593Smuzhiyun              - renesas,gpio-r8a7745      # RZ/G1E
27*4882a593Smuzhiyun              - renesas,gpio-r8a77470     # RZ/G1C
28*4882a593Smuzhiyun              - renesas,gpio-r8a7790      # R-Car H2
29*4882a593Smuzhiyun              - renesas,gpio-r8a7791      # R-Car M2-W
30*4882a593Smuzhiyun              - renesas,gpio-r8a7792      # R-Car V2H
31*4882a593Smuzhiyun              - renesas,gpio-r8a7793      # R-Car M2-N
32*4882a593Smuzhiyun              - renesas,gpio-r8a7794      # R-Car E2
33*4882a593Smuzhiyun          - const: renesas,rcar-gen2-gpio # R-Car Gen2 or RZ/G1
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun      - items:
36*4882a593Smuzhiyun          - enum:
37*4882a593Smuzhiyun              - renesas,gpio-r8a774a1     # RZ/G2M
38*4882a593Smuzhiyun              - renesas,gpio-r8a774b1     # RZ/G2N
39*4882a593Smuzhiyun              - renesas,gpio-r8a774c0     # RZ/G2E
40*4882a593Smuzhiyun              - renesas,gpio-r8a774e1     # RZ/G2H
41*4882a593Smuzhiyun              - renesas,gpio-r8a7795      # R-Car H3
42*4882a593Smuzhiyun              - renesas,gpio-r8a7796      # R-Car M3-W
43*4882a593Smuzhiyun              - renesas,gpio-r8a77961     # R-Car M3-W+
44*4882a593Smuzhiyun              - renesas,gpio-r8a77965     # R-Car M3-N
45*4882a593Smuzhiyun              - renesas,gpio-r8a77970     # R-Car V3M
46*4882a593Smuzhiyun              - renesas,gpio-r8a77980     # R-Car V3H
47*4882a593Smuzhiyun              - renesas,gpio-r8a77990     # R-Car E3
48*4882a593Smuzhiyun              - renesas,gpio-r8a77995     # R-Car D3
49*4882a593Smuzhiyun          - const: renesas,rcar-gen3-gpio # R-Car Gen3 or RZ/G2
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  reg:
52*4882a593Smuzhiyun    maxItems: 1
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun  interrupts:
55*4882a593Smuzhiyun    maxItems: 1
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun  clocks:
58*4882a593Smuzhiyun    maxItems: 1
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun  power-domains:
61*4882a593Smuzhiyun    maxItems: 1
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun  resets:
64*4882a593Smuzhiyun    maxItems: 1
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun  gpio-controller: true
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun  '#gpio-cells':
69*4882a593Smuzhiyun    const: 2
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun  interrupt-controller: true
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun  '#interrupt-cells':
74*4882a593Smuzhiyun    const: 2
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun  gpio-ranges:
77*4882a593Smuzhiyun    maxItems: 1
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun  gpio-reserved-ranges:
80*4882a593Smuzhiyun    minItems: 1
81*4882a593Smuzhiyun    maxItems: 8
82*4882a593Smuzhiyun
83*4882a593SmuzhiyunpatternProperties:
84*4882a593Smuzhiyun  "^.*$":
85*4882a593Smuzhiyun    if:
86*4882a593Smuzhiyun      type: object
87*4882a593Smuzhiyun    then:
88*4882a593Smuzhiyun      properties:
89*4882a593Smuzhiyun        gpio-hog: true
90*4882a593Smuzhiyun        gpios: true
91*4882a593Smuzhiyun        input: true
92*4882a593Smuzhiyun        output-high: true
93*4882a593Smuzhiyun        output-low: true
94*4882a593Smuzhiyun        line-name: true
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun      required:
97*4882a593Smuzhiyun        - gpio-hog
98*4882a593Smuzhiyun        - gpios
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun      additionalProperties: false
101*4882a593Smuzhiyun
102*4882a593Smuzhiyunrequired:
103*4882a593Smuzhiyun  - compatible
104*4882a593Smuzhiyun  - reg
105*4882a593Smuzhiyun  - interrupts
106*4882a593Smuzhiyun  - gpio-controller
107*4882a593Smuzhiyun  - '#gpio-cells'
108*4882a593Smuzhiyun  - gpio-ranges
109*4882a593Smuzhiyun  - interrupt-controller
110*4882a593Smuzhiyun  - '#interrupt-cells'
111*4882a593Smuzhiyun
112*4882a593Smuzhiyunif:
113*4882a593Smuzhiyun  not:
114*4882a593Smuzhiyun    properties:
115*4882a593Smuzhiyun      compatible:
116*4882a593Smuzhiyun        contains:
117*4882a593Smuzhiyun          enum:
118*4882a593Smuzhiyun            - renesas,rcar-gen1-gpio
119*4882a593Smuzhiyunthen:
120*4882a593Smuzhiyun  required:
121*4882a593Smuzhiyun    - clocks
122*4882a593Smuzhiyun    - power-domains
123*4882a593Smuzhiyun    - resets
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunadditionalProperties: false
126*4882a593Smuzhiyun
127*4882a593Smuzhiyunexamples:
128*4882a593Smuzhiyun  - |
129*4882a593Smuzhiyun    #include <dt-bindings/clock/r8a77470-cpg-mssr.h>
130*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/arm-gic.h>
131*4882a593Smuzhiyun    #include <dt-bindings/power/r8a77470-sysc.h>
132*4882a593Smuzhiyun    gpio3: gpio@e6053000 {
133*4882a593Smuzhiyun            compatible = "renesas,gpio-r8a77470", "renesas,rcar-gen2-gpio";
134*4882a593Smuzhiyun            reg = <0xe6053000 0x50>;
135*4882a593Smuzhiyun            interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
136*4882a593Smuzhiyun            clocks = <&cpg CPG_MOD 909>;
137*4882a593Smuzhiyun            power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
138*4882a593Smuzhiyun            resets = <&cpg 909>;
139*4882a593Smuzhiyun            gpio-controller;
140*4882a593Smuzhiyun            #gpio-cells = <2>;
141*4882a593Smuzhiyun            gpio-ranges = <&pfc 0 96 30>;
142*4882a593Smuzhiyun            gpio-reserved-ranges = <17 10>;
143*4882a593Smuzhiyun            interrupt-controller;
144*4882a593Smuzhiyun            #interrupt-cells = <2>;
145*4882a593Smuzhiyun     };
146