1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: "http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#" 5$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7title: Qualcomm Geni based QUP I2C Controller 8 9maintainers: 10 - Andy Gross <agross@kernel.org> 11 - Bjorn Andersson <bjorn.andersson@linaro.org> 12 13properties: 14 compatible: 15 enum: 16 - qcom,geni-i2c 17 - qcom,geni-i2c-master-hub 18 19 clocks: 20 minItems: 1 21 maxItems: 2 22 23 clock-names: 24 minItems: 1 25 maxItems: 2 26 27 clock-frequency: 28 default: 100000 29 30 dmas: 31 maxItems: 2 32 33 dma-names: 34 items: 35 - const: tx 36 - const: rx 37 38 interconnects: 39 minItems: 2 40 maxItems: 3 41 42 interconnect-names: 43 minItems: 2 44 maxItems: 3 45 46 interrupts: 47 maxItems: 1 48 49 operating-points-v2: true 50 51 pinctrl-0: true 52 pinctrl-1: true 53 54 pinctrl-names: 55 minItems: 1 56 items: 57 - const: default 58 - const: sleep 59 60 power-domains: 61 maxItems: 1 62 63 reg: 64 maxItems: 1 65 66 required-opps: 67 maxItems: 1 68 69required: 70 - compatible 71 - interrupts 72 - clocks 73 - clock-names 74 - reg 75 76allOf: 77 - $ref: /schemas/i2c/i2c-controller.yaml# 78 - if: 79 properties: 80 compatible: 81 contains: 82 const: qcom,geni-i2c-master-hub 83 then: 84 properties: 85 clocks: 86 minItems: 2 87 88 clock-names: 89 items: 90 - const: se 91 - const: core 92 93 dmas: false 94 dma-names: false 95 96 interconnects: 97 maxItems: 2 98 99 interconnect-names: 100 items: 101 - const: qup-core 102 - const: qup-config 103 else: 104 properties: 105 clocks: 106 maxItems: 1 107 108 clock-names: 109 const: se 110 111 interconnects: 112 minItems: 3 113 114 interconnect-names: 115 items: 116 - const: qup-core 117 - const: qup-config 118 - const: qup-memory 119 120unevaluatedProperties: false 121 122examples: 123 - | 124 #include <dt-bindings/interrupt-controller/arm-gic.h> 125 #include <dt-bindings/clock/qcom,gcc-sc7180.h> 126 #include <dt-bindings/interconnect/qcom,sc7180.h> 127 #include <dt-bindings/power/qcom-rpmpd.h> 128 129 i2c@88000 { 130 compatible = "qcom,geni-i2c"; 131 reg = <0x00880000 0x4000>; 132 clock-names = "se"; 133 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; 134 pinctrl-names = "default"; 135 pinctrl-0 = <&qup_i2c0_default>; 136 interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>; 137 #address-cells = <1>; 138 #size-cells = <0>; 139 interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>, 140 <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>, 141 <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; 142 interconnect-names = "qup-core", "qup-config", "qup-memory"; 143 power-domains = <&rpmhpd SC7180_CX>; 144 required-opps = <&rpmhpd_opp_low_svs>; 145 }; 146... 147