xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1b77eab32SPaul Cercueil# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b77eab32SPaul Cercueil%YAML 1.2
3b77eab32SPaul Cercueil---
4b77eab32SPaul Cercueil$id: http://devicetree.org/schemas/pinctrl/ingenic,pinctrl.yaml#
5b77eab32SPaul Cercueil$schema: http://devicetree.org/meta-schemas/core.yaml#
6b77eab32SPaul Cercueil
7a612130cSKrzysztof Kozlowskititle: Ingenic SoCs pin controller
8b77eab32SPaul Cercueil
9b77eab32SPaul Cercueildescription: >
10b77eab32SPaul Cercueil  Please refer to pinctrl-bindings.txt in this directory for details of the
11b77eab32SPaul Cercueil  common pinctrl bindings used by client devices, including the meaning of the
12b77eab32SPaul Cercueil  phrase "pin configuration node".
13b77eab32SPaul Cercueil
14b77eab32SPaul Cercueil  For the Ingenic SoCs, pin control is tightly bound with GPIO ports. All pins
15b77eab32SPaul Cercueil  may be used as GPIOs, multiplexed device functions are configured within the
16b77eab32SPaul Cercueil  GPIO port configuration registers and it is typical to refer to pins using the
17b77eab32SPaul Cercueil  naming scheme "PxN" where x is a character identifying the GPIO port with
18b77eab32SPaul Cercueil  which the pin is associated and N is an integer from 0 to 31 identifying the
19b77eab32SPaul Cercueil  pin within that GPIO port. For example PA0 is the first pin in GPIO port A,
20beadd1b4S周琰杰 (Zhou Yanjie)  and PB31 is the last pin in GPIO port B. The JZ4730, the JZ4740, the JZ4725B,
21beadd1b4S周琰杰 (Zhou Yanjie)  the X1000 and the X1830 contains 4 GPIO ports, PA to PD, for a total of 128
22bbd33911S周琰杰 (Zhou Yanjie)  pins. The X2000 and the X2100 contains 5 GPIO ports, PA to PE, for a total of
23bbd33911S周琰杰 (Zhou Yanjie)  160 pins. The JZ4750, the JZ4755 the JZ4760, the JZ4770 and the JZ4780 contains
24bbd33911S周琰杰 (Zhou Yanjie)  6 GPIO ports, PA to PF, for a total of 192 pins. The JZ4775 contains 7 GPIO
25bbd33911S周琰杰 (Zhou Yanjie)  ports, PA to PG, for a total of 224 pins.
26b77eab32SPaul Cercueil
27b77eab32SPaul Cercueilmaintainers:
28b77eab32SPaul Cercueil  - Paul Cercueil <paul@crapouillou.net>
29b77eab32SPaul Cercueil
30b77eab32SPaul Cercueilproperties:
31b77eab32SPaul Cercueil  compatible:
32b77eab32SPaul Cercueil    oneOf:
33b77eab32SPaul Cercueil      - enum:
34beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4730-pinctrl
35b77eab32SPaul Cercueil          - ingenic,jz4740-pinctrl
36b77eab32SPaul Cercueil          - ingenic,jz4725b-pinctrl
37beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4750-pinctrl
38beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4755-pinctrl
39b77eab32SPaul Cercueil          - ingenic,jz4760-pinctrl
40b77eab32SPaul Cercueil          - ingenic,jz4770-pinctrl
41beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4775-pinctrl
42b77eab32SPaul Cercueil          - ingenic,jz4780-pinctrl
43b77eab32SPaul Cercueil          - ingenic,x1000-pinctrl
44b77eab32SPaul Cercueil          - ingenic,x1500-pinctrl
45b77eab32SPaul Cercueil          - ingenic,x1830-pinctrl
46beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,x2000-pinctrl
47bbd33911S周琰杰 (Zhou Yanjie)          - ingenic,x2100-pinctrl
48b77eab32SPaul Cercueil      - items:
49b77eab32SPaul Cercueil          - const: ingenic,jz4760b-pinctrl
50b77eab32SPaul Cercueil          - const: ingenic,jz4760-pinctrl
51b77eab32SPaul Cercueil      - items:
52b77eab32SPaul Cercueil          - const: ingenic,x1000e-pinctrl
53b77eab32SPaul Cercueil          - const: ingenic,x1000-pinctrl
54beadd1b4S周琰杰 (Zhou Yanjie)      - items:
55beadd1b4S周琰杰 (Zhou Yanjie)          - const: ingenic,x2000e-pinctrl
56beadd1b4S周琰杰 (Zhou Yanjie)          - const: ingenic,x2000-pinctrl
57b77eab32SPaul Cercueil
58b77eab32SPaul Cercueil  reg:
59b77eab32SPaul Cercueil    maxItems: 1
60b77eab32SPaul Cercueil
61b77eab32SPaul Cercueil  "#address-cells":
62b77eab32SPaul Cercueil    const: 1
63b77eab32SPaul Cercueil
64b77eab32SPaul Cercueil  "#size-cells":
65b77eab32SPaul Cercueil    const: 0
66b77eab32SPaul Cercueil
67b77eab32SPaul CercueilpatternProperties:
68b77eab32SPaul Cercueil  "^gpio@[0-9]$":
69b77eab32SPaul Cercueil    type: object
70b77eab32SPaul Cercueil    properties:
71b77eab32SPaul Cercueil      compatible:
72b77eab32SPaul Cercueil        enum:
73beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4730-gpio
74b77eab32SPaul Cercueil          - ingenic,jz4740-gpio
75b77eab32SPaul Cercueil          - ingenic,jz4725b-gpio
76beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4750-gpio
77beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4755-gpio
78b77eab32SPaul Cercueil          - ingenic,jz4760-gpio
79b77eab32SPaul Cercueil          - ingenic,jz4770-gpio
80beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,jz4775-gpio
81b77eab32SPaul Cercueil          - ingenic,jz4780-gpio
82b77eab32SPaul Cercueil          - ingenic,x1000-gpio
83b77eab32SPaul Cercueil          - ingenic,x1500-gpio
84b77eab32SPaul Cercueil          - ingenic,x1830-gpio
85beadd1b4S周琰杰 (Zhou Yanjie)          - ingenic,x2000-gpio
86bbd33911S周琰杰 (Zhou Yanjie)          - ingenic,x2100-gpio
87b77eab32SPaul Cercueil
88b77eab32SPaul Cercueil      reg:
89b77eab32SPaul Cercueil        items:
90b77eab32SPaul Cercueil          - description: The GPIO bank number
91b77eab32SPaul Cercueil
92b77eab32SPaul Cercueil      gpio-controller: true
93b77eab32SPaul Cercueil
94b77eab32SPaul Cercueil      "#gpio-cells":
95b77eab32SPaul Cercueil        const: 2
96b77eab32SPaul Cercueil
97b77eab32SPaul Cercueil      gpio-ranges:
98b77eab32SPaul Cercueil        maxItems: 1
99b77eab32SPaul Cercueil
100b77eab32SPaul Cercueil      interrupt-controller: true
101b77eab32SPaul Cercueil
102b77eab32SPaul Cercueil      "#interrupt-cells":
103b77eab32SPaul Cercueil        const: 2
104b77eab32SPaul Cercueil        description:
105b77eab32SPaul Cercueil          Refer to ../interrupt-controller/interrupts.txt for more details.
106b77eab32SPaul Cercueil
107b77eab32SPaul Cercueil      interrupts:
108b77eab32SPaul Cercueil        maxItems: 1
109b77eab32SPaul Cercueil
110b77eab32SPaul Cercueil    required:
111b77eab32SPaul Cercueil      - compatible
112b77eab32SPaul Cercueil      - reg
113b77eab32SPaul Cercueil      - gpio-controller
114b77eab32SPaul Cercueil      - "#gpio-cells"
115b77eab32SPaul Cercueil      - interrupts
116b77eab32SPaul Cercueil      - interrupt-controller
117b77eab32SPaul Cercueil      - "#interrupt-cells"
118b77eab32SPaul Cercueil
119b77eab32SPaul Cercueil    additionalProperties: false
120b77eab32SPaul Cercueil
121c09acbc4SRafał MiłeckiallOf:
122*49cd1dd1SRob Herring  - $ref: pinctrl.yaml#
123c09acbc4SRafał Miłecki
124b77eab32SPaul Cercueilrequired:
125b77eab32SPaul Cercueil  - compatible
126b77eab32SPaul Cercueil  - reg
127b77eab32SPaul Cercueil  - "#address-cells"
128b77eab32SPaul Cercueil  - "#size-cells"
129b77eab32SPaul Cercueil
13066c00f56SPaul CercueiladditionalProperties:
13166c00f56SPaul Cercueil  anyOf:
13266c00f56SPaul Cercueil    - type: object
13366c00f56SPaul Cercueil      allOf:
13466c00f56SPaul Cercueil        - $ref: pincfg-node.yaml#
13566c00f56SPaul Cercueil        - $ref: pinmux-node.yaml#
13666c00f56SPaul Cercueil
13766c00f56SPaul Cercueil      properties:
13866c00f56SPaul Cercueil        function: true
13966c00f56SPaul Cercueil        groups: true
14066c00f56SPaul Cercueil        pins: true
14166c00f56SPaul Cercueil        bias-disable: true
14266c00f56SPaul Cercueil        bias-pull-up: true
14366c00f56SPaul Cercueil        bias-pull-down: true
14466c00f56SPaul Cercueil        output-low: true
14566c00f56SPaul Cercueil        output-high: true
14666c00f56SPaul Cercueil      additionalProperties: false
14766c00f56SPaul Cercueil
14866c00f56SPaul Cercueil    - type: object
14966c00f56SPaul Cercueil      additionalProperties:
15066c00f56SPaul Cercueil        type: object
15166c00f56SPaul Cercueil        allOf:
15266c00f56SPaul Cercueil          - $ref: pincfg-node.yaml#
15366c00f56SPaul Cercueil          - $ref: pinmux-node.yaml#
15466c00f56SPaul Cercueil
15566c00f56SPaul Cercueil        properties:
15666c00f56SPaul Cercueil          function: true
15766c00f56SPaul Cercueil          groups: true
15866c00f56SPaul Cercueil          pins: true
15966c00f56SPaul Cercueil          bias-disable: true
16066c00f56SPaul Cercueil          bias-pull-up: true
16166c00f56SPaul Cercueil          bias-pull-down: true
16266c00f56SPaul Cercueil          output-low: true
16366c00f56SPaul Cercueil          output-high: true
16466c00f56SPaul Cercueil        additionalProperties: false
16566c00f56SPaul Cercueil
166b77eab32SPaul Cercueilexamples:
167b77eab32SPaul Cercueil  - |
168c09acbc4SRafał Miłecki    pinctrl@10010000 {
169b77eab32SPaul Cercueil      compatible = "ingenic,jz4770-pinctrl";
170b77eab32SPaul Cercueil      reg = <0x10010000 0x600>;
171b77eab32SPaul Cercueil
172b77eab32SPaul Cercueil      #address-cells = <1>;
173b77eab32SPaul Cercueil      #size-cells = <0>;
174b77eab32SPaul Cercueil
175b77eab32SPaul Cercueil      gpio@0 {
176b77eab32SPaul Cercueil        compatible = "ingenic,jz4770-gpio";
177b77eab32SPaul Cercueil        reg = <0>;
178b77eab32SPaul Cercueil
179b77eab32SPaul Cercueil        gpio-controller;
180b77eab32SPaul Cercueil        gpio-ranges = <&pinctrl 0 0 32>;
181b77eab32SPaul Cercueil        #gpio-cells = <2>;
182b77eab32SPaul Cercueil
183b77eab32SPaul Cercueil        interrupt-controller;
184b77eab32SPaul Cercueil        #interrupt-cells = <2>;
185b77eab32SPaul Cercueil
186b77eab32SPaul Cercueil        interrupt-parent = <&intc>;
187b77eab32SPaul Cercueil        interrupts = <17>;
188b77eab32SPaul Cercueil      };
189b77eab32SPaul Cercueil    };
190