Commit b0c48861 authored by Stanislav Jakubek's avatar Stanislav Jakubek Committed by Bartosz Golaszewski
Browse files

dt-bindings: gpio: brcm,kona-gpio: convert to YAML



Convert Broadcom Kona family GPIO controller bindings to DT schema.

Changes during conversion:
  - add used, but previously undocumented SoC-specific compatibles

Signed-off-by: default avatarStanislav Jakubek <stano.jakubek@gmail.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 5f57665a
Loading
Loading
Loading
Loading
+0 −52
Original line number Diff line number Diff line
Broadcom Kona Family GPIO
=========================

This GPIO driver is used in the following Broadcom SoCs:
  BCM11130, BCM11140, BCM11351, BCM28145, BCM28155

The Broadcom GPIO Controller IP can be configured prior to synthesis to
support up to 8 banks of 32 GPIOs where each bank has its own IRQ. The
GPIO controller only supports edge, not level, triggering of interrupts.

Required properties
-------------------

- compatible: "brcm,bcm11351-gpio", "brcm,kona-gpio"
- reg: Physical base address and length of the controller's registers.
- interrupts: The interrupt outputs from the controller. There is one GPIO
  interrupt per GPIO bank. The number of interrupts listed depends on the
  number of GPIO banks on the SoC. The interrupts must be ordered by bank,
  starting with bank 0. There is always a 1:1 mapping between banks and
  IRQs.
- #gpio-cells: Should be <2>. The first cell is the pin number, the second
  cell is used to specify optional parameters:
  - bit 0 specifies polarity (0 for normal, 1 for inverted)
  See also "gpio-specifier" in .../devicetree/bindings/gpio/gpio.txt.
- #interrupt-cells: Should be <2>. The first cell is the GPIO number. The
  second cell is used to specify flags. The following subset of flags is
  supported:
  - trigger type (bits[1:0]):
      1 = low-to-high edge triggered.
      2 = high-to-low edge triggered.
      3 = low-to-high or high-to-low edge triggered
      Valid values are 1, 2, 3
  See also .../devicetree/bindings/interrupt-controller/interrupts.txt.
- gpio-controller: Marks the device node as a GPIO controller.
- interrupt-controller: Marks the device node as an interrupt controller.

Example:
	gpio: gpio@35003000 {
		compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio";
		reg = <0x35003000 0x800>;
		interrupts =
		       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH
			GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH
			GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH
			GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
			GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH
			GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
		#gpio-cells = <2>;
		#interrupt-cells = <2>;
		gpio-controller;
		interrupt-controller;
	};
+100 −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,kona-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom Kona family GPIO controller

description:
  The Broadcom GPIO Controller IP can be configured prior to synthesis to
  support up to 8 banks of 32 GPIOs where each bank has its own IRQ. The
  GPIO controller only supports edge, not level, triggering of interrupts.

maintainers:
  - Ray Jui <rjui@broadcom.com>

properties:
  compatible:
    items:
      - enum:
          - brcm,bcm11351-gpio
          - brcm,bcm21664-gpio
          - brcm,bcm23550-gpio
      - const: brcm,kona-gpio

  reg:
    maxItems: 1

  interrupts:
    minItems: 4
    maxItems: 6
    description:
      The interrupt outputs from the controller. There is one GPIO interrupt
      per GPIO bank. The number of interrupts listed depends on the number of
      GPIO banks on the SoC. The interrupts must be ordered by bank, starting
      with bank 0. There is always a 1:1 mapping between banks and IRQs.

  '#gpio-cells':
    const: 2

  '#interrupt-cells':
    const: 2

  gpio-controller: true

  interrupt-controller: true

required:
  - compatible
  - reg
  - interrupts
  - '#gpio-cells'
  - '#interrupt-cells'
  - gpio-controller
  - interrupt-controller

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: brcm,bcm11351-gpio
    then:
      properties:
        interrupts:
          minItems: 6
  - if:
      properties:
        compatible:
          contains:
            enum:
              - brcm,bcm21664-gpio
              - brcm,bcm23550-gpio
    then:
      properties:
        interrupts:
          maxItems: 4

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    gpio@35003000 {
        compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio";
        reg = <0x35003000 0x800>;
        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
        #gpio-cells = <2>;
        #interrupt-cells = <2>;
        gpio-controller;
        interrupt-controller;
    };
...
+1 −1
Original line number Diff line number Diff line
@@ -4187,7 +4187,7 @@ BROADCOM KONA GPIO DRIVER
M:	Ray Jui <rjui@broadcom.com>
R:	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
S:	Supported
F:	Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
F:	Documentation/devicetree/bindings/gpio/brcm,kona-gpio.yaml
F:	drivers/gpio/gpio-bcm-kona.c
BROADCOM MPI3 STORAGE CONTROLLER DRIVER