Commit 88a499cd authored by Al Cooper's avatar Al Cooper Committed by Greg Kroah-Hartman
Browse files

dt-bindings: Add support for the Broadcom UART driver



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.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarAl Cooper <alcooperx@gmail.com>
Link: https://lore.kernel.org/r/20210325185256.16156-2-alcooperx@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 22fce66c
Loading
Loading
Loading
Loading
+95 −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/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>

allOf:
  - $ref: /schemas/serial.yaml#

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:
  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.
    minItems: 1
    items:
      - const: uart
      - const: dma

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - interrupts
  - interrupt-names

unevaluatedProperties: 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";
    };