1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/qcom/qcom,geni-se.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: GENI Serial Engine QUP Wrapper Controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot Generic Interface (GENI) based Qualcomm Universal Peripheral (QUP) wrapper
14c66ec88fSEmmanuel Vadot is a programmable module for supporting a wide range of serial interfaces
15c66ec88fSEmmanuel Vadot like UART, SPI, I2C, I3C, etc. A single QUP module can provide upto 8 Serial
16c66ec88fSEmmanuel Vadot Interfaces, using its internal Serial Engines. The GENI Serial Engine QUP
17c66ec88fSEmmanuel Vadot Wrapper controller is modeled as a node with zero or more child nodes each
18c66ec88fSEmmanuel Vadot representing a serial engine.
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadotproperties:
21c66ec88fSEmmanuel Vadot  compatible:
22c66ec88fSEmmanuel Vadot    enum:
23c66ec88fSEmmanuel Vadot      - qcom,geni-se-qup
248bab661aSEmmanuel Vadot      - qcom,geni-se-i2c-master-hub
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  reg:
27c66ec88fSEmmanuel Vadot    description: QUP wrapper common register address and length.
28c66ec88fSEmmanuel Vadot    maxItems: 1
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadot  clock-names:
318bab661aSEmmanuel Vadot    minItems: 1
328bab661aSEmmanuel Vadot    maxItems: 2
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot  clocks:
358bab661aSEmmanuel Vadot    minItems: 1
368bab661aSEmmanuel Vadot    maxItems: 2
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  "#address-cells":
39c66ec88fSEmmanuel Vadot    const: 2
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  "#size-cells":
42c66ec88fSEmmanuel Vadot    const: 2
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  ranges: true
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot  interconnects:
47c66ec88fSEmmanuel Vadot    maxItems: 1
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  interconnect-names:
50c66ec88fSEmmanuel Vadot    const: qup-core
51c66ec88fSEmmanuel Vadot
52354d7675SEmmanuel Vadot  iommus:
53354d7675SEmmanuel Vadot    maxItems: 1
54354d7675SEmmanuel Vadot
55*84943d6fSEmmanuel Vadot  dma-coherent: true
56*84943d6fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadotrequired:
58c66ec88fSEmmanuel Vadot  - compatible
59c66ec88fSEmmanuel Vadot  - reg
60c66ec88fSEmmanuel Vadot  - clock-names
61c66ec88fSEmmanuel Vadot  - clocks
62c66ec88fSEmmanuel Vadot  - "#address-cells"
63c66ec88fSEmmanuel Vadot  - "#size-cells"
64c66ec88fSEmmanuel Vadot  - ranges
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel VadotpatternProperties:
67c66ec88fSEmmanuel Vadot  "spi@[0-9a-f]+$":
68c66ec88fSEmmanuel Vadot    type: object
69c66ec88fSEmmanuel Vadot    description: GENI serial engine based SPI controller. SPI in master mode
70c66ec88fSEmmanuel Vadot                 supports up to 50MHz, up to four chip selects, programmable
71c66ec88fSEmmanuel Vadot                 data path from 4 bits to 32 bits and numerous protocol
72c66ec88fSEmmanuel Vadot                 variants.
73d5b0e70fSEmmanuel Vadot    $ref: /schemas/spi/qcom,spi-geni-qcom.yaml#
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  "i2c@[0-9a-f]+$":
76c66ec88fSEmmanuel Vadot    type: object
77c66ec88fSEmmanuel Vadot    description: GENI serial engine based I2C controller.
78d5b0e70fSEmmanuel Vadot    $ref: /schemas/i2c/qcom,i2c-geni-qcom.yaml#
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot  "serial@[0-9a-f]+$":
81c66ec88fSEmmanuel Vadot    type: object
82c66ec88fSEmmanuel Vadot    description: GENI Serial Engine based UART Controller.
83d5b0e70fSEmmanuel Vadot    $ref: /schemas/serial/qcom,serial-geni-qcom.yaml#
84c66ec88fSEmmanuel Vadot
858bab661aSEmmanuel VadotallOf:
868bab661aSEmmanuel Vadot  - if:
878bab661aSEmmanuel Vadot      properties:
888bab661aSEmmanuel Vadot        compatible:
898bab661aSEmmanuel Vadot          contains:
908bab661aSEmmanuel Vadot            const: qcom,geni-se-i2c-master-hub
918bab661aSEmmanuel Vadot    then:
928bab661aSEmmanuel Vadot      properties:
938bab661aSEmmanuel Vadot        clock-names:
948bab661aSEmmanuel Vadot          items:
958bab661aSEmmanuel Vadot            - const: s-ahb
968bab661aSEmmanuel Vadot
978bab661aSEmmanuel Vadot        clocks:
988bab661aSEmmanuel Vadot          items:
998bab661aSEmmanuel Vadot            - description: Slave AHB Clock
1008bab661aSEmmanuel Vadot
1018bab661aSEmmanuel Vadot        iommus: false
1028bab661aSEmmanuel Vadot
1038bab661aSEmmanuel Vadot      patternProperties:
1048bab661aSEmmanuel Vadot        "spi@[0-9a-f]+$": false
1058bab661aSEmmanuel Vadot        "serial@[0-9a-f]+$": false
1068bab661aSEmmanuel Vadot    else:
1078bab661aSEmmanuel Vadot      properties:
1088bab661aSEmmanuel Vadot        clock-names:
1098bab661aSEmmanuel Vadot          items:
1108bab661aSEmmanuel Vadot            - const: m-ahb
1118bab661aSEmmanuel Vadot            - const: s-ahb
1128bab661aSEmmanuel Vadot
1138bab661aSEmmanuel Vadot        clocks:
1148bab661aSEmmanuel Vadot          items:
1158bab661aSEmmanuel Vadot            - description: Master AHB Clock
1168bab661aSEmmanuel Vadot            - description: Slave AHB Clock
1178bab661aSEmmanuel Vadot
1186be33864SEmmanuel VadotadditionalProperties: false
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadotexamples:
121c66ec88fSEmmanuel Vadot  - |
122c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
123c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
124c66ec88fSEmmanuel Vadot
125c66ec88fSEmmanuel Vadot    soc {
126c66ec88fSEmmanuel Vadot        #address-cells = <2>;
127c66ec88fSEmmanuel Vadot        #size-cells = <2>;
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot        geniqup@8c0000 {
130c66ec88fSEmmanuel Vadot            compatible = "qcom,geni-se-qup";
131c66ec88fSEmmanuel Vadot            reg = <0 0x008c0000 0 0x6000>;
132c66ec88fSEmmanuel Vadot            clock-names = "m-ahb", "s-ahb";
133c66ec88fSEmmanuel Vadot            clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
134c66ec88fSEmmanuel Vadot                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
135c66ec88fSEmmanuel Vadot            #address-cells = <2>;
136c66ec88fSEmmanuel Vadot            #size-cells = <2>;
137c66ec88fSEmmanuel Vadot            ranges;
138c66ec88fSEmmanuel Vadot
139c66ec88fSEmmanuel Vadot            i2c0: i2c@a94000 {
140c66ec88fSEmmanuel Vadot                compatible = "qcom,geni-i2c";
141c66ec88fSEmmanuel Vadot                reg = <0 0xa94000 0 0x4000>;
142c66ec88fSEmmanuel Vadot                interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
143c66ec88fSEmmanuel Vadot                clock-names = "se";
144c66ec88fSEmmanuel Vadot                clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
145c66ec88fSEmmanuel Vadot                pinctrl-names = "default", "sleep";
146c66ec88fSEmmanuel Vadot                pinctrl-0 = <&qup_1_i2c_5_active>;
147c66ec88fSEmmanuel Vadot                pinctrl-1 = <&qup_1_i2c_5_sleep>;
148c66ec88fSEmmanuel Vadot                #address-cells = <1>;
149c66ec88fSEmmanuel Vadot                #size-cells = <0>;
150c66ec88fSEmmanuel Vadot            };
151c66ec88fSEmmanuel Vadot
152c66ec88fSEmmanuel Vadot            uart0: serial@a88000 {
153c66ec88fSEmmanuel Vadot                compatible = "qcom,geni-uart";
154c66ec88fSEmmanuel Vadot                reg = <0 0xa88000 0 0x7000>;
155c66ec88fSEmmanuel Vadot                interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
156c66ec88fSEmmanuel Vadot                clock-names = "se";
157c66ec88fSEmmanuel Vadot                clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
158c66ec88fSEmmanuel Vadot                pinctrl-names = "default", "sleep";
159c66ec88fSEmmanuel Vadot                pinctrl-0 = <&qup_1_uart_3_active>;
160c66ec88fSEmmanuel Vadot                pinctrl-1 = <&qup_1_uart_3_sleep>;
161c66ec88fSEmmanuel Vadot            };
162c66ec88fSEmmanuel Vadot        };
163c66ec88fSEmmanuel Vadot    };
164c66ec88fSEmmanuel Vadot
165c66ec88fSEmmanuel Vadot...
166