~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/ufs/qcom,ufs.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm Universal Flash Storage (UFS) Controller
  8 
  9 maintainers:
 10   - Bjorn Andersson <bjorn.andersson@linaro.org>
 11   - Andy Gross <agross@kernel.org>
 12 
 13 # Select only our matches, not all jedec,ufs-2.0
 14 select:
 15   properties:
 16     compatible:
 17       contains:
 18         const: qcom,ufshc
 19   required:
 20     - compatible
 21 
 22 properties:
 23   compatible:
 24     items:
 25       - enum:
 26           - qcom,msm8994-ufshc
 27           - qcom,msm8996-ufshc
 28           - qcom,msm8998-ufshc
 29           - qcom,sa8775p-ufshc
 30           - qcom,sc7180-ufshc
 31           - qcom,sc7280-ufshc
 32           - qcom,sc8180x-ufshc
 33           - qcom,sc8280xp-ufshc
 34           - qcom,sdm845-ufshc
 35           - qcom,sm6115-ufshc
 36           - qcom,sm6125-ufshc
 37           - qcom,sm6350-ufshc
 38           - qcom,sm8150-ufshc
 39           - qcom,sm8250-ufshc
 40           - qcom,sm8350-ufshc
 41           - qcom,sm8450-ufshc
 42           - qcom,sm8550-ufshc
 43           - qcom,sm8650-ufshc
 44       - const: qcom,ufshc
 45       - const: jedec,ufs-2.0
 46 
 47   clocks:
 48     minItems: 7
 49     maxItems: 9
 50 
 51   clock-names:
 52     minItems: 7
 53     maxItems: 9
 54 
 55   dma-coherent: true
 56 
 57   interconnects:
 58     minItems: 2
 59     maxItems: 2
 60 
 61   interconnect-names:
 62     items:
 63       - const: ufs-ddr
 64       - const: cpu-ufs
 65 
 66   iommus:
 67     minItems: 1
 68     maxItems: 2
 69 
 70   phys:
 71     maxItems: 1
 72 
 73   phy-names:
 74     items:
 75       - const: ufsphy
 76 
 77   power-domains:
 78     maxItems: 1
 79 
 80   qcom,ice:
 81     $ref: /schemas/types.yaml#/definitions/phandle
 82     description: phandle to the Inline Crypto Engine node
 83 
 84   reg:
 85     minItems: 1
 86     maxItems: 2
 87 
 88   reg-names:
 89     items:
 90       - const: std
 91       - const: ice
 92 
 93   required-opps:
 94     maxItems: 1
 95 
 96   resets:
 97     maxItems: 1
 98 
 99   '#reset-cells':
