xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml (revision a9fc2304972b1db28b88af8203dffef23e1e92ba)
13c208843SAkash Asthana# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
23c208843SAkash Asthana%YAML 1.2
33c208843SAkash Asthana---
42961ab05SRob Herring$id: http://devicetree.org/schemas/soc/qcom/qcom,geni-se.yaml#
52961ab05SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
63c208843SAkash Asthana
73c208843SAkash Asthanatitle: GENI Serial Engine QUP Wrapper Controller
83c208843SAkash Asthana
93c208843SAkash Asthanamaintainers:
1092298ea3SKrzysztof Kozlowski  - Bjorn Andersson <bjorn.andersson@linaro.org>
113c208843SAkash Asthana
123c208843SAkash Asthanadescription: |
133c208843SAkash Asthana Generic Interface (GENI) based Qualcomm Universal Peripheral (QUP) wrapper
143c208843SAkash Asthana is a programmable module for supporting a wide range of serial interfaces
153c208843SAkash Asthana like UART, SPI, I2C, I3C, etc. A single QUP module can provide upto 8 Serial
163c208843SAkash Asthana Interfaces, using its internal Serial Engines. The GENI Serial Engine QUP
173c208843SAkash Asthana Wrapper controller is modeled as a node with zero or more child nodes each
183c208843SAkash Asthana representing a serial engine.
193c208843SAkash Asthana
203c208843SAkash Asthanaproperties:
213c208843SAkash Asthana  compatible:
223c208843SAkash Asthana    enum:
233c208843SAkash Asthana      - qcom,geni-se-qup
24af45de83SNeil Armstrong      - qcom,geni-se-i2c-master-hub
253c208843SAkash Asthana
263c208843SAkash Asthana  reg:
273c208843SAkash Asthana    description: QUP wrapper common register address and length.
283c208843SAkash Asthana    maxItems: 1
293c208843SAkash Asthana
303c208843SAkash Asthana  clock-names:
31af45de83SNeil Armstrong    minItems: 1
32af45de83SNeil Armstrong    maxItems: 2
333c208843SAkash Asthana
343c208843SAkash Asthana  clocks:
35af45de83SNeil Armstrong    minItems: 1
36af45de83SNeil Armstrong    maxItems: 2
373c208843SAkash Asthana
383c208843SAkash Asthana  "#address-cells":
393c208843SAkash Asthana    const: 2
403c208843SAkash Asthana
413c208843SAkash Asthana  "#size-cells":
423c208843SAkash Asthana    const: 2
433c208843SAkash Asthana
443c208843SAkash Asthana  ranges: true
453c208843SAkash Asthana
46add953dcSAkash Asthana  interconnects:
47add953dcSAkash Asthana    maxItems: 1
48add953dcSAkash Asthana
49add953dcSAkash Asthana  interconnect-names:
50add953dcSAkash Asthana    const: qup-core
51add953dcSAkash Asthana
52a95fc720SCaleb Connolly  iommus:
53a95fc720SCaleb Connolly    maxItems: 1
54a95fc720SCaleb Connolly
55274707b7SKonrad Dybcio  dma-coherent: true
56274707b7SKonrad Dybcio
57*e6512225SViken Dadhaniya  firmware-name:
58*e6512225SViken Dadhaniya    maxItems: 1
59*e6512225SViken Dadhaniya    description: Specify the name of the QUP firmware to load.
60*e6512225SViken Dadhaniya
613c208843SAkash Asthanarequired:
623c208843SAkash Asthana  - compatible
633c208843SAkash Asthana  - reg
643c208843SAkash Asthana  - clock-names
653c208843SAkash Asthana  - clocks
663c208843SAkash Asthana  - "#address-cells"
673c208843SAkash Asthana  - "#size-cells"
683c208843SAkash Asthana  - ranges
693c208843SAkash Asthana
703c208843SAkash AsthanapatternProperties:
713c208843SAkash Asthana  "spi@[0-9a-f]+$":
723c208843SAkash Asthana    type: object
733c208843SAkash Asthana    description: GENI serial engine based SPI controller. SPI in master mode
743c208843SAkash Asthana                 supports up to 50MHz, up to four chip selects, programmable
753c208843SAkash Asthana                 data path from 4 bits to 32 bits and numerous protocol
763c208843SAkash Asthana                 variants.
777b5d4421SKrzysztof Kozlowski    $ref: /schemas/spi/qcom,spi-geni-qcom.yaml#
783c208843SAkash Asthana
793c208843SAkash Asthana  "i2c@[0-9a-f]+$":
803c208843SAkash Asthana    type: object
813c208843SAkash Asthana    description: GENI serial engine based I2C controller.
82fcf2c0f7SKuldeep Singh    $ref: /schemas/i2c/qcom,i2c-geni-qcom.yaml#
833c208843SAkash Asthana
843c208843SAkash Asthana  "serial@[0-9a-f]+$":
853c208843SAkash Asthana    type: object
863c208843SAkash Asthana    description: GENI Serial Engine based UART Controller.
876579f392SKuldeep Singh    $ref: /schemas/serial/qcom,serial-geni-qcom.yaml#
883c208843SAkash Asthana
89af45de83SNeil ArmstrongallOf:
90af45de83SNeil Armstrong  - if:
91af45de83SNeil Armstrong      properties:
92af45de83SNeil Armstrong        compatible:
93af45de83SNeil Armstrong          contains:
94af45de83SNeil Armstrong            const: qcom,geni-se-i2c-master-hub
95af45de83SNeil Armstrong    then:
96af45de83SNeil Armstrong      properties:
97af45de83SNeil Armstrong        clock-names:
98af45de83SNeil Armstrong          items:
99af45de83SNeil Armstrong            - const: s-ahb
100af45de83SNeil Armstrong
101af45de83SNeil Armstrong        clocks:
102af45de83SNeil Armstrong          items:
103af45de83SNeil Armstrong            - description: Slave AHB Clock
104af45de83SNeil Armstrong
105af45de83SNeil Armstrong        iommus: false
106af45de83SNeil Armstrong
107af45de83SNeil Armstrong      patternProperties:
108af45de83SNeil Armstrong        "spi@[0-9a-f]+$": false
109af45de83SNeil Armstrong        "serial@[0-9a-f]+$": false
110af45de83SNeil Armstrong    else:
111af45de83SNeil Armstrong      properties:
112af45de83SNeil Armstrong        clock-names:
113af45de83SNeil Armstrong          items:
114af45de83SNeil Armstrong            - const: m-ahb
115af45de83SNeil Armstrong            - const: s-ahb
116af45de83SNeil Armstrong
117af45de83SNeil Armstrong        clocks:
118af45de83SNeil Armstrong          items:
119af45de83SNeil Armstrong            - description: Master AHB Clock
120af45de83SNeil Armstrong            - description: Slave AHB Clock
121af45de83SNeil Armstrong
1225be478f9SRob HerringadditionalProperties: false
1233c208843SAkash Asthana
1243c208843SAkash Asthanaexamples:
1253c208843SAkash Asthana  - |
1263c208843SAkash Asthana    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
1273c208843SAkash Asthana    #include <dt-bindings/interrupt-controller/arm-gic.h>
1283c208843SAkash Asthana
1293c208843SAkash Asthana    soc {
1303c208843SAkash Asthana        #address-cells = <2>;
1313c208843SAkash Asthana        #size-cells = <2>;
1323c208843SAkash Asthana
1333c208843SAkash Asthana        geniqup@8c0000 {
1343c208843SAkash Asthana            compatible = "qcom,geni-se-qup";
1353c208843SAkash Asthana            reg = <0 0x008c0000 0 0x6000>;
1363c208843SAkash Asthana            clock-names = "m-ahb", "s-ahb";
1373c208843SAkash Asthana            clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
1383c208843SAkash Asthana                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
1393c208843SAkash Asthana            #address-cells = <2>;
1403c208843SAkash Asthana            #size-cells = <2>;
1413c208843SAkash Asthana            ranges;
142*e6512225SViken Dadhaniya            firmware-name = "qcom/sa8775p/qupv3fw.elf";
1433c208843SAkash Asthana
1443c208843SAkash Asthana            i2c0: i2c@a94000 {
1453c208843SAkash Asthana                compatible = "qcom,geni-i2c";
1463c208843SAkash Asthana                reg = <0 0xa94000 0 0x4000>;
1473c208843SAkash Asthana                interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1483c208843SAkash Asthana                clock-names = "se";
1493c208843SAkash Asthana                clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1503c208843SAkash Asthana                pinctrl-names = "default", "sleep";
1513c208843SAkash Asthana                pinctrl-0 = <&qup_1_i2c_5_active>;
1523c208843SAkash Asthana                pinctrl-1 = <&qup_1_i2c_5_sleep>;
1533c208843SAkash Asthana                #address-cells = <1>;
1543c208843SAkash Asthana                #size-cells = <0>;
1553c208843SAkash Asthana            };
1563c208843SAkash Asthana
1573c208843SAkash Asthana            uart0: serial@a88000 {
1583c208843SAkash Asthana                compatible = "qcom,geni-uart";
1593c208843SAkash Asthana                reg = <0 0xa88000 0 0x7000>;
1603c208843SAkash Asthana                interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1613c208843SAkash Asthana                clock-names = "se";
1623c208843SAkash Asthana                clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1633c208843SAkash Asthana                pinctrl-names = "default", "sleep";
1643c208843SAkash Asthana                pinctrl-0 = <&qup_1_uart_3_active>;
1653c208843SAkash Asthana                pinctrl-1 = <&qup_1_uart_3_sleep>;
1663c208843SAkash Asthana            };
1673c208843SAkash Asthana        };
1683c208843SAkash Asthana    };
1693c208843SAkash Asthana
1703c208843SAkash Asthana...
171