1657a06dfSSerge Semin# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2657a06dfSSerge Semin%YAML 1.2 3657a06dfSSerge Semin--- 4657a06dfSSerge Semin$id: http://devicetree.org/schemas/gpio/snps,dw-apb-gpio.yaml# 5657a06dfSSerge Semin$schema: http://devicetree.org/meta-schemas/core.yaml# 6657a06dfSSerge Semin 7657a06dfSSerge Semintitle: Synopsys DesignWare APB GPIO controller 8657a06dfSSerge Semin 9657a06dfSSerge Semindescription: | 10657a06dfSSerge Semin Synopsys DesignWare GPIO controllers have a configurable number of ports, 11657a06dfSSerge Semin each of which are intended to be represented as child nodes with the generic 1247aab533SBjorn Helgaas GPIO-controller properties as described in this bindings file. 13657a06dfSSerge Semin 14657a06dfSSerge Seminmaintainers: 15657a06dfSSerge Semin - Hoan Tran <hoan@os.amperecomputing.com> 16c55812afSSerge Semin - Serge Semin <fancer.lancer@gmail.com> 17657a06dfSSerge Semin 18657a06dfSSerge Seminproperties: 19657a06dfSSerge Semin $nodename: 20657a06dfSSerge Semin pattern: "^gpio@[0-9a-f]+$" 21657a06dfSSerge Semin 22657a06dfSSerge Semin compatible: 23657a06dfSSerge Semin const: snps,dw-apb-gpio 24657a06dfSSerge Semin 25657a06dfSSerge Semin "#address-cells": 26657a06dfSSerge Semin const: 1 27657a06dfSSerge Semin 28657a06dfSSerge Semin "#size-cells": 29657a06dfSSerge Semin const: 0 30657a06dfSSerge Semin 31657a06dfSSerge Semin reg: 32657a06dfSSerge Semin maxItems: 1 33657a06dfSSerge Semin 34657a06dfSSerge Semin clocks: 354f180937SSerge Semin minItems: 1 36657a06dfSSerge Semin items: 37657a06dfSSerge Semin - description: APB interface clock source 384f180937SSerge Semin - description: DW GPIO debounce reference clock source 39657a06dfSSerge Semin 40657a06dfSSerge Semin clock-names: 414f180937SSerge Semin minItems: 1 42657a06dfSSerge Semin items: 43657a06dfSSerge Semin - const: bus 444f180937SSerge Semin - const: db 45657a06dfSSerge Semin 46657a06dfSSerge Semin resets: 47657a06dfSSerge Semin maxItems: 1 48657a06dfSSerge Semin 49657a06dfSSerge SeminpatternProperties: 50657a06dfSSerge Semin "^gpio-(port|controller)@[0-9a-f]+$": 51657a06dfSSerge Semin type: object 52657a06dfSSerge Semin properties: 53657a06dfSSerge Semin compatible: 54657a06dfSSerge Semin const: snps,dw-apb-gpio-port 55657a06dfSSerge Semin 56657a06dfSSerge Semin reg: 57657a06dfSSerge Semin maxItems: 1 58657a06dfSSerge Semin 59657a06dfSSerge Semin gpio-controller: true 60657a06dfSSerge Semin 61657a06dfSSerge Semin '#gpio-cells': 62657a06dfSSerge Semin const: 2 63657a06dfSSerge Semin 64320630c4SKrzysztof Kozlowski gpio-line-names: 65320630c4SKrzysztof Kozlowski minItems: 1 66320630c4SKrzysztof Kozlowski maxItems: 32 67320630c4SKrzysztof Kozlowski 68*0e6e3c6fSEmil Renner Berthing gpio-ranges: true 69*0e6e3c6fSEmil Renner Berthing 70ef42a8daSSerge Semin ngpios: 71ef42a8daSSerge Semin default: 32 72ef42a8daSSerge Semin minimum: 1 73ef42a8daSSerge Semin maximum: 32 74ef42a8daSSerge Semin 75657a06dfSSerge Semin snps,nr-gpios: 76657a06dfSSerge Semin description: The number of GPIO pins exported by the port. 77ef42a8daSSerge Semin deprecated: true 78086e9074SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 79657a06dfSSerge Semin default: 32 80086e9074SRob Herring minimum: 1 81657a06dfSSerge Semin maximum: 32 82657a06dfSSerge Semin 83657a06dfSSerge Semin interrupts: 84657a06dfSSerge Semin description: | 85657a06dfSSerge Semin The interrupts to the parent controller raised when GPIOs generate 86657a06dfSSerge Semin the interrupts. If the controller provides one combined interrupt 87657a06dfSSerge Semin for all GPIOs, specify a single interrupt. If the controller provides 88657a06dfSSerge Semin one interrupt for each GPIO, provide a list of interrupts that 89657a06dfSSerge Semin correspond to each of the GPIO pins. 90657a06dfSSerge Semin minItems: 1 91657a06dfSSerge Semin maxItems: 32 92657a06dfSSerge Semin 93657a06dfSSerge Semin interrupt-controller: true 94657a06dfSSerge Semin 95657a06dfSSerge Semin '#interrupt-cells': 96657a06dfSSerge Semin const: 2 97657a06dfSSerge Semin 98657a06dfSSerge Semin required: 99657a06dfSSerge Semin - compatible 100657a06dfSSerge Semin - reg 101657a06dfSSerge Semin - gpio-controller 102657a06dfSSerge Semin - '#gpio-cells' 103657a06dfSSerge Semin 104657a06dfSSerge Semin dependencies: 105657a06dfSSerge Semin interrupt-controller: [ interrupts ] 106657a06dfSSerge Semin 107657a06dfSSerge Semin additionalProperties: false 108657a06dfSSerge Semin 109657a06dfSSerge SeminadditionalProperties: false 110657a06dfSSerge Semin 111657a06dfSSerge Seminrequired: 112657a06dfSSerge Semin - compatible 113657a06dfSSerge Semin - reg 114657a06dfSSerge Semin - "#address-cells" 115657a06dfSSerge Semin - "#size-cells" 116657a06dfSSerge Semin 117657a06dfSSerge Seminexamples: 118657a06dfSSerge Semin - | 119657a06dfSSerge Semin gpio: gpio@20000 { 120657a06dfSSerge Semin compatible = "snps,dw-apb-gpio"; 121657a06dfSSerge Semin reg = <0x20000 0x1000>; 122657a06dfSSerge Semin #address-cells = <1>; 123657a06dfSSerge Semin #size-cells = <0>; 124657a06dfSSerge Semin 125657a06dfSSerge Semin porta: gpio-port@0 { 126657a06dfSSerge Semin compatible = "snps,dw-apb-gpio-port"; 127657a06dfSSerge Semin reg = <0>; 128657a06dfSSerge Semin gpio-controller; 129657a06dfSSerge Semin #gpio-cells = <2>; 130657a06dfSSerge Semin snps,nr-gpios = <8>; 131657a06dfSSerge Semin interrupt-controller; 132657a06dfSSerge Semin #interrupt-cells = <2>; 133657a06dfSSerge Semin interrupt-parent = <&vic1>; 134657a06dfSSerge Semin interrupts = <0>; 135657a06dfSSerge Semin }; 136657a06dfSSerge Semin 137657a06dfSSerge Semin portb: gpio-port@1 { 138657a06dfSSerge Semin compatible = "snps,dw-apb-gpio-port"; 139657a06dfSSerge Semin reg = <1>; 140657a06dfSSerge Semin gpio-controller; 141657a06dfSSerge Semin #gpio-cells = <2>; 142657a06dfSSerge Semin snps,nr-gpios = <8>; 143657a06dfSSerge Semin }; 144657a06dfSSerge Semin }; 145657a06dfSSerge Semin... 146