162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/brcm,bcm63xx-gpio.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Broadcom BCM63xx GPIO controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Álvaro Fernández Rojas <noltari@gmail.com>
1162306a36Sopenharmony_ci  - Jonas Gorski <jonas.gorski@gmail.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |+
1462306a36Sopenharmony_ci  Bindings for Broadcom's BCM63xx memory-mapped GPIO controllers.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  These bindings can be used on any BCM63xx SoC. However, BCM6338 and BCM6345
1762306a36Sopenharmony_ci  are the only ones which don't need a pinctrl driver.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
2062306a36Sopenharmony_ci  and/or written, and the direction changed from input to output.
2162306a36Sopenharmony_ci  BCM6318, BCM6328, BCM6358, BCM6362, BCM6368 and BCM63268 have 32-bit data
2262306a36Sopenharmony_ci  and dirout registers, where GPIO state can be read and/or written, and the
2362306a36Sopenharmony_ci  direction changed from input to output.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciproperties:
2662306a36Sopenharmony_ci  compatible:
2762306a36Sopenharmony_ci    enum:
2862306a36Sopenharmony_ci      - brcm,bcm6318-gpio
2962306a36Sopenharmony_ci      - brcm,bcm6328-gpio
3062306a36Sopenharmony_ci      - brcm,bcm6358-gpio
3162306a36Sopenharmony_ci      - brcm,bcm6362-gpio
3262306a36Sopenharmony_ci      - brcm,bcm6368-gpio
3362306a36Sopenharmony_ci      - brcm,bcm63268-gpio
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  gpio-controller: true
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  "#gpio-cells":
3862306a36Sopenharmony_ci    const: 2
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  gpio-ranges:
4162306a36Sopenharmony_ci    maxItems: 1
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  native-endian: true
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  reg:
4662306a36Sopenharmony_ci    maxItems: 2
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci  reg-names:
4962306a36Sopenharmony_ci    items:
5062306a36Sopenharmony_ci      - const: dirout
5162306a36Sopenharmony_ci      - const: dat
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_cirequired:
5462306a36Sopenharmony_ci  - compatible
5562306a36Sopenharmony_ci  - reg
5662306a36Sopenharmony_ci  - reg-names
5762306a36Sopenharmony_ci  - gpio-controller
5862306a36Sopenharmony_ci  - '#gpio-cells'
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciadditionalProperties: false
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciexamples:
6362306a36Sopenharmony_ci  - |
6462306a36Sopenharmony_ci    gpio@0 {
6562306a36Sopenharmony_ci      compatible = "brcm,bcm63268-gpio";
6662306a36Sopenharmony_ci      reg-names = "dirout", "dat";
6762306a36Sopenharmony_ci      reg = <0x0 0x8>, <0x8 0x8>;
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci      gpio-controller;
7062306a36Sopenharmony_ci      gpio-ranges = <&pinctrl 0 0 52>;
7162306a36Sopenharmony_ci      #gpio-cells = <2>;
7262306a36Sopenharmony_ci    };
73