dt-bindings: serial: Convert marvell,armada-3700-uart to DT schema

Convert the Marvell Armada-3700 UART binding to DT schema. It is a
straight-forward conversion.

Drop the long deprecated single interrupt support.

Signed-off-by: "Rob Herring (Arm)" <robh@kernel.org>
Link: https://lore.kernel.org/r/20250507154408.1595932-1-robh@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Rob Herring (Arm) 2025-05-07 10:44:02 -05:00 committed by Greg Kroah-Hartman
parent 6f5ff13bbc
commit 2446bd692e
3 changed files with 103 additions and 57 deletions

View File

@ -0,0 +1,102 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/marvell,armada-3700-uart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Marvell Armada-3700 UART
maintainers:
- Pali Rohár <pali@kernel.org>
description:
Marvell UART is a non standard UART used in some of Marvell EBU SoCs (e.g.
Armada-3700).
properties:
compatible:
enum:
- marvell,armada-3700-uart
- marvell,armada-3700-uart-ext
reg:
maxItems: 1
clocks:
maxItems: 1
description:
UART reference clock used to derive the baud rate. If absent, only fixed
baud rate from the bootloader is supported.
interrupts:
minItems: 2
items:
- description: UART sum interrupt
- description: UART TX interrupt
- description: UART RX interrupt
interrupt-names:
minItems: 2
maxItems: 3
required:
- compatible
- reg
- interrupts
- interrupt-names
unevaluatedProperties: false
allOf:
- $ref: /schemas/serial/serial.yaml#
- if:
properties:
compatible:
const: marvell,armada-3700-uart-ext
then:
properties:
interrupts:
maxItems: 2
interrupt-names:
items:
- const: uart-tx
- const: uart-rx
else:
properties:
interrupts:
minItems: 3
interrupt-names:
items:
- const: uart-sum
- const: uart-tx
- const: uart-rx
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
serial@12000 {
compatible = "marvell,armada-3700-uart";
reg = <0x12000 0x18>;
clocks = <&uartclk 0>;
interrupts =
<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "uart-sum", "uart-tx", "uart-rx";
};
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
serial@12200 {
compatible = "marvell,armada-3700-uart-ext";
reg = <0x12200 0x30>;
clocks = <&uartclk 1>;
interrupts =
<GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "uart-tx", "uart-rx";
};

View File

@ -1,56 +0,0 @@
* Marvell UART : Non standard UART used in some of Marvell EBU SoCs
e.g., Armada-3700.
Required properties:
- compatible:
- "marvell,armada-3700-uart" for the standard variant of the UART
(32 bytes FIFO, no DMA, level interrupts, 8-bit access to the
FIFO), called also UART1.
- "marvell,armada-3700-uart-ext" for the extended variant of the
UART (128 bytes FIFO, DMA, front interrupts, 8-bit or 32-bit
accesses to the FIFO), called also UART2.
- reg: offset and length of the register set for the device.
- clocks: UART reference clock used to derive the baudrate. If no clock
is provided (possible only with the "marvell,armada-3700-uart"
compatible string for backward compatibility), it will only work
if the baudrate was initialized by the bootloader and no baudrate
change will then be possible. When provided it should be UART1-clk
for standard variant of UART and UART2-clk for extended variant
of UART. TBG clock (with UART TBG divisors d1=d2=1) or xtal clock
should not be used and are supported only for backward compatibility.
- interrupts:
- Must contain three elements for the standard variant of the IP
(marvell,armada-3700-uart): "uart-sum", "uart-tx" and "uart-rx",
respectively the UART sum interrupt, the UART TX interrupt and
UART RX interrupt. A corresponding interrupt-names property must
be defined.
- Must contain two elements for the extended variant of the IP
(marvell,armada-3700-uart-ext): "uart-tx" and "uart-rx",
respectively the UART TX interrupt and the UART RX interrupt. A
corresponding interrupt-names property must be defined.
- For backward compatibility reasons, a single element interrupts
property is also supported for the standard variant of the IP,
containing only the UART sum interrupt. This form is deprecated
and should no longer be used.
Example:
uart0: serial@12000 {
compatible = "marvell,armada-3700-uart";
reg = <0x12000 0x18>;
clocks = <&uartclk 0>;
interrupts =
<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "uart-sum", "uart-tx", "uart-rx";
};
uart1: serial@12200 {
compatible = "marvell,armada-3700-uart-ext";
reg = <0x12200 0x30>;
clocks = <&uartclk 1>;
interrupts =
<GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "uart-tx", "uart-rx";
};

View File

@ -14275,7 +14275,7 @@ MARVELL ARMADA 3700 SERIAL DRIVER
M: Pali Rohár <pali@kernel.org>
S: Maintained
F: Documentation/devicetree/bindings/clock/marvell,armada-3700-uart-clock.yaml
F: Documentation/devicetree/bindings/serial/mvebu-uart.txt
F: Documentation/devicetree/bindings/serial/marvell,armada-3700-uart.yaml
F: drivers/tty/serial/mvebu-uart.c
MARVELL ARMADA DRM SUPPORT