1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/gpio/aspeed,ast2400-gpio.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Aspeed GPIO controller 8 9maintainers: 10 - Andrew Jeffery <andrew@codeconstruct.com.au> 11 12properties: 13 compatible: 14 enum: 15 - aspeed,ast2400-gpio 16 - aspeed,ast2500-gpio 17 - aspeed,ast2600-gpio 18 19 reg: 20 maxItems: 1 21 22 clocks: 23 maxItems: 1 24 description: The clock to use for debounce timings 25 26 gpio-controller: true 27 gpio-line-names: 28 minItems: 36 29 maxItems: 232 30 31 gpio-ranges: true 32 33 "#gpio-cells": 34 const: 2 35 36 interrupts: 37 maxItems: 1 38 39 interrupt-controller: true 40 41 "#interrupt-cells": 42 const: 2 43 44 ngpios: 45 minimum: 36 46 maximum: 232 47 48required: 49 - compatible 50 - reg 51 - interrupts 52 - interrupt-controller 53 - "#interrupt-cells" 54 - gpio-controller 55 - "#gpio-cells" 56 57allOf: 58 - if: 59 properties: 60 compatible: 61 contains: 62 const: aspeed,ast2400-gpio 63 then: 64 properties: 65 gpio-line-names: 66 minItems: 220 67 maxItems: 220 68 ngpios: 69 const: 220 70 - if: 71 properties: 72 compatible: 73 contains: 74 const: aspeed,ast2500-gpio 75 then: 76 properties: 77 gpio-line-names: 78 minItems: 232 79 maxItems: 232 80 ngpios: 81 const: 232 82 - if: 83 properties: 84 compatible: 85 contains: 86 const: aspeed,ast2600-gpio 87 then: 88 properties: 89 gpio-line-names: 90 minItems: 36 91 maxItems: 208 92 ngpios: 93 enum: [ 36, 208 ] 94 required: 95 - ngpios 96 97additionalProperties: false 98 99examples: 100 - | 101 gpio@1e780000 { 102 compatible = "aspeed,ast2400-gpio"; 103 reg = <0x1e780000 0x1000>; 104 interrupts = <20>; 105 interrupt-controller; 106 #interrupt-cells = <2>; 107 gpio-controller; 108 #gpio-cells = <2>; 109 }; 110 - | 111 gpio: gpio@1e780000 { 112 compatible = "aspeed,ast2500-gpio"; 113 reg = <0x1e780000 0x200>; 114 interrupts = <20>; 115 interrupt-controller; 116 #interrupt-cells = <2>; 117 gpio-controller; 118 #gpio-cells = <2>; 119 gpio-ranges = <&pinctrl 0 0 232>; 120 }; 121 - | 122 #include <dt-bindings/clock/ast2600-clock.h> 123 #include <dt-bindings/interrupt-controller/arm-gic.h> 124 #include <dt-bindings/interrupt-controller/irq.h> 125 gpio0: gpio@1e780000 { 126 compatible = "aspeed,ast2600-gpio"; 127 reg = <0x1e780000 0x400>; 128 clocks = <&syscon ASPEED_CLK_APB2>; 129 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 130 interrupt-controller; 131 #interrupt-cells = <2>; 132 #gpio-cells = <2>; 133 gpio-controller; 134 gpio-ranges = <&pinctrl 0 0 208>; 135 ngpios = <208>; 136 }; 137 gpio1: gpio@1e780800 { 138 compatible = "aspeed,ast2600-gpio"; 139 reg = <0x1e780800 0x800>; 140 clocks = <&syscon ASPEED_CLK_APB1>; 141 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 142 interrupt-controller; 143 #interrupt-cells = <2>; 144 gpio-controller; 145 #gpio-cells = <2>; 146 gpio-ranges = <&pinctrl 0 208 36>; 147 ngpios = <36>; 148 }; 149