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