1462c5c0aSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2462c5c0aSKrzysztof Kozlowski%YAML 1.2 3462c5c0aSKrzysztof Kozlowski--- 4462c5c0aSKrzysztof Kozlowski$id: http://devicetree.org/schemas/ufs/qcom,ufs.yaml# 5462c5c0aSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6462c5c0aSKrzysztof Kozlowski 7462c5c0aSKrzysztof Kozlowskititle: Qualcomm Universal Flash Storage (UFS) Controller 8462c5c0aSKrzysztof Kozlowski 9462c5c0aSKrzysztof Kozlowskimaintainers: 10462c5c0aSKrzysztof Kozlowski - Bjorn Andersson <bjorn.andersson@linaro.org> 11462c5c0aSKrzysztof Kozlowski - Andy Gross <agross@kernel.org> 12462c5c0aSKrzysztof Kozlowski 13462c5c0aSKrzysztof Kozlowski# Select only our matches, not all jedec,ufs-2.0 14462c5c0aSKrzysztof Kozlowskiselect: 15462c5c0aSKrzysztof Kozlowski properties: 16462c5c0aSKrzysztof Kozlowski compatible: 17462c5c0aSKrzysztof Kozlowski contains: 18462c5c0aSKrzysztof Kozlowski const: qcom,ufshc 19462c5c0aSKrzysztof Kozlowski required: 20462c5c0aSKrzysztof Kozlowski - compatible 21462c5c0aSKrzysztof Kozlowski 22462c5c0aSKrzysztof Kozlowskiproperties: 23462c5c0aSKrzysztof Kozlowski compatible: 24462c5c0aSKrzysztof Kozlowski items: 25462c5c0aSKrzysztof Kozlowski - enum: 26462c5c0aSKrzysztof Kozlowski - qcom,msm8994-ufshc 27462c5c0aSKrzysztof Kozlowski - qcom,msm8996-ufshc 28462c5c0aSKrzysztof Kozlowski - qcom,msm8998-ufshc 298f0c17bfSBartosz Golaszewski - qcom,sa8775p-ufshc 302f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 31462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 323d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 33462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 34462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 35462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 36462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 37b8c20389SAbel Vesa - qcom,sm8550-ufshc 38462c5c0aSKrzysztof Kozlowski - const: qcom,ufshc 39462c5c0aSKrzysztof Kozlowski - const: jedec,ufs-2.0 40462c5c0aSKrzysztof Kozlowski 41462c5c0aSKrzysztof Kozlowski clocks: 42462c5c0aSKrzysztof Kozlowski minItems: 8 43462c5c0aSKrzysztof Kozlowski maxItems: 11 44462c5c0aSKrzysztof Kozlowski 45462c5c0aSKrzysztof Kozlowski clock-names: 46462c5c0aSKrzysztof Kozlowski minItems: 8 47462c5c0aSKrzysztof Kozlowski maxItems: 11 48462c5c0aSKrzysztof Kozlowski 4985e182b4SJohan Hovold dma-coherent: true 5085e182b4SJohan Hovold 51462c5c0aSKrzysztof Kozlowski interconnects: 52462c5c0aSKrzysztof Kozlowski minItems: 2 53462c5c0aSKrzysztof Kozlowski maxItems: 2 54462c5c0aSKrzysztof Kozlowski 55462c5c0aSKrzysztof Kozlowski interconnect-names: 56462c5c0aSKrzysztof Kozlowski items: 57462c5c0aSKrzysztof Kozlowski - const: ufs-ddr 58462c5c0aSKrzysztof Kozlowski - const: cpu-ufs 59462c5c0aSKrzysztof Kozlowski 60462c5c0aSKrzysztof Kozlowski iommus: 61462c5c0aSKrzysztof Kozlowski minItems: 1 62462c5c0aSKrzysztof Kozlowski maxItems: 2 63462c5c0aSKrzysztof Kozlowski 64462c5c0aSKrzysztof Kozlowski phys: 65462c5c0aSKrzysztof Kozlowski maxItems: 1 66462c5c0aSKrzysztof Kozlowski 67462c5c0aSKrzysztof Kozlowski phy-names: 68462c5c0aSKrzysztof Kozlowski items: 69462c5c0aSKrzysztof Kozlowski - const: ufsphy 70462c5c0aSKrzysztof Kozlowski 71462c5c0aSKrzysztof Kozlowski power-domains: 72462c5c0aSKrzysztof Kozlowski maxItems: 1 73462c5c0aSKrzysztof Kozlowski 7429a6d121SAbel Vesa qcom,ice: 7529a6d121SAbel Vesa $ref: /schemas/types.yaml#/definitions/phandle 7629a6d121SAbel Vesa description: phandle to the Inline Crypto Engine node 7729a6d121SAbel Vesa 78462c5c0aSKrzysztof Kozlowski reg: 79462c5c0aSKrzysztof Kozlowski minItems: 1 80462c5c0aSKrzysztof Kozlowski maxItems: 2 81462c5c0aSKrzysztof Kozlowski 827839d566SLuca Weiss reg-names: 837839d566SLuca Weiss items: 847839d566SLuca Weiss - const: std 857839d566SLuca Weiss - const: ice 867839d566SLuca Weiss 878ffbaa98SKrzysztof Kozlowski required-opps: 888ffbaa98SKrzysztof Kozlowski maxItems: 1 898ffbaa98SKrzysztof Kozlowski 90462c5c0aSKrzysztof Kozlowski resets: 91462c5c0aSKrzysztof Kozlowski maxItems: 1 92462c5c0aSKrzysztof Kozlowski 93462c5c0aSKrzysztof Kozlowski '#reset-cells': 94462c5c0aSKrzysztof Kozlowski const: 1 95462c5c0aSKrzysztof Kozlowski 96462c5c0aSKrzysztof Kozlowski reset-names: 97462c5c0aSKrzysztof Kozlowski items: 98462c5c0aSKrzysztof Kozlowski - const: rst 99462c5c0aSKrzysztof Kozlowski 100462c5c0aSKrzysztof Kozlowski reset-gpios: 101462c5c0aSKrzysztof Kozlowski maxItems: 1 102462c5c0aSKrzysztof Kozlowski description: 103462c5c0aSKrzysztof Kozlowski GPIO connected to the RESET pin of the UFS memory device. 104462c5c0aSKrzysztof Kozlowski 105462c5c0aSKrzysztof Kozlowskirequired: 106462c5c0aSKrzysztof Kozlowski - compatible 107462c5c0aSKrzysztof Kozlowski - reg 108462c5c0aSKrzysztof Kozlowski 109462c5c0aSKrzysztof KozlowskiallOf: 110462c5c0aSKrzysztof Kozlowski - $ref: ufs-common.yaml 111462c5c0aSKrzysztof Kozlowski 112462c5c0aSKrzysztof Kozlowski - if: 113462c5c0aSKrzysztof Kozlowski properties: 114462c5c0aSKrzysztof Kozlowski compatible: 115462c5c0aSKrzysztof Kozlowski contains: 116462c5c0aSKrzysztof Kozlowski enum: 117462c5c0aSKrzysztof Kozlowski - qcom,msm8998-ufshc 1188f0c17bfSBartosz Golaszewski - qcom,sa8775p-ufshc 1192f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 120462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 121462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 122462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 123b8c20389SAbel Vesa - qcom,sm8550-ufshc 124462c5c0aSKrzysztof Kozlowski then: 125462c5c0aSKrzysztof Kozlowski properties: 126462c5c0aSKrzysztof Kozlowski clocks: 127462c5c0aSKrzysztof Kozlowski minItems: 8 128462c5c0aSKrzysztof Kozlowski maxItems: 8 129462c5c0aSKrzysztof Kozlowski clock-names: 130462c5c0aSKrzysztof Kozlowski items: 131462c5c0aSKrzysztof Kozlowski - const: core_clk 132462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 133462c5c0aSKrzysztof Kozlowski - const: iface_clk 134462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 135462c5c0aSKrzysztof Kozlowski - const: ref_clk 136462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 137462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 138462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 139462c5c0aSKrzysztof Kozlowski reg: 140462c5c0aSKrzysztof Kozlowski minItems: 1 141462c5c0aSKrzysztof Kozlowski maxItems: 1 1427839d566SLuca Weiss reg-names: 1437839d566SLuca Weiss maxItems: 1 144462c5c0aSKrzysztof Kozlowski 145462c5c0aSKrzysztof Kozlowski - if: 146462c5c0aSKrzysztof Kozlowski properties: 147462c5c0aSKrzysztof Kozlowski compatible: 148462c5c0aSKrzysztof Kozlowski contains: 149462c5c0aSKrzysztof Kozlowski enum: 150462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 1513d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 152462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 153462c5c0aSKrzysztof Kozlowski then: 154462c5c0aSKrzysztof Kozlowski properties: 155462c5c0aSKrzysztof Kozlowski clocks: 156462c5c0aSKrzysztof Kozlowski minItems: 9 157462c5c0aSKrzysztof Kozlowski maxItems: 9 158462c5c0aSKrzysztof Kozlowski clock-names: 159462c5c0aSKrzysztof Kozlowski items: 160462c5c0aSKrzysztof Kozlowski - const: core_clk 161462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 162462c5c0aSKrzysztof Kozlowski - const: iface_clk 163462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 164462c5c0aSKrzysztof Kozlowski - const: ref_clk 165462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 166462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 167462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 168462c5c0aSKrzysztof Kozlowski - const: ice_core_clk 169462c5c0aSKrzysztof Kozlowski reg: 170462c5c0aSKrzysztof Kozlowski minItems: 2 171462c5c0aSKrzysztof Kozlowski maxItems: 2 1727839d566SLuca Weiss reg-names: 1737839d566SLuca Weiss minItems: 2 1747839d566SLuca Weiss required: 1757839d566SLuca Weiss - reg-names 176462c5c0aSKrzysztof Kozlowski 177462c5c0aSKrzysztof Kozlowski - if: 178462c5c0aSKrzysztof Kozlowski properties: 179462c5c0aSKrzysztof Kozlowski compatible: 180462c5c0aSKrzysztof Kozlowski contains: 181462c5c0aSKrzysztof Kozlowski enum: 182462c5c0aSKrzysztof Kozlowski - qcom,msm8996-ufshc 183462c5c0aSKrzysztof Kozlowski then: 184462c5c0aSKrzysztof Kozlowski properties: 185462c5c0aSKrzysztof Kozlowski clocks: 186462c5c0aSKrzysztof Kozlowski minItems: 11 187462c5c0aSKrzysztof Kozlowski maxItems: 11 188462c5c0aSKrzysztof Kozlowski clock-names: 189462c5c0aSKrzysztof Kozlowski items: 190462c5c0aSKrzysztof Kozlowski - const: core_clk_src 191462c5c0aSKrzysztof Kozlowski - const: core_clk 192462c5c0aSKrzysztof Kozlowski - const: bus_clk 193462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 194462c5c0aSKrzysztof Kozlowski - const: iface_clk 195462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro_src 196462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 197462c5c0aSKrzysztof Kozlowski - const: core_clk_ice 198462c5c0aSKrzysztof Kozlowski - const: ref_clk 199462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 200462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 201462c5c0aSKrzysztof Kozlowski reg: 202462c5c0aSKrzysztof Kozlowski minItems: 1 203462c5c0aSKrzysztof Kozlowski maxItems: 1 2047839d566SLuca Weiss reg-names: 2057839d566SLuca Weiss maxItems: 1 206462c5c0aSKrzysztof Kozlowski 207462c5c0aSKrzysztof Kozlowski # TODO: define clock bindings for qcom,msm8994-ufshc 208462c5c0aSKrzysztof Kozlowski 20929a6d121SAbel Vesa - if: 2109b7c13b8SAbel Vesa required: 2119b7c13b8SAbel Vesa - qcom,ice 21229a6d121SAbel Vesa then: 21329a6d121SAbel Vesa properties: 21429a6d121SAbel Vesa reg: 21529a6d121SAbel Vesa maxItems: 1 21629a6d121SAbel Vesa clocks: 21729a6d121SAbel Vesa minItems: 8 21829a6d121SAbel Vesa maxItems: 8 21929a6d121SAbel Vesa else: 22029a6d121SAbel Vesa properties: 22129a6d121SAbel Vesa reg: 2229b7c13b8SAbel Vesa minItems: 1 22329a6d121SAbel Vesa maxItems: 2 22429a6d121SAbel Vesa clocks: 2259b7c13b8SAbel Vesa minItems: 8 22629a6d121SAbel Vesa maxItems: 11 22729a6d121SAbel Vesa 228462c5c0aSKrzysztof KozlowskiunevaluatedProperties: false 229462c5c0aSKrzysztof Kozlowski 230462c5c0aSKrzysztof Kozlowskiexamples: 231462c5c0aSKrzysztof Kozlowski - | 232462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sm8450.h> 233462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 234462c5c0aSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 235462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sm8450.h> 236462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 237462c5c0aSKrzysztof Kozlowski 238462c5c0aSKrzysztof Kozlowski soc { 239462c5c0aSKrzysztof Kozlowski #address-cells = <2>; 240462c5c0aSKrzysztof Kozlowski #size-cells = <2>; 241462c5c0aSKrzysztof Kozlowski 242462c5c0aSKrzysztof Kozlowski ufs@1d84000 { 243462c5c0aSKrzysztof Kozlowski compatible = "qcom,sm8450-ufshc", "qcom,ufshc", 244462c5c0aSKrzysztof Kozlowski "jedec,ufs-2.0"; 245462c5c0aSKrzysztof Kozlowski reg = <0 0x01d84000 0 0x3000>; 246462c5c0aSKrzysztof Kozlowski interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; 247462c5c0aSKrzysztof Kozlowski phys = <&ufs_mem_phy_lanes>; 248462c5c0aSKrzysztof Kozlowski phy-names = "ufsphy"; 249462c5c0aSKrzysztof Kozlowski lanes-per-direction = <2>; 250462c5c0aSKrzysztof Kozlowski #reset-cells = <1>; 251462c5c0aSKrzysztof Kozlowski resets = <&gcc GCC_UFS_PHY_BCR>; 252462c5c0aSKrzysztof Kozlowski reset-names = "rst"; 253462c5c0aSKrzysztof Kozlowski reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>; 254462c5c0aSKrzysztof Kozlowski 255462c5c0aSKrzysztof Kozlowski vcc-supply = <&vreg_l7b_2p5>; 256462c5c0aSKrzysztof Kozlowski vcc-max-microamp = <1100000>; 257462c5c0aSKrzysztof Kozlowski vccq-supply = <&vreg_l9b_1p2>; 258462c5c0aSKrzysztof Kozlowski vccq-max-microamp = <1200000>; 259462c5c0aSKrzysztof Kozlowski 260462c5c0aSKrzysztof Kozlowski power-domains = <&gcc UFS_PHY_GDSC>; 261462c5c0aSKrzysztof Kozlowski iommus = <&apps_smmu 0xe0 0x0>; 262462c5c0aSKrzysztof Kozlowski interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, 263462c5c0aSKrzysztof Kozlowski <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>; 264462c5c0aSKrzysztof Kozlowski interconnect-names = "ufs-ddr", "cpu-ufs"; 265462c5c0aSKrzysztof Kozlowski 266462c5c0aSKrzysztof Kozlowski clock-names = "core_clk", 267462c5c0aSKrzysztof Kozlowski "bus_aggr_clk", 268462c5c0aSKrzysztof Kozlowski "iface_clk", 269462c5c0aSKrzysztof Kozlowski "core_clk_unipro", 270462c5c0aSKrzysztof Kozlowski "ref_clk", 271462c5c0aSKrzysztof Kozlowski "tx_lane0_sync_clk", 272462c5c0aSKrzysztof Kozlowski "rx_lane0_sync_clk", 273462c5c0aSKrzysztof Kozlowski "rx_lane1_sync_clk"; 274462c5c0aSKrzysztof Kozlowski clocks = <&gcc GCC_UFS_PHY_AXI_CLK>, 275462c5c0aSKrzysztof Kozlowski <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, 276462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_AHB_CLK>, 277462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, 278462c5c0aSKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>, 279462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, 280462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, 281462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; 282462c5c0aSKrzysztof Kozlowski freq-table-hz = <75000000 300000000>, 283462c5c0aSKrzysztof Kozlowski <0 0>, 284462c5c0aSKrzysztof Kozlowski <0 0>, 285462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 286462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 287462c5c0aSKrzysztof Kozlowski <0 0>, 288462c5c0aSKrzysztof Kozlowski <0 0>, 289462c5c0aSKrzysztof Kozlowski <0 0>; 290462c5c0aSKrzysztof Kozlowski }; 291462c5c0aSKrzysztof Kozlowski }; 292