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