xref: /rk3399_ARM-atf/plat/marvell/armada/a8k/a80x0/board/phy-porting-layer.h (revision eeb77da64684424ef275330e3e15d8350ecc1b07)
1a2847172SGrzegorz Jaszczyk /*
2a2847172SGrzegorz Jaszczyk  * Copyright (C) 2018 Marvell International Ltd.
3a2847172SGrzegorz Jaszczyk  *
4a2847172SGrzegorz Jaszczyk  * SPDX-License-Identifier:     BSD-3-Clause
5a2847172SGrzegorz Jaszczyk  * https://spdx.org/licenses
6a2847172SGrzegorz Jaszczyk  */
7a2847172SGrzegorz Jaszczyk 
8a2847172SGrzegorz Jaszczyk #ifndef PHY_PORTING_LAYER_H
9a2847172SGrzegorz Jaszczyk #define PHY_PORTING_LAYER_H
10a2847172SGrzegorz Jaszczyk 
11a2847172SGrzegorz Jaszczyk #define MAX_LANE_NR		6
12a2847172SGrzegorz Jaszczyk 
13a2847172SGrzegorz Jaszczyk static const struct xfi_params
14a2847172SGrzegorz Jaszczyk 	xfi_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = {
15a2847172SGrzegorz Jaszczyk 	/* AP0 */
16a2847172SGrzegorz Jaszczyk 	{
17a2847172SGrzegorz Jaszczyk 		/* CP 0 */
18a2847172SGrzegorz Jaszczyk 		{
19a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 */
20a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy1 */
21a2847172SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
22a2847172SGrzegorz Jaszczyk 			  .align90 = 0x5f,
23a2847172SGrzegorz Jaszczyk 			  .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe,
24a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
25a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0,
26a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0,
27a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
28a2847172SGrzegorz Jaszczyk 			  .valid = 0x1 }, /* Comphy2 */
29a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy3 */
30a2847172SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
31a2847172SGrzegorz Jaszczyk 			  .align90 = 0x5f,
32a2847172SGrzegorz Jaszczyk 			  .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe,
33a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
34a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0,
35a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0,
36a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
37a2847172SGrzegorz Jaszczyk 			  .valid = 0x1 }, /* Comphy4 */
38a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 */
39a2847172SGrzegorz Jaszczyk 		},
40a2847172SGrzegorz Jaszczyk 
41a2847172SGrzegorz Jaszczyk 		/* CP 1 */
42a2847172SGrzegorz Jaszczyk 		{
43a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 */
44a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy1 */
45a2847172SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
46a2847172SGrzegorz Jaszczyk 			  .align90 = 0x5f,
47a2847172SGrzegorz Jaszczyk 			  .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe,
48a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
49a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0,
50a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0,
51a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
52a2847172SGrzegorz Jaszczyk 			  .valid = 0x1 }, /* Comphy2 */
53a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy3 */
54a2847172SGrzegorz Jaszczyk 			{ .g1_ffe_res_sel = 0x3, .g1_ffe_cap_sel = 0xf,
55a2847172SGrzegorz Jaszczyk 			  .align90 = 0x5f,
56a2847172SGrzegorz Jaszczyk 			  .g1_dfe_res = 0x2, .g1_amp = 0x1c, .g1_emph = 0xe,
57a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g1_tx_amp_adj = 0x1,
58a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x1, .g1_tx_emph = 0x0,
59a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x1, .g1_rx_selmufi = 0x0,
60a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x2, .g1_rx_selmupi = 0x2,
61a2847172SGrzegorz Jaszczyk 			  .valid = 0x1 }, /* Comphy4 */
62a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 */
63a2847172SGrzegorz Jaszczyk 		},
64a2847172SGrzegorz Jaszczyk 	},
65a2847172SGrzegorz Jaszczyk };
66a2847172SGrzegorz Jaszczyk 
67a2847172SGrzegorz Jaszczyk static const struct sata_params
68a2847172SGrzegorz Jaszczyk 	sata_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = {
69a2847172SGrzegorz Jaszczyk 	/* AP0 */
70a2847172SGrzegorz Jaszczyk 	{
71a2847172SGrzegorz Jaszczyk 		/* CP 0 */
72a2847172SGrzegorz Jaszczyk 		{
73a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 */
74a2847172SGrzegorz Jaszczyk 			{ .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e,
75a2847172SGrzegorz Jaszczyk 			  .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe,
76a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g2_emph_en = 0x1,
77a2847172SGrzegorz Jaszczyk 			  .g3_emph_en = 0x1,
78a2847172SGrzegorz Jaszczyk 			  .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1,
79a2847172SGrzegorz Jaszczyk 			  .g3_tx_amp_adj = 0x1,
80a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0,
81a2847172SGrzegorz Jaszczyk 			  .g3_tx_emph_en = 0x0,
82a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph = 0x1, .g2_tx_emph = 0x1,
83a2847172SGrzegorz Jaszczyk 			  .g3_tx_emph = 0x1,
84a2847172SGrzegorz Jaszczyk 			  .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4,
85a2847172SGrzegorz Jaszczyk 			  .g3_ffe_cap_sel = 0xf,
86a2847172SGrzegorz Jaszczyk 			  .align90 = 0x61,
87a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3,
88a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmuff = 0x3,
89a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0,
90a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmufi = 0x3,
91a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1,
92a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmupf = 0x2,
93a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0,
94a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmupi = 0x2,
9538f6dacaSGrzegorz Jaszczyk 			  .polarity_invert = COMPHY_POLARITY_NO_INVERT,
96a2847172SGrzegorz Jaszczyk 			  .valid = 0x1
97a2847172SGrzegorz Jaszczyk 			}, /* Comphy1 */
98a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy2 */
99a2847172SGrzegorz Jaszczyk 			{ .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e,
100a2847172SGrzegorz Jaszczyk 			 .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe,
101a2847172SGrzegorz Jaszczyk 			 .g1_emph_en = 0x1, .g2_emph_en = 0x1,
102a2847172SGrzegorz Jaszczyk 			 .g3_emph_en = 0x1,
103a2847172SGrzegorz Jaszczyk 			 .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1,
104a2847172SGrzegorz Jaszczyk 			 .g3_tx_amp_adj = 0x1,
105a2847172SGrzegorz Jaszczyk 			 .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0,
106a2847172SGrzegorz Jaszczyk 			 .g3_tx_emph_en = 0x0,
107a2847172SGrzegorz Jaszczyk 			 .g1_tx_emph = 0x1, .g2_tx_emph = 0x1,
108a2847172SGrzegorz Jaszczyk 			 .g3_tx_emph = 0x1,
109a2847172SGrzegorz Jaszczyk 			 .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4,
110a2847172SGrzegorz Jaszczyk 			 .g3_ffe_cap_sel = 0xf,
111a2847172SGrzegorz Jaszczyk 			 .align90 = 0x61,
112a2847172SGrzegorz Jaszczyk 			 .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3,
113a2847172SGrzegorz Jaszczyk 			 .g3_rx_selmuff = 0x3,
114a2847172SGrzegorz Jaszczyk 			 .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0,
115a2847172SGrzegorz Jaszczyk 			 .g3_rx_selmufi = 0x3,
116a2847172SGrzegorz Jaszczyk 			 .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1,
117a2847172SGrzegorz Jaszczyk 			 .g3_rx_selmupf = 0x2,
118a2847172SGrzegorz Jaszczyk 			 .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0,
119a2847172SGrzegorz Jaszczyk 			 .g3_rx_selmupi = 0x2,
12038f6dacaSGrzegorz Jaszczyk 			 .polarity_invert = COMPHY_POLARITY_NO_INVERT,
121a2847172SGrzegorz Jaszczyk 			 .valid = 0x1
122a2847172SGrzegorz Jaszczyk 			}, /* Comphy3 */
123a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy4 */
124a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 */
125a2847172SGrzegorz Jaszczyk 		},
126a2847172SGrzegorz Jaszczyk 
127a2847172SGrzegorz Jaszczyk 		/* CP 1 */
128a2847172SGrzegorz Jaszczyk 		{
129a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy0 */
130a2847172SGrzegorz Jaszczyk 			{ .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e,
131a2847172SGrzegorz Jaszczyk 			  .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe,
132a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g2_emph_en = 0x1,
133a2847172SGrzegorz Jaszczyk 			  .g3_emph_en = 0x1,
134a2847172SGrzegorz Jaszczyk 			  .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1,
135a2847172SGrzegorz Jaszczyk 			  .g3_tx_amp_adj = 0x1,
136a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0,
137a2847172SGrzegorz Jaszczyk 			  .g3_tx_emph_en = 0x0,
138a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph = 0x1, .g2_tx_emph = 0x1,
139a2847172SGrzegorz Jaszczyk 			  .g3_tx_emph = 0x1,
140a2847172SGrzegorz Jaszczyk 			  .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4,
141a2847172SGrzegorz Jaszczyk 			  .g3_ffe_cap_sel = 0xf,
142a2847172SGrzegorz Jaszczyk 			  .align90 = 0x61,
143a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3,
144a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmuff = 0x3,
145a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0,
146a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmufi = 0x3,
147a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1,
148a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmupf = 0x2,
149a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0,
150a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmupi = 0x2,
15138f6dacaSGrzegorz Jaszczyk 			  .polarity_invert = COMPHY_POLARITY_NO_INVERT,
152a2847172SGrzegorz Jaszczyk 			  .valid = 0x1
153a2847172SGrzegorz Jaszczyk 			}, /* Comphy1 */
154a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy2 */
155a2847172SGrzegorz Jaszczyk 			{ .g1_amp = 0x8, .g2_amp = 0xa, .g3_amp = 0x1e,
156a2847172SGrzegorz Jaszczyk 			  .g1_emph = 0x1, .g2_emph = 0x2, .g3_emph = 0xe,
157a2847172SGrzegorz Jaszczyk 			  .g1_emph_en = 0x1, .g2_emph_en = 0x1,
158a2847172SGrzegorz Jaszczyk 			  .g3_emph_en = 0x1,
159a2847172SGrzegorz Jaszczyk 			  .g1_tx_amp_adj = 0x1, .g2_tx_amp_adj = 0x1,
160a2847172SGrzegorz Jaszczyk 			  .g3_tx_amp_adj = 0x1,
161a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph_en = 0x0, .g2_tx_emph_en = 0x0,
162a2847172SGrzegorz Jaszczyk 			  .g3_tx_emph_en = 0x0,
163a2847172SGrzegorz Jaszczyk 			  .g1_tx_emph = 0x1, .g2_tx_emph = 0x1,
164a2847172SGrzegorz Jaszczyk 			  .g3_tx_emph = 0x1,
165a2847172SGrzegorz Jaszczyk 			  .g3_dfe_res = 0x1, .g3_ffe_res_sel = 0x4,
166a2847172SGrzegorz Jaszczyk 			  .g3_ffe_cap_sel = 0xf,
167a2847172SGrzegorz Jaszczyk 			  .align90 = 0x61,
168a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmuff = 0x3, .g2_rx_selmuff = 0x3,
169a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmuff = 0x3,
170a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmufi = 0x0, .g2_rx_selmufi = 0x0,
171a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmufi = 0x3,
172a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupf = 0x1, .g2_rx_selmupf = 0x1,
173a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmupf = 0x2,
174a2847172SGrzegorz Jaszczyk 			  .g1_rx_selmupi = 0x0, .g2_rx_selmupi = 0x0,
175a2847172SGrzegorz Jaszczyk 			  .g3_rx_selmupi = 0x2,
17638f6dacaSGrzegorz Jaszczyk 			  .polarity_invert = COMPHY_POLARITY_NO_INVERT,
177a2847172SGrzegorz Jaszczyk 			  .valid = 0x1
178a2847172SGrzegorz Jaszczyk 			}, /* Comphy3 */
179a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy4 */
180a2847172SGrzegorz Jaszczyk 			{ 0 }, /* Comphy5 */
181a2847172SGrzegorz Jaszczyk 
182a2847172SGrzegorz Jaszczyk 		},
183a2847172SGrzegorz Jaszczyk 	},
184a2847172SGrzegorz Jaszczyk };
185*ff9cfdc0SGrzegorz Jaszczyk 
186*ff9cfdc0SGrzegorz Jaszczyk static const struct usb_params
187*ff9cfdc0SGrzegorz Jaszczyk 	usb_static_values_tab[AP_NUM][CP_NUM][MAX_LANE_NR] = {
188*ff9cfdc0SGrzegorz Jaszczyk 	[0 ... AP_NUM-1][0 ... CP_NUM-1][0 ... MAX_LANE_NR-1] = {
189*ff9cfdc0SGrzegorz Jaszczyk 		.polarity_invert = COMPHY_POLARITY_NO_INVERT
190*ff9cfdc0SGrzegorz Jaszczyk 	},
191*ff9cfdc0SGrzegorz Jaszczyk };
192a2847172SGrzegorz Jaszczyk #endif /* PHY_PORTING_LAYER_H */
193