1 /* SPDX-License-Identifier: GPL-2.0-only */
6 static const struct soc_gpio_map gpncore_gpio_map
[] = {
7 GPIO_INPUT
, /* GPIO_S0_NC[00] */
8 GPIO_INPUT
, /* GPIO_S0_NC[01] */
9 GPIO_INPUT
, /* GPIO_S0_NC[02] */
10 GPIO_INPUT
, /* GPIO_S0_NC[03] */
11 GPIO_INPUT
, /* GPIO_S0_NC[04] */
12 GPIO_INPUT
, /* GPIO_S0_NC[05] */
13 GPIO_INPUT
, /* GPIO_S0_NC[06] */
14 GPIO_INPUT
, /* GPIO_S0_NC[07] */
15 GPIO_INPUT
, /* GPIO_S0_NC[08] */
16 GPIO_INPUT
, /* GPIO_S0_NC[09] */
17 GPIO_INPUT
, /* GPIO_S0_NC[10] */
18 GPIO_INPUT
, /* GPIO_S0_NC[11] */
19 GPIO_INPUT
, /* GPIO_S0_NC[12] */
20 GPIO_INPUT
, /* GPIO_S0_NC[13] */
21 GPIO_INPUT
, /* GPIO_S0_NC[14] */
22 GPIO_INPUT
, /* GPIO_S0_NC[15] */
23 GPIO_INPUT
, /* GPIO_S0_NC[16] */
24 GPIO_INPUT
, /* GPIO_S0_NC[17] */
25 GPIO_INPUT
, /* GPIO_S0_NC[18] */
26 GPIO_INPUT
, /* GPIO_S0_NC[19] */
27 GPIO_INPUT
, /* GPIO_S0_NC[20] */
28 GPIO_INPUT
, /* GPIO_S0_NC[21] */
29 GPIO_INPUT
, /* GPIO_S0_NC[22] */
30 GPIO_INPUT
, /* GPIO_S0_NC[23] */
31 GPIO_INPUT
, /* GPIO_S0_NC[24] */
32 GPIO_INPUT
, /* GPIO_S0_NC[25] */
33 GPIO_INPUT
, /* GPIO_S0_NC[26] */
38 static const struct soc_gpio_map gpscore_gpio_map
[] = {
39 GPIO_INPUT
, /* GPIO_S0_SC[000] */
40 GPIO_INPUT
, /* GPIO_S0_SC[001] */
41 GPIO_FUNC1
, /* SATA_LED# */
42 GPIO_FUNC1
, /* PCIE_CLKREQ[0]# */
43 GPIO_FUNC1
, /* PCIE_CLKREQ[1]# */
44 GPIO_FUNC1
, /* PCIE_CLKREQ[2]# */
45 GPIO_FUNC1
, /* PCIE_CLKREQ[3]# */
46 GPIO_INPUT
, /* GPIO_S0_SC[007] */
47 GPIO_INPUT
, /* GPIO_S0_SC[008] */
48 GPIO_INPUT
, /* GPIO_S0_SC[009] */
49 GPIO_INPUT
, /* GPIO_S0_SC[010] */
50 GPIO_INPUT
, /* GPIO_S0_SC[011] */
51 GPIO_INPUT
, /* GPIO_S0_SC[012] */
52 GPIO_INPUT
, /* GPIO_S0_SC[013] */
53 GPIO_INPUT
, /* GPIO_S0_SC[014] */
54 GPIO_INPUT
, /* GPIO_S0_SC[015] */
55 GPIO_INPUT
, /* GPIO_S0_SC[016] */
56 GPIO_INPUT
, /* GPIO_S0_SC[017] */
57 GPIO_INPUT
, /* GPIO_S0_SC[018] */
58 GPIO_INPUT
, /* GPIO_S0_SC[019] */
59 GPIO_INPUT
, /* GPIO_S0_SC[020] */
60 GPIO_INPUT
, /* GPIO_S0_SC[021] */
61 GPIO_INPUT
, /* GPIO_S0_SC[022] */
62 GPIO_INPUT
, /* GPIO_S0_SC[023] */
63 GPIO_INPUT
, /* GPIO_S0_SC[024] */
64 GPIO_INPUT
, /* GPIO_S0_SC[025] */
65 GPIO_INPUT
, /* GPIO_S0_SC[026] */
66 GPIO_INPUT
, /* GPIO_S0_SC[027] */
67 GPIO_INPUT
, /* GPIO_S0_SC[028] */
68 GPIO_INPUT
, /* GPIO_S0_SC[029] */
69 GPIO_INPUT
, /* GPIO_S0_SC[030] */
70 GPIO_INPUT
, /* GPIO_S0_SC[031] */
71 GPIO_INPUT
, /* GPIO_S0_SC[032] */
72 GPIO_INPUT
, /* GPIO_S0_SC[033] */
73 GPIO_INPUT
, /* GPIO_S0_SC[034] */
74 GPIO_INPUT
, /* GPIO_S0_SC[035] */
75 GPIO_INPUT
, /* GPIO_S0_SC[036] */
76 GPIO_INPUT
, /* GPIO_S0_SC[037] */
77 GPIO_INPUT
, /* GPIO_S0_SC[038] */
78 GPIO_INPUT
, /* GPIO_S0_SC[039] */
79 GPIO_INPUT
, /* GPIO_S0_SC[040] */
80 GPIO_INPUT
, /* GPIO_S0_SC[041] */
81 GPIO_FUNC1
, /* ILB_LPC_AD[0] */
82 GPIO_FUNC1
, /* ILB_LPC_AD[1] */
83 GPIO_FUNC1
, /* ILB_LPC_AD[2] */
84 GPIO_FUNC1
, /* ILB_LPC_AD[3] */
85 GPIO_FUNC1
, /* ILB_LPC_FRAME# */
86 GPIO_FUNC1
, /* ILB_LPC_CLK[0] */
87 GPIO_FUNC1
, /* ILB_LPC_CLK[1] */
88 GPIO_FUNC1
, /* ILB_LPC_CLKRUN# */
89 GPIO_FUNC1
, /* ILB_LPC_SERIRQ */
90 GPIO_FUNC1
, /* PCU_SMB_DATA */
91 GPIO_FUNC1
, /* PCU_SMB_CLK */
92 GPIO_FUNC1
, /* PCU_SMB_ALERT# */
93 GPIO_FUNC1
, /* ILB_8254_SPKR */
94 GPIO_INPUT
, /* GPIO_S0_SC[055] */
95 GPIO_INPUT
, /* GPIO_S0_SC[056] */
96 GPIO_INPUT
, /* GPIO_S0_SC[057] */
97 GPIO_INPUT
, /* GPIO_S0_SC[058] */
98 GPIO_INPUT
, /* GPIO_S0_SC[059] */
99 GPIO_INPUT
, /* GPIO_S0_SC[060] */
100 GPIO_INPUT
, /* GPIO_S0_SC[061] */
101 GPIO_INPUT
, /* GPIO_S0_SC[062] */
102 GPIO_INPUT
, /* GPIO_S0_SC[063] */
103 GPIO_INPUT
, /* GPIO_S0_SC[064] */
104 GPIO_INPUT
, /* GPIO_S0_SC[065] */
105 GPIO_INPUT
, /* GPIO_S0_SC[066] */
106 GPIO_INPUT
, /* GPIO_S0_SC[067] */
107 GPIO_INPUT
, /* GPIO_S0_SC[068] */
108 GPIO_INPUT
, /* GPIO_S0_SC[069] */
109 GPIO_INPUT
, /* GPIO_S0_SC[070] */
110 GPIO_INPUT
, /* GPIO_S0_SC[071] */
111 GPIO_INPUT
, /* GPIO_S0_SC[072] */
112 GPIO_INPUT
, /* GPIO_S0_SC[073] */
113 GPIO_INPUT
, /* GPIO_S0_SC[074] */
114 GPIO_INPUT
, /* GPIO_S0_SC[075] */
115 GPIO_INPUT
, /* GPIO_S0_SC[076] */
116 GPIO_INPUT
, /* GPIO_S0_SC[077] */
117 GPIO_INPUT
, /* GPIO_S0_SC[078] */
118 GPIO_INPUT
, /* GPIO_S0_SC[079] */
119 GPIO_INPUT
, /* GPIO_S0_SC[080] */
120 GPIO_INPUT
, /* GPIO_S0_SC[081] */
121 GPIO_INPUT
, /* GPIO_S0_SC[082] */
122 GPIO_INPUT
, /* GPIO_S0_SC[083] */
123 GPIO_INPUT
, /* GPIO_S0_SC[084] */
124 GPIO_INPUT
, /* GPIO_S0_SC[085] */
125 GPIO_INPUT
, /* GPIO_S0_SC[086] */
126 GPIO_INPUT
, /* GPIO_S0_SC[087] */
127 GPIO_INPUT
, /* GPIO_S0_SC[088] */
128 GPIO_INPUT
, /* GPIO_S0_SC[089] */
129 GPIO_INPUT
, /* GPIO_S0_SC[090] */
130 GPIO_INPUT
, /* GPIO_S0_SC[091] */
131 GPIO_INPUT
, /* GPIO_S0_SC[092] */
132 GPIO_INPUT
, /* GPIO_S0_SC[093] */
133 GPIO_INPUT
, /* GPIO_S0_SC[094] */
134 GPIO_INPUT
, /* GPIO_S0_SC[095] */
135 GPIO_INPUT
, /* GPIO_S0_SC[096] */
136 GPIO_INPUT
, /* GPIO_S0_SC[097] */
137 GPIO_INPUT
, /* GPIO_S0_SC[098] */
138 GPIO_INPUT
, /* GPIO_S0_SC[099] */
139 GPIO_INPUT
, /* GPIO_S0_SC[100] */
140 GPIO_INPUT
, /* GPIO_S0_SC[101] */
145 static const struct soc_gpio_map gpssus_gpio_map
[] = {
146 GPIO_INPUT
, /* GPIO_S5[00] */
147 GPIO_FUNC6
, /* PMC_WAKE_PCIE[1]# */
148 GPIO_FUNC6
, /* PMC_WAKE_PCIE[2]# */
149 GPIO_FUNC6
, /* PMC_WAKE_PCIE[3]# */
150 GPIO_INPUT
, /* GPIO_S5[04] */
151 GPIO_INPUT
, /* GPIO_S5[05] */
152 GPIO_INPUT
, /* GPIO_S5[06] */
153 GPIO_INPUT
, /* GPIO_S5[07] */
154 GPIO_INPUT
, /* GPIO_S5[08] */
155 GPIO_INPUT
, /* GPIO_S5[09] */
156 GPIO_INPUT
, /* GPIO_S5[10] */
157 GPIO_INPUT
, /* GPIO_S5[11] */
158 GPIO_INPUT
, /* GPIO_S5[12] */
159 GPIO_INPUT
, /* GPIO_S5[13] */
160 GPIO_INPUT
, /* GPIO_S5[14] */
161 GPIO_FUNC0
, /* PMC_WAKE_PCIE[0]# */
162 GPIO_FUNC(0, PULL_UP
, 20K
), /* PMC_PWRBTN# */
163 GPIO_INPUT
, /* GPIO_S5[17] */
164 GPIO_INPUT
, /* GPIO_S5[18] */
165 GPIO_INPUT
, /* GPIO_S5[19] */
166 GPIO_INPUT
, /* GPIO_S5[20] */
167 GPIO_INPUT
, /* GPIO_S5[21] */
168 GPIO_INPUT
, /* GPIO_S5[22] */
169 GPIO_INPUT
, /* GPIO_S5[23] */
170 GPIO_INPUT
, /* GPIO_S5[24] */
171 GPIO_INPUT
, /* GPIO_S5[25] */
172 GPIO_INPUT
, /* GPIO_S5[26] */
173 GPIO_INPUT
, /* GPIO_S5[27] */
174 GPIO_INPUT
, /* GPIO_S5[28] */
175 GPIO_INPUT
, /* GPIO_S5[29] */
176 GPIO_INPUT
, /* GPIO_S5[30] */
177 GPIO_INPUT
, /* GPIO_S5[31] */
178 GPIO_INPUT
, /* GPIO_S5[32] */
179 GPIO_INPUT
, /* GPIO_S5[33] */
180 GPIO_INPUT
, /* GPIO_S5[34] */
181 GPIO_INPUT
, /* GPIO_S5[35] */
182 GPIO_INPUT
, /* GPIO_S5[36] */
183 GPIO_INPUT
, /* GPIO_S5[37] */
184 GPIO_INPUT
, /* GPIO_S5[38] */
185 GPIO_INPUT
, /* GPIO_S5[39] */
186 GPIO_INPUT
, /* GPIO_S5[40] */
187 GPIO_INPUT
, /* GPIO_S5[41] */
188 GPIO_INPUT
, /* GPIO_S5[42] */
189 GPIO_INPUT
, /* GPIO_S5[43] */
193 static const u8 core_dedicated_irq
[GPIO_MAX_DIRQS
] = {
196 static const u8 sus_dedicated_irq
[GPIO_MAX_DIRQS
] = {
199 static struct soc_gpio_config gpio_config
= {
200 .ncore
= gpncore_gpio_map
,
201 .score
= gpscore_gpio_map
,
202 .ssus
= gpssus_gpio_map
,
203 .core_dirq
= &core_dedicated_irq
,
204 .sus_dirq
= &sus_dedicated_irq
,
207 struct soc_gpio_config
*mainboard_get_gpios(void)