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 828ffbaa98SKrzysztof Kozlowski required-opps: 838ffbaa98SKrzysztof Kozlowski maxItems: 1 848ffbaa98SKrzysztof Kozlowski 85462c5c0aSKrzysztof Kozlowski resets: 86462c5c0aSKrzysztof Kozlowski maxItems: 1 87462c5c0aSKrzysztof Kozlowski 88462c5c0aSKrzysztof Kozlowski '#reset-cells': 89462c5c0aSKrzysztof Kozlowski const: 1 90462c5c0aSKrzysztof Kozlowski 91462c5c0aSKrzysztof Kozlowski reset-names: 92462c5c0aSKrzysztof Kozlowski items: 93462c5c0aSKrzysztof Kozlowski - const: rst 94462c5c0aSKrzysztof Kozlowski 95462c5c0aSKrzysztof Kozlowski reset-gpios: 96462c5c0aSKrzysztof Kozlowski maxItems: 1 97462c5c0aSKrzysztof Kozlowski description: 98462c5c0aSKrzysztof Kozlowski GPIO connected to the RESET pin of the UFS memory device. 99462c5c0aSKrzysztof Kozlowski 100462c5c0aSKrzysztof Kozlowskirequired: 101462c5c0aSKrzysztof Kozlowski - compatible 102462c5c0aSKrzysztof Kozlowski - reg 103462c5c0aSKrzysztof Kozlowski 104462c5c0aSKrzysztof KozlowskiallOf: 105462c5c0aSKrzysztof Kozlowski - $ref: ufs-common.yaml 106462c5c0aSKrzysztof Kozlowski 107462c5c0aSKrzysztof Kozlowski - if: 108462c5c0aSKrzysztof Kozlowski properties: 109462c5c0aSKrzysztof Kozlowski compatible: 110462c5c0aSKrzysztof Kozlowski contains: 111462c5c0aSKrzysztof Kozlowski enum: 112462c5c0aSKrzysztof Kozlowski - qcom,msm8998-ufshc 1138f0c17bfSBartosz Golaszewski - qcom,sa8775p-ufshc 1142f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 115462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 116462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 117462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 118b8c20389SAbel Vesa - qcom,sm8550-ufshc 119462c5c0aSKrzysztof Kozlowski then: 120462c5c0aSKrzysztof Kozlowski properties: 121462c5c0aSKrzysztof Kozlowski clocks: 122462c5c0aSKrzysztof Kozlowski minItems: 8 123462c5c0aSKrzysztof Kozlowski maxItems: 8 124462c5c0aSKrzysztof Kozlowski clock-names: 125462c5c0aSKrzysztof Kozlowski items: 126462c5c0aSKrzysztof Kozlowski - const: core_clk 127462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 128462c5c0aSKrzysztof Kozlowski - const: iface_clk 129462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 130462c5c0aSKrzysztof Kozlowski - const: ref_clk 131462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 132462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 133462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 134462c5c0aSKrzysztof Kozlowski reg: 135462c5c0aSKrzysztof Kozlowski minItems: 1 136462c5c0aSKrzysztof Kozlowski maxItems: 1 137462c5c0aSKrzysztof Kozlowski 138462c5c0aSKrzysztof Kozlowski - if: 139462c5c0aSKrzysztof Kozlowski properties: 140462c5c0aSKrzysztof Kozlowski compatible: 141462c5c0aSKrzysztof Kozlowski contains: 142462c5c0aSKrzysztof Kozlowski enum: 143462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 1443d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 145462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 146462c5c0aSKrzysztof Kozlowski then: 147462c5c0aSKrzysztof Kozlowski properties: 148462c5c0aSKrzysztof Kozlowski clocks: 149462c5c0aSKrzysztof Kozlowski minItems: 9 150462c5c0aSKrzysztof Kozlowski maxItems: 9 151462c5c0aSKrzysztof Kozlowski clock-names: 152462c5c0aSKrzysztof Kozlowski items: 153462c5c0aSKrzysztof Kozlowski - const: core_clk 154462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 155462c5c0aSKrzysztof Kozlowski - const: iface_clk 156462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 157462c5c0aSKrzysztof Kozlowski - const: ref_clk 158462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 159462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 160462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 161462c5c0aSKrzysztof Kozlowski - const: ice_core_clk 162462c5c0aSKrzysztof Kozlowski reg: 163462c5c0aSKrzysztof Kozlowski minItems: 2 164462c5c0aSKrzysztof Kozlowski maxItems: 2 165462c5c0aSKrzysztof Kozlowski 166462c5c0aSKrzysztof Kozlowski - if: 167462c5c0aSKrzysztof Kozlowski properties: 168462c5c0aSKrzysztof Kozlowski compatible: 169462c5c0aSKrzysztof Kozlowski contains: 170462c5c0aSKrzysztof Kozlowski enum: 171462c5c0aSKrzysztof Kozlowski - qcom,msm8996-ufshc 172462c5c0aSKrzysztof Kozlowski then: 173462c5c0aSKrzysztof Kozlowski properties: 174462c5c0aSKrzysztof Kozlowski clocks: 175462c5c0aSKrzysztof Kozlowski minItems: 11 176462c5c0aSKrzysztof Kozlowski maxItems: 11 177462c5c0aSKrzysztof Kozlowski clock-names: 178462c5c0aSKrzysztof Kozlowski items: 179462c5c0aSKrzysztof Kozlowski - const: core_clk_src 180462c5c0aSKrzysztof Kozlowski - const: core_clk 181462c5c0aSKrzysztof Kozlowski - const: bus_clk 182462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 183462c5c0aSKrzysztof Kozlowski - const: iface_clk 184462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro_src 185462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 186462c5c0aSKrzysztof Kozlowski - const: core_clk_ice 187462c5c0aSKrzysztof Kozlowski - const: ref_clk 188462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 189462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 190462c5c0aSKrzysztof Kozlowski reg: 191462c5c0aSKrzysztof Kozlowski minItems: 1 192462c5c0aSKrzysztof Kozlowski maxItems: 1 193462c5c0aSKrzysztof Kozlowski 194462c5c0aSKrzysztof Kozlowski # TODO: define clock bindings for qcom,msm8994-ufshc 195462c5c0aSKrzysztof Kozlowski 19629a6d121SAbel Vesa - if: 1979b7c13b8SAbel Vesa required: 1989b7c13b8SAbel Vesa - qcom,ice 19929a6d121SAbel Vesa then: 20029a6d121SAbel Vesa properties: 20129a6d121SAbel Vesa reg: 20229a6d121SAbel Vesa maxItems: 1 20329a6d121SAbel Vesa clocks: 20429a6d121SAbel Vesa minItems: 8 20529a6d121SAbel Vesa maxItems: 8 20629a6d121SAbel Vesa else: 20729a6d121SAbel Vesa properties: 20829a6d121SAbel Vesa reg: 2099b7c13b8SAbel Vesa minItems: 1 21029a6d121SAbel Vesa maxItems: 2 21129a6d121SAbel Vesa clocks: 2129b7c13b8SAbel Vesa minItems: 8 21329a6d121SAbel Vesa maxItems: 11 21429a6d121SAbel Vesa 215462c5c0aSKrzysztof KozlowskiunevaluatedProperties: false 216462c5c0aSKrzysztof Kozlowski 217462c5c0aSKrzysztof Kozlowskiexamples: 218462c5c0aSKrzysztof Kozlowski - | 219462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sm8450.h> 220462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 221462c5c0aSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 222462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sm8450.h> 223462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 224462c5c0aSKrzysztof Kozlowski 225462c5c0aSKrzysztof Kozlowski soc { 226462c5c0aSKrzysztof Kozlowski #address-cells = <2>; 227462c5c0aSKrzysztof Kozlowski #size-cells = <2>; 228462c5c0aSKrzysztof Kozlowski 229462c5c0aSKrzysztof Kozlowski ufs@1d84000 { 230462c5c0aSKrzysztof Kozlowski compatible = "qcom,sm8450-ufshc", "qcom,ufshc", 231462c5c0aSKrzysztof Kozlowski "jedec,ufs-2.0"; 232462c5c0aSKrzysztof Kozlowski reg = <0 0x01d84000 0 0x3000>; 233462c5c0aSKrzysztof Kozlowski interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; 234462c5c0aSKrzysztof Kozlowski phys = <&ufs_mem_phy_lanes>; 235462c5c0aSKrzysztof Kozlowski phy-names = "ufsphy"; 236462c5c0aSKrzysztof Kozlowski lanes-per-direction = <2>; 237462c5c0aSKrzysztof Kozlowski #reset-cells = <1>; 238462c5c0aSKrzysztof Kozlowski resets = <&gcc GCC_UFS_PHY_BCR>; 239462c5c0aSKrzysztof Kozlowski reset-names = "rst"; 240462c5c0aSKrzysztof Kozlowski reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>; 241462c5c0aSKrzysztof Kozlowski 242462c5c0aSKrzysztof Kozlowski vcc-supply = <&vreg_l7b_2p5>; 243462c5c0aSKrzysztof Kozlowski vcc-max-microamp = <1100000>; 244462c5c0aSKrzysztof Kozlowski vccq-supply = <&vreg_l9b_1p2>; 245462c5c0aSKrzysztof Kozlowski vccq-max-microamp = <1200000>; 246462c5c0aSKrzysztof Kozlowski 247462c5c0aSKrzysztof Kozlowski power-domains = <&gcc UFS_PHY_GDSC>; 248462c5c0aSKrzysztof Kozlowski iommus = <&apps_smmu 0xe0 0x0>; 249462c5c0aSKrzysztof Kozlowski interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, 250462c5c0aSKrzysztof Kozlowski <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>; 251462c5c0aSKrzysztof Kozlowski interconnect-names = "ufs-ddr", "cpu-ufs"; 252462c5c0aSKrzysztof Kozlowski 253462c5c0aSKrzysztof Kozlowski clock-names = "core_clk", 254462c5c0aSKrzysztof Kozlowski "bus_aggr_clk", 255462c5c0aSKrzysztof Kozlowski "iface_clk", 256462c5c0aSKrzysztof Kozlowski "core_clk_unipro", 257462c5c0aSKrzysztof Kozlowski "ref_clk", 258462c5c0aSKrzysztof Kozlowski "tx_lane0_sync_clk", 259462c5c0aSKrzysztof Kozlowski "rx_lane0_sync_clk", 260462c5c0aSKrzysztof Kozlowski "rx_lane1_sync_clk"; 261462c5c0aSKrzysztof Kozlowski clocks = <&gcc GCC_UFS_PHY_AXI_CLK>, 262462c5c0aSKrzysztof Kozlowski <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, 263462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_AHB_CLK>, 264462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, 265462c5c0aSKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>, 266462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, 267462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, 268462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; 269462c5c0aSKrzysztof Kozlowski freq-table-hz = <75000000 300000000>, 270462c5c0aSKrzysztof Kozlowski <0 0>, 271462c5c0aSKrzysztof Kozlowski <0 0>, 272462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 273462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 274462c5c0aSKrzysztof Kozlowski <0 0>, 275462c5c0aSKrzysztof Kozlowski <0 0>, 276462c5c0aSKrzysztof Kozlowski <0 0>; 277462c5c0aSKrzysztof Kozlowski }; 278462c5c0aSKrzysztof Kozlowski }; 279