File Index
Files and directories
Sign in
FILE

ingenic,pinctrl.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/pinctrl/ingenic,pinctrl.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Ingenic SoCs pin controller
  8
  9description: >
 10  Please refer to pinctrl-bindings.txt in this directory for details of the
 11  common pinctrl bindings used by client devices, including the meaning of the
 12  phrase "pin configuration node".
 13
 14  For the Ingenic SoCs, pin control is tightly bound with GPIO ports. All pins
 15  may be used as GPIOs, multiplexed device functions are configured within the
 16  GPIO port configuration registers and it is typical to refer to pins using the
 17  naming scheme "PxN" where x is a character identifying the GPIO port with
 18  which the pin is associated and N is an integer from 0 to 31 identifying the
 19  pin within that GPIO port. For example PA0 is the first pin in GPIO port A,
 20  and PB31 is the last pin in GPIO port B. The JZ4730, the JZ4740, the JZ4725B,
 21  the X1000 and the X1830 contains 4 GPIO ports, PA to PD, for a total of 128
 22  pins. The X2000 and the X2100 contains 5 GPIO ports, PA to PE, for a total of
 23  160 pins. The JZ4750, the JZ4755 the JZ4760, the JZ4770 and the JZ4780 contains
 24  6 GPIO ports, PA to PF, for a total of 192 pins. The JZ4775 contains 7 GPIO
 25  ports, PA to PG, for a total of 224 pins.
 26
 27maintainers:
 28  - Paul Cercueil <paul@crapouillou.net>
 29
 30properties:
 31  compatible:
 32    oneOf:
 33      - enum:
 34          - ingenic,jz4730-pinctrl
 35          - ingenic,jz4740-pinctrl
 36          - ingenic,jz4725b-pinctrl
 37          - ingenic,jz4750-pinctrl
 38          - ingenic,jz4755-pinctrl
 39          - ingenic,jz4760-pinctrl
 40          - ingenic,jz4770-pinctrl
 41          - ingenic,jz4775-pinctrl
 42          - ingenic,jz4780-pinctrl
 43          - ingenic,x1000-pinctrl
 44          - ingenic,x1500-pinctrl
 45          - ingenic,x1600-pinctrl
 46          - ingenic,x1830-pinctrl
 47          - ingenic,x2000-pinctrl
 48          - ingenic,x2100-pinctrl
 49      - items:
 50          - const: ingenic,jz4760b-pinctrl
 51          - const: ingenic,jz4760-pinctrl
 52      - items:
 53          - const: ingenic,x1000e-pinctrl
 54          - const: ingenic,x1000-pinctrl
 55      - items:
 56          - const: ingenic,x2000e-pinctrl
 57          - const: ingenic,x2000-pinctrl
 58
 59  reg:
 60    maxItems: 1
 61
 62  "#address-cells":
 63    const: 1
 64
 65  "#size-cells":
 66    const: 0
 67
 68patternProperties:
 69  "^gpio@[0-9]$":
 70    type: object
 71    properties:
 72      compatible:
 73        enum:
 74          - ingenic,jz4730-gpio
 75          - ingenic,jz4740-gpio
 76          - ingenic,jz4725b-gpio
 77          - ingenic,jz4750-gpio
 78          - ingenic,jz4755-gpio
 79          - ingenic,jz4760-gpio
 80          - ingenic,jz4770-gpio
 81          - ingenic,jz4775-gpio
 82          - ingenic,jz4780-gpio
 83          - ingenic,x1000-gpio
 84          - ingenic,x1500-gpio
 85          - ingenic,x1600-gpio
 86          - ingenic,x1830-gpio
 87          - ingenic,x2000-gpio
 88          - ingenic,x2100-gpio
 89
 90      reg:
 91        items:
 92          - description: The GPIO bank number
 93
 94      gpio-controller: true
 95
 96      "#gpio-cells":
 97        const: 2
 98
 99      gpio-ranges:
100        maxItems: 1
101
102      interrupt-controller: true
103
104      "#interrupt-cells":
105        const: 2
106        description:
107          Refer to ../interrupt-controller/interrupts.txt for more details.
108
109      interrupts:
110        maxItems: 1
111
112    required:
113      - compatible
114      - reg
115      - gpio-controller
116      - "#gpio-cells"
117      - interrupts
118      - interrupt-controller
119      - "#interrupt-cells"
120
121    additionalProperties: false
122
123allOf:
124  - $ref: pinctrl.yaml#
125
126required:
127  - compatible
128  - reg
129  - "#address-cells"
130  - "#size-cells"
131
132additionalProperties:
133  anyOf:
134    - type: object
135      allOf:
136        - $ref: pincfg-node.yaml#
137        - $ref: pinmux-node.yaml#
138
139      properties:
140        function: true
141        groups: true
142        pins: true
143        bias-disable: true
144        bias-pull-up: true
145        bias-pull-down: true
146        output-low: true
147        output-high: true
148      additionalProperties: false
149
150    - type: object
151      additionalProperties:
152        type: object
153        allOf:
154          - $ref: pincfg-node.yaml#
155          - $ref: pinmux-node.yaml#
156
157        properties:
158          function: true
159          groups: true
160          pins: true
161          bias-disable: true
162          bias-pull-up: true
163          bias-pull-down: true
164          output-low: true
165          output-high: true
166        additionalProperties: false
167
168examples:
169  - |
170    pinctrl@10010000 {
171      compatible = "ingenic,jz4770-pinctrl";
172      reg = <0x10010000 0x600>;
173
174      #address-cells = <1>;
175      #size-cells = <0>;
176
177      gpio@0 {
178        compatible = "ingenic,jz4770-gpio";
179        reg = <0>;
180
181        gpio-controller;
182        gpio-ranges = <&pinctrl 0 0 32>;
183        #gpio-cells = <2>;
184
185        interrupt-controller;
186        #interrupt-cells = <2>;
187
188        interrupt-parent = <&intc>;
189        interrupts = <17>;
190      };
191    };
~/ Read-only file preview.