xref: /freebsd/sys/contrib/device-tree/Bindings/i2c/qcom,i2c-geni-qcom.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
1*d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*d5b0e70fSEmmanuel Vadot%YAML 1.2
3*d5b0e70fSEmmanuel Vadot---
4*d5b0e70fSEmmanuel Vadot$id: "http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#"
5*d5b0e70fSEmmanuel Vadot$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6*d5b0e70fSEmmanuel Vadot
7*d5b0e70fSEmmanuel Vadottitle: Qualcomm Geni based QUP I2C Controller
8*d5b0e70fSEmmanuel Vadot
9*d5b0e70fSEmmanuel Vadotmaintainers:
10*d5b0e70fSEmmanuel Vadot  - Andy Gross <agross@kernel.org>
11*d5b0e70fSEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
12*d5b0e70fSEmmanuel Vadot
13*d5b0e70fSEmmanuel VadotallOf:
14*d5b0e70fSEmmanuel Vadot  - $ref: /schemas/i2c/i2c-controller.yaml#
15*d5b0e70fSEmmanuel Vadot
16*d5b0e70fSEmmanuel Vadotproperties:
17*d5b0e70fSEmmanuel Vadot  compatible:
18*d5b0e70fSEmmanuel Vadot    const: qcom,geni-i2c
19*d5b0e70fSEmmanuel Vadot
20*d5b0e70fSEmmanuel Vadot  clocks:
21*d5b0e70fSEmmanuel Vadot    maxItems: 1
22*d5b0e70fSEmmanuel Vadot
23*d5b0e70fSEmmanuel Vadot  clock-names:
24*d5b0e70fSEmmanuel Vadot    const: se
25*d5b0e70fSEmmanuel Vadot
26*d5b0e70fSEmmanuel Vadot  clock-frequency:
27*d5b0e70fSEmmanuel Vadot    default: 100000
28*d5b0e70fSEmmanuel Vadot
29*d5b0e70fSEmmanuel Vadot  dmas:
30*d5b0e70fSEmmanuel Vadot    maxItems: 2
31*d5b0e70fSEmmanuel Vadot
32*d5b0e70fSEmmanuel Vadot  dma-names:
33*d5b0e70fSEmmanuel Vadot    items:
34*d5b0e70fSEmmanuel Vadot      - const: tx
35*d5b0e70fSEmmanuel Vadot      - const: rx
36*d5b0e70fSEmmanuel Vadot
37*d5b0e70fSEmmanuel Vadot  interconnects:
38*d5b0e70fSEmmanuel Vadot    maxItems: 3
39*d5b0e70fSEmmanuel Vadot
40*d5b0e70fSEmmanuel Vadot  interconnect-names:
41*d5b0e70fSEmmanuel Vadot    items:
42*d5b0e70fSEmmanuel Vadot      - const: qup-core
43*d5b0e70fSEmmanuel Vadot      - const: qup-config
44*d5b0e70fSEmmanuel Vadot      - const: qup-memory
45*d5b0e70fSEmmanuel Vadot
46*d5b0e70fSEmmanuel Vadot  interrupts:
47*d5b0e70fSEmmanuel Vadot    maxItems: 1
48*d5b0e70fSEmmanuel Vadot
49*d5b0e70fSEmmanuel Vadot  pinctrl-0: true
50*d5b0e70fSEmmanuel Vadot  pinctrl-1: true
51*d5b0e70fSEmmanuel Vadot
52*d5b0e70fSEmmanuel Vadot  pinctrl-names:
53*d5b0e70fSEmmanuel Vadot    minItems: 1
54*d5b0e70fSEmmanuel Vadot    items:
55*d5b0e70fSEmmanuel Vadot      - const: default
56*d5b0e70fSEmmanuel Vadot      - const: sleep
57*d5b0e70fSEmmanuel Vadot
58*d5b0e70fSEmmanuel Vadot  power-domains:
59*d5b0e70fSEmmanuel Vadot    maxItems: 1
60*d5b0e70fSEmmanuel Vadot
61*d5b0e70fSEmmanuel Vadot  reg:
62*d5b0e70fSEmmanuel Vadot    maxItems: 1
63*d5b0e70fSEmmanuel Vadot
64*d5b0e70fSEmmanuel Vadot  required-opps:
65*d5b0e70fSEmmanuel Vadot    maxItems: 1
66*d5b0e70fSEmmanuel Vadot
67*d5b0e70fSEmmanuel Vadotrequired:
68*d5b0e70fSEmmanuel Vadot  - compatible
69*d5b0e70fSEmmanuel Vadot  - interrupts
70*d5b0e70fSEmmanuel Vadot  - clocks
71*d5b0e70fSEmmanuel Vadot  - clock-names
72*d5b0e70fSEmmanuel Vadot  - reg
73*d5b0e70fSEmmanuel Vadot
74*d5b0e70fSEmmanuel VadotunevaluatedProperties: false
75*d5b0e70fSEmmanuel Vadot
76*d5b0e70fSEmmanuel Vadotexamples:
77*d5b0e70fSEmmanuel Vadot  - |
78*d5b0e70fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
79*d5b0e70fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sc7180.h>
80*d5b0e70fSEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,sc7180.h>
81*d5b0e70fSEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
82*d5b0e70fSEmmanuel Vadot
83*d5b0e70fSEmmanuel Vadot    i2c@88000 {
84*d5b0e70fSEmmanuel Vadot        compatible = "qcom,geni-i2c";
85*d5b0e70fSEmmanuel Vadot        reg = <0x00880000 0x4000>;
86*d5b0e70fSEmmanuel Vadot        clock-names = "se";
87*d5b0e70fSEmmanuel Vadot        clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
88*d5b0e70fSEmmanuel Vadot        pinctrl-names = "default";
89*d5b0e70fSEmmanuel Vadot        pinctrl-0 = <&qup_i2c0_default>;
90*d5b0e70fSEmmanuel Vadot        interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
91*d5b0e70fSEmmanuel Vadot        #address-cells = <1>;
92*d5b0e70fSEmmanuel Vadot        #size-cells = <0>;
93*d5b0e70fSEmmanuel Vadot        interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
94*d5b0e70fSEmmanuel Vadot                        <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>,
95*d5b0e70fSEmmanuel Vadot                        <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
96*d5b0e70fSEmmanuel Vadot        interconnect-names = "qup-core", "qup-config", "qup-memory";
97*d5b0e70fSEmmanuel Vadot        power-domains = <&rpmhpd SC7180_CX>;
98*d5b0e70fSEmmanuel Vadot        required-opps = <&rpmhpd_opp_low_svs>;
99*d5b0e70fSEmmanuel Vadot    };
100*d5b0e70fSEmmanuel Vadot...
101