18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/ingenic,pinctrl.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Ingenic SoCs pin controller devicetree bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: > 108c2ecf20Sopenharmony_ci Please refer to pinctrl-bindings.txt in this directory for details of the 118c2ecf20Sopenharmony_ci common pinctrl bindings used by client devices, including the meaning of the 128c2ecf20Sopenharmony_ci phrase "pin configuration node". 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci For the Ingenic SoCs, pin control is tightly bound with GPIO ports. All pins 158c2ecf20Sopenharmony_ci may be used as GPIOs, multiplexed device functions are configured within the 168c2ecf20Sopenharmony_ci GPIO port configuration registers and it is typical to refer to pins using the 178c2ecf20Sopenharmony_ci naming scheme "PxN" where x is a character identifying the GPIO port with 188c2ecf20Sopenharmony_ci which the pin is associated and N is an integer from 0 to 31 identifying the 198c2ecf20Sopenharmony_ci pin within that GPIO port. For example PA0 is the first pin in GPIO port A, 208c2ecf20Sopenharmony_ci and PB31 is the last pin in GPIO port B. The JZ4740, the X1000 and the X1830 218c2ecf20Sopenharmony_ci contains 4 GPIO ports, PA to PD, for a total of 128 pins. The JZ4760, the 228c2ecf20Sopenharmony_ci JZ4770 and the JZ4780 contains 6 GPIO ports, PA to PF, for a total of 192 238c2ecf20Sopenharmony_ci pins. 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_cimaintainers: 268c2ecf20Sopenharmony_ci - Paul Cercueil <paul@crapouillou.net> 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ciproperties: 298c2ecf20Sopenharmony_ci nodename: 308c2ecf20Sopenharmony_ci pattern: "^pinctrl@[0-9a-f]+$" 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci compatible: 338c2ecf20Sopenharmony_ci oneOf: 348c2ecf20Sopenharmony_ci - enum: 358c2ecf20Sopenharmony_ci - ingenic,jz4740-pinctrl 368c2ecf20Sopenharmony_ci - ingenic,jz4725b-pinctrl 378c2ecf20Sopenharmony_ci - ingenic,jz4760-pinctrl 388c2ecf20Sopenharmony_ci - ingenic,jz4770-pinctrl 398c2ecf20Sopenharmony_ci - ingenic,jz4780-pinctrl 408c2ecf20Sopenharmony_ci - ingenic,x1000-pinctrl 418c2ecf20Sopenharmony_ci - ingenic,x1500-pinctrl 428c2ecf20Sopenharmony_ci - ingenic,x1830-pinctrl 438c2ecf20Sopenharmony_ci - items: 448c2ecf20Sopenharmony_ci - const: ingenic,jz4760b-pinctrl 458c2ecf20Sopenharmony_ci - const: ingenic,jz4760-pinctrl 468c2ecf20Sopenharmony_ci - items: 478c2ecf20Sopenharmony_ci - const: ingenic,x1000e-pinctrl 488c2ecf20Sopenharmony_ci - const: ingenic,x1000-pinctrl 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci reg: 518c2ecf20Sopenharmony_ci maxItems: 1 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci "#address-cells": 548c2ecf20Sopenharmony_ci const: 1 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci "#size-cells": 578c2ecf20Sopenharmony_ci const: 0 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_cipatternProperties: 608c2ecf20Sopenharmony_ci "^gpio@[0-9]$": 618c2ecf20Sopenharmony_ci type: object 628c2ecf20Sopenharmony_ci properties: 638c2ecf20Sopenharmony_ci compatible: 648c2ecf20Sopenharmony_ci enum: 658c2ecf20Sopenharmony_ci - ingenic,jz4740-gpio 668c2ecf20Sopenharmony_ci - ingenic,jz4725b-gpio 678c2ecf20Sopenharmony_ci - ingenic,jz4760-gpio 688c2ecf20Sopenharmony_ci - ingenic,jz4770-gpio 698c2ecf20Sopenharmony_ci - ingenic,jz4780-gpio 708c2ecf20Sopenharmony_ci - ingenic,x1000-gpio 718c2ecf20Sopenharmony_ci - ingenic,x1500-gpio 728c2ecf20Sopenharmony_ci - ingenic,x1830-gpio 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci reg: 758c2ecf20Sopenharmony_ci items: 768c2ecf20Sopenharmony_ci - description: The GPIO bank number 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci gpio-controller: true 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci "#gpio-cells": 818c2ecf20Sopenharmony_ci const: 2 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci gpio-ranges: 848c2ecf20Sopenharmony_ci maxItems: 1 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ci interrupt-controller: true 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci "#interrupt-cells": 898c2ecf20Sopenharmony_ci const: 2 908c2ecf20Sopenharmony_ci description: 918c2ecf20Sopenharmony_ci Refer to ../interrupt-controller/interrupts.txt for more details. 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci interrupts: 948c2ecf20Sopenharmony_ci maxItems: 1 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci required: 978c2ecf20Sopenharmony_ci - compatible 988c2ecf20Sopenharmony_ci - reg 998c2ecf20Sopenharmony_ci - gpio-controller 1008c2ecf20Sopenharmony_ci - "#gpio-cells" 1018c2ecf20Sopenharmony_ci - interrupts 1028c2ecf20Sopenharmony_ci - interrupt-controller 1038c2ecf20Sopenharmony_ci - "#interrupt-cells" 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci additionalProperties: false 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_cirequired: 1088c2ecf20Sopenharmony_ci - compatible 1098c2ecf20Sopenharmony_ci - reg 1108c2ecf20Sopenharmony_ci - "#address-cells" 1118c2ecf20Sopenharmony_ci - "#size-cells" 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ciadditionalProperties: 1148c2ecf20Sopenharmony_ci anyOf: 1158c2ecf20Sopenharmony_ci - type: object 1168c2ecf20Sopenharmony_ci allOf: 1178c2ecf20Sopenharmony_ci - $ref: pincfg-node.yaml# 1188c2ecf20Sopenharmony_ci - $ref: pinmux-node.yaml# 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci properties: 1218c2ecf20Sopenharmony_ci phandle: true 1228c2ecf20Sopenharmony_ci function: true 1238c2ecf20Sopenharmony_ci groups: true 1248c2ecf20Sopenharmony_ci pins: true 1258c2ecf20Sopenharmony_ci bias-disable: true 1268c2ecf20Sopenharmony_ci bias-pull-up: true 1278c2ecf20Sopenharmony_ci bias-pull-down: true 1288c2ecf20Sopenharmony_ci output-low: true 1298c2ecf20Sopenharmony_ci output-high: true 1308c2ecf20Sopenharmony_ci additionalProperties: false 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci - type: object 1338c2ecf20Sopenharmony_ci properties: 1348c2ecf20Sopenharmony_ci phandle: true 1358c2ecf20Sopenharmony_ci additionalProperties: 1368c2ecf20Sopenharmony_ci type: object 1378c2ecf20Sopenharmony_ci allOf: 1388c2ecf20Sopenharmony_ci - $ref: pincfg-node.yaml# 1398c2ecf20Sopenharmony_ci - $ref: pinmux-node.yaml# 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci properties: 1428c2ecf20Sopenharmony_ci phandle: true 1438c2ecf20Sopenharmony_ci function: true 1448c2ecf20Sopenharmony_ci groups: true 1458c2ecf20Sopenharmony_ci pins: true 1468c2ecf20Sopenharmony_ci bias-disable: true 1478c2ecf20Sopenharmony_ci bias-pull-up: true 1488c2ecf20Sopenharmony_ci bias-pull-down: true 1498c2ecf20Sopenharmony_ci output-low: true 1508c2ecf20Sopenharmony_ci output-high: true 1518c2ecf20Sopenharmony_ci additionalProperties: false 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ciexamples: 1548c2ecf20Sopenharmony_ci - | 1558c2ecf20Sopenharmony_ci pin-controller@10010000 { 1568c2ecf20Sopenharmony_ci compatible = "ingenic,jz4770-pinctrl"; 1578c2ecf20Sopenharmony_ci reg = <0x10010000 0x600>; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci #address-cells = <1>; 1608c2ecf20Sopenharmony_ci #size-cells = <0>; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci gpio@0 { 1638c2ecf20Sopenharmony_ci compatible = "ingenic,jz4770-gpio"; 1648c2ecf20Sopenharmony_ci reg = <0>; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci gpio-controller; 1678c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 0 32>; 1688c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci interrupt-controller; 1718c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1748c2ecf20Sopenharmony_ci interrupts = <17>; 1758c2ecf20Sopenharmony_ci }; 1768c2ecf20Sopenharmony_ci }; 177