100     const: 1
101 
102   reset-names:
103     items:
104       - const: rst
105 
106   reset-gpios:
107     maxItems: 1
108     description:
109       GPIO connected to the RESET pin of the UFS memory device.
110 
111 required:
112   - compatible
113   - reg
114 
115 allOf:
116   - $ref: ufs-common.yaml
117 
118   - if:
119       properties:
120         compatible:
121           contains:
122             enum:
123               - qcom,sc7180-ufshc
124     then:
125       properties:
126         clocks:
127           minItems: 7
128           maxItems: 7
129         clock-names:
130           items:
131             - const: core_clk
132             - const: bus_aggr_clk
133             - const: iface_clk
134             - const: core_clk_unipro
135             - const: ref_clk
136             - const: tx_lane0_sync_clk
137             - const: rx_lane0_sync_clk
138         reg:
139           maxItems: 1
140         reg-names:
141           maxItems: 1
142 
143   - if:
144       properties:
145         compatible:
146           contains:
147             enum:
148               - qcom,msm8998-ufshc
149               - qcom,sa8775p-ufshc
150               - qcom,sc7280-ufshc
151               - qcom,sc8180x-ufshc
152               - qcom,sc8280xp-ufshc
153               - qcom,sm8250-ufshc
154               - qcom,sm8350-ufshc
155               - qcom,sm8450-ufshc
156               - qcom,sm8550-ufshc
157               - qcom,sm8650-ufshc
158     then:
159       properties:
160         clocks:
161           minItems: 8
162           maxItems: 8
163         clock-names:
164           items:
165             - const: core_clk
166             - const: bus_aggr_clk
167             - const: iface_clk
168             - const: core_clk_unipro
169             - const: ref_clk
170             - const: tx_lane0_sync_clk
171             - const: rx_lane0_sync_clk
172             - const: rx_lane1_sync_clk
173         reg:
174           minItems: 1
175           maxItems: 1
176         reg-names:
177           maxItems: 1
178 
179   - if:
180       properties:
181         compatible:
182           contains:
183             enum:
184               - qcom,sdm845-ufshc
185               - qcom,sm6350-ufshc
186               - qcom,sm8150-ufshc
187     then:
188       properties:
189         clocks:
190           minItems: 9
191           maxItems: 9
192         clock-names:
193           items:
194             - const: core_clk
195             - const: bus_aggr_clk
196             - const: iface_clk
197             - const: core_clk_unipro
198             - const: ref_clk
199             - const: tx_lane0_sync_clk
200             - const: rx_lane0_sync_clk
201             - const: rx_lane1_sync_clk
202             - const: ice_core_clk
203         reg:
204           minItems: 2
205           maxItems: 2
206         reg-names:
207           minItems: 2
208       required:
209         - reg-names
210 
211   - if:
212       properties:
213         compatible:
214           contains:
215             enum:
216               - qcom,msm8996-ufshc
217     then:
218       properties:
219         clocks:
220           minItems: 9
221           maxItems: 9
222         clock-names:
223           items:
224             - const: core_clk
225             - const: bus_clk
226             - const: bus_aggr_clk
227             - const: iface_clk
228             - const: core_clk_unipro
229             - const: core_clk_ice
230             - const: ref_clk
231             - const: tx_lane0_sync_clk
232             - const: rx_lane0_sync_clk
233         reg:
234           minItems: 1
235           maxItems: 1
236         reg-names:
237           maxItems: 1
238 
239   - if:
240       properties:
241         compatible:
242           contains:
243             enum:
244               - qcom,sm6115-ufshc
245               - qcom,sm6125-ufshc
246     then:
247       properties:
248         clocks:
249           minItems: 8
250           maxItems: 8
251         clock-names:
252           items:
253             - const: core_clk
254             - const: bus_aggr_clk
255             - const: iface_clk
256             - const: core_clk_unipro
257             - const: ref_clk
258             - const: tx_lane0_sync_clk
259             - const: rx_lane0_sync_clk
260             - const: ice_core_clk
261         reg:
262           minItems: 2
263           maxItems: 2
264         reg-names:
265           minItems: 2
266       required:
267         - reg-names
268 
269     # TODO: define clock bindings for qcom,msm8994-ufshc
270 
271   - if:
272       required:
273         - qcom,ice
274     then:
275       properties:
276         reg:
277           maxItems: 1
278         clocks:
279           minItems: 7
280           maxItems: 8
281     else:
282       properties:
283         reg:
284           minItems: 1
285           maxItems: 2
286         clocks:
287           minItems: 7
288           maxItems: 9
289 
290 unevaluatedProperties: false
291 
292 examples:
293   - |
294     #include <dt-bindings/clock/qcom,gcc-sm8450.h>
295     #include <dt-bindings/clock/qcom,rpmh.h>
296     #include <dt-bindings/gpio/gpio.h>
297     #include <dt-bindings/interconnect/qcom,sm8450.h>
298     #include <dt-bindings/interrupt-controller/arm-gic.h>
299 
300     soc {
301         #address-cells = <2>;
302         #size-cells = <2>;
303 
304         ufs@1d84000 {
305             compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
306                          "jedec,ufs-2.0";
307             reg = <0 0x01d84000 0 0x3000>;
308             interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
309             phys = <&ufs_mem_phy_lanes>;
310             phy-names = "ufsphy";
311             lanes-per-direction = <2>;
312             #reset-cells = <1>;
313             resets = <&gcc GCC_UFS_PHY_BCR>;
314             reset-names = "rst";
315             reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
316 
317             vcc-supply = <&vreg_l7b_2p5>;
318             vcc-max-microamp = <1100000>;
319             vccq-supply = <&vreg_l9b_1p2>;
320             vccq-max-microamp = <1200000>;
321 
322             power-domains = <&gcc UFS_PHY_GDSC>;
323             iommus = <&apps_smmu 0xe0 0x0>;
324             interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>,
325                             <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>;
326             interconnect-names = "ufs-ddr", "cpu-ufs";
327 
328             clock-names = "core_clk",
329                           "bus_aggr_clk",
330                           "iface_clk",
331                           "core_clk_unipro",
332                           "ref_clk",
333                           "tx_lane0_sync_clk",
334                           "rx_lane0_sync_clk",
335                           "rx_lane1_sync_clk";
336             clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
337                      <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
338                      <&gcc GCC_UFS_PHY_AHB_CLK>,
339                      <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
340                      <&rpmhcc RPMH_CXO_CLK>,
341                      <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
342                      <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
343                      <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
344             freq-table-hz = <75000000 300000000>,
345                             <0 0>,
346                             <0 0>,
347                             <75000000 300000000>,
348                             <75000000 300000000>,
349                             <0 0>,
350                             <0 0>,
351                             <0 0>;
352             qcom,ice = <&ice>;
353         };
354     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php