summaryrefslogtreecommitdiff
path: root/bindings/ufs/ufs-qcom.txt
blob: c546aaeabedc60f98713c4a2332d5706544be412 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
* Qualcomm Technologies Inc Universal Flash Storage (UFS) PHY

UFSPHY nodes are defined to describe on-chip UFS PHY hardware macro.
Each UFS PHY node should have its own node.

To bind UFS PHY with UFS host controller, the controller node should
contain a phandle reference to UFS PHY node.

Required properties:
- compatible        : compatible list, contains one of the following -
			"qcom,ufs-phy-qmp-20nm" for 20nm ufs phy,
			"qcom,ufs-phy-qmp-14nm" for legacy 14nm ufs phy,
			"qcom,msm8996-ufs-phy-qmp-14nm" for 14nm ufs phy
			 present on MSM8996 chipset.
			"qcom,ufs-phy-qmp-v4-lahaina" for ufs phy
			 present on SM8350 chipset.
			"qcom,ufs-phy-qmp-v4-direwolf" for ufs phy
			 present on SA8295 Makena chipset.
			"qcom,ufs-phy-qrbtc-sdm845" for phy support
			 for sdm845 emulation.
			"qcom,ufs-phy-qmp-v3" for V3 ufs phy
			 present on holi chipset.
			"qcom,ufs-phy-qmp-v4-waipio" for V4 ufs phy
			 present on waipio chipset.
			"qcom,ufs-phy-qmp-v4-kalama" for ufs phy
			 present on Kalama chipsets.
			"qcom,ufs-phy-qmp-v4-khaje" for ufs phy
			 present on khaje chipsets.
			"qcom,ufs-phy-qmp-v4-kona" for ufs phy
			 present on kona chipsets.
- reg               : should contain PHY register address space (mandatory),
- reg-names         : indicates various resources passed to driver (via reg proptery) by name.
                      Required "reg-names" is "phy_mem".
- #phy-cells        : This property shall be set to 0
- vdda-phy-supply   : phandle to main PHY supply for analog domain
- vdda-pll-supply   : phandle to PHY PLL and Power-Gen block power supply
- clocks	    : List of phandle and clock specifier pairs
- clock-names       : List of clock input name strings sorted in the same
		      order as the clocks property. "ref_clk_src", "ref_clk",
		      "tx_iface_clk" & "rx_iface_clk" are mandatory but
		      "ref_clk_parent" is optional. The qref_clk is optional
		      too. The qref_clk enables ref clock to phy.

Optional properties:
- vdda-phy-max-microamp : specifies max. load that can be drawn from phy supply
- vdda-pll-max-microamp : specifies max. load that can be drawn from pll supply
- vddp-ref-clk-supply   : phandle to UFS device ref_clk pad power supply
- vddp-ref-clk-max-microamp : specifies max. load that can be drawn from this supply
- resets : specifies the PHY reset in the UFS controller
- qcom,prime-mask : the cpu mask of prime core.
- qcom,silver-mask: the cpu mask of silver core.

Example:

	ufsphy1: ufsphy@fc597000 {
		compatible = "qcom,ufs-phy-qmp-20nm";
		reg = <0xfc597000 0x800>;
		reg-names = "phy_mem";
		#phy-cells = <0>;
		vdda-phy-supply = <&pma8084_l4>;
		vdda-pll-supply = <&pma8084_l12>;
		vdda-phy-max-microamp = <50000>;
		vdda-pll-max-microamp = <1000>;
		clock-names = "ref_clk_src",
			"ref_clk_parent",
			"ref_clk",
			"tx_iface_clk",
			"rx_iface_clk";
		clocks = <&clock_rpm clk_ln_bb_clk>,
			<&clock_gcc clk_pcie_1_phy_ldo >,
			<&clock_gcc clk_ufs_phy_ldo>,
			<&clock_gcc clk_gcc_ufs_tx_cfg_clk>,
			<&clock_gcc clk_gcc_ufs_rx_cfg_clk>;
		resets = <&ufshc 0>;
	};

	ufshc: ufshc@fc598000 {
		#reset-cells = <1>;
		...
		phys = <&ufsphy1>;
		phy-names = "ufsphy";
		...
		qcom,prime-mask = <0x80>;
		qcom,silver-mask = <0x0f>;
	};