1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/gpio/loongson,ls-gpio.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Loongson GPIO controller. 8 9maintainers: 10 - Yinbo Zhu <zhuyinbo@loongson.cn> 11 12properties: 13 compatible: 14 oneOf: 15 - enum: 16 - loongson,ls2k-gpio 17 - loongson,ls2k0300-gpio 18 - loongson,ls2k0500-gpio0 19 - loongson,ls2k0500-gpio1 20 - loongson,ls2k2000-gpio0 21 - loongson,ls2k2000-gpio1 22 - loongson,ls2k2000-gpio2 23 - loongson,ls3a5000-gpio 24 - loongson,ls3a6000-gpio # Loongson-3A6000 node GPIO 25 - loongson,ls7a-gpio 26 - loongson,ls7a2000-gpio1 # LS7A2000 chipset GPIO 27 - loongson,ls7a2000-gpio2 # LS7A2000 ACPI GPIO 28 - items: 29 - const: loongson,ls2k1000-gpio 30 - const: loongson,ls2k-gpio 31 - items: 32 - const: loongson,ls7a1000-gpio 33 - const: loongson,ls7a-gpio 34 35 reg: 36 maxItems: 1 37 38 ngpios: 39 minimum: 1 40 maximum: 128 41 42 "#gpio-cells": 43 const: 2 44 45 gpio-controller: true 46 47 gpio-ranges: true 48 49 interrupts: 50 minItems: 1 51 maxItems: 64 52 53 "#interrupt-cells": 54 const: 2 55 56 interrupt-controller: true 57 58 resets: 59 maxItems: 1 60 61required: 62 - compatible 63 - reg 64 - ngpios 65 - "#gpio-cells" 66 - gpio-controller 67 - gpio-ranges 68 - interrupts 69 70allOf: 71 - if: 72 properties: 73 compatible: 74 contains: 75 const: loongson,ls2k0300-gpio 76 then: 77 required: 78 - "#interrupt-cells" 79 - interrupt-controller 80 - resets 81 else: 82 properties: 83 "#interrupts-cells": false 84 interrupt-controller: false 85 resets: false 86 87additionalProperties: false 88 89examples: 90 - | 91 #include <dt-bindings/interrupt-controller/irq.h> 92 93 gpio0: gpio@1fe00500 { 94 compatible = "loongson,ls2k1000-gpio", "loongson,ls2k-gpio"; 95 reg = <0x1fe00500 0x38>; 96 ngpios = <64>; 97 #gpio-cells = <2>; 98 gpio-controller; 99 gpio-ranges = <&pctrl 0 0 15>, 100 <&pctrl 16 16 15>, 101 <&pctrl 32 32 10>, 102 <&pctrl 44 44 20>; 103 interrupt-parent = <&liointc1>; 104 interrupts = <28 IRQ_TYPE_LEVEL_LOW>, 105 <29 IRQ_TYPE_LEVEL_LOW>, 106 <30 IRQ_TYPE_LEVEL_LOW>, 107 <30 IRQ_TYPE_LEVEL_LOW>, 108 <26 IRQ_TYPE_LEVEL_LOW>, 109 <26 IRQ_TYPE_LEVEL_LOW>, 110 <26 IRQ_TYPE_LEVEL_LOW>, 111 <26 IRQ_TYPE_LEVEL_LOW>, 112 <26 IRQ_TYPE_LEVEL_LOW>, 113 <26 IRQ_TYPE_LEVEL_LOW>, 114 <26 IRQ_TYPE_LEVEL_LOW>, 115 <26 IRQ_TYPE_LEVEL_LOW>, 116 <26 IRQ_TYPE_LEVEL_LOW>, 117 <26 IRQ_TYPE_LEVEL_LOW>, 118 <26 IRQ_TYPE_LEVEL_LOW>, 119 <>, 120 <26 IRQ_TYPE_LEVEL_LOW>, 121 <26 IRQ_TYPE_LEVEL_LOW>, 122 <26 IRQ_TYPE_LEVEL_LOW>, 123 <26 IRQ_TYPE_LEVEL_LOW>, 124 <26 IRQ_TYPE_LEVEL_LOW>, 125 <26 IRQ_TYPE_LEVEL_LOW>, 126 <26 IRQ_TYPE_LEVEL_LOW>, 127 <26 IRQ_TYPE_LEVEL_LOW>, 128 <26 IRQ_TYPE_LEVEL_LOW>, 129 <26 IRQ_TYPE_LEVEL_LOW>, 130 <26 IRQ_TYPE_LEVEL_LOW>, 131 <26 IRQ_TYPE_LEVEL_LOW>, 132 <26 IRQ_TYPE_LEVEL_LOW>, 133 <26 IRQ_TYPE_LEVEL_LOW>, 134 <26 IRQ_TYPE_LEVEL_LOW>, 135 <26 IRQ_TYPE_LEVEL_LOW>, 136 <27 IRQ_TYPE_LEVEL_LOW>, 137 <27 IRQ_TYPE_LEVEL_LOW>, 138 <27 IRQ_TYPE_LEVEL_LOW>, 139 <27 IRQ_TYPE_LEVEL_LOW>, 140 <27 IRQ_TYPE_LEVEL_LOW>, 141 <>, 142 <27 IRQ_TYPE_LEVEL_LOW>, 143 <27 IRQ_TYPE_LEVEL_LOW>, 144 <27 IRQ_TYPE_LEVEL_LOW>, 145 <27 IRQ_TYPE_LEVEL_LOW>, 146 <>, 147 <>, 148 <27 IRQ_TYPE_LEVEL_LOW>, 149 <27 IRQ_TYPE_LEVEL_LOW>, 150 <27 IRQ_TYPE_LEVEL_LOW>, 151 <27 IRQ_TYPE_LEVEL_LOW>, 152 <27 IRQ_TYPE_LEVEL_LOW>, 153 <27 IRQ_TYPE_LEVEL_LOW>, 154 <27 IRQ_TYPE_LEVEL_LOW>, 155 <27 IRQ_TYPE_LEVEL_LOW>, 156 <27 IRQ_TYPE_LEVEL_LOW>, 157 <27 IRQ_TYPE_LEVEL_LOW>, 158 <27 IRQ_TYPE_LEVEL_LOW>, 159 <27 IRQ_TYPE_LEVEL_LOW>, 160 <27 IRQ_TYPE_LEVEL_LOW>, 161 <27 IRQ_TYPE_LEVEL_LOW>, 162 <27 IRQ_TYPE_LEVEL_LOW>, 163 <27 IRQ_TYPE_LEVEL_LOW>, 164 <27 IRQ_TYPE_LEVEL_LOW>, 165 <27 IRQ_TYPE_LEVEL_LOW>, 166 <27 IRQ_TYPE_LEVEL_LOW>, 167 <27 IRQ_TYPE_LEVEL_LOW>; 168 }; 169