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 29*8f0c17bfSBartosz 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 74462c5c0aSKrzysztof Kozlowski reg: 75462c5c0aSKrzysztof Kozlowski minItems: 1 76462c5c0aSKrzysztof Kozlowski maxItems: 2 77462c5c0aSKrzysztof Kozlowski 788ffbaa98SKrzysztof Kozlowski required-opps: 798ffbaa98SKrzysztof Kozlowski maxItems: 1 808ffbaa98SKrzysztof Kozlowski 81462c5c0aSKrzysztof Kozlowski resets: 82462c5c0aSKrzysztof Kozlowski maxItems: 1 83462c5c0aSKrzysztof Kozlowski 84462c5c0aSKrzysztof Kozlowski '#reset-cells': 85462c5c0aSKrzysztof Kozlowski const: 1 86462c5c0aSKrzysztof Kozlowski 87462c5c0aSKrzysztof Kozlowski reset-names: 88462c5c0aSKrzysztof Kozlowski items: 89462c5c0aSKrzysztof Kozlowski - const: rst 90462c5c0aSKrzysztof Kozlowski 91462c5c0aSKrzysztof Kozlowski reset-gpios: 92462c5c0aSKrzysztof Kozlowski maxItems: 1 93462c5c0aSKrzysztof Kozlowski description: 94462c5c0aSKrzysztof Kozlowski GPIO connected to the RESET pin of the UFS memory device. 95462c5c0aSKrzysztof Kozlowski 96462c5c0aSKrzysztof Kozlowskirequired: 97462c5c0aSKrzysztof Kozlowski - compatible 98462c5c0aSKrzysztof Kozlowski - reg 99462c5c0aSKrzysztof Kozlowski 100462c5c0aSKrzysztof KozlowskiallOf: 101462c5c0aSKrzysztof Kozlowski - $ref: ufs-common.yaml 102462c5c0aSKrzysztof Kozlowski 103462c5c0aSKrzysztof Kozlowski - if: 104462c5c0aSKrzysztof Kozlowski properties: 105462c5c0aSKrzysztof Kozlowski compatible: 106462c5c0aSKrzysztof Kozlowski contains: 107462c5c0aSKrzysztof Kozlowski enum: 108462c5c0aSKrzysztof Kozlowski - qcom,msm8998-ufshc 109*8f0c17bfSBartosz Golaszewski - qcom,sa8775p-ufshc 1102f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 111462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 112462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 113462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 114b8c20389SAbel Vesa - qcom,sm8550-ufshc 115462c5c0aSKrzysztof Kozlowski then: 116462c5c0aSKrzysztof Kozlowski properties: 117462c5c0aSKrzysztof Kozlowski clocks: 118462c5c0aSKrzysztof Kozlowski minItems: 8 119462c5c0aSKrzysztof Kozlowski maxItems: 8 120462c5c0aSKrzysztof Kozlowski clock-names: 121462c5c0aSKrzysztof Kozlowski items: 122462c5c0aSKrzysztof Kozlowski - const: core_clk 123462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 124462c5c0aSKrzysztof Kozlowski - const: iface_clk 125462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 126462c5c0aSKrzysztof Kozlowski - const: ref_clk 127462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 128462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 129462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 130462c5c0aSKrzysztof Kozlowski reg: 131462c5c0aSKrzysztof Kozlowski minItems: 1 132462c5c0aSKrzysztof Kozlowski maxItems: 1 133462c5c0aSKrzysztof Kozlowski 134462c5c0aSKrzysztof Kozlowski - if: 135462c5c0aSKrzysztof Kozlowski properties: 136462c5c0aSKrzysztof Kozlowski compatible: 137462c5c0aSKrzysztof Kozlowski contains: 138462c5c0aSKrzysztof Kozlowski enum: 139462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 1403d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 141462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 142462c5c0aSKrzysztof Kozlowski then: 143462c5c0aSKrzysztof Kozlowski properties: 144462c5c0aSKrzysztof Kozlowski clocks: 145462c5c0aSKrzysztof Kozlowski minItems: 9 146462c5c0aSKrzysztof Kozlowski maxItems: 9 147462c5c0aSKrzysztof Kozlowski clock-names: 148462c5c0aSKrzysztof Kozlowski items: 149462c5c0aSKrzysztof Kozlowski - const: core_clk 150462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 151462c5c0aSKrzysztof Kozlowski - const: iface_clk 152462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 153462c5c0aSKrzysztof Kozlowski - const: ref_clk 154462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 155462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 156462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 157462c5c0aSKrzysztof Kozlowski - const: ice_core_clk 158462c5c0aSKrzysztof Kozlowski reg: 159462c5c0aSKrzysztof Kozlowski minItems: 2 160462c5c0aSKrzysztof Kozlowski maxItems: 2 161462c5c0aSKrzysztof Kozlowski 162462c5c0aSKrzysztof Kozlowski - if: 163462c5c0aSKrzysztof Kozlowski properties: 164462c5c0aSKrzysztof Kozlowski compatible: 165462c5c0aSKrzysztof Kozlowski contains: 166462c5c0aSKrzysztof Kozlowski enum: 167462c5c0aSKrzysztof Kozlowski - qcom,msm8996-ufshc 168462c5c0aSKrzysztof Kozlowski then: 169462c5c0aSKrzysztof Kozlowski properties: 170462c5c0aSKrzysztof Kozlowski clocks: 171462c5c0aSKrzysztof Kozlowski minItems: 11 172462c5c0aSKrzysztof Kozlowski maxItems: 11 173462c5c0aSKrzysztof Kozlowski clock-names: 174462c5c0aSKrzysztof Kozlowski items: 175462c5c0aSKrzysztof Kozlowski - const: core_clk_src 176462c5c0aSKrzysztof Kozlowski - const: core_clk 177462c5c0aSKrzysztof Kozlowski - const: bus_clk 178462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 179462c5c0aSKrzysztof Kozlowski - const: iface_clk 180462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro_src 181462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 182462c5c0aSKrzysztof Kozlowski - const: core_clk_ice 183462c5c0aSKrzysztof Kozlowski - const: ref_clk 184462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 185462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 186462c5c0aSKrzysztof Kozlowski reg: 187462c5c0aSKrzysztof Kozlowski minItems: 1 188462c5c0aSKrzysztof Kozlowski maxItems: 1 189462c5c0aSKrzysztof Kozlowski 190462c5c0aSKrzysztof Kozlowski # TODO: define clock bindings for qcom,msm8994-ufshc 191462c5c0aSKrzysztof Kozlowski 192462c5c0aSKrzysztof KozlowskiunevaluatedProperties: false 193462c5c0aSKrzysztof Kozlowski 194462c5c0aSKrzysztof Kozlowskiexamples: 195462c5c0aSKrzysztof Kozlowski - | 196462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sm8450.h> 197462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 198462c5c0aSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 199462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sm8450.h> 200462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 201462c5c0aSKrzysztof Kozlowski 202462c5c0aSKrzysztof Kozlowski soc { 203462c5c0aSKrzysztof Kozlowski #address-cells = <2>; 204462c5c0aSKrzysztof Kozlowski #size-cells = <2>; 205462c5c0aSKrzysztof Kozlowski 206462c5c0aSKrzysztof Kozlowski ufs@1d84000 { 207462c5c0aSKrzysztof Kozlowski compatible = "qcom,sm8450-ufshc", "qcom,ufshc", 208462c5c0aSKrzysztof Kozlowski "jedec,ufs-2.0"; 209462c5c0aSKrzysztof Kozlowski reg = <0 0x01d84000 0 0x3000>; 210462c5c0aSKrzysztof Kozlowski interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; 211462c5c0aSKrzysztof Kozlowski phys = <&ufs_mem_phy_lanes>; 212462c5c0aSKrzysztof Kozlowski phy-names = "ufsphy"; 213462c5c0aSKrzysztof Kozlowski lanes-per-direction = <2>; 214462c5c0aSKrzysztof Kozlowski #reset-cells = <1>; 215462c5c0aSKrzysztof Kozlowski resets = <&gcc GCC_UFS_PHY_BCR>; 216462c5c0aSKrzysztof Kozlowski reset-names = "rst"; 217462c5c0aSKrzysztof Kozlowski reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>; 218462c5c0aSKrzysztof Kozlowski 219462c5c0aSKrzysztof Kozlowski vcc-supply = <&vreg_l7b_2p5>; 220462c5c0aSKrzysztof Kozlowski vcc-max-microamp = <1100000>; 221462c5c0aSKrzysztof Kozlowski vccq-supply = <&vreg_l9b_1p2>; 222462c5c0aSKrzysztof Kozlowski vccq-max-microamp = <1200000>; 223462c5c0aSKrzysztof Kozlowski 224462c5c0aSKrzysztof Kozlowski power-domains = <&gcc UFS_PHY_GDSC>; 225462c5c0aSKrzysztof Kozlowski iommus = <&apps_smmu 0xe0 0x0>; 226462c5c0aSKrzysztof Kozlowski interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, 227462c5c0aSKrzysztof Kozlowski <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>; 228462c5c0aSKrzysztof Kozlowski interconnect-names = "ufs-ddr", "cpu-ufs"; 229462c5c0aSKrzysztof Kozlowski 230462c5c0aSKrzysztof Kozlowski clock-names = "core_clk", 231462c5c0aSKrzysztof Kozlowski "bus_aggr_clk", 232462c5c0aSKrzysztof Kozlowski "iface_clk", 233462c5c0aSKrzysztof Kozlowski "core_clk_unipro", 234462c5c0aSKrzysztof Kozlowski "ref_clk", 235462c5c0aSKrzysztof Kozlowski "tx_lane0_sync_clk", 236462c5c0aSKrzysztof Kozlowski "rx_lane0_sync_clk", 237462c5c0aSKrzysztof Kozlowski "rx_lane1_sync_clk"; 238462c5c0aSKrzysztof Kozlowski clocks = <&gcc GCC_UFS_PHY_AXI_CLK>, 239462c5c0aSKrzysztof Kozlowski <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, 240462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_AHB_CLK>, 241462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, 242462c5c0aSKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>, 243462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, 244462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, 245462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; 246462c5c0aSKrzysztof Kozlowski freq-table-hz = <75000000 300000000>, 247462c5c0aSKrzysztof Kozlowski <0 0>, 248462c5c0aSKrzysztof Kozlowski <0 0>, 249462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 250462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 251462c5c0aSKrzysztof Kozlowski <0 0>, 252462c5c0aSKrzysztof Kozlowski <0 0>, 253462c5c0aSKrzysztof Kozlowski <0 0>; 254462c5c0aSKrzysztof Kozlowski }; 255462c5c0aSKrzysztof Kozlowski }; 256