Commit 2604f316 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Florian Fainelli
Browse files

dt-bindings: arm: bcm: raspberrypi,bcm2835-firmware: Add gpio child node

Unlike the other child nodes of the raspberrypi,bcm2835-firmware device,
the gpio child is documented in a legacy text-based binding in
gpio/raspberrypi,firmware-gpio.txt. This causes DT validation failures:

arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb: 'gpio' does not match any of the regexes: 'pinctrl-[0-9]+'
        from schema $id: http://devicetree.org/schemas/arm/bcm/raspberrypi,bcm2835-firmware.yaml#



Convert the binding to YAML and move it to
raspberrypi,bcm2835-firmware.yaml.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarStefan Wahren <wahrenst@gmx.net>
Tested-by: default avatarIvan T. Ivanov <iivanov@suse.de>
Link: https://lore.kernel.org/r/20240326195807.15163-2-laurent.pinchart@ideasonboard.com


Signed-off-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
parent 4cece764
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -46,6 +46,30 @@ properties:
      - compatible
      - "#clock-cells"

  gpio:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: raspberrypi,firmware-gpio

      gpio-controller: true

      "#gpio-cells":
        const: 2
        description:
          The first cell is the pin number, and the second cell is used to
          specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).

      gpio-line-names:
        minItems: 8

    required:
      - compatible
      - gpio-controller
      - "#gpio-cells"

  reset:
    type: object
    additionalProperties: false
@@ -96,6 +120,12 @@ examples:
            #clock-cells = <1>;
        };

        expgpio: gpio {
            compatible = "raspberrypi,firmware-gpio";
            gpio-controller;
            #gpio-cells = <2>;
        };

        reset: reset {
            compatible = "raspberrypi,firmware-reset";
            #reset-cells = <1>;
+0 −30
Original line number Diff line number Diff line
Raspberry Pi GPIO expander

The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware. The
firmware exposes a mailbox interface that allows the ARM core to control the
GPIO lines on the expander.

The Raspberry Pi GPIO expander node must be a child node of the Raspberry Pi
firmware node.

Required properties:

- compatible : Should be "raspberrypi,firmware-gpio"
- gpio-controller : Marks the device node as a gpio controller
- #gpio-cells : Should be two.  The first cell is the pin number, and
  the second cell is used to specify the gpio polarity:
  0 = active high
  1 = active low

Example:

firmware: firmware-rpi {
	compatible = "raspberrypi,bcm2835-firmware";
	mboxes = <&mailbox>;

	expgpio: gpio {
		 compatible = "raspberrypi,firmware-gpio";
		 gpio-controller;
		 #gpio-cells = <2>;
	 };
};