| 
     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 
    7 title: SiFive GPIO controller
    8 
    9 maintainers:
   10   - Paul Walmsley <paul.walmsley@sifive.com>
   11 
   12 properties:
   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 
   55 required:
   56   - compatible
   57   - reg
   58   - interrupts
   59   - interrupt-controller
   60   - "#interrupt-cells"
   61   - "#gpio-cells"
   62   - gpio-controller
   63 
   64 if:
   65   properties:
   66     compatible:
   67       contains:
   68         enum:
   69           - sifive,fu540-c000-gpio
   70           - sifive,fu740-c000-gpio
   71 then:
   72   required:
   73     - clocks
   74 
   75 additionalProperties: false
   76 
   77 examples:
   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 ...
Cache object: a9986e730e04777acbd131b239e15b34 
 
 |