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 devicetree bindings 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 contains 5 GPIO ports, PA to PE, for a total of 160 pins. 23 The JZ4750, the JZ4755 the JZ4760, the JZ4770 and the JZ4780 contains 6 GPIO 24 ports, PA to PF, for a total of 192 pins. The JZ4775 contains 7 GPIO ports, 25 PA to PG, for a total of 224 pins. 26 27maintainers: 28 - Paul Cercueil <paul@crapouillou.net> 29 30properties: 31 nodename: 32 pattern: "^pinctrl@[0-9a-f]+$" 33 34 compatible: 35 oneOf: 36 - enum: 37 - ingenic,jz4730-pinctrl 38 - ingenic,jz4740-pinctrl 39 - ingenic,jz4725b-pinctrl 40 - ingenic,jz4750-pinctrl 41 - ingenic,jz4755-pinctrl 42 - ingenic,jz4760-pinctrl 43 - ingenic,jz4770-pinctrl 44 - ingenic,jz4775-pinctrl 45 - ingenic,jz4780-pinctrl 46 - ingenic,x1000-pinctrl 47 - ingenic,x1500-pinctrl 48 - ingenic,x1830-pinctrl 49 - ingenic,x2000-pinctrl 50 - items: 51 - const: ingenic,jz4760b-pinctrl 52 - const: ingenic,jz4760-pinctrl 53 - items: 54 - const: ingenic,x1000e-pinctrl 55 - const: ingenic,x1000-pinctrl 56 - items: 57 - const: ingenic,x2000e-pinctrl 58 - const: ingenic,x2000-pinctrl 59 60 reg: 61 maxItems: 1 62 63 "#address-cells": 64 const: 1 65 66 "#size-cells": 67 const: 0 68 69patternProperties: 70 "^gpio@[0-9]$": 71 type: object 72 properties: 73 compatible: 74 enum: 75 - ingenic,jz4730-gpio 76 - ingenic,jz4740-gpio 77 - ingenic,jz4725b-gpio 78 - ingenic,jz4750-gpio 79 - ingenic,jz4755-gpio 80 - ingenic,jz4760-gpio 81 - ingenic,jz4770-gpio 82 - ingenic,jz4775-gpio 83 - ingenic,jz4780-gpio 84 - ingenic,x1000-gpio 85 - ingenic,x1500-gpio 86 - ingenic,x1830-gpio 87 - ingenic,x2000-gpio 88 89 reg: 90 items: 91 - description: The GPIO bank number 92 93 gpio-controller: true 94 95 "#gpio-cells": 96 const: 2 97 98 gpio-ranges: 99 maxItems: 1 100 101 interrupt-controller: true 102 103 "#interrupt-cells": 104 const: 2 105 description: 106 Refer to ../interrupt-controller/interrupts.txt for more details. 107 108 interrupts: 109 maxItems: 1 110 111 required: 112 - compatible 113 - reg 114 - gpio-controller 115 - "#gpio-cells" 116 - interrupts 117 - interrupt-controller 118 - "#interrupt-cells" 119 120 additionalProperties: false 121 122required: 123 - compatible 124 - reg 125 - "#address-cells" 126 - "#size-cells" 127 128additionalProperties: 129 anyOf: 130 - type: object 131 allOf: 132 - $ref: pincfg-node.yaml# 133 - $ref: pinmux-node.yaml# 134 135 properties: 136 phandle: true 137 function: true 138 groups: true 139 pins: true 140 bias-disable: true 141 bias-pull-up: true 142 bias-pull-down: true 143 output-low: true 144 output-high: true 145 additionalProperties: false 146 147 - type: object 148 properties: 149 phandle: true 150 additionalProperties: 151 type: object 152 allOf: 153 - $ref: pincfg-node.yaml# 154 - $ref: pinmux-node.yaml# 155 156 properties: 157 phandle: true 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 pin-controller@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 }; 192