@@ -70,6 +70,174 @@ static const struct samsung_pin_bank_type exynos8895_bank_type_off = {
70
70
/* Pad retention control code for accessing PMU regmap */
71
71
static atomic_t exynos_shared_retention_refcnt ;
72
72
73
+ /* pin banks of exynos2200 pin-controller - ALIVE */
74
+ static const struct samsung_pin_bank_data exynos2200_pin_banks0 [] __initconst = {
75
+ EXYNOS850_PIN_BANK_EINTW (8 , 0x0 , "gpa0" , 0x00 ),
76
+ EXYNOS850_PIN_BANK_EINTW (8 , 0x20 , "gpa1" , 0x04 ),
77
+ EXYNOS850_PIN_BANK_EINTW (8 , 0x40 , "gpa2" , 0x08 ),
78
+ EXYNOS850_PIN_BANK_EINTW (8 , 0x60 , "gpa3" , 0x0c ),
79
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x80 , "gpa4" , 0x10 ),
80
+ EXYNOS_PIN_BANK_EINTN (4 , 0xa0 , "gpq0" ),
81
+ EXYNOS_PIN_BANK_EINTN (2 , 0xc0 , "gpq1" ),
82
+ EXYNOS_PIN_BANK_EINTN (2 , 0xe0 , "gpq2" ),
83
+ };
84
+
85
+ /* pin banks of exynos2200 pin-controller - CMGP */
86
+ static const struct samsung_pin_bank_data exynos2200_pin_banks1 [] __initconst = {
87
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x0 , "gpm0" , 0x00 ),
88
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x20 , "gpm1" , 0x04 ),
89
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x40 , "gpm2" , 0x08 ),
90
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x60 , "gpm3" , 0x0c ),
91
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x80 , "gpm4" , 0x10 ),
92
+ EXYNOS850_PIN_BANK_EINTW (2 , 0xa0 , "gpm5" , 0x14 ),
93
+ EXYNOS850_PIN_BANK_EINTW (2 , 0xc0 , "gpm6" , 0x18 ),
94
+ EXYNOS850_PIN_BANK_EINTW (2 , 0xe0 , "gpm7" , 0x1c ),
95
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x100 , "gpm8" , 0x20 ),
96
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x120 , "gpm9" , 0x24 ),
97
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x140 , "gpm10" , 0x28 ),
98
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x160 , "gpm11" , 0x2c ),
99
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x180 , "gpm12" , 0x30 ),
100
+ EXYNOS850_PIN_BANK_EINTW (2 , 0x1a0 , "gpm13" , 0x34 ),
101
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x1c0 , "gpm14" , 0x38 ),
102
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x1e0 , "gpm15" , 0x3c ),
103
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x200 , "gpm16" , 0x40 ),
104
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x220 , "gpm17" , 0x44 ),
105
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x240 , "gpm20" , 0x48 ),
106
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x260 , "gpm21" , 0x4c ),
107
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x280 , "gpm22" , 0x50 ),
108
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x2a0 , "gpm23" , 0x54 ),
109
+ EXYNOS850_PIN_BANK_EINTW (1 , 0x2c0 , "gpm24" , 0x58 ),
110
+ };
111
+
112
+ /* pin banks of exynos2200 pin-controller - HSI1 */
113
+ static const struct samsung_pin_bank_data exynos2200_pin_banks2 [] __initconst = {
114
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x0 , "gpf0" , 0x00 ),
115
+ };
116
+
117
+ /* pin banks of exynos2200 pin-controller - UFS */
118
+ static const struct samsung_pin_bank_data exynos2200_pin_banks3 [] __initconst = {
119
+ EXYNOS850_PIN_BANK_EINTG (7 , 0x0 , "gpf1" , 0x00 ),
120
+ };
121
+
122
+ /* pin banks of exynos2200 pin-controller - HSI1UFS */
123
+ static const struct samsung_pin_bank_data exynos2200_pin_banks4 [] __initconst = {
124
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x0 , "gpf2" , 0x00 ),
125
+ };
126
+
127
+ /* pin banks of exynos2200 pin-controller - PERIC0 */
128
+ static const struct samsung_pin_bank_data exynos2200_pin_banks5 [] __initconst = {
129
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x0 , "gpb0" , 0x00 ),
130
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x20 , "gpb1" , 0x04 ),
131
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x40 , "gpb2" , 0x08 ),
132
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x60 , "gpb3" , 0x0c ),
133
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x80 , "gpp4" , 0x10 ),
134
+ EXYNOS850_PIN_BANK_EINTG (2 , 0xa0 , "gpc0" , 0x14 ),
135
+ EXYNOS850_PIN_BANK_EINTG (2 , 0xc0 , "gpc1" , 0x18 ),
136
+ EXYNOS850_PIN_BANK_EINTG (2 , 0xe0 , "gpc2" , 0x1c ),
137
+ EXYNOS850_PIN_BANK_EINTG (7 , 0x100 , "gpg1" , 0x20 ),
138
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x120 , "gpg2" , 0x24 ),
139
+ };
140
+
141
+ /* pin banks of exynos2200 pin-controller - PERIC1 */
142
+ static const struct samsung_pin_bank_data exynos2200_pin_banks6 [] __initconst = {
143
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x0 , "gpp7" , 0x00 ),
144
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x20 , "gpp8" , 0x04 ),
145
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x40 , "gpp9" , 0x08 ),
146
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x60 , "gpp10" , 0x0c ),
147
+ };
148
+
149
+ /* pin banks of exynos2200 pin-controller - PERIC2 */
150
+ static const struct samsung_pin_bank_data exynos2200_pin_banks7 [] __initconst = {
151
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x0 , "gpp0" , 0x00 ),
152
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x20 , "gpp1" , 0x04 ),
153
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x40 , "gpp2" , 0x08 ),
154
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x60 , "gpp3" , 0x0c ),
155
+ EXYNOS850_PIN_BANK_EINTG (4 , 0x80 , "gpp5" , 0x10 ),
156
+ EXYNOS850_PIN_BANK_EINTG (4 , 0xa0 , "gpp6" , 0x14 ),
157
+ EXYNOS850_PIN_BANK_EINTG (4 , 0xc0 , "gpp11" , 0x18 ),
158
+ EXYNOS850_PIN_BANK_EINTG (2 , 0xe0 , "gpc3" , 0x1c ),
159
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x100 , "gpc4" , 0x20 ),
160
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x120 , "gpc5" , 0x24 ),
161
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x140 , "gpc6" , 0x28 ),
162
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x160 , "gpc7" , 0x2c ),
163
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x180 , "gpc8" , 0x30 ),
164
+ EXYNOS850_PIN_BANK_EINTG (2 , 0x1a0 , "gpc9" , 0x34 ),
165
+ EXYNOS850_PIN_BANK_EINTG (5 , 0x1c0 , "gpg0" , 0x38 ),
166
+ };
167
+
168
+ /* pin banks of exynos2200 pin-controller - VTS */
169
+ static const struct samsung_pin_bank_data exynos2200_pin_banks8 [] __initconst = {
170
+ EXYNOS850_PIN_BANK_EINTG (7 , 0x0 , "gpv0" , 0x00 ),
171
+ };
172
+
173
+ static const struct samsung_pin_ctrl exynos2200_pin_ctrl [] = {
174
+ {
175
+ /* pin-controller instance 0 ALIVE data */
176
+ .pin_banks = exynos2200_pin_banks0 ,
177
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks0 ),
178
+ .eint_gpio_init = exynos_eint_gpio_init ,
179
+ .eint_wkup_init = exynos_eint_wkup_init ,
180
+ .suspend = exynos_pinctrl_suspend ,
181
+ .resume = exynos_pinctrl_resume ,
182
+ }, {
183
+ /* pin-controller instance 1 CMGP data */
184
+ .pin_banks = exynos2200_pin_banks1 ,
185
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks1 ),
186
+ .eint_gpio_init = exynos_eint_gpio_init ,
187
+ .eint_wkup_init = exynos_eint_wkup_init ,
188
+ .suspend = exynos_pinctrl_suspend ,
189
+ .resume = exynos_pinctrl_resume ,
190
+ }, {
191
+ /* pin-controller instance 2 HSI1 data */
192
+ .pin_banks = exynos2200_pin_banks2 ,
193
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks2 ),
194
+ }, {
195
+ /* pin-controller instance 3 UFS data */
196
+ .pin_banks = exynos2200_pin_banks3 ,
197
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks3 ),
198
+ .eint_gpio_init = exynos_eint_gpio_init ,
199
+ .suspend = exynos_pinctrl_suspend ,
200
+ .resume = exynos_pinctrl_resume ,
201
+ }, {
202
+ /* pin-controller instance 4 HSI1UFS data */
203
+ .pin_banks = exynos2200_pin_banks4 ,
204
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks4 ),
205
+ .eint_gpio_init = exynos_eint_gpio_init ,
206
+ .suspend = exynos_pinctrl_suspend ,
207
+ .resume = exynos_pinctrl_resume ,
208
+ }, {
209
+ /* pin-controller instance 5 PERIC0 data */
210
+ .pin_banks = exynos2200_pin_banks5 ,
211
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks5 ),
212
+ .eint_gpio_init = exynos_eint_gpio_init ,
213
+ .suspend = exynos_pinctrl_suspend ,
214
+ .resume = exynos_pinctrl_resume ,
215
+ }, {
216
+ /* pin-controller instance 6 PERIC1 data */
217
+ .pin_banks = exynos2200_pin_banks6 ,
218
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks6 ),
219
+ .eint_gpio_init = exynos_eint_gpio_init ,
220
+ .suspend = exynos_pinctrl_suspend ,
221
+ .resume = exynos_pinctrl_resume ,
222
+ }, {
223
+ /* pin-controller instance 7 PERIC2 data */
224
+ .pin_banks = exynos2200_pin_banks7 ,
225
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks7 ),
226
+ .eint_gpio_init = exynos_eint_gpio_init ,
227
+ .suspend = exynos_pinctrl_suspend ,
228
+ .resume = exynos_pinctrl_resume ,
229
+ }, {
230
+ /* pin-controller instance 8 VTS data */
231
+ .pin_banks = exynos2200_pin_banks8 ,
232
+ .nr_banks = ARRAY_SIZE (exynos2200_pin_banks8 ),
233
+ },
234
+ };
235
+
236
+ const struct samsung_pinctrl_of_match_data exynos2200_of_data __initconst = {
237
+ .ctrl = exynos2200_pin_ctrl ,
238
+ .num_ctrl = ARRAY_SIZE (exynos2200_pin_ctrl ),
239
+ };
240
+
73
241
/* pin banks of exynos5433 pin-controller - ALIVE */
74
242
static const struct samsung_pin_bank_data exynos5433_pin_banks0 [] __initconst = {
75
243
/* Must start with EINTG banks, ordered by EINT group number. */
0 commit comments