xref: /linux/Documentation/devicetree/bindings/gpio/brcm,bcm63xx-gpio.yaml (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*1c23553aSSean Anderson# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*1c23553aSSean Anderson%YAML 1.2
3*1c23553aSSean Anderson---
4*1c23553aSSean Anderson$id: http://devicetree.org/schemas/gpio/brcm,bcm63xx-gpio.yaml#
5*1c23553aSSean Anderson$schema: http://devicetree.org/meta-schemas/core.yaml#
6*1c23553aSSean Anderson
7*1c23553aSSean Andersontitle: Broadcom BCM63xx GPIO controller
8*1c23553aSSean Anderson
9*1c23553aSSean Andersonmaintainers:
10*1c23553aSSean Anderson  - Álvaro Fernández Rojas <noltari@gmail.com>
11*1c23553aSSean Anderson  - Jonas Gorski <jonas.gorski@gmail.com>
12*1c23553aSSean Anderson
13*1c23553aSSean Andersondescription: |+
14*1c23553aSSean Anderson  Bindings for Broadcom's BCM63xx memory-mapped GPIO controllers.
15*1c23553aSSean Anderson
16*1c23553aSSean Anderson  These bindings can be used on any BCM63xx SoC. However, BCM6338 and BCM6345
17*1c23553aSSean Anderson  are the only ones which don't need a pinctrl driver.
18*1c23553aSSean Anderson
19*1c23553aSSean Anderson  BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
20*1c23553aSSean Anderson  and/or written, and the direction changed from input to output.
21*1c23553aSSean Anderson  BCM6318, BCM6328, BCM6358, BCM6362, BCM6368 and BCM63268 have 32-bit data
22*1c23553aSSean Anderson  and dirout registers, where GPIO state can be read and/or written, and the
23*1c23553aSSean Anderson  direction changed from input to output.
24*1c23553aSSean Anderson
25*1c23553aSSean Andersonproperties:
26*1c23553aSSean Anderson  compatible:
27*1c23553aSSean Anderson    enum:
28*1c23553aSSean Anderson      - brcm,bcm6318-gpio
29*1c23553aSSean Anderson      - brcm,bcm6328-gpio
30*1c23553aSSean Anderson      - brcm,bcm6358-gpio
31*1c23553aSSean Anderson      - brcm,bcm6362-gpio
32*1c23553aSSean Anderson      - brcm,bcm6368-gpio
33*1c23553aSSean Anderson      - brcm,bcm63268-gpio
34*1c23553aSSean Anderson
35*1c23553aSSean Anderson  gpio-controller: true
36*1c23553aSSean Anderson
37*1c23553aSSean Anderson  "#gpio-cells":
38*1c23553aSSean Anderson    const: 2
39*1c23553aSSean Anderson
40*1c23553aSSean Anderson  gpio-ranges:
41*1c23553aSSean Anderson    maxItems: 1
42*1c23553aSSean Anderson
43*1c23553aSSean Anderson  native-endian: true
44*1c23553aSSean Anderson
45*1c23553aSSean Anderson  reg:
46*1c23553aSSean Anderson    maxItems: 2
47*1c23553aSSean Anderson
48*1c23553aSSean Anderson  reg-names:
49*1c23553aSSean Anderson    items:
50*1c23553aSSean Anderson      - const: dirout
51*1c23553aSSean Anderson      - const: dat
52*1c23553aSSean Anderson
53*1c23553aSSean Andersonrequired:
54*1c23553aSSean Anderson  - compatible
55*1c23553aSSean Anderson  - reg
56*1c23553aSSean Anderson  - reg-names
57*1c23553aSSean Anderson  - gpio-controller
58*1c23553aSSean Anderson  - '#gpio-cells'
59*1c23553aSSean Anderson
60*1c23553aSSean AndersonadditionalProperties: false
61*1c23553aSSean Anderson
62*1c23553aSSean Andersonexamples:
63*1c23553aSSean Anderson  - |
64*1c23553aSSean Anderson    gpio@0 {
65*1c23553aSSean Anderson      compatible = "brcm,bcm63268-gpio";
66*1c23553aSSean Anderson      reg-names = "dirout", "dat";
67*1c23553aSSean Anderson      reg = <0x0 0x8>, <0x8 0x8>;
68*1c23553aSSean Anderson
69*1c23553aSSean Anderson      gpio-controller;
70*1c23553aSSean Anderson      gpio-ranges = <&pinctrl 0 0 52>;
71*1c23553aSSean Anderson      #gpio-cells = <2>;
72*1c23553aSSean Anderson    };
73