Commit fb9da17b authored by Álvaro Fernández Rojas's avatar Álvaro Fernández Rojas Committed by Linus Walleij
Browse files

dt-bindings: improve BCM6345 GPIO binding documentation



Convert existing BCM6345 GPIO binding documentation to YAML and add binding
documentation for the GPIO controller found in BCM6318, BCM6328, BCM6358,
BCM6362, BCM6368 and BCM63268 SoCs.

Co-developed-by: default avatarJonas Gorski <jonas.gorski@gmail.com>
Signed-off-by: default avatarJonas Gorski <jonas.gorski@gmail.com>
Signed-off-by: default avatarÁlvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210324081923.20379-4-noltari@gmail.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent d46bf9ec
Loading
Loading
Loading
Loading
+0 −46
Original line number Diff line number Diff line
Bindings for the Broadcom's brcm,bcm6345-gpio memory-mapped GPIO controllers.

These bindings can be used on any BCM63xx SoC. However, BCM6338 and BCM6345
are the only ones which don't need a pinctrl driver.
BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
and/or written, and the direction changed from input to output.
BCM6345 have 16-bit data and dirout registers, where GPIO state can be read
and/or written, and the direction changed from input to output.

Required properties:
	- compatible: should be "brcm,bcm6345-gpio"
	- reg-names: must contain
		"dat" - data register
		"dirout" - direction (output) register
	- reg: address + size pairs describing the GPIO register sets;
		order must correspond with the order of entries in reg-names
	- #gpio-cells: must be set to 2. The first cell is the pin number and
			the second cell is used to specify the gpio polarity:
			0 = active high
			1 = active low
	- gpio-controller: Marks the device node as a gpio controller.

Optional properties:
	- native-endian: use native endian memory.

Examples:
	- BCM6338:
	gpio: gpio-controller@fffe0407 {
		compatible = "brcm,bcm6345-gpio";
		reg-names = "dirout", "dat";
		reg = <0xfffe0407 1>, <0xfffe040f 1>;

		#gpio-cells = <2>;
		gpio-controller;
	};

	- BCM6345:
	gpio: gpio-controller@fffe0406 {
		compatible = "brcm,bcm6345-gpio";
		reg-names = "dirout", "dat";
		reg = <0xfffe0406 2>, <0xfffe040a 2>;
		native-endian;

		#gpio-cells = <2>;
		gpio-controller;
	};
+86 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/brcm,bcm6345-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM6345 GPIO controller

maintainers:
  - Álvaro Fernández Rojas <noltari@gmail.com>
  - Jonas Gorski <jonas.gorski@gmail.com>

description: |+
  Bindings for Broadcom's BCM63xx memory-mapped GPIO controllers.

  These bindings can be used on any BCM63xx SoC. However, BCM6338 and BCM6345
  are the only ones which don't need a pinctrl driver.

  BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
  and/or written, and the direction changed from input to output.
  BCM6345 have 16-bit data and dirout registers, where GPIO state can be read
  and/or written, and the direction changed from input to output.
  BCM6318, BCM6328, BCM6358, BCM6362, BCM6368 and BCM63268 have 32-bit data
  and dirout registers, where GPIO state can be read and/or written, and the
  direction changed from input to output.

properties:
  compatible:
    enum:
      - brcm,bcm6318-gpio
      - brcm,bcm6328-gpio
      - brcm,bcm6345-gpio
      - brcm,bcm6358-gpio
      - brcm,bcm6362-gpio
      - brcm,bcm6368-gpio
      - brcm,bcm63268-gpio

  gpio-controller: true

  "#gpio-cells":
    const: 2

  gpio-ranges:
    maxItems: 1

  native-endian: true

  reg:
    maxItems: 2

  reg-names:
    items:
      - const: dirout
      - const: dat

required:
  - compatible
  - reg
  - reg-names
  - gpio-controller
  - '#gpio-cells'

additionalProperties: false

examples:
  - |
    gpio@fffe0406 {
      compatible = "brcm,bcm6345-gpio";
      reg-names = "dirout", "dat";
      reg = <0xfffe0406 2>, <0xfffe040a 2>;
      native-endian;

      gpio-controller;
      #gpio-cells = <2>;
    };

  - |
    gpio@0 {
      compatible = "brcm,bcm63268-gpio";
      reg-names = "dirout", "dat";
      reg = <0x0 0x8>, <0x8 0x8>;

      gpio-controller;
      gpio-ranges = <&pinctrl 0 0 52>;
      #gpio-cells = <2>;
    };