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 32a11eaed3SIskren Chernev - qcom,sm6115-ufshc 333d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 34462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 35462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 36462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 37462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 38b8c20389SAbel Vesa - qcom,sm8550-ufshc 39462c5c0aSKrzysztof Kozlowski - const: qcom,ufshc 40462c5c0aSKrzysztof Kozlowski - const: jedec,ufs-2.0 41462c5c0aSKrzysztof Kozlowski 42462c5c0aSKrzysztof Kozlowski clocks: 43462c5c0aSKrzysztof Kozlowski minItems: 8 44462c5c0aSKrzysztof Kozlowski maxItems: 11 45462c5c0aSKrzysztof Kozlowski 46462c5c0aSKrzysztof Kozlowski clock-names: 47462c5c0aSKrzysztof Kozlowski minItems: 8 48462c5c0aSKrzysztof Kozlowski maxItems: 11 49462c5c0aSKrzysztof Kozlowski 5085e182b4SJohan Hovold dma-coherent: true 5185e182b4SJohan Hovold 52462c5c0aSKrzysztof Kozlowski interconnects: 53462c5c0aSKrzysztof Kozlowski minItems: 2 54462c5c0aSKrzysztof Kozlowski maxItems: 2 55462c5c0aSKrzysztof Kozlowski 56462c5c0aSKrzysztof Kozlowski interconnect-names: 57462c5c0aSKrzysztof Kozlowski items: 58462c5c0aSKrzysztof Kozlowski - const: ufs-ddr 59462c5c0aSKrzysztof Kozlowski - const: cpu-ufs 60462c5c0aSKrzysztof Kozlowski 61462c5c0aSKrzysztof Kozlowski iommus: 62462c5c0aSKrzysztof Kozlowski minItems: 1 63462c5c0aSKrzysztof Kozlowski maxItems: 2 64462c5c0aSKrzysztof Kozlowski 65462c5c0aSKrzysztof Kozlowski phys: 66462c5c0aSKrzysztof Kozlowski maxItems: 1 67462c5c0aSKrzysztof Kozlowski 68462c5c0aSKrzysztof Kozlowski phy-names: 69462c5c0aSKrzysztof Kozlowski items: 70462c5c0aSKrzysztof Kozlowski - const: ufsphy 71462c5c0aSKrzysztof Kozlowski 72462c5c0aSKrzysztof Kozlowski power-domains: 73462c5c0aSKrzysztof Kozlowski maxItems: 1 74462c5c0aSKrzysztof Kozlowski 7529a6d121SAbel Vesa qcom,ice: 7629a6d121SAbel Vesa $ref: /schemas/types.yaml#/definitions/phandle 7729a6d121SAbel Vesa description: phandle to the Inline Crypto Engine node 7829a6d121SAbel Vesa 79462c5c0aSKrzysztof Kozlowski reg: 80462c5c0aSKrzysztof Kozlowski minItems: 1 81462c5c0aSKrzysztof Kozlowski maxItems: 2 82462c5c0aSKrzysztof Kozlowski 837839d566SLuca Weiss reg-names: 847839d566SLuca Weiss items: 857839d566SLuca Weiss - const: std 867839d566SLuca Weiss - const: ice 877839d566SLuca Weiss 888ffbaa98SKrzysztof Kozlowski required-opps: 898ffbaa98SKrzysztof Kozlowski maxItems: 1 908ffbaa98SKrzysztof Kozlowski 91462c5c0aSKrzysztof Kozlowski resets: 92462c5c0aSKrzysztof Kozlowski maxItems: 1 93462c5c0aSKrzysztof Kozlowski 94462c5c0aSKrzysztof Kozlowski '#reset-cells': 95462c5c0aSKrzysztof Kozlowski const: 1 96462c5c0aSKrzysztof Kozlowski 97462c5c0aSKrzysztof Kozlowski reset-names: 98462c5c0aSKrzysztof Kozlowski items: 99462c5c0aSKrzysztof Kozlowski - const: rst 100462c5c0aSKrzysztof Kozlowski 101462c5c0aSKrzysztof Kozlowski reset-gpios: 102462c5c0aSKrzysztof Kozlowski maxItems: 1 103462c5c0aSKrzysztof Kozlowski description: 104462c5c0aSKrzysztof Kozlowski GPIO connected to the RESET pin of the UFS memory device. 105462c5c0aSKrzysztof Kozlowski 106462c5c0aSKrzysztof Kozlowskirequired: 107462c5c0aSKrzysztof Kozlowski - compatible 108462c5c0aSKrzysztof Kozlowski - reg 109462c5c0aSKrzysztof Kozlowski 110462c5c0aSKrzysztof KozlowskiallOf: 111462c5c0aSKrzysztof Kozlowski - $ref: ufs-common.yaml 112462c5c0aSKrzysztof Kozlowski 113462c5c0aSKrzysztof Kozlowski - if: 114462c5c0aSKrzysztof Kozlowski properties: 115462c5c0aSKrzysztof Kozlowski compatible: 116462c5c0aSKrzysztof Kozlowski contains: 117462c5c0aSKrzysztof Kozlowski enum: 118462c5c0aSKrzysztof Kozlowski - qcom,msm8998-ufshc 1198f0c17bfSBartosz Golaszewski - qcom,sa8775p-ufshc 1202f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 121462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 122462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 123462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 124b8c20389SAbel Vesa - qcom,sm8550-ufshc 125462c5c0aSKrzysztof Kozlowski then: 126462c5c0aSKrzysztof Kozlowski properties: 127462c5c0aSKrzysztof Kozlowski clocks: 128462c5c0aSKrzysztof Kozlowski minItems: 8 129462c5c0aSKrzysztof Kozlowski maxItems: 8 130462c5c0aSKrzysztof Kozlowski clock-names: 131462c5c0aSKrzysztof Kozlowski items: 132462c5c0aSKrzysztof Kozlowski - const: core_clk 133462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 134462c5c0aSKrzysztof Kozlowski - const: iface_clk 135462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 136462c5c0aSKrzysztof Kozlowski - const: ref_clk 137462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 138462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 139462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 140462c5c0aSKrzysztof Kozlowski reg: 141462c5c0aSKrzysztof Kozlowski minItems: 1 142462c5c0aSKrzysztof Kozlowski maxItems: 1 1437839d566SLuca Weiss reg-names: 1447839d566SLuca Weiss maxItems: 1 145462c5c0aSKrzysztof Kozlowski 146462c5c0aSKrzysztof Kozlowski - if: 147462c5c0aSKrzysztof Kozlowski properties: 148462c5c0aSKrzysztof Kozlowski compatible: 149462c5c0aSKrzysztof Kozlowski contains: 150462c5c0aSKrzysztof Kozlowski enum: 151462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 1523d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 153462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 154462c5c0aSKrzysztof Kozlowski then: 155462c5c0aSKrzysztof Kozlowski properties: 156462c5c0aSKrzysztof Kozlowski clocks: 157462c5c0aSKrzysztof Kozlowski minItems: 9 158462c5c0aSKrzysztof Kozlowski maxItems: 9 159462c5c0aSKrzysztof Kozlowski clock-names: 160462c5c0aSKrzysztof Kozlowski items: 161462c5c0aSKrzysztof Kozlowski - const: core_clk 162462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 163462c5c0aSKrzysztof Kozlowski - const: iface_clk 164462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 165462c5c0aSKrzysztof Kozlowski - const: ref_clk 166462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 167462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 168462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 169462c5c0aSKrzysztof Kozlowski - const: ice_core_clk 170462c5c0aSKrzysztof Kozlowski reg: 171462c5c0aSKrzysztof Kozlowski minItems: 2 172462c5c0aSKrzysztof Kozlowski maxItems: 2 1737839d566SLuca Weiss reg-names: 1747839d566SLuca Weiss minItems: 2 1757839d566SLuca Weiss required: 1767839d566SLuca Weiss - reg-names 177462c5c0aSKrzysztof Kozlowski 178462c5c0aSKrzysztof Kozlowski - if: 179462c5c0aSKrzysztof Kozlowski properties: 180462c5c0aSKrzysztof Kozlowski compatible: 181462c5c0aSKrzysztof Kozlowski contains: 182462c5c0aSKrzysztof Kozlowski enum: 183462c5c0aSKrzysztof Kozlowski - qcom,msm8996-ufshc 184462c5c0aSKrzysztof Kozlowski then: 185462c5c0aSKrzysztof Kozlowski properties: 186462c5c0aSKrzysztof Kozlowski clocks: 187462c5c0aSKrzysztof Kozlowski minItems: 11 188462c5c0aSKrzysztof Kozlowski maxItems: 11 189462c5c0aSKrzysztof Kozlowski clock-names: 190462c5c0aSKrzysztof Kozlowski items: 191462c5c0aSKrzysztof Kozlowski - const: core_clk_src 192462c5c0aSKrzysztof Kozlowski - const: core_clk 193462c5c0aSKrzysztof Kozlowski - const: bus_clk 194462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 195462c5c0aSKrzysztof Kozlowski - const: iface_clk 196462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro_src 197462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 198462c5c0aSKrzysztof Kozlowski - const: core_clk_ice 199462c5c0aSKrzysztof Kozlowski - const: ref_clk 200462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 201462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 202462c5c0aSKrzysztof Kozlowski reg: 203462c5c0aSKrzysztof Kozlowski minItems: 1 204462c5c0aSKrzysztof Kozlowski maxItems: 1 2057839d566SLuca Weiss reg-names: 2067839d566SLuca Weiss maxItems: 1 207462c5c0aSKrzysztof Kozlowski 208a11eaed3SIskren Chernev - if: 209a11eaed3SIskren Chernev properties: 210a11eaed3SIskren Chernev compatible: 211a11eaed3SIskren Chernev contains: 212a11eaed3SIskren Chernev enum: 213a11eaed3SIskren Chernev - qcom,sm6115-ufshc 214a11eaed3SIskren Chernev then: 215a11eaed3SIskren Chernev properties: 216a11eaed3SIskren Chernev clocks: 217a11eaed3SIskren Chernev minItems: 8 218a11eaed3SIskren Chernev maxItems: 8 219a11eaed3SIskren Chernev clock-names: 220a11eaed3SIskren Chernev items: 221a11eaed3SIskren Chernev - const: core_clk 222a11eaed3SIskren Chernev - const: bus_aggr_clk 223a11eaed3SIskren Chernev - const: iface_clk 224a11eaed3SIskren Chernev - const: core_clk_unipro 225a11eaed3SIskren Chernev - const: ref_clk 226a11eaed3SIskren Chernev - const: tx_lane0_sync_clk 227a11eaed3SIskren Chernev - const: rx_lane0_sync_clk 228a11eaed3SIskren Chernev - const: ice_core_clk 229a11eaed3SIskren Chernev reg: 230a11eaed3SIskren Chernev minItems: 2 231a11eaed3SIskren Chernev maxItems: 2 232a11eaed3SIskren Chernev reg-names: 233a11eaed3SIskren Chernev minItems: 2 234a11eaed3SIskren Chernev required: 235a11eaed3SIskren Chernev - reg-names 236a11eaed3SIskren Chernev 237462c5c0aSKrzysztof Kozlowski # TODO: define clock bindings for qcom,msm8994-ufshc 238462c5c0aSKrzysztof Kozlowski 23929a6d121SAbel Vesa - if: 2409b7c13b8SAbel Vesa required: 2419b7c13b8SAbel Vesa - qcom,ice 24229a6d121SAbel Vesa then: 24329a6d121SAbel Vesa properties: 24429a6d121SAbel Vesa reg: 24529a6d121SAbel Vesa maxItems: 1 24629a6d121SAbel Vesa clocks: 24729a6d121SAbel Vesa minItems: 8 24829a6d121SAbel Vesa maxItems: 8 24929a6d121SAbel Vesa else: 25029a6d121SAbel Vesa properties: 25129a6d121SAbel Vesa reg: 2529b7c13b8SAbel Vesa minItems: 1 25329a6d121SAbel Vesa maxItems: 2 25429a6d121SAbel Vesa clocks: 2559b7c13b8SAbel Vesa minItems: 8 25629a6d121SAbel Vesa maxItems: 11 25729a6d121SAbel Vesa 258462c5c0aSKrzysztof KozlowskiunevaluatedProperties: false 259462c5c0aSKrzysztof Kozlowski 260462c5c0aSKrzysztof Kozlowskiexamples: 261462c5c0aSKrzysztof Kozlowski - | 262462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sm8450.h> 263462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 264462c5c0aSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 265462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sm8450.h> 266462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 267462c5c0aSKrzysztof Kozlowski 268462c5c0aSKrzysztof Kozlowski soc { 269462c5c0aSKrzysztof Kozlowski #address-cells = <2>; 270462c5c0aSKrzysztof Kozlowski #size-cells = <2>; 271462c5c0aSKrzysztof Kozlowski 272462c5c0aSKrzysztof Kozlowski ufs@1d84000 { 273462c5c0aSKrzysztof Kozlowski compatible = "qcom,sm8450-ufshc", "qcom,ufshc", 274462c5c0aSKrzysztof Kozlowski "jedec,ufs-2.0"; 275462c5c0aSKrzysztof Kozlowski reg = <0 0x01d84000 0 0x3000>; 276462c5c0aSKrzysztof Kozlowski interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; 277462c5c0aSKrzysztof Kozlowski phys = <&ufs_mem_phy_lanes>; 278462c5c0aSKrzysztof Kozlowski phy-names = "ufsphy"; 279462c5c0aSKrzysztof Kozlowski lanes-per-direction = <2>; 280462c5c0aSKrzysztof Kozlowski #reset-cells = <1>; 281462c5c0aSKrzysztof Kozlowski resets = <&gcc GCC_UFS_PHY_BCR>; 282462c5c0aSKrzysztof Kozlowski reset-names = "rst"; 283462c5c0aSKrzysztof Kozlowski reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>; 284462c5c0aSKrzysztof Kozlowski 285462c5c0aSKrzysztof Kozlowski vcc-supply = <&vreg_l7b_2p5>; 286462c5c0aSKrzysztof Kozlowski vcc-max-microamp = <1100000>; 287462c5c0aSKrzysztof Kozlowski vccq-supply = <&vreg_l9b_1p2>; 288462c5c0aSKrzysztof Kozlowski vccq-max-microamp = <1200000>; 289462c5c0aSKrzysztof Kozlowski 290462c5c0aSKrzysztof Kozlowski power-domains = <&gcc UFS_PHY_GDSC>; 291462c5c0aSKrzysztof Kozlowski iommus = <&apps_smmu 0xe0 0x0>; 292462c5c0aSKrzysztof Kozlowski interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, 293462c5c0aSKrzysztof Kozlowski <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>; 294462c5c0aSKrzysztof Kozlowski interconnect-names = "ufs-ddr", "cpu-ufs"; 295462c5c0aSKrzysztof Kozlowski 296462c5c0aSKrzysztof Kozlowski clock-names = "core_clk", 297462c5c0aSKrzysztof Kozlowski "bus_aggr_clk", 298462c5c0aSKrzysztof Kozlowski "iface_clk", 299462c5c0aSKrzysztof Kozlowski "core_clk_unipro", 300462c5c0aSKrzysztof Kozlowski "ref_clk", 301462c5c0aSKrzysztof Kozlowski "tx_lane0_sync_clk", 302462c5c0aSKrzysztof Kozlowski "rx_lane0_sync_clk", 303462c5c0aSKrzysztof Kozlowski "rx_lane1_sync_clk"; 304462c5c0aSKrzysztof Kozlowski clocks = <&gcc GCC_UFS_PHY_AXI_CLK>, 305462c5c0aSKrzysztof Kozlowski <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, 306462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_AHB_CLK>, 307462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, 308462c5c0aSKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>, 309462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, 310462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, 311462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; 312462c5c0aSKrzysztof Kozlowski freq-table-hz = <75000000 300000000>, 313462c5c0aSKrzysztof Kozlowski <0 0>, 314462c5c0aSKrzysztof Kozlowski <0 0>, 315462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 316462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 317462c5c0aSKrzysztof Kozlowski <0 0>, 318462c5c0aSKrzysztof Kozlowski <0 0>, 319462c5c0aSKrzysztof Kozlowski <0 0>; 320*e95094d0SLuca Weiss qcom,ice = <&ice>; 321462c5c0aSKrzysztof Kozlowski }; 322462c5c0aSKrzysztof Kozlowski }; 323