mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 01:25:49 -04:00
All QMP UFS PHYs except MSM8996 require 3 clocks: * ref - 19.2MHz reference clock from RPMh * ref_aux - Auxiliary reference clock from GCC * qref - QREF clock from GCC or TCSR (since SM8550) MSM8996 only requires 'ref' and 'qref' clocks. Hence, fix the binding to reflect the actual clock topology. This change obviously breaks the ABI, but it is inevitable since the clock topology needs to be accurately described in the binding. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Link: https://lore.kernel.org/r/20240131-ufs-phy-clock-v3-1-58a49d2f4605@linaro.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
156 lines
3.4 KiB
YAML
156 lines
3.4 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-ufs-phy.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm QMP PHY controller (UFS, SC8280XP)
|
|
|
|
maintainers:
|
|
- Vinod Koul <vkoul@kernel.org>
|
|
|
|
description:
|
|
The QMP PHY controller supports physical layer functionality for a number of
|
|
controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- qcom,msm8996-qmp-ufs-phy
|
|
- qcom,msm8998-qmp-ufs-phy
|
|
- qcom,sa8775p-qmp-ufs-phy
|
|
- qcom,sc7180-qmp-ufs-phy
|
|
- qcom,sc7280-qmp-ufs-phy
|
|
- qcom,sc8180x-qmp-ufs-phy
|
|
- qcom,sc8280xp-qmp-ufs-phy
|
|
- qcom,sdm845-qmp-ufs-phy
|
|
- qcom,sm6115-qmp-ufs-phy
|
|
- qcom,sm6125-qmp-ufs-phy
|
|
- qcom,sm6350-qmp-ufs-phy
|
|
- qcom,sm7150-qmp-ufs-phy
|
|
- qcom,sm8150-qmp-ufs-phy
|
|
- qcom,sm8250-qmp-ufs-phy
|
|
- qcom,sm8350-qmp-ufs-phy
|
|
- qcom,sm8450-qmp-ufs-phy
|
|
- qcom,sm8550-qmp-ufs-phy
|
|
- qcom,sm8650-qmp-ufs-phy
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 2
|
|
maxItems: 3
|
|
|
|
clock-names:
|
|
minItems: 2
|
|
maxItems: 3
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
reset-names:
|
|
items:
|
|
- const: ufsphy
|
|
|
|
vdda-phy-supply: true
|
|
|
|
vdda-pll-supply: true
|
|
|
|
"#clock-cells":
|
|
const: 1
|
|
|
|
"#phy-cells":
|
|
const: 0
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- clocks
|
|
- clock-names
|
|
- power-domains
|
|
- resets
|
|
- reset-names
|
|
- vdda-phy-supply
|
|
- vdda-pll-supply
|
|
- "#phy-cells"
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,msm8998-qmp-ufs-phy
|
|
- qcom,sa8775p-qmp-ufs-phy
|
|
- qcom,sc7280-qmp-ufs-phy
|
|
- qcom,sc8180x-qmp-ufs-phy
|
|
- qcom,sc8280xp-qmp-ufs-phy
|
|
- qcom,sdm845-qmp-ufs-phy
|
|
- qcom,sm6115-qmp-ufs-phy
|
|
- qcom,sm6125-qmp-ufs-phy
|
|
- qcom,sm6350-qmp-ufs-phy
|
|
- qcom,sm7150-qmp-ufs-phy
|
|
- qcom,sm8150-qmp-ufs-phy
|
|
- qcom,sm8250-qmp-ufs-phy
|
|
- qcom,sm8350-qmp-ufs-phy
|
|
- qcom,sm8450-qmp-ufs-phy
|
|
- qcom,sm8550-qmp-ufs-phy
|
|
- qcom,sm8650-qmp-ufs-phy
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 3
|
|
maxItems: 3
|
|
clock-names:
|
|
items:
|
|
- const: ref
|
|
- const: ref_aux
|
|
- const: qref
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,msm8996-qmp-ufs-phy
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 2
|
|
maxItems: 2
|
|
clock-names:
|
|
items:
|
|
- const: ref
|
|
- const: qref
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
|
|
#include <dt-bindings/clock/qcom,rpmh.h>
|
|
|
|
ufs_mem_phy: phy@1d87000 {
|
|
compatible = "qcom,sc8280xp-qmp-ufs-phy";
|
|
reg = <0x01d87000 0x1000>;
|
|
|
|
clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
|
|
<&gcc GCC_UFS_REF_CLKREF_CLK>;
|
|
|
|
clock-names = "ref", "ref_aux", "qref";
|
|
|
|
power-domains = <&gcc UFS_PHY_GDSC>;
|
|
|
|
resets = <&ufs_mem_hc 0>;
|
|
reset-names = "ufsphy";
|
|
|
|
vdda-phy-supply = <&vreg_l6b>;
|
|
vdda-pll-supply = <&vreg_l3b>;
|
|
|
|
#phy-cells = <0>;
|
|
};
|