# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pinctrl/ingenic,pinctrl.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Ingenic SoCs pin controller description: > Please refer to pinctrl-bindings.txt in this directory for details of the common pinctrl bindings used by client devices, including the meaning of the phrase "pin configuration node". For the Ingenic SoCs, pin control is tightly bound with GPIO ports. All pins may be used as GPIOs, multiplexed device functions are configured within the GPIO port configuration registers and it is typical to refer to pins using the naming scheme "PxN" where x is a character identifying the GPIO port with which the pin is associated and N is an integer from 0 to 31 identifying the pin within that GPIO port. For example PA0 is the first pin in GPIO port A, and PB31 is the last pin in GPIO port B. The JZ4730, the JZ4740, the JZ4725B, the X1000 and the X1830 contains 4 GPIO ports, PA to PD, for a total of 128 pins. The X2000 and the X2100 contains 5 GPIO ports, PA to PE, for a total of 160 pins. The JZ4750, the JZ4755 the JZ4760, the JZ4770 and the JZ4780 contains 6 GPIO ports, PA to PF, for a total of 192 pins. The JZ4775 contains 7 GPIO ports, PA to PG, for a total of 224 pins. maintainers: - Paul Cercueil <paul@crapouillou.net> properties: compatible: oneOf: - enum: - ingenic,jz4730-pinctrl - ingenic,jz4740-pinctrl - ingenic,jz4725b-pinctrl - ingenic,jz4750-pinctrl - ingenic,jz4755-pinctrl - ingenic,jz4760-pinctrl - ingenic,jz4770-pinctrl - ingenic,jz4775-pinctrl - ingenic,jz4780-pinctrl - ingenic,x1000-pinctrl - ingenic,x1500-pinctrl - ingenic,x1830-pinctrl - ingenic,x2000-pinctrl - ingenic,x2100-pinctrl - items: - const: ingenic,jz4760b-pinctrl - const: ingenic,jz4760-pinctrl - items: - const: ingenic,x1000e-pinctrl - const: ingenic,x1000-pinctrl - items: - const: ingenic,x2000e-pinctrl - const: ingenic,x2000-pinctrl reg: maxItems: 1 "#address-cells": const: 1 "#size-cells": const: 0 patternProperties: "^gpio@[0-9]$": type: object properties: compatible: enum: - ingenic,jz4730-gpio - ingenic,jz4740-gpio - ingenic,jz4725b-gpio - ingenic,jz4750-gpio - ingenic,jz4755-gpio - ingenic,jz4760-gpio - ingenic,jz4770-gpio - ingenic,jz4775-gpio - ingenic,jz4780-gpio - ingenic,x1000-gpio - ingenic,x1500-gpio - ingenic,x1830-gpio - ingenic,x2000-gpio - ingenic,x2100-gpio reg: items: - description: The GPIO bank number gpio-controller: true "#gpio-cells": const: 2 gpio-ranges: maxItems: 1 interrupt-controller: true "#interrupt-cells": const: 2 description: Refer to ../interrupt-controller/interrupts.txt for more details. interrupts: maxItems: 1 required: - compatible - reg - gpio-controller - "#gpio-cells" - interrupts - interrupt-controller - "#interrupt-cells" additionalProperties: false allOf: - $ref: pinctrl.yaml# required: - compatible - reg - "#address-cells" - "#size-cells" additionalProperties: anyOf: - type: object allOf: - $ref: pincfg-node.yaml# - $ref: pinmux-node.yaml# properties: function: true groups: true pins: true bias-disable: true bias-pull-up: true bias-pull-down: true output-low: true output-high: true additionalProperties: false - type: object additionalProperties: type: object allOf: - $ref: pincfg-node.yaml# - $ref: pinmux-node.yaml# properties: function: true groups: true pins: true bias-disable: true bias-pull-up: true bias-pull-down: true output-low: true output-high: true additionalProperties: false examples: - | pinctrl@10010000 { compatible = "ingenic,jz4770-pinctrl"; reg = <0x10010000 0x600>; #address-cells = <1>; #size-cells = <0>; gpio@0 { compatible = "ingenic,jz4770-gpio"; reg = <0>; gpio-controller; gpio-ranges = <&pinctrl 0 0 32>; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&intc>; interrupts = <17>; }; };