blob: cf450cf0963186f1fc0500da7ded6797deddf19c [file] [log] [blame]
Angel Pons96d93d12020-04-05 13:22:23 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Stefan Reinauera7198b32012-12-11 16:00:47 -08002
3#ifndef PARROT_GPIO_H
4#define PARROT_GPIO_H
5
Patrick Rudolphe8e66f42016-02-06 17:42:42 +01006#include <southbridge/intel/common/gpio.h>
Stefan Reinauera7198b32012-12-11 16:00:47 -08007
Peter Lemenkov6752b6152019-06-15 21:39:32 +02008static const struct pch_gpio_set1 pch_gpio_set1_mode = {
Stefan Reinauera7198b32012-12-11 16:00:47 -08009 .gpio0 = GPIO_MODE_NONE, /* NOT USED */
10 .gpio1 = GPIO_MODE_NONE, /* NOT USED */
11 .gpio2 = GPIO_MODE_NATIVE, /* NOT USED / PIRQE# */
12 .gpio3 = GPIO_MODE_NONE, /* NOT USED / PIRQ#F */
13 .gpio4 = GPIO_MODE_NONE, /* NOT USED / PIRQG# */
14 .gpio5 = GPIO_MODE_NONE, /* NOT USED / PIRQH# */
15 .gpio6 = GPIO_MODE_NONE, /* NOT USED / FAN TACH2 */
16 .gpio7 = GPIO_MODE_GPIO, /* EC_SCI# */
17 .gpio8 = GPIO_MODE_GPIO, /* EC SMI# */
18 .gpio9 = GPIO_MODE_NATIVE, /* NOT USED / OC5# USB */
19 .gpio10 = GPIO_MODE_NATIVE, /* NOT USED / OC6# USB */
20 .gpio11 = GPIO_MODE_NONE, /* NOT USED / SMB_ALERT*/
21 .gpio12 = GPIO_MODE_GPIO, /* Track Pad IRQ / LAN_PHY_PWR_CTRL / SMB_ALERT */
22 .gpio13 = GPIO_MODE_NONE, /* NOT USED / HDA_DOCK_RST */
23 .gpio14 = GPIO_MODE_NATIVE, /* NOT USED / OC7# USB */
24 .gpio15 = GPIO_MODE_GPIO, /* EC_LID_OUT (INPUT to PantherPoint) */
25 .gpio16 = GPIO_MODE_NONE, /* NOT USED / SATA4GP */
26 .gpio17 = GPIO_MODE_GPIO, /* DEV MODE */
27 .gpio18 = GPIO_MODE_NATIVE, /* PCIECLKRQ1# */
28 .gpio19 = GPIO_MODE_NONE, /* BIOS BOOT STRAP (NOT USED)/ SATA1GP */
29 .gpio20 = GPIO_MODE_NONE, /* NOT USED / PCIECLKRQ2# */
30 .gpio21 = GPIO_MODE_NONE, /* NOT USED / SATA0GP */
31 .gpio22 = GPIO_MODE_NONE, /* NOT USED */
32 .gpio23 = GPIO_MODE_NONE, /* NOT USED */
33 .gpio24 = GPIO_MODE_NONE, /* NOT USED / MEM_LED */
34 .gpio25 = GPIO_MODE_NATIVE, /* PCIECLKRQ3# */
35 .gpio26 = GPIO_MODE_NONE, /* NOT USED / PCIECLKRQ4# */
36 .gpio27 = GPIO_MODE_NONE, /* S4,S5 WAKE? */
37 .gpio28 = GPIO_MODE_NONE, /* On-Die PLL Voltage Regulator */
38 .gpio29 = GPIO_MODE_NONE, /* NOT USED / SLP_LAN# */
39 .gpio30 = GPIO_MODE_NATIVE, /* SUS_WARN# */
40 .gpio31 = GPIO_MODE_NATIVE, /* ACPRESENT */
41};
42
Peter Lemenkov6752b6152019-06-15 21:39:32 +020043static const struct pch_gpio_set1 pch_gpio_set1_direction = {
Stefan Reinauera7198b32012-12-11 16:00:47 -080044 .gpio0 = GPIO_DIR_INPUT,
45 .gpio1 = GPIO_DIR_INPUT,
46 .gpio2 = GPIO_DIR_INPUT,
47 .gpio3 = GPIO_DIR_INPUT,
48 .gpio4 = GPIO_DIR_INPUT,
49 .gpio5 = GPIO_DIR_INPUT,
50 .gpio6 = GPIO_DIR_INPUT,
51 .gpio7 = GPIO_DIR_INPUT,
52 .gpio8 = GPIO_DIR_INPUT,
53 .gpio9 = GPIO_DIR_INPUT,
54 .gpio10 = GPIO_DIR_INPUT,
55 .gpio11 = GPIO_DIR_INPUT,
56 .gpio12 = GPIO_DIR_INPUT,
57 .gpio13 = GPIO_DIR_INPUT,
58 .gpio14 = GPIO_DIR_INPUT,
59 .gpio15 = GPIO_DIR_INPUT,
60 .gpio16 = GPIO_DIR_INPUT,
61 .gpio17 = GPIO_DIR_INPUT,
62 .gpio18 = GPIO_DIR_INPUT,
63 .gpio19 = GPIO_DIR_INPUT,
64 .gpio20 = GPIO_DIR_INPUT,
65 .gpio21 = GPIO_DIR_INPUT,
66 .gpio22 = GPIO_DIR_INPUT,
67 .gpio23 = GPIO_DIR_INPUT,
68 .gpio24 = GPIO_DIR_INPUT,
69 .gpio25 = GPIO_DIR_INPUT,
70 .gpio26 = GPIO_DIR_INPUT,
71 .gpio27 = GPIO_DIR_INPUT,
72 .gpio28 = GPIO_DIR_INPUT,
73 .gpio29 = GPIO_DIR_INPUT,
74 .gpio30 = GPIO_DIR_OUTPUT,
75 .gpio31 = GPIO_DIR_INPUT,
76};
77
Peter Lemenkov6752b6152019-06-15 21:39:32 +020078static const struct pch_gpio_set1 pch_gpio_set1_level = {
Stefan Reinauera7198b32012-12-11 16:00:47 -080079 .gpio0 = GPIO_LEVEL_LOW,
80 .gpio1 = GPIO_LEVEL_LOW,
81 .gpio2 = GPIO_LEVEL_LOW,
82 .gpio3 = GPIO_LEVEL_LOW,
83 .gpio4 = GPIO_LEVEL_LOW,
84 .gpio5 = GPIO_LEVEL_LOW,
85 .gpio6 = GPIO_LEVEL_LOW,
86 .gpio7 = GPIO_LEVEL_LOW,
87 .gpio8 = GPIO_LEVEL_LOW,
88 .gpio9 = GPIO_LEVEL_LOW,
89 .gpio10 = GPIO_LEVEL_LOW,
90 .gpio11 = GPIO_LEVEL_LOW,
91 .gpio12 = GPIO_LEVEL_LOW,
92 .gpio13 = GPIO_LEVEL_LOW,
93 .gpio14 = GPIO_LEVEL_LOW,
94 .gpio15 = GPIO_LEVEL_LOW,
95 .gpio16 = GPIO_LEVEL_LOW,
96 .gpio17 = GPIO_LEVEL_LOW,
97 .gpio18 = GPIO_LEVEL_LOW,
98 .gpio19 = GPIO_LEVEL_LOW,
99 .gpio20 = GPIO_LEVEL_LOW,
100 .gpio21 = GPIO_LEVEL_LOW,
101 .gpio22 = GPIO_LEVEL_LOW,
102 .gpio23 = GPIO_LEVEL_LOW,
103 .gpio24 = GPIO_LEVEL_LOW,
104 .gpio25 = GPIO_LEVEL_LOW,
105 .gpio26 = GPIO_LEVEL_LOW,
106 .gpio27 = GPIO_LEVEL_LOW,
107 .gpio28 = GPIO_LEVEL_LOW,
108 .gpio29 = GPIO_LEVEL_LOW,
109 .gpio30 = GPIO_LEVEL_LOW,
110 .gpio31 = GPIO_LEVEL_LOW,
111};
112
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200113static const struct pch_gpio_set1 pch_gpio_set1_invert = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800114 .gpio7 = GPIO_INVERT,
115 .gpio8 = GPIO_INVERT,
116 .gpio12 = GPIO_INVERT,
117 .gpio15 = GPIO_INVERT,
118};
119
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200120static const struct pch_gpio_set2 pch_gpio_set2_mode = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800121 .gpio36 = GPIO_MODE_GPIO, /* W_DISABLE_L */
122 .gpio41 = GPIO_MODE_GPIO, /* SPD vector D0 */
123 .gpio42 = GPIO_MODE_GPIO, /* SPD vector D1 */
124 .gpio43 = GPIO_MODE_GPIO, /* SPD vector D2 */
125 .gpio57 = GPIO_MODE_GPIO, /* PCH_SPI_WP_D */
126 .gpio60 = GPIO_MODE_GPIO, /* DRAMRST_CNTRL_PCH */
127};
128
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200129static const struct pch_gpio_set2 pch_gpio_set2_direction = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800130 .gpio32 = GPIO_DIR_INPUT,
131 .gpio33 = GPIO_DIR_INPUT,
132 .gpio34 = GPIO_DIR_INPUT,
133 .gpio35 = GPIO_DIR_INPUT,
134 .gpio36 = GPIO_DIR_INPUT,
135 .gpio37 = GPIO_DIR_INPUT,
136 .gpio38 = GPIO_DIR_INPUT,
137 .gpio39 = GPIO_DIR_INPUT,
138 .gpio40 = GPIO_DIR_INPUT,
139 .gpio41 = GPIO_DIR_INPUT,
140 .gpio42 = GPIO_DIR_INPUT,
141 .gpio43 = GPIO_DIR_INPUT,
142 .gpio44 = GPIO_DIR_INPUT,
143 .gpio45 = GPIO_DIR_INPUT,
144 .gpio46 = GPIO_DIR_INPUT,
145 .gpio47 = GPIO_DIR_INPUT,
146 .gpio48 = GPIO_DIR_INPUT,
147 .gpio49 = GPIO_DIR_INPUT,
148 .gpio50 = GPIO_DIR_INPUT,
149 .gpio51 = GPIO_DIR_INPUT,
150 .gpio52 = GPIO_DIR_INPUT,
151 .gpio53 = GPIO_DIR_INPUT,
152 .gpio54 = GPIO_DIR_INPUT,
153 .gpio55 = GPIO_DIR_INPUT,
154 .gpio56 = GPIO_DIR_INPUT,
155 .gpio57 = GPIO_DIR_INPUT,
156 .gpio58 = GPIO_DIR_INPUT,
157 .gpio59 = GPIO_DIR_INPUT,
158 .gpio60 = GPIO_DIR_INPUT,
159 .gpio61 = GPIO_DIR_INPUT,
160 .gpio62 = GPIO_DIR_INPUT,
161 .gpio63 = GPIO_DIR_INPUT,
162};
163
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200164static const struct pch_gpio_set2 pch_gpio_set2_level = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800165 .gpio32 = GPIO_LEVEL_LOW,
166 .gpio33 = GPIO_LEVEL_LOW,
167 .gpio34 = GPIO_LEVEL_LOW,
168 .gpio35 = GPIO_LEVEL_LOW,
169 .gpio36 = GPIO_LEVEL_LOW,
170 .gpio37 = GPIO_LEVEL_LOW,
171 .gpio38 = GPIO_LEVEL_LOW,
172 .gpio39 = GPIO_LEVEL_LOW,
173 .gpio40 = GPIO_LEVEL_LOW,
174 .gpio41 = GPIO_LEVEL_LOW,
175 .gpio42 = GPIO_LEVEL_LOW,
176 .gpio43 = GPIO_LEVEL_LOW,
177 .gpio44 = GPIO_LEVEL_LOW,
178 .gpio45 = GPIO_LEVEL_LOW,
179 .gpio46 = GPIO_LEVEL_LOW,
180 .gpio47 = GPIO_LEVEL_LOW,
181 .gpio48 = GPIO_LEVEL_LOW,
182 .gpio49 = GPIO_LEVEL_LOW,
183 .gpio50 = GPIO_LEVEL_LOW,
184 .gpio51 = GPIO_LEVEL_LOW,
185 .gpio52 = GPIO_LEVEL_LOW,
186 .gpio53 = GPIO_LEVEL_LOW,
187 .gpio54 = GPIO_LEVEL_LOW,
188 .gpio55 = GPIO_LEVEL_LOW,
189 .gpio56 = GPIO_LEVEL_LOW,
190 .gpio57 = GPIO_LEVEL_LOW,
191 .gpio58 = GPIO_LEVEL_LOW,
192 .gpio59 = GPIO_LEVEL_LOW,
193 .gpio60 = GPIO_LEVEL_LOW,
194 .gpio61 = GPIO_LEVEL_LOW,
195 .gpio62 = GPIO_LEVEL_LOW,
196 .gpio63 = GPIO_LEVEL_LOW,
197};
198
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200199static const struct pch_gpio_set3 pch_gpio_set3_mode = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800200 .gpio64 = GPIO_MODE_NONE, /* NOT USED / CLK_FLEX0 */
201 .gpio65 = GPIO_MODE_NONE, /* NOT USED / CLK_FLEX1 */
202 .gpio66 = GPIO_MODE_NONE, /* NOT USED / CLK_FLEX2 */
203 .gpio67 = GPIO_MODE_NONE, /* NOT USED / CLK_FLEX3 */
204 .gpio68 = GPIO_MODE_NONE, /* NOT USED / FAN TACK4 */
205 .gpio69 = GPIO_MODE_GPIO, /* REC_MODE_L / FAN TACK5 */
206 .gpio70 = GPIO_MODE_GPIO, /* SPI_WP1#_RPCH / FAN TACK7 */
207 .gpio71 = GPIO_MODE_GPIO, /* LVDS/eDP / FAN TACK8 */
208 .gpio72 = GPIO_MODE_NONE, /* NOT USED / BATLOW# */
209 .gpio73 = GPIO_MODE_NONE, /* NOT USED / PCIECLKRQ0#*/
210 .gpio74 = GPIO_MODE_NONE, /* NOT USED / SML1ALERT# /PCHHOT# */
211 .gpio75 = GPIO_MODE_NATIVE, /* SML1DATA */
212};
213
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200214static const struct pch_gpio_set3 pch_gpio_set3_direction = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800215 .gpio64 = GPIO_DIR_INPUT,
216 .gpio65 = GPIO_DIR_INPUT,
217 .gpio66 = GPIO_DIR_INPUT,
218 .gpio67 = GPIO_DIR_INPUT,
219 .gpio68 = GPIO_DIR_INPUT,
220 .gpio69 = GPIO_DIR_INPUT,
221 .gpio70 = GPIO_DIR_INPUT,
222 .gpio71 = GPIO_DIR_INPUT,
223 .gpio72 = GPIO_DIR_INPUT,
224 .gpio73 = GPIO_DIR_INPUT,
225 .gpio74 = GPIO_DIR_INPUT,
226 .gpio75 = GPIO_DIR_INPUT,
227};
228
Peter Lemenkov6752b6152019-06-15 21:39:32 +0200229static const struct pch_gpio_set3 pch_gpio_set3_level = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800230 .gpio64 = GPIO_LEVEL_LOW,
231 .gpio65 = GPIO_LEVEL_LOW,
232 .gpio66 = GPIO_LEVEL_LOW,
233 .gpio67 = GPIO_LEVEL_LOW,
234 .gpio68 = GPIO_LEVEL_LOW,
235 .gpio69 = GPIO_LEVEL_LOW,
236 .gpio70 = GPIO_LEVEL_LOW,
237 .gpio71 = GPIO_LEVEL_LOW,
238 .gpio72 = GPIO_LEVEL_LOW,
239 .gpio73 = GPIO_LEVEL_LOW,
240 .gpio74 = GPIO_LEVEL_LOW,
241 .gpio75 = GPIO_LEVEL_LOW,
242};
243
Vladimir Serbinenkoffbb3c02016-02-10 01:36:25 +0100244const struct pch_gpio_map mainboard_gpio_map = {
Stefan Reinauera7198b32012-12-11 16:00:47 -0800245 .set1 = {
246 .mode = &pch_gpio_set1_mode,
247 .direction = &pch_gpio_set1_direction,
248 .level = &pch_gpio_set1_level,
249 .invert = &pch_gpio_set1_invert,
250 },
251 .set2 = {
252 .mode = &pch_gpio_set2_mode,
253 .direction = &pch_gpio_set2_direction,
254 .level = &pch_gpio_set2_level,
255 },
256 .set3 = {
257 .mode = &pch_gpio_set3_mode,
258 .direction = &pch_gpio_set3_direction,
259 .level = &pch_gpio_set3_level,
260 },
261};
262#endif