xref: /linux/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.yaml (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1*8898cf86SRob Herring (Arm)# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8898cf86SRob Herring (Arm)%YAML 1.2
3*8898cf86SRob Herring (Arm)---
4*8898cf86SRob Herring (Arm)$id: http://devicetree.org/schemas/pinctrl/brcm,iproc-gpio.yaml#
5*8898cf86SRob Herring (Arm)$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8898cf86SRob Herring (Arm)
7*8898cf86SRob Herring (Arm)title: Broadcom iProc GPIO/PINCONF Controller
8*8898cf86SRob Herring (Arm)
9*8898cf86SRob Herring (Arm)maintainers:
10*8898cf86SRob Herring (Arm)  - Ray Jui <rjui@broadcom.com>
11*8898cf86SRob Herring (Arm)  - Scott Branden <sbranden@broadcom.com>
12*8898cf86SRob Herring (Arm)
13*8898cf86SRob Herring (Arm)properties:
14*8898cf86SRob Herring (Arm)  compatible:
15*8898cf86SRob Herring (Arm)    oneOf:
16*8898cf86SRob Herring (Arm)      - enum:
17*8898cf86SRob Herring (Arm)          - brcm,cygnus-asiu-gpio
18*8898cf86SRob Herring (Arm)          - brcm,cygnus-ccm-gpio
19*8898cf86SRob Herring (Arm)          - brcm,cygnus-crmu-gpio
20*8898cf86SRob Herring (Arm)          - brcm,iproc-gpio
21*8898cf86SRob Herring (Arm)          - brcm,iproc-stingray-gpio
22*8898cf86SRob Herring (Arm)      - items:
23*8898cf86SRob Herring (Arm)          - enum:
24*8898cf86SRob Herring (Arm)              - brcm,iproc-hr2-gpio
25*8898cf86SRob Herring (Arm)              - brcm,iproc-nsp-gpio
26*8898cf86SRob Herring (Arm)          - const: brcm,iproc-gpio
27*8898cf86SRob Herring (Arm)
28*8898cf86SRob Herring (Arm)  reg:
29*8898cf86SRob Herring (Arm)    minItems: 1
30*8898cf86SRob Herring (Arm)    items:
31*8898cf86SRob Herring (Arm)      - description: GPIO Bank registers
32*8898cf86SRob Herring (Arm)      - description: IO Ctrl registers
33*8898cf86SRob Herring (Arm)
34*8898cf86SRob Herring (Arm)  "#gpio-cells":
35*8898cf86SRob Herring (Arm)    const: 2
36*8898cf86SRob Herring (Arm)
37*8898cf86SRob Herring (Arm)  gpio-controller: true
38*8898cf86SRob Herring (Arm)
39*8898cf86SRob Herring (Arm)  gpio-ranges: true
40*8898cf86SRob Herring (Arm)
41*8898cf86SRob Herring (Arm)  ngpios: true
42*8898cf86SRob Herring (Arm)
43*8898cf86SRob Herring (Arm)  "#interrupt-cells":
44*8898cf86SRob Herring (Arm)    const: 2
45*8898cf86SRob Herring (Arm)
46*8898cf86SRob Herring (Arm)  interrupts:
47*8898cf86SRob Herring (Arm)    maxItems: 1
48*8898cf86SRob Herring (Arm)
49*8898cf86SRob Herring (Arm)  interrupt-controller: true
50*8898cf86SRob Herring (Arm)
51*8898cf86SRob Herring (Arm)required:
52*8898cf86SRob Herring (Arm)  - compatible
53*8898cf86SRob Herring (Arm)  - reg
54*8898cf86SRob Herring (Arm)  - "#gpio-cells"
55*8898cf86SRob Herring (Arm)  - gpio-controller
56*8898cf86SRob Herring (Arm)  - ngpios
57*8898cf86SRob Herring (Arm)
58*8898cf86SRob Herring (Arm)patternProperties:
59*8898cf86SRob Herring (Arm)  '-pins$':
60*8898cf86SRob Herring (Arm)    type: object
61*8898cf86SRob Herring (Arm)    additionalProperties:
62*8898cf86SRob Herring (Arm)      description: Pin configuration child nodes.
63*8898cf86SRob Herring (Arm)      allOf:
64*8898cf86SRob Herring (Arm)        - $ref: pincfg-node.yaml#
65*8898cf86SRob Herring (Arm)        - $ref: pinmux-node.yaml#
66*8898cf86SRob Herring (Arm)      additionalProperties: false
67*8898cf86SRob Herring (Arm)
68*8898cf86SRob Herring (Arm)      properties:
69*8898cf86SRob Herring (Arm)        pins:
70*8898cf86SRob Herring (Arm)          items:
71*8898cf86SRob Herring (Arm)            pattern: '^gpio-'
72*8898cf86SRob Herring (Arm)
73*8898cf86SRob Herring (Arm)        bias-disable: true
74*8898cf86SRob Herring (Arm)        bias-pull-up: true
75*8898cf86SRob Herring (Arm)        bias-pull-down: true
76*8898cf86SRob Herring (Arm)
77*8898cf86SRob Herring (Arm)        drive-strength:
78*8898cf86SRob Herring (Arm)          enum: [ 2, 4, 6, 8, 10, 12, 14, 16 ]
79*8898cf86SRob Herring (Arm)
80*8898cf86SRob Herring (Arm)      required:
81*8898cf86SRob Herring (Arm)        - pins
82*8898cf86SRob Herring (Arm)
83*8898cf86SRob Herring (Arm)additionalProperties: false
84*8898cf86SRob Herring (Arm)
85*8898cf86SRob Herring (Arm)examples:
86*8898cf86SRob Herring (Arm)  - |
87*8898cf86SRob Herring (Arm)    #include <dt-bindings/interrupt-controller/arm-gic.h>
88*8898cf86SRob Herring (Arm)
89*8898cf86SRob Herring (Arm)    gpio@1800a000 {
90*8898cf86SRob Herring (Arm)        compatible = "brcm,cygnus-ccm-gpio";
91*8898cf86SRob Herring (Arm)        reg = <0x1800a000 0x50>,
92*8898cf86SRob Herring (Arm)              <0x0301d164 0x20>;
93*8898cf86SRob Herring (Arm)        ngpios = <24>;
94*8898cf86SRob Herring (Arm)        #gpio-cells = <2>;
95*8898cf86SRob Herring (Arm)        gpio-controller;
96*8898cf86SRob Herring (Arm)        #interrupt-cells = <2>;
97*8898cf86SRob Herring (Arm)        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
98*8898cf86SRob Herring (Arm)        interrupt-controller;
99*8898cf86SRob Herring (Arm)
100*8898cf86SRob Herring (Arm)        touch-pins {
101*8898cf86SRob Herring (Arm)            pwr {
102*8898cf86SRob Herring (Arm)                pins = "gpio-0";
103*8898cf86SRob Herring (Arm)                drive-strength = <16>;
104*8898cf86SRob Herring (Arm)            };
105*8898cf86SRob Herring (Arm)
106*8898cf86SRob Herring (Arm)            event {
107*8898cf86SRob Herring (Arm)                pins = "gpio-1";
108*8898cf86SRob Herring (Arm)                bias-pull-up;
109*8898cf86SRob Herring (Arm)            };
110*8898cf86SRob Herring (Arm)        };
111*8898cf86SRob Herring (Arm)    };
112