162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/serial/nvidia,tegra194-tcu.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: NVIDIA Tegra Combined UART (TCU)
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Thierry Reding <thierry.reding@gmail.com>
1162306a36Sopenharmony_ci  - Jonathan Hunter <jonathanh@nvidia.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription:
1462306a36Sopenharmony_ci  The TCU is a system for sharing a hardware UART instance among multiple
1562306a36Sopenharmony_ci  systems within the Tegra SoC. It is implemented through a mailbox-
1662306a36Sopenharmony_ci  based protocol where each "virtual UART" has a pair of mailboxes, one
1762306a36Sopenharmony_ci  for transmitting and one for receiving, that is used to communicate
1862306a36Sopenharmony_ci  with the hardware implementing the TCU.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  $nodename:
2262306a36Sopenharmony_ci    pattern: "^serial(@.*)?$"
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  compatible:
2562306a36Sopenharmony_ci    oneOf:
2662306a36Sopenharmony_ci      - const: nvidia,tegra194-tcu
2762306a36Sopenharmony_ci      - items:
2862306a36Sopenharmony_ci          - enum:
2962306a36Sopenharmony_ci              - nvidia,tegra234-tcu
3062306a36Sopenharmony_ci          - const: nvidia,tegra194-tcu
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  mbox-names:
3362306a36Sopenharmony_ci    items:
3462306a36Sopenharmony_ci      - const: rx
3562306a36Sopenharmony_ci      - const: tx
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  mboxes:
3862306a36Sopenharmony_ci    description: |
3962306a36Sopenharmony_ci      List of phandles to mailbox channels used for receiving and
4062306a36Sopenharmony_ci      transmitting data from and to the hardware UART.
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - description: mailbox for receiving data from hardware UART
4362306a36Sopenharmony_ci      - description: mailbox for transmitting data to hardware UART
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cirequired:
4662306a36Sopenharmony_ci  - compatible
4762306a36Sopenharmony_ci  - mbox-names
4862306a36Sopenharmony_ci  - mboxes
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciadditionalProperties: false
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciexamples:
5362306a36Sopenharmony_ci  - |
5462306a36Sopenharmony_ci    #include <dt-bindings/mailbox/tegra186-hsp.h>
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci    tcu: serial {
5762306a36Sopenharmony_ci        compatible = "nvidia,tegra194-tcu";
5862306a36Sopenharmony_ci        mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_SM 0>,
5962306a36Sopenharmony_ci                 <&hsp_aon TEGRA_HSP_MBOX_TYPE_SM 1>;
6062306a36Sopenharmony_ci        mbox-names = "rx", "tx";
6162306a36Sopenharmony_ci    };
62