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 292f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 30462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 313d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 32462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 33462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 34462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 35462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 36462c5c0aSKrzysztof Kozlowski - const: qcom,ufshc 37462c5c0aSKrzysztof Kozlowski - const: jedec,ufs-2.0 38462c5c0aSKrzysztof Kozlowski 39462c5c0aSKrzysztof Kozlowski clocks: 40462c5c0aSKrzysztof Kozlowski minItems: 8 41462c5c0aSKrzysztof Kozlowski maxItems: 11 42462c5c0aSKrzysztof Kozlowski 43462c5c0aSKrzysztof Kozlowski clock-names: 44462c5c0aSKrzysztof Kozlowski minItems: 8 45462c5c0aSKrzysztof Kozlowski maxItems: 11 46462c5c0aSKrzysztof Kozlowski 47*85e182b4SJohan Hovold dma-coherent: true 48*85e182b4SJohan Hovold 49462c5c0aSKrzysztof Kozlowski interconnects: 50462c5c0aSKrzysztof Kozlowski minItems: 2 51462c5c0aSKrzysztof Kozlowski maxItems: 2 52462c5c0aSKrzysztof Kozlowski 53462c5c0aSKrzysztof Kozlowski interconnect-names: 54462c5c0aSKrzysztof Kozlowski items: 55462c5c0aSKrzysztof Kozlowski - const: ufs-ddr 56462c5c0aSKrzysztof Kozlowski - const: cpu-ufs 57462c5c0aSKrzysztof Kozlowski 58462c5c0aSKrzysztof Kozlowski iommus: 59462c5c0aSKrzysztof Kozlowski minItems: 1 60462c5c0aSKrzysztof Kozlowski maxItems: 2 61462c5c0aSKrzysztof Kozlowski 62462c5c0aSKrzysztof Kozlowski phys: 63462c5c0aSKrzysztof Kozlowski maxItems: 1 64462c5c0aSKrzysztof Kozlowski 65462c5c0aSKrzysztof Kozlowski phy-names: 66462c5c0aSKrzysztof Kozlowski items: 67462c5c0aSKrzysztof Kozlowski - const: ufsphy 68462c5c0aSKrzysztof Kozlowski 69462c5c0aSKrzysztof Kozlowski power-domains: 70462c5c0aSKrzysztof Kozlowski maxItems: 1 71462c5c0aSKrzysztof Kozlowski 72462c5c0aSKrzysztof Kozlowski reg: 73462c5c0aSKrzysztof Kozlowski minItems: 1 74462c5c0aSKrzysztof Kozlowski maxItems: 2 75462c5c0aSKrzysztof Kozlowski 76462c5c0aSKrzysztof Kozlowski resets: 77462c5c0aSKrzysztof Kozlowski maxItems: 1 78462c5c0aSKrzysztof Kozlowski 79462c5c0aSKrzysztof Kozlowski '#reset-cells': 80462c5c0aSKrzysztof Kozlowski const: 1 81462c5c0aSKrzysztof Kozlowski 82462c5c0aSKrzysztof Kozlowski reset-names: 83462c5c0aSKrzysztof Kozlowski items: 84462c5c0aSKrzysztof Kozlowski - const: rst 85462c5c0aSKrzysztof Kozlowski 86462c5c0aSKrzysztof Kozlowski reset-gpios: 87462c5c0aSKrzysztof Kozlowski maxItems: 1 88462c5c0aSKrzysztof Kozlowski description: 89462c5c0aSKrzysztof Kozlowski GPIO connected to the RESET pin of the UFS memory device. 90462c5c0aSKrzysztof Kozlowski 91462c5c0aSKrzysztof Kozlowskirequired: 92462c5c0aSKrzysztof Kozlowski - compatible 93462c5c0aSKrzysztof Kozlowski - reg 94462c5c0aSKrzysztof Kozlowski 95462c5c0aSKrzysztof KozlowskiallOf: 96462c5c0aSKrzysztof Kozlowski - $ref: ufs-common.yaml 97462c5c0aSKrzysztof Kozlowski 98462c5c0aSKrzysztof Kozlowski - if: 99462c5c0aSKrzysztof Kozlowski properties: 100462c5c0aSKrzysztof Kozlowski compatible: 101462c5c0aSKrzysztof Kozlowski contains: 102462c5c0aSKrzysztof Kozlowski enum: 103462c5c0aSKrzysztof Kozlowski - qcom,msm8998-ufshc 1042f3b3200SJohan Hovold - qcom,sc8280xp-ufshc 105462c5c0aSKrzysztof Kozlowski - qcom,sm8250-ufshc 106462c5c0aSKrzysztof Kozlowski - qcom,sm8350-ufshc 107462c5c0aSKrzysztof Kozlowski - qcom,sm8450-ufshc 108462c5c0aSKrzysztof Kozlowski then: 109462c5c0aSKrzysztof Kozlowski properties: 110462c5c0aSKrzysztof Kozlowski clocks: 111462c5c0aSKrzysztof Kozlowski minItems: 8 112462c5c0aSKrzysztof Kozlowski maxItems: 8 113462c5c0aSKrzysztof Kozlowski clock-names: 114462c5c0aSKrzysztof Kozlowski items: 115462c5c0aSKrzysztof Kozlowski - const: core_clk 116462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 117462c5c0aSKrzysztof Kozlowski - const: iface_clk 118462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 119462c5c0aSKrzysztof Kozlowski - const: ref_clk 120462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 121462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 122462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 123462c5c0aSKrzysztof Kozlowski reg: 124462c5c0aSKrzysztof Kozlowski minItems: 1 125462c5c0aSKrzysztof Kozlowski maxItems: 1 126462c5c0aSKrzysztof Kozlowski 127462c5c0aSKrzysztof Kozlowski - if: 128462c5c0aSKrzysztof Kozlowski properties: 129462c5c0aSKrzysztof Kozlowski compatible: 130462c5c0aSKrzysztof Kozlowski contains: 131462c5c0aSKrzysztof Kozlowski enum: 132462c5c0aSKrzysztof Kozlowski - qcom,sdm845-ufshc 1333d8fa7a2SLuca Weiss - qcom,sm6350-ufshc 134462c5c0aSKrzysztof Kozlowski - qcom,sm8150-ufshc 135462c5c0aSKrzysztof Kozlowski then: 136462c5c0aSKrzysztof Kozlowski properties: 137462c5c0aSKrzysztof Kozlowski clocks: 138462c5c0aSKrzysztof Kozlowski minItems: 9 139462c5c0aSKrzysztof Kozlowski maxItems: 9 140462c5c0aSKrzysztof Kozlowski clock-names: 141462c5c0aSKrzysztof Kozlowski items: 142462c5c0aSKrzysztof Kozlowski - const: core_clk 143462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 144462c5c0aSKrzysztof Kozlowski - const: iface_clk 145462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 146462c5c0aSKrzysztof Kozlowski - const: ref_clk 147462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 148462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 149462c5c0aSKrzysztof Kozlowski - const: rx_lane1_sync_clk 150462c5c0aSKrzysztof Kozlowski - const: ice_core_clk 151462c5c0aSKrzysztof Kozlowski reg: 152462c5c0aSKrzysztof Kozlowski minItems: 2 153462c5c0aSKrzysztof Kozlowski maxItems: 2 154462c5c0aSKrzysztof Kozlowski 155462c5c0aSKrzysztof Kozlowski - if: 156462c5c0aSKrzysztof Kozlowski properties: 157462c5c0aSKrzysztof Kozlowski compatible: 158462c5c0aSKrzysztof Kozlowski contains: 159462c5c0aSKrzysztof Kozlowski enum: 160462c5c0aSKrzysztof Kozlowski - qcom,msm8996-ufshc 161462c5c0aSKrzysztof Kozlowski then: 162462c5c0aSKrzysztof Kozlowski properties: 163462c5c0aSKrzysztof Kozlowski clocks: 164462c5c0aSKrzysztof Kozlowski minItems: 11 165462c5c0aSKrzysztof Kozlowski maxItems: 11 166462c5c0aSKrzysztof Kozlowski clock-names: 167462c5c0aSKrzysztof Kozlowski items: 168462c5c0aSKrzysztof Kozlowski - const: core_clk_src 169462c5c0aSKrzysztof Kozlowski - const: core_clk 170462c5c0aSKrzysztof Kozlowski - const: bus_clk 171462c5c0aSKrzysztof Kozlowski - const: bus_aggr_clk 172462c5c0aSKrzysztof Kozlowski - const: iface_clk 173462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro_src 174462c5c0aSKrzysztof Kozlowski - const: core_clk_unipro 175462c5c0aSKrzysztof Kozlowski - const: core_clk_ice 176462c5c0aSKrzysztof Kozlowski - const: ref_clk 177462c5c0aSKrzysztof Kozlowski - const: tx_lane0_sync_clk 178462c5c0aSKrzysztof Kozlowski - const: rx_lane0_sync_clk 179462c5c0aSKrzysztof Kozlowski reg: 180462c5c0aSKrzysztof Kozlowski minItems: 1 181462c5c0aSKrzysztof Kozlowski maxItems: 1 182462c5c0aSKrzysztof Kozlowski 183462c5c0aSKrzysztof Kozlowski # TODO: define clock bindings for qcom,msm8994-ufshc 184462c5c0aSKrzysztof Kozlowski 185462c5c0aSKrzysztof KozlowskiunevaluatedProperties: false 186462c5c0aSKrzysztof Kozlowski 187462c5c0aSKrzysztof Kozlowskiexamples: 188462c5c0aSKrzysztof Kozlowski - | 189462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sm8450.h> 190462c5c0aSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 191462c5c0aSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 192462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sm8450.h> 193462c5c0aSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 194462c5c0aSKrzysztof Kozlowski 195462c5c0aSKrzysztof Kozlowski soc { 196462c5c0aSKrzysztof Kozlowski #address-cells = <2>; 197462c5c0aSKrzysztof Kozlowski #size-cells = <2>; 198462c5c0aSKrzysztof Kozlowski 199462c5c0aSKrzysztof Kozlowski ufs@1d84000 { 200462c5c0aSKrzysztof Kozlowski compatible = "qcom,sm8450-ufshc", "qcom,ufshc", 201462c5c0aSKrzysztof Kozlowski "jedec,ufs-2.0"; 202462c5c0aSKrzysztof Kozlowski reg = <0 0x01d84000 0 0x3000>; 203462c5c0aSKrzysztof Kozlowski interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; 204462c5c0aSKrzysztof Kozlowski phys = <&ufs_mem_phy_lanes>; 205462c5c0aSKrzysztof Kozlowski phy-names = "ufsphy"; 206462c5c0aSKrzysztof Kozlowski lanes-per-direction = <2>; 207462c5c0aSKrzysztof Kozlowski #reset-cells = <1>; 208462c5c0aSKrzysztof Kozlowski resets = <&gcc GCC_UFS_PHY_BCR>; 209462c5c0aSKrzysztof Kozlowski reset-names = "rst"; 210462c5c0aSKrzysztof Kozlowski reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>; 211462c5c0aSKrzysztof Kozlowski 212462c5c0aSKrzysztof Kozlowski vcc-supply = <&vreg_l7b_2p5>; 213462c5c0aSKrzysztof Kozlowski vcc-max-microamp = <1100000>; 214462c5c0aSKrzysztof Kozlowski vccq-supply = <&vreg_l9b_1p2>; 215462c5c0aSKrzysztof Kozlowski vccq-max-microamp = <1200000>; 216462c5c0aSKrzysztof Kozlowski 217462c5c0aSKrzysztof Kozlowski power-domains = <&gcc UFS_PHY_GDSC>; 218462c5c0aSKrzysztof Kozlowski iommus = <&apps_smmu 0xe0 0x0>; 219462c5c0aSKrzysztof Kozlowski interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, 220462c5c0aSKrzysztof Kozlowski <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>; 221462c5c0aSKrzysztof Kozlowski interconnect-names = "ufs-ddr", "cpu-ufs"; 222462c5c0aSKrzysztof Kozlowski 223462c5c0aSKrzysztof Kozlowski clock-names = "core_clk", 224462c5c0aSKrzysztof Kozlowski "bus_aggr_clk", 225462c5c0aSKrzysztof Kozlowski "iface_clk", 226462c5c0aSKrzysztof Kozlowski "core_clk_unipro", 227462c5c0aSKrzysztof Kozlowski "ref_clk", 228462c5c0aSKrzysztof Kozlowski "tx_lane0_sync_clk", 229462c5c0aSKrzysztof Kozlowski "rx_lane0_sync_clk", 230462c5c0aSKrzysztof Kozlowski "rx_lane1_sync_clk"; 231462c5c0aSKrzysztof Kozlowski clocks = <&gcc GCC_UFS_PHY_AXI_CLK>, 232462c5c0aSKrzysztof Kozlowski <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, 233462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_AHB_CLK>, 234462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, 235462c5c0aSKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>, 236462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, 237462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, 238462c5c0aSKrzysztof Kozlowski <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; 239462c5c0aSKrzysztof Kozlowski freq-table-hz = <75000000 300000000>, 240462c5c0aSKrzysztof Kozlowski <0 0>, 241462c5c0aSKrzysztof Kozlowski <0 0>, 242462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 243462c5c0aSKrzysztof Kozlowski <75000000 300000000>, 244462c5c0aSKrzysztof Kozlowski <0 0>, 245462c5c0aSKrzysztof Kozlowski <0 0>, 246462c5c0aSKrzysztof Kozlowski <0 0>; 247462c5c0aSKrzysztof Kozlowski }; 248462c5c0aSKrzysztof Kozlowski }; 249