xref: /freebsd-src/sys/contrib/device-tree/Bindings/serial/qcom,msm-uartdm.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/serial/qcom,msm-uartdm.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
7d5b0e70fSEmmanuel Vadottitle: Qualcomm MSM Serial UARTDM
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Andy Gross <agross@kernel.org>
11d5b0e70fSEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
12d5b0e70fSEmmanuel Vadot  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
13d5b0e70fSEmmanuel Vadot
14d5b0e70fSEmmanuel Vadotdescription: |
15d5b0e70fSEmmanuel Vadot  The MSM serial UARTDM hardware is designed for high-speed use cases where the
16d5b0e70fSEmmanuel Vadot  transmit and/or receive channels can be offloaded to a dma-engine. From a
17d5b0e70fSEmmanuel Vadot  software perspective it's mostly compatible with the MSM serial UART except
18d5b0e70fSEmmanuel Vadot  that it supports reading and writing multiple characters at a time.
19d5b0e70fSEmmanuel Vadot
20d5b0e70fSEmmanuel Vadot  Note:: Aliases may be defined to ensure the correct ordering of the UARTs.
21d5b0e70fSEmmanuel Vadot  The alias serialN will result in the UART being assigned port N.  If any
22d5b0e70fSEmmanuel Vadot  serialN alias exists, then an alias must exist for each enabled UART.  The
23d5b0e70fSEmmanuel Vadot  serialN aliases should be in a .dts file instead of in a .dtsi file.
24d5b0e70fSEmmanuel Vadot
25d5b0e70fSEmmanuel Vadotproperties:
26d5b0e70fSEmmanuel Vadot  compatible:
27d5b0e70fSEmmanuel Vadot    items:
28d5b0e70fSEmmanuel Vadot      - enum:
29d5b0e70fSEmmanuel Vadot          - qcom,msm-uartdm-v1.1
30d5b0e70fSEmmanuel Vadot          - qcom,msm-uartdm-v1.2
31d5b0e70fSEmmanuel Vadot          - qcom,msm-uartdm-v1.3
32d5b0e70fSEmmanuel Vadot          - qcom,msm-uartdm-v1.4
33d5b0e70fSEmmanuel Vadot      - const: qcom,msm-uartdm
34d5b0e70fSEmmanuel Vadot
35d5b0e70fSEmmanuel Vadot  clocks:
36d5b0e70fSEmmanuel Vadot    maxItems: 2
37d5b0e70fSEmmanuel Vadot
38d5b0e70fSEmmanuel Vadot  clock-names:
39d5b0e70fSEmmanuel Vadot    items:
40d5b0e70fSEmmanuel Vadot      - const: core
41d5b0e70fSEmmanuel Vadot      - const: iface
42d5b0e70fSEmmanuel Vadot
43d5b0e70fSEmmanuel Vadot  dmas:
44d5b0e70fSEmmanuel Vadot    maxItems: 2
45d5b0e70fSEmmanuel Vadot
46d5b0e70fSEmmanuel Vadot  dma-names:
47d5b0e70fSEmmanuel Vadot    items:
48d5b0e70fSEmmanuel Vadot      - const: tx
49d5b0e70fSEmmanuel Vadot      - const: rx
50d5b0e70fSEmmanuel Vadot
51*8d13bc63SEmmanuel Vadot  interconnects:
52*8d13bc63SEmmanuel Vadot    maxItems: 1
53*8d13bc63SEmmanuel Vadot
54d5b0e70fSEmmanuel Vadot  interrupts:
55d5b0e70fSEmmanuel Vadot    maxItems: 1
56d5b0e70fSEmmanuel Vadot
57*8d13bc63SEmmanuel Vadot  operating-points-v2: true
58*8d13bc63SEmmanuel Vadot
59*8d13bc63SEmmanuel Vadot  power-domains:
60*8d13bc63SEmmanuel Vadot    maxItems: 1
61*8d13bc63SEmmanuel Vadot
62d5b0e70fSEmmanuel Vadot  qcom,rx-crci:
63d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
64d5b0e70fSEmmanuel Vadot    description:
65d5b0e70fSEmmanuel Vadot      Identificator for Client Rate Control Interface to be used with RX DMA
66d5b0e70fSEmmanuel Vadot      channel. Required when using DMA for reception with UARTDM v1.3 and
67d5b0e70fSEmmanuel Vadot      below.
68d5b0e70fSEmmanuel Vadot
69d5b0e70fSEmmanuel Vadot  qcom,tx-crci:
70d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
71d5b0e70fSEmmanuel Vadot    description:
72d5b0e70fSEmmanuel Vadot      Identificator for Client Rate Control Interface to be used with TX DMA
73d5b0e70fSEmmanuel Vadot      channel. Required when using DMA for transmission with UARTDM v1.3 and
74d5b0e70fSEmmanuel Vadot      below.
75d5b0e70fSEmmanuel Vadot
76d5b0e70fSEmmanuel Vadot  reg:
77d5b0e70fSEmmanuel Vadot    minItems: 1
78d5b0e70fSEmmanuel Vadot    items:
79d5b0e70fSEmmanuel Vadot      - description: Main control registers
80d5b0e70fSEmmanuel Vadot      - description: An optional second register location shall specify the GSBI control region.
81d5b0e70fSEmmanuel Vadot
82d5b0e70fSEmmanuel Vadotrequired:
83d5b0e70fSEmmanuel Vadot  - compatible
84d5b0e70fSEmmanuel Vadot  - clock-names
85d5b0e70fSEmmanuel Vadot  - clocks
86d5b0e70fSEmmanuel Vadot  - interrupts
87d5b0e70fSEmmanuel Vadot  - reg
88d5b0e70fSEmmanuel Vadot
89d5b0e70fSEmmanuel VadotallOf:
90d5b0e70fSEmmanuel Vadot  - $ref: /schemas/serial/serial.yaml#
91d5b0e70fSEmmanuel Vadot
92d5b0e70fSEmmanuel Vadot  - if:
93d5b0e70fSEmmanuel Vadot      properties:
94d5b0e70fSEmmanuel Vadot        compatible:
95d5b0e70fSEmmanuel Vadot          contains:
96d5b0e70fSEmmanuel Vadot            const: qcom,msm-uartdm-v1.3
97d5b0e70fSEmmanuel Vadot    then:
98d5b0e70fSEmmanuel Vadot      properties:
99d5b0e70fSEmmanuel Vadot        reg:
100d5b0e70fSEmmanuel Vadot          minItems: 2
101d5b0e70fSEmmanuel Vadot    else:
102d5b0e70fSEmmanuel Vadot      properties:
103d5b0e70fSEmmanuel Vadot        reg:
104d5b0e70fSEmmanuel Vadot          maxItems: 1
105d5b0e70fSEmmanuel Vadot
10684943d6fSEmmanuel VadotunevaluatedProperties: false
10784943d6fSEmmanuel Vadot
108d5b0e70fSEmmanuel Vadotexamples:
109d5b0e70fSEmmanuel Vadot  - |
110*8d13bc63SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,msm8996.h>
111d5b0e70fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
112*8d13bc63SEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
113d5b0e70fSEmmanuel Vadot
114d5b0e70fSEmmanuel Vadot    serial@f991e000 {
115d5b0e70fSEmmanuel Vadot        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
116d5b0e70fSEmmanuel Vadot        reg = <0xf991e000 0x1000>;
117d5b0e70fSEmmanuel Vadot        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
118d5b0e70fSEmmanuel Vadot        clocks = <&blsp1_uart2_apps_cxc>, <&blsp1_ahb_cxc>;
119d5b0e70fSEmmanuel Vadot        clock-names = "core", "iface";
120d5b0e70fSEmmanuel Vadot        dmas = <&dma0 0>, <&dma0 1>;
121d5b0e70fSEmmanuel Vadot        dma-names = "tx", "rx";
122*8d13bc63SEmmanuel Vadot        power-domains = <&rpmpd MSM8996_VDDCX>;
123*8d13bc63SEmmanuel Vadot        operating-points-v2 = <&uart_opp_table>;
124*8d13bc63SEmmanuel Vadot        interconnects = <&pnoc MASTER_BLSP_1 &bimc SLAVE_EBI_CH0>;
125d5b0e70fSEmmanuel Vadot    };
126