94 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/gpio/sifive,gpio.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: SiFive GPIO controller8 9maintainers:10 - Paul Walmsley <paul.walmsley@sifive.com>11 12properties:13 compatible:14 items:15 - enum:16 - sifive,fu540-c000-gpio17 - sifive,fu740-c000-gpio18 - canaan,k210-gpiohs19 - const: sifive,gpio020 21 reg:22 maxItems: 123 24 interrupts:25 description:26 Interrupt mapping, one per GPIO. Maximum 32 GPIOs.27 minItems: 128 maxItems: 3229 30 interrupt-controller: true31 32 "#interrupt-cells":33 const: 234 35 clocks:36 maxItems: 137 38 "#gpio-cells":39 const: 240 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: 146 maximum: 3247 default: 1648 49 gpio-line-names:50 minItems: 151 maxItems: 3252 53 gpio-controller: true54 55required:56 - compatible57 - reg58 - interrupts59 - interrupt-controller60 - "#interrupt-cells"61 - "#gpio-cells"62 - gpio-controller63 64if:65 properties:66 compatible:67 contains:68 enum:69 - sifive,fu540-c000-gpio70 - sifive,fu740-c000-gpio71then:72 required:73 - clocks74 75additionalProperties: false76 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