1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/gpio/sifive,gpio.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: SiFive GPIO controller 8 9maintainers: 10 - Paul Walmsley <paul.walmsley@sifive.com> 11 12properties: 13 compatible: 14 items: 15 - enum: 16 - sifive,fu540-c000-gpio 17 - sifive,fu740-c000-gpio 18 - canaan,k210-gpiohs 19 - const: sifive,gpio0 20 21 reg: 22 maxItems: 1 23 24 interrupts: 25 description: 26 Interrupt mapping, one per GPIO. Maximum 32 GPIOs. 27 minItems: 1 28 maxItems: 32 29 30 interrupt-controller: true 31 32 "#interrupt-cells": 33 const: 2 34 35 clocks: 36 maxItems: 1 37 38 "#gpio-cells": 39 const: 2 40 41 ngpios: 42 description: 43 The number of GPIOs available on the controller implementation. 44 It is 16 for the SiFive SoCs and 32 for the Canaan K210. 45 minimum: 1 46 maximum: 32 47 default: 16 48 49 gpio-line-names: 50 minItems: 1 51 maxItems: 32 52 53 gpio-controller: true 54 55required: 56 - compatible 57 - reg 58 - interrupts 59 - interrupt-controller 60 - "#interrupt-cells" 61 - "#gpio-cells" 62 - gpio-controller 63 64if: 65 properties: 66 compatible: 67 contains: 68 enum: 69 - sifive,fu540-c000-gpio 70 - sifive,fu740-c000-gpio 71then: 72 required: 73 - clocks 74 75additionalProperties: false 76 77examples: 78 - | 79 #include <dt-bindings/clock/sifive-fu540-prci.h> 80 gpio@10060000 { 81 compatible = "sifive,fu540-c000-gpio", "sifive,gpio0"; 82 interrupt-parent = <&plic>; 83 interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>, 84 <17>, <18>, <19>, <20>, <21>, <22>; 85 reg = <0x10060000 0x1000>; 86 clocks = <&tlclk FU540_PRCI_CLK_TLCLK>; 87 gpio-controller; 88 #gpio-cells = <2>; 89 interrupt-controller; 90 #interrupt-cells = <2>; 91 }; 92 93... 94