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