summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/phy/samsung-phy.txt
blob: ab80bfe31cb339fc9f617463212a99db7519ea0a (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Samsung S5P/EXYNOS SoC series MIPI CSIS/DSIM DPHY
-------------------------------------------------

Required properties:
- compatible : should be one of the listed compatibles:
	- "samsung,s5pv210-mipi-video-phy"
	- "samsung,exynos5420-mipi-video-phy"
	- "samsung,exynos5433-mipi-video-phy"
- #phy-cells : from the generic phy bindings, must be 1;

In case of s5pv210 and exynos5420 compatible PHYs:
- syscon - phandle to the PMU system controller

In case of exynos5433 compatible PHY:
 - samsung,pmu-syscon - phandle to the PMU system controller
 - samsung,disp-sysreg - phandle to the DISP system registers controller
 - samsung,cam0-sysreg - phandle to the CAM0 system registers controller
 - samsung,cam1-sysreg - phandle to the CAM1 system registers controller

For "samsung,s5pv210-mipi-video-phy" compatible PHYs the second cell in
the PHY specifier identifies the PHY and its meaning is as follows:
  0 - MIPI CSIS 0,
  1 - MIPI DSIM 0,
  2 - MIPI CSIS 1,
  3 - MIPI DSIM 1.
"samsung,exynos5420-mipi-video-phy" and "samsung,exynos5433-mipi-video-phy"
supports additional fifth PHY:
  4 - MIPI CSIS 2.

Samsung EXYNOS SoC series Display Port PHY
-------------------------------------------------

Required properties:
- compatible : should be one of the following supported values:
	 - "samsung,exynos5250-dp-video-phy"
	 - "samsung,exynos5420-dp-video-phy"
- samsung,pmu-syscon: phandle for PMU system controller interface, used to
		      control pmu registers for power isolation.
- #phy-cells : from the generic PHY bindings, must be 0;

Samsung S5P/EXYNOS SoC series USB PHY
-------------------------------------------------

Required properties:
- compatible : should be one of the listed compatibles:
	- "samsung,exynos3250-usb2-phy"
	- "samsung,exynos4210-usb2-phy"
	- "samsung,exynos4x12-usb2-phy"
	- "samsung,exynos5250-usb2-phy"
	- "samsung,s5pv210-usb2-phy"
- reg : a list of registers used by phy driver
	- first and obligatory is the location of phy modules registers
- samsung,sysreg-phandle - handle to syscon used to control the system registers
- samsung,pmureg-phandle - handle to syscon used to control PMU registers
- #phy-cells : from the generic phy bindings, must be 1;
- clocks and clock-names:
	- the "phy" clock is required by the phy module, used as a gate
	- the "ref" clock is used to get the rate of the clock provided to the
	  PHY module

Optional properties:
- vbus-supply: power-supply phandle for vbus power source

The first phandle argument in the PHY specifier identifies the PHY, its
meaning is compatible dependent. For the currently supported SoCs (Exynos 4210
and Exynos 4212) it is as follows:
  0 - USB device ("device"),
  1 - USB host ("host"),
  2 - HSIC0 ("hsic0"),
  3 - HSIC1 ("hsic1"),
Exynos3250 has only USB device phy available as phy 0.

Exynos 4210 and Exynos 4212 use mode switching and require that mode switch
register is supplied.

Example:

For Exynos 4412 (compatible with Exynos 4212):

usbphy: phy@125b0000 {
	compatible = "samsung,exynos4x12-usb2-phy";
	reg = <0x125b0000 0x100>;
	clocks = <&clock 305>, <&clock 2>;
	clock-names = "phy", "ref";
	status = "okay";
	#phy-cells = <1>;
	samsung,sysreg-phandle = <&sys_reg>;
	samsung,pmureg-phandle = <&pmu_reg>;
};

Then the PHY can be used in other nodes such as:

phy-consumer@12340000 {
	phys = <&usbphy 2>;
	phy-names = "phy";
};

Refer to DT bindings documentation of particular PHY consumer devices for more
information about required PHYs and the way of specification.

Samsung SATA PHY Controller
---------------------------

SATA PHY nodes are defined to describe on-chip SATA Physical layer controllers.
Each SATA PHY controller should have its own node.

Required properties:
- compatible        : compatible list, contains "samsung,exynos5250-sata-phy"
- reg : offset and length of the SATA PHY register set;
- #phy-cells : must be zero
- clocks : must be exactly one entry
- clock-names : must be "sata_phyctrl"
- samsung,exynos-sataphy-i2c-phandle : a phandle to the I2C device, no arguments
- samsung,syscon-phandle : a phandle to the PMU system controller, no arguments

Example:
	sata_phy: sata-phy@12170000 {
		compatible = "samsung,exynos5250-sata-phy";
		reg = <0x12170000 0x1ff>;
		clocks = <&clock 287>;
		clock-names = "sata_phyctrl";
		#phy-cells = <0>;
		samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
		samsung,syscon-phandle = <&pmu_syscon>;
	};

Device-Tree bindings for sataphy i2c client driver
--------------------------------------------------

Required properties:
compatible: Should be "samsung,exynos-sataphy-i2c"
- reg: I2C address of the sataphy i2c device.

Example:

	sata_phy_i2c:sata-phy@38 {
		compatible = "samsung,exynos-sataphy-i2c";
		reg = <0x38>;
	};

Samsung Exynos5 SoC series USB DRD PHY controller
--------------------------------------------------

Required properties:
- compatible : Should be set to one of the following supported values:
	- "samsung,exynos5250-usbdrd-phy" - for exynos5250 SoC,
	- "samsung,exynos5420-usbdrd-phy" - for exynos5420 SoC.
	- "samsung,exynos5433-usbdrd-phy" - for exynos5433 SoC.
	- "samsung,exynos7-usbdrd-phy" - for exynos7 SoC.
- reg : Register offset and length of USB DRD PHY register set;
- clocks: Clock IDs array as required by the controller
- clock-names: names of clocks correseponding to IDs in the clock property;
	       Required clocks:
	- phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
	       used for register access.
	- ref: PHY's reference clock (usually crystal clock), used for
	       PHY operations, associated by phy name. It is used to
	       determine bit values for clock settings register.
	       For Exynos5420 this is given as 'sclk_usbphy30' in CMU.
	- optional clocks: Exynos5433 & Exynos7 SoC has now following additional
			   gate clocks available:
			   - phy_pipe: for PIPE3 phy
			   - phy_utmi: for UTMI+ phy
			   - itp: for ITP generation
- samsung,pmu-syscon: phandle for PMU system controller interface, used to
		      control pmu registers for power isolation.
- #phy-cells : from the generic PHY bindings, must be 1;

For "samsung,exynos5250-usbdrd-phy" and "samsung,exynos5420-usbdrd-phy"
compatible PHYs, the second cell in the PHY specifier identifies the
PHY id, which is interpreted as follows:
  0 - UTMI+ type phy,
  1 - PIPE3 type phy,

Example:
	usbdrd_phy: usbphy@12100000 {
		compatible = "samsung,exynos5250-usbdrd-phy";
		reg = <0x12100000 0x100>;
		clocks = <&clock 286>, <&clock 1>;
		clock-names = "phy", "ref";
		samsung,pmu-syscon = <&pmu_system_controller>;
		#phy-cells = <1>;
	};

- aliases: For SoCs like Exynos5420 having multiple USB 3.0 DRD PHY controllers,
	   'usbdrd_phy' nodes should have numbered alias in the aliases node,
	   in the form of usbdrdphyN, N = 0, 1... (depending on number of
	   controllers).
Example:
	aliases {
		usbdrdphy0 = &usb3_phy0;
		usbdrdphy1 = &usb3_phy1;
	};

Samsung Exynos SoC series PCIe PHY controller
--------------------------------------------------
Required properties:
- compatible : Should be set to "samsung,exynos5440-pcie-phy"
- #phy-cells : Must be zero
- reg : a register used by phy driver.
	- First is for phy register, second is for block register.
- reg-names : Must be set to "phy" and "block".

Example:
	pcie_phy0: pcie-phy@270000 {
		#phy-cells = <0>;
		compatible = "samsung,exynos5440-pcie-phy";
		reg = <0x270000 0x1000>, <0x271000 0x40>;
		reg-names = "phy", "block";
	};