xref: /freebsd/sys/contrib/device-tree/Bindings/serial/nvidia,tegra194-tcu.yaml (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
1*e67e8565SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2*e67e8565SEmmanuel Vadot%YAML 1.2
3*e67e8565SEmmanuel Vadot---
4*e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/serial/nvidia,tegra194-tcu.yaml#
5*e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*e67e8565SEmmanuel Vadot
7*e67e8565SEmmanuel Vadottitle: NVIDIA Tegra Combined UART (TCU)
8*e67e8565SEmmanuel Vadot
9*e67e8565SEmmanuel Vadotmaintainers:
10*e67e8565SEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
11*e67e8565SEmmanuel Vadot  - Jonathan Hunter <jonathanh@nvidia.com>
12*e67e8565SEmmanuel Vadot
13*e67e8565SEmmanuel Vadotdescription:
14*e67e8565SEmmanuel Vadot  The TCU is a system for sharing a hardware UART instance among multiple
15*e67e8565SEmmanuel Vadot  systems within the Tegra SoC. It is implemented through a mailbox-
16*e67e8565SEmmanuel Vadot  based protocol where each "virtual UART" has a pair of mailboxes, one
17*e67e8565SEmmanuel Vadot  for transmitting and one for receiving, that is used to communicate
18*e67e8565SEmmanuel Vadot  with the hardware implementing the TCU.
19*e67e8565SEmmanuel Vadot
20*e67e8565SEmmanuel Vadotproperties:
21*e67e8565SEmmanuel Vadot  $nodename:
22*e67e8565SEmmanuel Vadot    pattern: "^serial(@.*)?$"
23*e67e8565SEmmanuel Vadot
24*e67e8565SEmmanuel Vadot  compatible:
25*e67e8565SEmmanuel Vadot    oneOf:
26*e67e8565SEmmanuel Vadot      - const: nvidia,tegra194-tcu
27*e67e8565SEmmanuel Vadot      - items:
28*e67e8565SEmmanuel Vadot          - enum:
29*e67e8565SEmmanuel Vadot              - nvidia,tegra234-tcu
30*e67e8565SEmmanuel Vadot          - const: nvidia,tegra194-tcu
31*e67e8565SEmmanuel Vadot
32*e67e8565SEmmanuel Vadot  mbox-names:
33*e67e8565SEmmanuel Vadot    items:
34*e67e8565SEmmanuel Vadot      - const: rx
35*e67e8565SEmmanuel Vadot      - const: tx
36*e67e8565SEmmanuel Vadot
37*e67e8565SEmmanuel Vadot  mboxes:
38*e67e8565SEmmanuel Vadot    description: |
39*e67e8565SEmmanuel Vadot      List of phandles to mailbox channels used for receiving and
40*e67e8565SEmmanuel Vadot      transmitting data from and to the hardware UART.
41*e67e8565SEmmanuel Vadot    items:
42*e67e8565SEmmanuel Vadot      - description: mailbox for receiving data from hardware UART
43*e67e8565SEmmanuel Vadot      - description: mailbox for transmitting data to hardware UART
44*e67e8565SEmmanuel Vadot
45*e67e8565SEmmanuel Vadotrequired:
46*e67e8565SEmmanuel Vadot  - compatible
47*e67e8565SEmmanuel Vadot  - mbox-names
48*e67e8565SEmmanuel Vadot  - mboxes
49*e67e8565SEmmanuel Vadot
50*e67e8565SEmmanuel VadotadditionalProperties: false
51*e67e8565SEmmanuel Vadot
52*e67e8565SEmmanuel Vadotexamples:
53*e67e8565SEmmanuel Vadot  - |
54*e67e8565SEmmanuel Vadot    #include <dt-bindings/mailbox/tegra186-hsp.h>
55*e67e8565SEmmanuel Vadot
56*e67e8565SEmmanuel Vadot    tcu: serial {
57*e67e8565SEmmanuel Vadot        compatible = "nvidia,tegra194-tcu";
58*e67e8565SEmmanuel Vadot        mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_SM 0>,
59*e67e8565SEmmanuel Vadot                 <&hsp_aon TEGRA_HSP_MBOX_TYPE_SM 1>;
60*e67e8565SEmmanuel Vadot        mbox-names = "rx", "tx";
61*e67e8565SEmmanuel Vadot    };
62