dt-bindings: gpio: cdns: convert to YAML

Convert Cadence family GPIO controller bindings to DT schema.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Harshit Shah
2025-07-22 13:15:31 -07:00
committed by Arnd Bergmann
parent c1fbbb76ec
commit 36f4223449
2 changed files with 79 additions and 43 deletions

View File

@@ -1,43 +0,0 @@
Cadence GPIO controller bindings
Required properties:
- compatible: should be "cdns,gpio-r1p02".
- reg: the register base address and size.
- #gpio-cells: should be 2.
* first cell is the GPIO number.
* second cell specifies the GPIO flags, as defined in
<dt-bindings/gpio/gpio.h>. Only the GPIO_ACTIVE_HIGH
and GPIO_ACTIVE_LOW flags are supported.
- gpio-controller: marks the device as a GPIO controller.
- clocks: should contain one entry referencing the peripheral clock driving
the GPIO controller.
Optional properties:
- ngpios: integer number of gpio lines supported by this controller, up to 32.
- interrupts: interrupt specifier for the controllers interrupt.
- interrupt-controller: marks the device as an interrupt controller. When
defined, interrupts, interrupt-parent and #interrupt-cells
are required.
- interrupt-cells: should be 2.
* first cell is the GPIO number you want to use as an IRQ source.
* second cell specifies the IRQ type, as defined in
<dt-bindings/interrupt-controller/irq.h>.
Currently only level sensitive IRQs are supported.
Example:
gpio0: gpio-controller@fd060000 {
compatible = "cdns,gpio-r1p02";
reg =<0xfd060000 0x1000>;
clocks = <&gpio_clk>;
interrupt-parent = <&gic>;
interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

View File

@@ -0,0 +1,79 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/cdns,gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cadence GPIO Controller
maintainers:
- Jan Kotas <jank@cadence.com>
properties:
compatible:
const: cdns,gpio-r1p02
reg:
maxItems: 1
clocks:
maxItems: 1
ngpios:
minimum: 1
maximum: 32
gpio-controller: true
"#gpio-cells":
const: 2
description: |
- First cell is the GPIO line number.
- Second cell is flags as defined in <dt-bindings/gpio/gpio.h>,
only GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW supported.
interrupt-controller: true
"#interrupt-cells":
const: 2
description: |
- First cell is the GPIO line number used as IRQ.
- Second cell is the trigger type, as defined in
<dt-bindings/interrupt-controller/irq.h>.
interrupts:
maxItems: 1
required:
- compatible
- reg
- clocks
- gpio-controller
- "#gpio-cells"
if:
required: [interrupt-controller]
then:
required:
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
gpio0: gpio-controller@fd060000 {
compatible = "cdns,gpio-r1p02";
reg = <0xfd060000 0x1000>;
clocks = <&gpio_clk>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};