xref: /linux/Documentation/devicetree/bindings/ufs/qcom,sc7180-ufshc.yaml (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1*655c8f51SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*655c8f51SKrzysztof Kozlowski%YAML 1.2
3*655c8f51SKrzysztof Kozlowski---
4*655c8f51SKrzysztof Kozlowski$id: http://devicetree.org/schemas/ufs/qcom,sc7180-ufshc.yaml#
5*655c8f51SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*655c8f51SKrzysztof Kozlowski
7*655c8f51SKrzysztof Kozlowskititle: Qualcomm SC7180 and Other SoCs UFS Controllers
8*655c8f51SKrzysztof Kozlowski
9*655c8f51SKrzysztof Kozlowskimaintainers:
10*655c8f51SKrzysztof Kozlowski  - Bjorn Andersson <bjorn.andersson@linaro.org>
11*655c8f51SKrzysztof Kozlowski
12*655c8f51SKrzysztof Kozlowski# Select only our matches, not all jedec,ufs-2.0
13*655c8f51SKrzysztof Kozlowskiselect:
14*655c8f51SKrzysztof Kozlowski  properties:
15*655c8f51SKrzysztof Kozlowski    compatible:
16*655c8f51SKrzysztof Kozlowski      contains:
17*655c8f51SKrzysztof Kozlowski        enum:
18*655c8f51SKrzysztof Kozlowski          - qcom,msm8998-ufshc
19*655c8f51SKrzysztof Kozlowski          - qcom,qcs8300-ufshc
20*655c8f51SKrzysztof Kozlowski          - qcom,sa8775p-ufshc
21*655c8f51SKrzysztof Kozlowski          - qcom,sc7180-ufshc
22*655c8f51SKrzysztof Kozlowski          - qcom,sc7280-ufshc
23*655c8f51SKrzysztof Kozlowski          - qcom,sc8180x-ufshc
24*655c8f51SKrzysztof Kozlowski          - qcom,sc8280xp-ufshc
25*655c8f51SKrzysztof Kozlowski          - qcom,sm8250-ufshc
26*655c8f51SKrzysztof Kozlowski          - qcom,sm8350-ufshc
27*655c8f51SKrzysztof Kozlowski          - qcom,sm8450-ufshc
28*655c8f51SKrzysztof Kozlowski          - qcom,sm8550-ufshc
29*655c8f51SKrzysztof Kozlowski  required:
30*655c8f51SKrzysztof Kozlowski    - compatible
31*655c8f51SKrzysztof Kozlowski
32*655c8f51SKrzysztof Kozlowskiproperties:
33*655c8f51SKrzysztof Kozlowski  compatible:
34*655c8f51SKrzysztof Kozlowski    items:
35*655c8f51SKrzysztof Kozlowski      - enum:
36*655c8f51SKrzysztof Kozlowski          - qcom,msm8998-ufshc
37*655c8f51SKrzysztof Kozlowski          - qcom,qcs8300-ufshc
38*655c8f51SKrzysztof Kozlowski          - qcom,sa8775p-ufshc
39*655c8f51SKrzysztof Kozlowski          - qcom,sc7180-ufshc
40*655c8f51SKrzysztof Kozlowski          - qcom,sc7280-ufshc
41*655c8f51SKrzysztof Kozlowski          - qcom,sc8180x-ufshc
42*655c8f51SKrzysztof Kozlowski          - qcom,sc8280xp-ufshc
43*655c8f51SKrzysztof Kozlowski          - qcom,sm8250-ufshc
44*655c8f51SKrzysztof Kozlowski          - qcom,sm8350-ufshc
45*655c8f51SKrzysztof Kozlowski          - qcom,sm8450-ufshc
46*655c8f51SKrzysztof Kozlowski          - qcom,sm8550-ufshc
47*655c8f51SKrzysztof Kozlowski      - const: qcom,ufshc
48*655c8f51SKrzysztof Kozlowski      - const: jedec,ufs-2.0
49*655c8f51SKrzysztof Kozlowski
50*655c8f51SKrzysztof Kozlowski  reg:
51*655c8f51SKrzysztof Kozlowski    maxItems: 1
52*655c8f51SKrzysztof Kozlowski
53*655c8f51SKrzysztof Kozlowski  reg-names:
54*655c8f51SKrzysztof Kozlowski    items:
55*655c8f51SKrzysztof Kozlowski      - const: std
56*655c8f51SKrzysztof Kozlowski
57*655c8f51SKrzysztof Kozlowski  clocks:
58*655c8f51SKrzysztof Kozlowski    minItems: 7
59*655c8f51SKrzysztof Kozlowski    maxItems: 8
60*655c8f51SKrzysztof Kozlowski
61*655c8f51SKrzysztof Kozlowski  clock-names:
62*655c8f51SKrzysztof Kozlowski    minItems: 7
63*655c8f51SKrzysztof Kozlowski    items:
64*655c8f51SKrzysztof Kozlowski      - const: core_clk
65*655c8f51SKrzysztof Kozlowski      - const: bus_aggr_clk
66*655c8f51SKrzysztof Kozlowski      - const: iface_clk
67*655c8f51SKrzysztof Kozlowski      - const: core_clk_unipro
68*655c8f51SKrzysztof Kozlowski      - const: ref_clk
69*655c8f51SKrzysztof Kozlowski      - const: tx_lane0_sync_clk
70*655c8f51SKrzysztof Kozlowski      - const: rx_lane0_sync_clk
71*655c8f51SKrzysztof Kozlowski      - const: rx_lane1_sync_clk
72*655c8f51SKrzysztof Kozlowski
73*655c8f51SKrzysztof Kozlowski  qcom,ice:
74*655c8f51SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
75*655c8f51SKrzysztof Kozlowski    description: phandle to the Inline Crypto Engine node
76*655c8f51SKrzysztof Kozlowski
77*655c8f51SKrzysztof Kozlowskirequired:
78*655c8f51SKrzysztof Kozlowski  - compatible
79*655c8f51SKrzysztof Kozlowski  - reg
80*655c8f51SKrzysztof Kozlowski
81*655c8f51SKrzysztof KozlowskiallOf:
82*655c8f51SKrzysztof Kozlowski  - $ref: qcom,ufs-common.yaml
83*655c8f51SKrzysztof Kozlowski
84*655c8f51SKrzysztof Kozlowski  - if:
85*655c8f51SKrzysztof Kozlowski      properties:
86*655c8f51SKrzysztof Kozlowski        compatible:
87*655c8f51SKrzysztof Kozlowski          contains:
88*655c8f51SKrzysztof Kozlowski            enum:
89*655c8f51SKrzysztof Kozlowski              - qcom,sc7180-ufshc
90*655c8f51SKrzysztof Kozlowski    then:
91*655c8f51SKrzysztof Kozlowski      properties:
92*655c8f51SKrzysztof Kozlowski        clocks:
93*655c8f51SKrzysztof Kozlowski          maxItems: 7
94*655c8f51SKrzysztof Kozlowski        clock-names:
95*655c8f51SKrzysztof Kozlowski          maxItems: 7
96*655c8f51SKrzysztof Kozlowski    else:
97*655c8f51SKrzysztof Kozlowski      properties:
98*655c8f51SKrzysztof Kozlowski        clocks:
99*655c8f51SKrzysztof Kozlowski          minItems: 8
100*655c8f51SKrzysztof Kozlowski        clock-names:
101*655c8f51SKrzysztof Kozlowski          minItems: 8
102*655c8f51SKrzysztof Kozlowski
103*655c8f51SKrzysztof KozlowskiunevaluatedProperties: false
104*655c8f51SKrzysztof Kozlowski
105*655c8f51SKrzysztof Kozlowskiexamples:
106*655c8f51SKrzysztof Kozlowski  - |
107*655c8f51SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,gcc-sm8450.h>
108*655c8f51SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,rpmh.h>
109*655c8f51SKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
110*655c8f51SKrzysztof Kozlowski    #include <dt-bindings/interconnect/qcom,sm8450.h>
111*655c8f51SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
112*655c8f51SKrzysztof Kozlowski
113*655c8f51SKrzysztof Kozlowski    soc {
114*655c8f51SKrzysztof Kozlowski        #address-cells = <2>;
115*655c8f51SKrzysztof Kozlowski        #size-cells = <2>;
116*655c8f51SKrzysztof Kozlowski
117*655c8f51SKrzysztof Kozlowski        ufs@1d84000 {
118*655c8f51SKrzysztof Kozlowski            compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
119*655c8f51SKrzysztof Kozlowski                         "jedec,ufs-2.0";
120*655c8f51SKrzysztof Kozlowski            reg = <0x0 0x01d84000 0x0 0x3000>;
121*655c8f51SKrzysztof Kozlowski            interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
122*655c8f51SKrzysztof Kozlowski            phys = <&ufs_mem_phy_lanes>;
123*655c8f51SKrzysztof Kozlowski            phy-names = "ufsphy";
124*655c8f51SKrzysztof Kozlowski            lanes-per-direction = <2>;
125*655c8f51SKrzysztof Kozlowski            #reset-cells = <1>;
126*655c8f51SKrzysztof Kozlowski            resets = <&gcc GCC_UFS_PHY_BCR>;
127*655c8f51SKrzysztof Kozlowski            reset-names = "rst";
128*655c8f51SKrzysztof Kozlowski            reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
129*655c8f51SKrzysztof Kozlowski
130*655c8f51SKrzysztof Kozlowski            vcc-supply = <&vreg_l7b_2p5>;
131*655c8f51SKrzysztof Kozlowski            vcc-max-microamp = <1100000>;
132*655c8f51SKrzysztof Kozlowski            vccq-supply = <&vreg_l9b_1p2>;
133*655c8f51SKrzysztof Kozlowski            vccq-max-microamp = <1200000>;
134*655c8f51SKrzysztof Kozlowski
135*655c8f51SKrzysztof Kozlowski            power-domains = <&gcc UFS_PHY_GDSC>;
136*655c8f51SKrzysztof Kozlowski            iommus = <&apps_smmu 0xe0 0x0>;
137*655c8f51SKrzysztof Kozlowski            interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>,
138*655c8f51SKrzysztof Kozlowski                            <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>;
139*655c8f51SKrzysztof Kozlowski            interconnect-names = "ufs-ddr", "cpu-ufs";
140*655c8f51SKrzysztof Kozlowski
141*655c8f51SKrzysztof Kozlowski            clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
142*655c8f51SKrzysztof Kozlowski                     <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
143*655c8f51SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_AHB_CLK>,
144*655c8f51SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
145*655c8f51SKrzysztof Kozlowski                     <&rpmhcc RPMH_CXO_CLK>,
146*655c8f51SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
147*655c8f51SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
148*655c8f51SKrzysztof Kozlowski                     <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
149*655c8f51SKrzysztof Kozlowski            clock-names = "core_clk",
150*655c8f51SKrzysztof Kozlowski                          "bus_aggr_clk",
151*655c8f51SKrzysztof Kozlowski                          "iface_clk",
152*655c8f51SKrzysztof Kozlowski                          "core_clk_unipro",
153*655c8f51SKrzysztof Kozlowski                          "ref_clk",
154*655c8f51SKrzysztof Kozlowski                          "tx_lane0_sync_clk",
155*655c8f51SKrzysztof Kozlowski                          "rx_lane0_sync_clk",
156*655c8f51SKrzysztof Kozlowski                          "rx_lane1_sync_clk";
157*655c8f51SKrzysztof Kozlowski            freq-table-hz = <75000000 300000000>,
158*655c8f51SKrzysztof Kozlowski                            <0 0>,
159*655c8f51SKrzysztof Kozlowski                            <0 0>,
160*655c8f51SKrzysztof Kozlowski                            <75000000 300000000>,
161*655c8f51SKrzysztof Kozlowski                            <75000000 300000000>,
162*655c8f51SKrzysztof Kozlowski                            <0 0>,
163*655c8f51SKrzysztof Kozlowski                            <0 0>,
164*655c8f51SKrzysztof Kozlowski                            <0 0>;
165*655c8f51SKrzysztof Kozlowski            qcom,ice = <&ice>;
166*655c8f51SKrzysztof Kozlowski        };
167*655c8f51SKrzysztof Kozlowski    };
168