1177f954fSAndrew Jeffery# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2177f954fSAndrew Jeffery%YAML 1.2 3177f954fSAndrew Jeffery--- 4177f954fSAndrew Jeffery$id: http://devicetree.org/schemas/gpio/aspeed,ast2400-gpio.yaml# 5177f954fSAndrew Jeffery$schema: http://devicetree.org/meta-schemas/core.yaml# 6177f954fSAndrew Jeffery 7177f954fSAndrew Jefferytitle: Aspeed GPIO controller 8177f954fSAndrew Jeffery 9177f954fSAndrew Jefferymaintainers: 10177f954fSAndrew Jeffery - Andrew Jeffery <andrew@codeconstruct.com.au> 11177f954fSAndrew Jeffery 12177f954fSAndrew Jefferyproperties: 13177f954fSAndrew Jeffery compatible: 14177f954fSAndrew Jeffery enum: 15177f954fSAndrew Jeffery - aspeed,ast2400-gpio 16177f954fSAndrew Jeffery - aspeed,ast2500-gpio 17177f954fSAndrew Jeffery - aspeed,ast2600-gpio 18*bef6959aSBilly Tsai - aspeed,ast2700-gpio 19177f954fSAndrew Jeffery 20177f954fSAndrew Jeffery reg: 21177f954fSAndrew Jeffery maxItems: 1 22177f954fSAndrew Jeffery 23177f954fSAndrew Jeffery clocks: 24177f954fSAndrew Jeffery maxItems: 1 25177f954fSAndrew Jeffery description: The clock to use for debounce timings 26177f954fSAndrew Jeffery 27177f954fSAndrew Jeffery gpio-controller: true 28177f954fSAndrew Jeffery gpio-line-names: 29*bef6959aSBilly Tsai minItems: 12 30177f954fSAndrew Jeffery maxItems: 232 31177f954fSAndrew Jeffery 32177f954fSAndrew Jeffery gpio-ranges: true 33177f954fSAndrew Jeffery 34177f954fSAndrew Jeffery "#gpio-cells": 35177f954fSAndrew Jeffery const: 2 36177f954fSAndrew Jeffery 37177f954fSAndrew Jeffery interrupts: 38177f954fSAndrew Jeffery maxItems: 1 39177f954fSAndrew Jeffery 40177f954fSAndrew Jeffery interrupt-controller: true 41177f954fSAndrew Jeffery 42177f954fSAndrew Jeffery "#interrupt-cells": 43177f954fSAndrew Jeffery const: 2 44177f954fSAndrew Jeffery 45177f954fSAndrew Jeffery ngpios: 46*bef6959aSBilly Tsai minimum: 12 47177f954fSAndrew Jeffery maximum: 232 48177f954fSAndrew Jeffery 49177f954fSAndrew Jefferyrequired: 50177f954fSAndrew Jeffery - compatible 51177f954fSAndrew Jeffery - reg 52177f954fSAndrew Jeffery - interrupts 53177f954fSAndrew Jeffery - interrupt-controller 54177f954fSAndrew Jeffery - "#interrupt-cells" 55177f954fSAndrew Jeffery - gpio-controller 56177f954fSAndrew Jeffery - "#gpio-cells" 57177f954fSAndrew Jeffery 58177f954fSAndrew JefferyallOf: 59177f954fSAndrew Jeffery - if: 60177f954fSAndrew Jeffery properties: 61177f954fSAndrew Jeffery compatible: 62177f954fSAndrew Jeffery contains: 63177f954fSAndrew Jeffery const: aspeed,ast2400-gpio 64177f954fSAndrew Jeffery then: 65177f954fSAndrew Jeffery properties: 66177f954fSAndrew Jeffery gpio-line-names: 67177f954fSAndrew Jeffery minItems: 220 68177f954fSAndrew Jeffery maxItems: 220 69177f954fSAndrew Jeffery ngpios: 70177f954fSAndrew Jeffery const: 220 71177f954fSAndrew Jeffery - if: 72177f954fSAndrew Jeffery properties: 73177f954fSAndrew Jeffery compatible: 74177f954fSAndrew Jeffery contains: 75177f954fSAndrew Jeffery const: aspeed,ast2500-gpio 76177f954fSAndrew Jeffery then: 77177f954fSAndrew Jeffery properties: 78177f954fSAndrew Jeffery gpio-line-names: 79177f954fSAndrew Jeffery minItems: 232 80177f954fSAndrew Jeffery maxItems: 232 81177f954fSAndrew Jeffery ngpios: 82177f954fSAndrew Jeffery const: 232 83177f954fSAndrew Jeffery - if: 84177f954fSAndrew Jeffery properties: 85177f954fSAndrew Jeffery compatible: 86177f954fSAndrew Jeffery contains: 87177f954fSAndrew Jeffery const: aspeed,ast2600-gpio 88177f954fSAndrew Jeffery then: 89177f954fSAndrew Jeffery properties: 90177f954fSAndrew Jeffery gpio-line-names: 91177f954fSAndrew Jeffery minItems: 36 92177f954fSAndrew Jeffery maxItems: 208 93177f954fSAndrew Jeffery ngpios: 94177f954fSAndrew Jeffery enum: [ 36, 208 ] 95177f954fSAndrew Jeffery required: 96177f954fSAndrew Jeffery - ngpios 97*bef6959aSBilly Tsai - if: 98*bef6959aSBilly Tsai properties: 99*bef6959aSBilly Tsai compatible: 100*bef6959aSBilly Tsai contains: 101*bef6959aSBilly Tsai const: aspeed,ast2700-gpio 102*bef6959aSBilly Tsai then: 103*bef6959aSBilly Tsai properties: 104*bef6959aSBilly Tsai gpio-line-names: 105*bef6959aSBilly Tsai minItems: 12 106*bef6959aSBilly Tsai maxItems: 216 107*bef6959aSBilly Tsai ngpios: 108*bef6959aSBilly Tsai enum: [ 12, 216 ] 109*bef6959aSBilly Tsai required: 110*bef6959aSBilly Tsai - ngpios 111177f954fSAndrew Jeffery 112177f954fSAndrew JefferyadditionalProperties: false 113177f954fSAndrew Jeffery 114177f954fSAndrew Jefferyexamples: 115177f954fSAndrew Jeffery - | 116177f954fSAndrew Jeffery gpio@1e780000 { 117177f954fSAndrew Jeffery compatible = "aspeed,ast2400-gpio"; 118177f954fSAndrew Jeffery reg = <0x1e780000 0x1000>; 119177f954fSAndrew Jeffery interrupts = <20>; 120177f954fSAndrew Jeffery interrupt-controller; 121177f954fSAndrew Jeffery #interrupt-cells = <2>; 122177f954fSAndrew Jeffery gpio-controller; 123177f954fSAndrew Jeffery #gpio-cells = <2>; 124177f954fSAndrew Jeffery }; 125177f954fSAndrew Jeffery - | 126177f954fSAndrew Jeffery gpio: gpio@1e780000 { 127177f954fSAndrew Jeffery compatible = "aspeed,ast2500-gpio"; 128177f954fSAndrew Jeffery reg = <0x1e780000 0x200>; 129177f954fSAndrew Jeffery interrupts = <20>; 130177f954fSAndrew Jeffery interrupt-controller; 131177f954fSAndrew Jeffery #interrupt-cells = <2>; 132177f954fSAndrew Jeffery gpio-controller; 133177f954fSAndrew Jeffery #gpio-cells = <2>; 134177f954fSAndrew Jeffery gpio-ranges = <&pinctrl 0 0 232>; 135177f954fSAndrew Jeffery }; 136177f954fSAndrew Jeffery - | 137177f954fSAndrew Jeffery #include <dt-bindings/clock/ast2600-clock.h> 138177f954fSAndrew Jeffery #include <dt-bindings/interrupt-controller/arm-gic.h> 139177f954fSAndrew Jeffery #include <dt-bindings/interrupt-controller/irq.h> 140177f954fSAndrew Jeffery gpio0: gpio@1e780000 { 141177f954fSAndrew Jeffery compatible = "aspeed,ast2600-gpio"; 142177f954fSAndrew Jeffery reg = <0x1e780000 0x400>; 143177f954fSAndrew Jeffery clocks = <&syscon ASPEED_CLK_APB2>; 144177f954fSAndrew Jeffery interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 145177f954fSAndrew Jeffery interrupt-controller; 146177f954fSAndrew Jeffery #interrupt-cells = <2>; 147177f954fSAndrew Jeffery #gpio-cells = <2>; 148177f954fSAndrew Jeffery gpio-controller; 149177f954fSAndrew Jeffery gpio-ranges = <&pinctrl 0 0 208>; 150177f954fSAndrew Jeffery ngpios = <208>; 151177f954fSAndrew Jeffery }; 152177f954fSAndrew Jeffery gpio1: gpio@1e780800 { 153177f954fSAndrew Jeffery compatible = "aspeed,ast2600-gpio"; 154177f954fSAndrew Jeffery reg = <0x1e780800 0x800>; 155177f954fSAndrew Jeffery clocks = <&syscon ASPEED_CLK_APB1>; 156177f954fSAndrew Jeffery interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 157177f954fSAndrew Jeffery interrupt-controller; 158177f954fSAndrew Jeffery #interrupt-cells = <2>; 159177f954fSAndrew Jeffery gpio-controller; 160177f954fSAndrew Jeffery #gpio-cells = <2>; 161177f954fSAndrew Jeffery gpio-ranges = <&pinctrl 0 208 36>; 162177f954fSAndrew Jeffery ngpios = <36>; 163177f954fSAndrew Jeffery }; 164