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