xref: /linux/Documentation/devicetree/bindings/ufs/qcom,sm8650-ufshc.yaml (revision 43e9ad0c55a369ecc84a4788d06a8a6bfa634f1c)
1149009f2SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2149009f2SKrzysztof Kozlowski%YAML 1.2
3149009f2SKrzysztof Kozlowski---
4149009f2SKrzysztof Kozlowski$id: http://devicetree.org/schemas/ufs/qcom,sm8650-ufshc.yaml#
5149009f2SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6149009f2SKrzysztof Kozlowski
7149009f2SKrzysztof Kozlowskititle: Qualcomm SM8650 and Other SoCs UFS Controllers
8149009f2SKrzysztof Kozlowski
9149009f2SKrzysztof Kozlowskimaintainers:
10149009f2SKrzysztof Kozlowski  - Bjorn Andersson <bjorn.andersson@linaro.org>
11149009f2SKrzysztof Kozlowski
12149009f2SKrzysztof Kozlowski# Select only our matches, not all jedec,ufs-2.0
13149009f2SKrzysztof Kozlowskiselect:
14149009f2SKrzysztof Kozlowski  properties:
15149009f2SKrzysztof Kozlowski    compatible:
16149009f2SKrzysztof Kozlowski      contains:
17149009f2SKrzysztof Kozlowski        enum:
18*6dfc353aSNitin Rawat          - qcom,kaanapali-ufshc
19149009f2SKrzysztof Kozlowski          - qcom,sm8650-ufshc
20149009f2SKrzysztof Kozlowski          - qcom,sm8750-ufshc
21149009f2SKrzysztof Kozlowski  required:
22149009f2SKrzysztof Kozlowski    - compatible
23149009f2SKrzysztof Kozlowski
24149009f2SKrzysztof Kozlowskiproperties:
25149009f2SKrzysztof Kozlowski  compatible:
26149009f2SKrzysztof Kozlowski    items:
27149009f2SKrzysztof Kozlowski      - enum:
28*6dfc353aSNitin Rawat          - qcom,kaanapali-ufshc
29149009f2SKrzysztof Kozlowski          - qcom,sm8650-ufshc
30149009f2SKrzysztof Kozlowski          - qcom,sm8750-ufshc
31149009f2SKrzysztof Kozlowski      - const: qcom,ufshc
32149009f2SKrzysztof Kozlowski      - const: jedec,ufs-2.0
33149009f2SKrzysztof Kozlowski
34149009f2SKrzysztof Kozlowski  reg:
35149009f2SKrzysztof Kozlowski    minItems: 1
36149009f2SKrzysztof Kozlowski    maxItems: 2
37149009f2SKrzysztof Kozlowski
38149009f2SKrzysztof Kozlowski  reg-names:
39149009f2SKrzysztof Kozlowski    minItems: 1
40149009f2SKrzysztof Kozlowski    items:
41149009f2SKrzysztof Kozlowski      - const: std
42149009f2SKrzysztof Kozlowski      - const: mcq
43149009f2SKrzysztof Kozlowski
44149009f2SKrzysztof Kozlowski  clocks:
45149009f2SKrzysztof Kozlowski    minItems: 8
46149009f2SKrzysztof Kozlowski    maxItems: 8
47149009f2SKrzysztof Kozlowski
48149009f2SKrzysztof Kozlowski  clock-names:
49149009f2SKrzysztof Kozlowski    items:
50149009f2SKrzysztof Kozlowski      - const: core_clk
51149009f2SKrzysztof Kozlowski      - const: bus_aggr_clk
52149009f2SKrzysztof Kozlowski      - const: iface_clk
53149009f2SKrzysztof Kozlowski      - const: core_clk_unipro
54149009f2SKrzysztof Kozlowski      - const: ref_clk
55149009f2SKrzysztof Kozlowski      - const: tx_lane0_sync_clk
56149009f2SKrzysztof Kozlowski      - const: rx_lane0_sync_clk
57149009f2SKrzysztof Kozlowski      - const: rx_lane1_sync_clk
58149009f2SKrzysztof Kozlowski
59149009f2SKrzysztof Kozlowski  qcom,ice:
60149009f2SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
61149009f2SKrzysztof Kozlowski    description: phandle to the Inline Crypto Engine node
62149009f2SKrzysztof Kozlowski
63149009f2SKrzysztof Kozlowskirequired:
64149009f2SKrzysztof Kozlowski  - compatible
65149009f2SKrzysztof Kozlowski  - reg
66149009f2SKrzysztof Kozlowski
67149009f2SKrzysztof KozlowskiallOf:
68149009f2SKrzysztof Kozlowski  - $ref: qcom,ufs-common.yaml
69149009f2SKrzysztof Kozlowski
70149009f2SKrzysztof KozlowskiunevaluatedProperties: false
71149009f2SKrzysztof Kozlowski
72149009f2SKrzysztof Kozlowskiexamples:
73149009f2SKrzysztof Kozlowski  - |
74149009f2SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,sm8650-gcc.h>
75149009f2SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,sm8650-tcsr.h>
76149009f2SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,rpmh.h>
77149009f2SKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
78149009f2SKrzysztof Kozlowski    #include <dt-bindings/interconnect/qcom,icc.h>
79149009f2SKrzysztof Kozlowski    #include <dt-bindings/interconnect/qcom,sm8650-rpmh.h>
80149009f2SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
81149009f2SKrzysztof Kozlowski
82149009f2SKrzysztof Kozlowski    soc {
83149009f2SKrzysztof Kozlowski        #address-cells = <2>;
84149009f2SKrzysztof Kozlowski        #size-cells = <2>;
85149009f2SKrzysztof Kozlowski
86149009f2SKrzysztof Kozlowski        ufshc@1d84000 {
87149009f2SKrzysztof Kozlowski            compatible = "qcom,sm8650-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
88149009f2SKrzysztof Kozlowski            reg = <0x0 0x01d84000 0x0 0x3000>;
89149009f2SKrzysztof Kozlowski
90149009f2SKrzysztof Kozlowski            interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
91149009f2SKrzysztof Kozlowski
92149009f2SKrzysztof Kozlowski            clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
93149009f2SKrzysztof Kozlowski                     <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
94149009f2SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_AHB_CLK>,
95149009f2SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
96149009f2SKrzysztof Kozlowski                     <&tcsr TCSR_UFS_PAD_CLKREF_EN>,
97149009f2SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
98149009f2SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
99149009f2SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
100149009f2SKrzysztof Kozlowski            clock-names = "core_clk",
101149009f2SKrzysztof Kozlowski                          "bus_aggr_clk",
102149009f2SKrzysztof Kozlowski                          "iface_clk",
103149009f2SKrzysztof Kozlowski                          "core_clk_unipro",
104149009f2SKrzysztof Kozlowski                          "ref_clk",
105149009f2SKrzysztof Kozlowski                          "tx_lane0_sync_clk",
106149009f2SKrzysztof Kozlowski                          "rx_lane0_sync_clk",
107149009f2SKrzysztof Kozlowski                          "rx_lane1_sync_clk";
108149009f2SKrzysztof Kozlowski
109149009f2SKrzysztof Kozlowski            resets = <&gcc GCC_UFS_PHY_BCR>;
110149009f2SKrzysztof Kozlowski            reset-names = "rst";
111149009f2SKrzysztof Kozlowski            reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
112149009f2SKrzysztof Kozlowski
113149009f2SKrzysztof Kozlowski            interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
114149009f2SKrzysztof Kozlowski                             &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
115149009f2SKrzysztof Kozlowski                            <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
116149009f2SKrzysztof Kozlowski                             &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
117149009f2SKrzysztof Kozlowski            interconnect-names = "ufs-ddr",
118149009f2SKrzysztof Kozlowski                         "cpu-ufs";
119149009f2SKrzysztof Kozlowski
120149009f2SKrzysztof Kozlowski            power-domains = <&gcc UFS_PHY_GDSC>;
121149009f2SKrzysztof Kozlowski            required-opps = <&rpmhpd_opp_nom>;
122149009f2SKrzysztof Kozlowski
123149009f2SKrzysztof Kozlowski            operating-points-v2 = <&ufs_opp_table>;
124149009f2SKrzysztof Kozlowski
125149009f2SKrzysztof Kozlowski            iommus = <&apps_smmu 0x60 0>;
126149009f2SKrzysztof Kozlowski
127149009f2SKrzysztof Kozlowski            lanes-per-direction = <2>;
128149009f2SKrzysztof Kozlowski            qcom,ice = <&ice>;
129149009f2SKrzysztof Kozlowski
130149009f2SKrzysztof Kozlowski            phys = <&ufs_mem_phy>;
131149009f2SKrzysztof Kozlowski            phy-names = "ufsphy";
132149009f2SKrzysztof Kozlowski
133149009f2SKrzysztof Kozlowski            #reset-cells = <1>;
134149009f2SKrzysztof Kozlowski
135149009f2SKrzysztof Kozlowski            vcc-supply = <&vreg_l7b_2p5>;
136149009f2SKrzysztof Kozlowski            vcc-max-microamp = <1100000>;
137149009f2SKrzysztof Kozlowski            vccq-supply = <&vreg_l9b_1p2>;
138149009f2SKrzysztof Kozlowski            vccq-max-microamp = <1200000>;
139149009f2SKrzysztof Kozlowski
140149009f2SKrzysztof Kozlowski            ufs_opp_table: opp-table {
141149009f2SKrzysztof Kozlowski                compatible = "operating-points-v2";
142149009f2SKrzysztof Kozlowski
143149009f2SKrzysztof Kozlowski                opp-100000000 {
144149009f2SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <100000000>,
145149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
146149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
147149009f2SKrzysztof Kozlowski                             /bits/ 64 <100000000>,
148149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
149149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
150149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
151149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>;
152149009f2SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs>;
153149009f2SKrzysztof Kozlowski                };
154149009f2SKrzysztof Kozlowski
155149009f2SKrzysztof Kozlowski                opp-201500000 {
156149009f2SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <201500000>,
157149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
158149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
159149009f2SKrzysztof Kozlowski                             /bits/ 64 <201500000>,
160149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
161149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
162149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
163149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>;
164149009f2SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_svs>;
165149009f2SKrzysztof Kozlowski                };
166149009f2SKrzysztof Kozlowski
167149009f2SKrzysztof Kozlowski                opp-403000000 {
168149009f2SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <403000000>,
169149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
170149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
171149009f2SKrzysztof Kozlowski                             /bits/ 64 <403000000>,
172149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
173149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
174149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>,
175149009f2SKrzysztof Kozlowski                             /bits/ 64 <0>;
176149009f2SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_nom>;
177149009f2SKrzysztof Kozlowski                };
178149009f2SKrzysztof Kozlowski            };
179149009f2SKrzysztof Kozlowski        };
180149009f2SKrzysztof Kozlowski    };
181