18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/snps,dw-apb-gpio.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Synopsys DesignWare APB GPIO controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci Synopsys DesignWare GPIO controllers have a configurable number of ports, 118c2ecf20Sopenharmony_ci each of which are intended to be represented as child nodes with the generic 128c2ecf20Sopenharmony_ci GPIO-controller properties as desribed in this bindings file. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cimaintainers: 158c2ecf20Sopenharmony_ci - Hoan Tran <hoan@os.amperecomputing.com> 168c2ecf20Sopenharmony_ci - Serge Semin <fancer.lancer@gmail.com> 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciproperties: 198c2ecf20Sopenharmony_ci $nodename: 208c2ecf20Sopenharmony_ci pattern: "^gpio@[0-9a-f]+$" 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci compatible: 238c2ecf20Sopenharmony_ci const: snps,dw-apb-gpio 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci "#address-cells": 268c2ecf20Sopenharmony_ci const: 1 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci "#size-cells": 298c2ecf20Sopenharmony_ci const: 0 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci reg: 328c2ecf20Sopenharmony_ci maxItems: 1 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci clocks: 358c2ecf20Sopenharmony_ci minItems: 1 368c2ecf20Sopenharmony_ci items: 378c2ecf20Sopenharmony_ci - description: APB interface clock source 388c2ecf20Sopenharmony_ci - description: DW GPIO debounce reference clock source 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci clock-names: 418c2ecf20Sopenharmony_ci minItems: 1 428c2ecf20Sopenharmony_ci items: 438c2ecf20Sopenharmony_ci - const: bus 448c2ecf20Sopenharmony_ci - const: db 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci resets: 478c2ecf20Sopenharmony_ci maxItems: 1 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_cipatternProperties: 508c2ecf20Sopenharmony_ci "^gpio-(port|controller)@[0-9a-f]+$": 518c2ecf20Sopenharmony_ci type: object 528c2ecf20Sopenharmony_ci properties: 538c2ecf20Sopenharmony_ci compatible: 548c2ecf20Sopenharmony_ci const: snps,dw-apb-gpio-port 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci reg: 578c2ecf20Sopenharmony_ci maxItems: 1 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci gpio-controller: true 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci '#gpio-cells': 628c2ecf20Sopenharmony_ci const: 2 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci ngpios: 658c2ecf20Sopenharmony_ci default: 32 668c2ecf20Sopenharmony_ci minimum: 1 678c2ecf20Sopenharmony_ci maximum: 32 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci snps,nr-gpios: 708c2ecf20Sopenharmony_ci description: The number of GPIO pins exported by the port. 718c2ecf20Sopenharmony_ci deprecated: true 728c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 738c2ecf20Sopenharmony_ci default: 32 748c2ecf20Sopenharmony_ci minimum: 1 758c2ecf20Sopenharmony_ci maximum: 32 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci interrupts: 788c2ecf20Sopenharmony_ci description: | 798c2ecf20Sopenharmony_ci The interrupts to the parent controller raised when GPIOs generate 808c2ecf20Sopenharmony_ci the interrupts. If the controller provides one combined interrupt 818c2ecf20Sopenharmony_ci for all GPIOs, specify a single interrupt. If the controller provides 828c2ecf20Sopenharmony_ci one interrupt for each GPIO, provide a list of interrupts that 838c2ecf20Sopenharmony_ci correspond to each of the GPIO pins. 848c2ecf20Sopenharmony_ci minItems: 1 858c2ecf20Sopenharmony_ci maxItems: 32 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci interrupt-controller: true 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci '#interrupt-cells': 908c2ecf20Sopenharmony_ci const: 2 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci required: 938c2ecf20Sopenharmony_ci - compatible 948c2ecf20Sopenharmony_ci - reg 958c2ecf20Sopenharmony_ci - gpio-controller 968c2ecf20Sopenharmony_ci - '#gpio-cells' 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci dependencies: 998c2ecf20Sopenharmony_ci interrupt-controller: [ interrupts ] 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci additionalProperties: false 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ciadditionalProperties: false 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_cirequired: 1068c2ecf20Sopenharmony_ci - compatible 1078c2ecf20Sopenharmony_ci - reg 1088c2ecf20Sopenharmony_ci - "#address-cells" 1098c2ecf20Sopenharmony_ci - "#size-cells" 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ciexamples: 1128c2ecf20Sopenharmony_ci - | 1138c2ecf20Sopenharmony_ci gpio: gpio@20000 { 1148c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio"; 1158c2ecf20Sopenharmony_ci reg = <0x20000 0x1000>; 1168c2ecf20Sopenharmony_ci #address-cells = <1>; 1178c2ecf20Sopenharmony_ci #size-cells = <0>; 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci porta: gpio-port@0 { 1208c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 1218c2ecf20Sopenharmony_ci reg = <0>; 1228c2ecf20Sopenharmony_ci gpio-controller; 1238c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1248c2ecf20Sopenharmony_ci snps,nr-gpios = <8>; 1258c2ecf20Sopenharmony_ci interrupt-controller; 1268c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1278c2ecf20Sopenharmony_ci interrupt-parent = <&vic1>; 1288c2ecf20Sopenharmony_ci interrupts = <0>; 1298c2ecf20Sopenharmony_ci }; 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci portb: gpio-port@1 { 1328c2ecf20Sopenharmony_ci compatible = "snps,dw-apb-gpio-port"; 1338c2ecf20Sopenharmony_ci reg = <1>; 1348c2ecf20Sopenharmony_ci gpio-controller; 1358c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1368c2ecf20Sopenharmony_ci snps,nr-gpios = <8>; 1378c2ecf20Sopenharmony_ci }; 1388c2ecf20Sopenharmony_ci }; 1398c2ecf20Sopenharmony_ci... 140