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-controller: true 50 51required: 52 - compatible 53 - reg 54 - interrupts 55 - interrupt-controller 56 - "#interrupt-cells" 57 - "#gpio-cells" 58 - gpio-controller 59 60if: 61 properties: 62 compatible: 63 contains: 64 enum: 65 - sifive,fu540-c000-gpio 66 - sifive,fu740-c000-gpio 67then: 68 required: 69 - clocks 70 71additionalProperties: false 72 73examples: 74 - | 75 #include <dt-bindings/clock/sifive-fu540-prci.h> 76 gpio@10060000 { 77 compatible = "sifive,fu540-c000-gpio", "sifive,gpio0"; 78 interrupt-parent = <&plic>; 79 interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>, 80 <17>, <18>, <19>, <20>, <21>, <22>; 81 reg = <0x10060000 0x1000>; 82 clocks = <&tlclk FU540_PRCI_CLK_TLCLK>; 83 gpio-controller; 84 #gpio-cells = <2>; 85 interrupt-controller; 86 #interrupt-cells = <2>; 87 }; 88 89... 90