diff options
author | Chanwoo Choi <cw00.choi@samsung.com> | 2015-01-21 01:43:11 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-03-05 04:52:54 -0500 |
commit | 3c5ecc9ed3537846fd95e8f288d6d6968075879f (patch) | |
tree | 9aefb583a8be8cbae121682613a9db6ae11aba6e | |
parent | ee086577abe7f7ccf5f64a33479a36e22710b7d0 (diff) |
pinctrl: exynos: Add support for Exynos5433
This patch adds driver data for Exynos5433 SoC. Exynos5433 includes 228 multi-
functional input/output port pins and 135 memory port pins. There are 41 general
port groups and 2 memory port groups.
Cc: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Tomasz Figa <tomasz.figa@gmail.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-exynos.c | 153 | ||||
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-samsung.c | 2 | ||||
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-samsung.h | 1 |
3 files changed, 156 insertions, 0 deletions
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index c8f83f96546c..d273fda5cc89 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c | |||
@@ -1240,6 +1240,159 @@ const struct samsung_pin_ctrl exynos5420_pin_ctrl[] __initconst = { | |||
1240 | }, | 1240 | }, |
1241 | }; | 1241 | }; |
1242 | 1242 | ||
1243 | /* pin banks of exynos5433 pin-controller - ALIVE */ | ||
1244 | static const struct samsung_pin_bank_data exynos5433_pin_banks0[] = { | ||
1245 | EXYNOS_PIN_BANK_EINTW(8, 0x000, "gpa0", 0x00), | ||
1246 | EXYNOS_PIN_BANK_EINTW(8, 0x020, "gpa1", 0x04), | ||
1247 | EXYNOS_PIN_BANK_EINTW(8, 0x040, "gpa2", 0x08), | ||
1248 | EXYNOS_PIN_BANK_EINTW(8, 0x060, "gpa3", 0x0c), | ||
1249 | }; | ||
1250 | |||
1251 | /* pin banks of exynos5433 pin-controller - AUD */ | ||
1252 | static const struct samsung_pin_bank_data exynos5433_pin_banks1[] = { | ||
1253 | EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz0", 0x00), | ||
1254 | EXYNOS_PIN_BANK_EINTG(4, 0x020, "gpz1", 0x04), | ||
1255 | }; | ||
1256 | |||
1257 | /* pin banks of exynos5433 pin-controller - CPIF */ | ||
1258 | static const struct samsung_pin_bank_data exynos5433_pin_banks2[] = { | ||
1259 | EXYNOS_PIN_BANK_EINTG(2, 0x000, "gpv6", 0x00), | ||
1260 | }; | ||
1261 | |||
1262 | /* pin banks of exynos5433 pin-controller - eSE */ | ||
1263 | static const struct samsung_pin_bank_data exynos5433_pin_banks3[] = { | ||
1264 | EXYNOS_PIN_BANK_EINTG(3, 0x000, "gpj2", 0x00), | ||
1265 | }; | ||
1266 | |||
1267 | /* pin banks of exynos5433 pin-controller - FINGER */ | ||
1268 | static const struct samsung_pin_bank_data exynos5433_pin_banks4[] = { | ||
1269 | EXYNOS_PIN_BANK_EINTG(4, 0x000, "gpd5", 0x00), | ||
1270 | }; | ||
1271 | |||
1272 | /* pin banks of exynos5433 pin-controller - FSYS */ | ||
1273 | static const struct samsung_pin_bank_data exynos5433_pin_banks5[] = { | ||
1274 | EXYNOS_PIN_BANK_EINTG(6, 0x000, "gph1", 0x00), | ||
1275 | EXYNOS_PIN_BANK_EINTG(7, 0x020, "gpr4", 0x04), | ||
1276 | EXYNOS_PIN_BANK_EINTG(5, 0x040, "gpr0", 0x08), | ||
1277 | EXYNOS_PIN_BANK_EINTG(8, 0x060, "gpr1", 0x0c), | ||
1278 | EXYNOS_PIN_BANK_EINTG(2, 0x080, "gpr2", 0x10), | ||
1279 | EXYNOS_PIN_BANK_EINTG(8, 0x0a0, "gpr3", 0x14), | ||
1280 | }; | ||
1281 | |||
1282 | /* pin banks of exynos5433 pin-controller - IMEM */ | ||
1283 | static const struct samsung_pin_bank_data exynos5433_pin_banks6[] = { | ||
1284 | EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpf0", 0x00), | ||
1285 | }; | ||
1286 | |||
1287 | /* pin banks of exynos5433 pin-controller - NFC */ | ||
1288 | static const struct samsung_pin_bank_data exynos5433_pin_banks7[] = { | ||
1289 | EXYNOS_PIN_BANK_EINTG(3, 0x000, "gpj0", 0x00), | ||
1290 | }; | ||
1291 | |||
1292 | /* pin banks of exynos5433 pin-controller - PERIC */ | ||
1293 | static const struct samsung_pin_bank_data exynos5433_pin_banks8[] = { | ||
1294 | EXYNOS_PIN_BANK_EINTG(6, 0x000, "gpv7", 0x00), | ||
1295 | EXYNOS_PIN_BANK_EINTG(5, 0x020, "gpb0", 0x04), | ||
1296 | EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpc0", 0x08), | ||
1297 | EXYNOS_PIN_BANK_EINTG(2, 0x060, "gpc1", 0x0c), | ||
1298 | EXYNOS_PIN_BANK_EINTG(6, 0x080, "gpc2", 0x10), | ||
1299 | EXYNOS_PIN_BANK_EINTG(8, 0x0a0, "gpc3", 0x14), | ||
1300 | EXYNOS_PIN_BANK_EINTG(2, 0x0c0, "gpg0", 0x18), | ||
1301 | EXYNOS_PIN_BANK_EINTG(4, 0x0e0, "gpd0", 0x1c), | ||
1302 | EXYNOS_PIN_BANK_EINTG(6, 0x100, "gpd1", 0x20), | ||
1303 | EXYNOS_PIN_BANK_EINTG(8, 0x120, "gpd2", 0x24), | ||
1304 | EXYNOS_PIN_BANK_EINTG(5, 0x140, "gpd4", 0x28), | ||
1305 | EXYNOS_PIN_BANK_EINTG(2, 0x160, "gpd8", 0x2c), | ||
1306 | EXYNOS_PIN_BANK_EINTG(7, 0x180, "gpd6", 0x30), | ||
1307 | EXYNOS_PIN_BANK_EINTG(3, 0x1a0, "gpd7", 0x34), | ||
1308 | EXYNOS_PIN_BANK_EINTG(5, 0x1c0, "gpg1", 0x38), | ||
1309 | EXYNOS_PIN_BANK_EINTG(2, 0x1e0, "gpg2", 0x3c), | ||
1310 | EXYNOS_PIN_BANK_EINTG(8, 0x200, "gpg3", 0x40), | ||
1311 | }; | ||
1312 | |||
1313 | /* pin banks of exynos5433 pin-controller - TOUCH */ | ||
1314 | static const struct samsung_pin_bank_data exynos5433_pin_banks9[] = { | ||
1315 | EXYNOS_PIN_BANK_EINTG(3, 0x000, "gpj1", 0x00), | ||
1316 | }; | ||
1317 | |||
1318 | /* | ||
1319 | * Samsung pinctrl driver data for Exynos5433 SoC. Exynos5433 SoC includes | ||
1320 | * ten gpio/pin-mux/pinconfig controllers. | ||
1321 | */ | ||
1322 | const struct samsung_pin_ctrl exynos5433_pin_ctrl[] = { | ||
1323 | { | ||
1324 | /* pin-controller instance 0 data */ | ||
1325 | .pin_banks = exynos5433_pin_banks0, | ||
1326 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks0), | ||
1327 | .eint_wkup_init = exynos_eint_wkup_init, | ||
1328 | .suspend = exynos_pinctrl_suspend, | ||
1329 | .resume = exynos_pinctrl_resume, | ||
1330 | }, { | ||
1331 | /* pin-controller instance 1 data */ | ||
1332 | .pin_banks = exynos5433_pin_banks1, | ||
1333 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks1), | ||
1334 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1335 | .suspend = exynos_pinctrl_suspend, | ||
1336 | .resume = exynos_pinctrl_resume, | ||
1337 | }, { | ||
1338 | /* pin-controller instance 2 data */ | ||
1339 | .pin_banks = exynos5433_pin_banks2, | ||
1340 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks2), | ||
1341 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1342 | .suspend = exynos_pinctrl_suspend, | ||
1343 | .resume = exynos_pinctrl_resume, | ||
1344 | }, { | ||
1345 | /* pin-controller instance 3 data */ | ||
1346 | .pin_banks = exynos5433_pin_banks3, | ||
1347 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks3), | ||
1348 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1349 | .suspend = exynos_pinctrl_suspend, | ||
1350 | .resume = exynos_pinctrl_resume, | ||
1351 | }, { | ||
1352 | /* pin-controller instance 4 data */ | ||
1353 | .pin_banks = exynos5433_pin_banks4, | ||
1354 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks4), | ||
1355 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1356 | .suspend = exynos_pinctrl_suspend, | ||
1357 | .resume = exynos_pinctrl_resume, | ||
1358 | }, { | ||
1359 | /* pin-controller instance 5 data */ | ||
1360 | .pin_banks = exynos5433_pin_banks5, | ||
1361 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks5), | ||
1362 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1363 | .suspend = exynos_pinctrl_suspend, | ||
1364 | .resume = exynos_pinctrl_resume, | ||
1365 | }, { | ||
1366 | /* pin-controller instance 6 data */ | ||
1367 | .pin_banks = exynos5433_pin_banks6, | ||
1368 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks6), | ||
1369 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1370 | .suspend = exynos_pinctrl_suspend, | ||
1371 | .resume = exynos_pinctrl_resume, | ||
1372 | }, { | ||
1373 | /* pin-controller instance 7 data */ | ||
1374 | .pin_banks = exynos5433_pin_banks7, | ||
1375 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks7), | ||
1376 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1377 | .suspend = exynos_pinctrl_suspend, | ||
1378 | .resume = exynos_pinctrl_resume, | ||
1379 | }, { | ||
1380 | /* pin-controller instance 8 data */ | ||
1381 | .pin_banks = exynos5433_pin_banks8, | ||
1382 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks8), | ||
1383 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1384 | .suspend = exynos_pinctrl_suspend, | ||
1385 | .resume = exynos_pinctrl_resume, | ||
1386 | }, { | ||
1387 | /* pin-controller instance 9 data */ | ||
1388 | .pin_banks = exynos5433_pin_banks9, | ||
1389 | .nr_banks = ARRAY_SIZE(exynos5433_pin_banks9), | ||
1390 | .eint_gpio_init = exynos_eint_gpio_init, | ||
1391 | .suspend = exynos_pinctrl_suspend, | ||
1392 | .resume = exynos_pinctrl_resume, | ||
1393 | }, | ||
1394 | }; | ||
1395 | |||
1243 | /* pin banks of exynos7 pin-controller - ALIVE */ | 1396 | /* pin banks of exynos7 pin-controller - ALIVE */ |
1244 | static const struct samsung_pin_bank_data exynos7_pin_banks0[] __initconst = { | 1397 | static const struct samsung_pin_bank_data exynos7_pin_banks0[] __initconst = { |
1245 | EXYNOS_PIN_BANK_EINTW(8, 0x000, "gpa0", 0x00), | 1398 | EXYNOS_PIN_BANK_EINTW(8, 0x000, "gpa0", 0x00), |
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c index ec580af35856..ed165ba2eb2f 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c | |||
@@ -1239,6 +1239,8 @@ static const struct of_device_id samsung_pinctrl_dt_match[] = { | |||
1239 | .data = (void *)exynos5260_pin_ctrl }, | 1239 | .data = (void *)exynos5260_pin_ctrl }, |
1240 | { .compatible = "samsung,exynos5420-pinctrl", | 1240 | { .compatible = "samsung,exynos5420-pinctrl", |
1241 | .data = (void *)exynos5420_pin_ctrl }, | 1241 | .data = (void *)exynos5420_pin_ctrl }, |
1242 | { .compatible = "samsung,exynos5433-pinctrl", | ||
1243 | .data = (void *)exynos5433_pin_ctrl }, | ||
1242 | { .compatible = "samsung,s5pv210-pinctrl", | 1244 | { .compatible = "samsung,s5pv210-pinctrl", |
1243 | .data = (void *)s5pv210_pin_ctrl }, | 1245 | .data = (void *)s5pv210_pin_ctrl }, |
1244 | { .compatible = "samsung,exynos7-pinctrl", | 1246 | { .compatible = "samsung,exynos7-pinctrl", |
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.h b/drivers/pinctrl/samsung/pinctrl-samsung.h index 1b8c0139d604..c1239ff6157d 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.h +++ b/drivers/pinctrl/samsung/pinctrl-samsung.h | |||
@@ -271,6 +271,7 @@ extern const struct samsung_pin_ctrl exynos4415_pin_ctrl[]; | |||
271 | extern const struct samsung_pin_ctrl exynos5250_pin_ctrl[]; | 271 | extern const struct samsung_pin_ctrl exynos5250_pin_ctrl[]; |
272 | extern const struct samsung_pin_ctrl exynos5260_pin_ctrl[]; | 272 | extern const struct samsung_pin_ctrl exynos5260_pin_ctrl[]; |
273 | extern const struct samsung_pin_ctrl exynos5420_pin_ctrl[]; | 273 | extern const struct samsung_pin_ctrl exynos5420_pin_ctrl[]; |
274 | extern const struct samsung_pin_ctrl exynos5433_pin_ctrl[]; | ||
274 | extern const struct samsung_pin_ctrl exynos7_pin_ctrl[]; | 275 | extern const struct samsung_pin_ctrl exynos7_pin_ctrl[]; |
275 | extern const struct samsung_pin_ctrl s3c64xx_pin_ctrl[]; | 276 | extern const struct samsung_pin_ctrl s3c64xx_pin_ctrl[]; |
276 | extern const struct samsung_pin_ctrl s3c2412_pin_ctrl[]; | 277 | extern const struct samsung_pin_ctrl s3c2412_pin_ctrl[]; |