File Index
Files and directories
Sign in
FILE

qcom,geni-se.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/soc/qcom/qcom,geni-se.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: GENI Serial Engine QUP Wrapper Controller
  8
  9maintainers:
 10  - Bjorn Andersson <bjorn.andersson@linaro.org>
 11
 12description: |
 13 Generic Interface (GENI) based Qualcomm Universal Peripheral (QUP) wrapper
 14 is a programmable module for supporting a wide range of serial interfaces
 15 like UART, SPI, I2C, I3C, etc. A single QUP module can provide upto 8 Serial
 16 Interfaces, using its internal Serial Engines. The GENI Serial Engine QUP
 17 Wrapper controller is modeled as a node with zero or more child nodes each
 18 representing a serial engine.
 19
 20properties:
 21  compatible:
 22    enum:
 23      - qcom,geni-se-qup
 24      - qcom,geni-se-i2c-master-hub
 25
 26  reg:
 27    description: QUP wrapper common register address and length.
 28    maxItems: 1
 29
 30  clock-names:
 31    minItems: 1
 32    maxItems: 2
 33
 34  clocks:
 35    minItems: 1
 36    maxItems: 2
 37
 38  "#address-cells":
 39    const: 2
 40
 41  "#size-cells":
 42    const: 2
 43
 44  ranges: true
 45
 46  interconnects:
 47    maxItems: 1
 48
 49  interconnect-names:
 50    const: qup-core
 51
 52  iommus:
 53    maxItems: 1
 54
 55  dma-coherent: true
 56
 57  firmware-name:
 58    maxItems: 1
 59    description: Specify the name of the QUP firmware to load.
 60
 61required:
 62  - compatible
 63  - reg
 64  - clock-names
 65  - clocks
 66  - "#address-cells"
 67  - "#size-cells"
 68  - ranges
 69
 70patternProperties:
 71  "spi@[0-9a-f]+$":
 72    type: object
 73    description: GENI serial engine based SPI controller. SPI in master mode
 74                 supports up to 50MHz, up to four chip selects, programmable
 75                 data path from 4 bits to 32 bits and numerous protocol
 76                 variants.
 77    $ref: /schemas/spi/qcom,spi-geni-qcom.yaml#
 78
 79  "i2c@[0-9a-f]+$":
 80    type: object
 81    description: GENI serial engine based I2C controller.
 82    $ref: /schemas/i2c/qcom,i2c-geni-qcom.yaml#
 83
 84  "serial@[0-9a-f]+$":
 85    type: object
 86    description: GENI Serial Engine based UART Controller.
 87    $ref: /schemas/serial/qcom,serial-geni-qcom.yaml#
 88
 89allOf:
 90  - if:
 91      properties:
 92        compatible:
 93          contains:
 94            const: qcom,geni-se-i2c-master-hub
 95    then:
 96      properties:
 97        clock-names:
 98          items:
 99            - const: s-ahb
100
101        clocks:
102          items:
103            - description: Slave AHB Clock
104
105        iommus: false
106
107      patternProperties:
108        "spi@[0-9a-f]+$": false
109        "serial@[0-9a-f]+$": false
110    else:
111      properties:
112        clock-names:
113          items:
114            - const: m-ahb
115            - const: s-ahb
116
117        clocks:
118          items:
119            - description: Master AHB Clock
120            - description: Slave AHB Clock
121
122additionalProperties: false
123
124examples:
125  - |
126    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
127    #include <dt-bindings/interrupt-controller/arm-gic.h>
128
129    soc {
130        #address-cells = <2>;
131        #size-cells = <2>;
132
133        geniqup@8c0000 {
134            compatible = "qcom,geni-se-qup";
135            reg = <0 0x008c0000 0 0x6000>;
136            clock-names = "m-ahb", "s-ahb";
137            clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
138                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
139            #address-cells = <2>;
140            #size-cells = <2>;
141            ranges;
142            firmware-name = "qcom/sa8775p/qupv3fw.elf";
143
144            i2c0: i2c@a94000 {
145                compatible = "qcom,geni-i2c";
146                reg = <0 0xa94000 0 0x4000>;
147                interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
148                clock-names = "se";
149                clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
150                pinctrl-names = "default", "sleep";
151                pinctrl-0 = <&qup_1_i2c_5_active>;
152                pinctrl-1 = <&qup_1_i2c_5_sleep>;
153                #address-cells = <1>;
154                #size-cells = <0>;
155            };
156
157            uart0: serial@a88000 {
158                compatible = "qcom,geni-uart";
159                reg = <0 0xa88000 0 0x7000>;
160                interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
161                clock-names = "se";
162                clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
163                pinctrl-names = "default", "sleep";
164                pinctrl-0 = <&qup_1_uart_3_active>;
165                pinctrl-1 = <&qup_1_uart_3_sleep>;
166            };
167        };
168    };
169
170...
~/ Read-only file preview.