diff mbox series

[v4,1/2] dt-bindings: Add support for the Broadcom UART driver

Message ID 20210219203708.49056-2-alcooperx@gmail.com
State New
Headers show
Series [v4,1/2] dt-bindings: Add support for the Broadcom UART driver | expand

Commit Message

Alan Cooper Feb. 19, 2021, 8:37 p.m. UTC
Add DT bindings for the Broadcom 8250 based UART driver. This
UART is based on an 8250 but adds additional functionality. The
additional features include the ability to use DMA for transfers and
a baud rate clock system that is more accurate at high baud rates.
This UART is backward compatible with the standard 8250 UART.

Signed-off-by: Al Cooper <alcooperx@gmail.com>
---
 .../bindings/serial/brcm,bcm7271-uart.yaml    | 96 +++++++++++++++++++
 1 file changed, 96 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml

Comments

Rob Herring (Arm) March 5, 2021, 11:14 p.m. UTC | #1
On Fri, Feb 19, 2021 at 03:37:07PM -0500, Al Cooper wrote:
> Add DT bindings for the Broadcom 8250 based UART driver. This

> UART is based on an 8250 but adds additional functionality. The

> additional features include the ability to use DMA for transfers and

> a baud rate clock system that is more accurate at high baud rates.

> This UART is backward compatible with the standard 8250 UART.

> 

> Signed-off-by: Al Cooper <alcooperx@gmail.com>

> ---

>  .../bindings/serial/brcm,bcm7271-uart.yaml    | 96 +++++++++++++++++++

>  1 file changed, 96 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml

> 

> diff --git a/Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml b/Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml

> new file mode 100644

> index 000000000000..f3d58e613480

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml

> @@ -0,0 +1,96 @@

> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: Broadcom 8250 based serial port devicetree bindings

> +

> +maintainers:

> +  - Al Cooper <alcooperx@gmail.com>

> +

> +description: |+

> +  The Broadcom UART is based on the basic 8250 UART but with

> +  enhancements for more accurate high speed baud rates and support

> +  for DMA.

> +

> +properties:

> +  $nodename:

> +    pattern: "^serial@[0-9a-f]+$"


Reference serial.yaml and you can drop this (and have slave devices).

You'll need to use 'unevaluatedProperties' instead of 
'additionalProperties' as well.

> +

> +  compatible:

> +    items:

> +      - enum:

> +          - brcm,bcm7271-uart

> +          - brcm,bcm7278-uart


Blank line.

> +  reg:

> +    minItems: 1

> +    maxItems: 5

> +

> +  reg-names:

> +    description: The UART register block and optionally the DMA register blocks.

> +    oneOf:

> +      - items:

> +          - const: uart

> +      - items:

> +          - const: uart

> +          - const: dma_arb

> +          - const: dma_rx

> +          - const: dma_tx

> +          - const: dma_intr2

> +

> +  clocks:

> +    minItems: 1

> +

> +  clock-names:

> +    const: sw_baud

> +

> +  interrupts:

> +    minItems: 1

> +    maxItems: 2

> +

> +  interrupt-names:

> +    description: The UART interrupt and optionally the DMA interrupt.

> +    oneOf:

> +      - items:

> +          - const: uart

> +      - items:

> +          - const: uart

> +          - const: dma


Drop the oneOf and add 'minItems: 1'.

> +

> +required:

> +  - compatible

> +  - reg

> +  - reg-names

> +  - clocks

> +  - clock-names

> +  - interrupts

> +  - interrupt-names

> +

> +additionalProperties: false

> +

> +examples:

> +  - |

> +    serial@840d000 {

> +        compatible = "brcm,bcm7271-uart";

> +        reg = <0x840d000 0x20>;

> +        reg-names = "uart";

> +        interrupts = <0x0 0x62 0x4>;

> +        interrupt-names = "uart";

> +        clocks = <&scmi_clk 190>;

> +        clock-names = "sw_baud";

> +    };

> +

> +    serial@840e000 {

> +        compatible = "brcm,bcm7271-uart";

> +        reg = <0x840e000 0x20>,

> +              <0x840e080 0x8>,

> +              <0x840e100 0xa8>,

> +              <0x840e200 0x4c>,

> +              <0x840e300 0x30>;

> +        reg-names = "uart", "dma_arb", "dma_rx", "dma_tx", "dma_intr2";

> +        interrupts = <0x0 0x62 0x4>, <0x0 0x75 0x4>;

> +        interrupt-names = "uart", "dma";

> +        clocks = <&scmi_clk 190>;

> +        clock-names = "sw_baud";

> +    };

> -- 

> 2.17.1

>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml b/Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml
new file mode 100644
index 000000000000..f3d58e613480
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml
@@ -0,0 +1,96 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom 8250 based serial port devicetree bindings
+
+maintainers:
+  - Al Cooper <alcooperx@gmail.com>
+
+description: |+
+  The Broadcom UART is based on the basic 8250 UART but with
+  enhancements for more accurate high speed baud rates and support
+  for DMA.
+
+properties:
+  $nodename:
+    pattern: "^serial@[0-9a-f]+$"
+
+  compatible:
+    items:
+      - enum:
+          - brcm,bcm7271-uart
+          - brcm,bcm7278-uart
+  reg:
+    minItems: 1
+    maxItems: 5
+
+  reg-names:
+    description: The UART register block and optionally the DMA register blocks.
+    oneOf:
+      - items:
+          - const: uart
+      - items:
+          - const: uart
+          - const: dma_arb
+          - const: dma_rx
+          - const: dma_tx
+          - const: dma_intr2
+
+  clocks:
+    minItems: 1
+
+  clock-names:
+    const: sw_baud
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    description: The UART interrupt and optionally the DMA interrupt.
+    oneOf:
+      - items:
+          - const: uart
+      - items:
+          - const: uart
+          - const: dma
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+  - interrupts
+  - interrupt-names
+
+additionalProperties: false
+
+examples:
+  - |
+    serial@840d000 {
+        compatible = "brcm,bcm7271-uart";
+        reg = <0x840d000 0x20>;
+        reg-names = "uart";
+        interrupts = <0x0 0x62 0x4>;
+        interrupt-names = "uart";
+        clocks = <&scmi_clk 190>;
+        clock-names = "sw_baud";
+    };
+
+    serial@840e000 {
+        compatible = "brcm,bcm7271-uart";
+        reg = <0x840e000 0x20>,
+              <0x840e080 0x8>,
+              <0x840e100 0xa8>,
+              <0x840e200 0x4c>,
+              <0x840e300 0x30>;
+        reg-names = "uart", "dma_arb", "dma_rx", "dma_tx", "dma_intr2";
+        interrupts = <0x0 0x62 0x4>, <0x0 0x75 0x4>;
+        interrupt-names = "uart", "dma";
+        clocks = <&scmi_clk 190>;
+        clock-names = "sw_baud";
+    };