diff options
Diffstat (limited to 'arch/arm/mach-shmobile/board-mackerel.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 171 |
1 files changed, 69 insertions, 102 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index fa3407da682a..85f51a849a50 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -1309,6 +1309,49 @@ static struct i2c_board_info i2c1_devices[] = { | |||
1309 | }; | 1309 | }; |
1310 | 1310 | ||
1311 | static const struct pinctrl_map mackerel_pinctrl_map[] = { | 1311 | static const struct pinctrl_map mackerel_pinctrl_map[] = { |
1312 | /* ADXL34X */ | ||
1313 | PIN_MAP_MUX_GROUP_DEFAULT("1-0053", "pfc-sh7372", | ||
1314 | "intc_irq21", "intc"), | ||
1315 | /* CEU */ | ||
1316 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_ceu.0", "pfc-sh7372", | ||
1317 | "ceu_data_0_7", "ceu"), | ||
1318 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_ceu.0", "pfc-sh7372", | ||
1319 | "ceu_clk_0", "ceu"), | ||
1320 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_ceu.0", "pfc-sh7372", | ||
1321 | "ceu_sync", "ceu"), | ||
1322 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_ceu.0", "pfc-sh7372", | ||
1323 | "ceu_field", "ceu"), | ||
1324 | /* FLCTL */ | ||
1325 | PIN_MAP_MUX_GROUP_DEFAULT("sh_flctl.0", "pfc-sh7372", | ||
1326 | "flctl_data", "flctl"), | ||
1327 | PIN_MAP_MUX_GROUP_DEFAULT("sh_flctl.0", "pfc-sh7372", | ||
1328 | "flctl_ce0", "flctl"), | ||
1329 | PIN_MAP_MUX_GROUP_DEFAULT("sh_flctl.0", "pfc-sh7372", | ||
1330 | "flctl_ctrl", "flctl"), | ||
1331 | /* FSIA (AK4643) */ | ||
1332 | PIN_MAP_MUX_GROUP_DEFAULT("asoc-simple-card.0", "pfc-sh7372", | ||
1333 | "fsia_sclk_in", "fsia"), | ||
1334 | PIN_MAP_MUX_GROUP_DEFAULT("asoc-simple-card.0", "pfc-sh7372", | ||
1335 | "fsia_data_in", "fsia"), | ||
1336 | PIN_MAP_MUX_GROUP_DEFAULT("asoc-simple-card.0", "pfc-sh7372", | ||
1337 | "fsia_data_out", "fsia"), | ||
1338 | /* FSIB (HDMI) */ | ||
1339 | PIN_MAP_MUX_GROUP_DEFAULT("asoc-simple-card.1", "pfc-sh7372", | ||
1340 | "fsib_mclk_in", "fsib"), | ||
1341 | /* HDMI */ | ||
1342 | PIN_MAP_MUX_GROUP_DEFAULT("sh-mobile-hdmi", "pfc-sh7372", | ||
1343 | "hdmi", "hdmi"), | ||
1344 | /* LCDC */ | ||
1345 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_lcdc_fb.0", "pfc-sh7372", | ||
1346 | "lcd_data24", "lcd"), | ||
1347 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_lcdc_fb.0", "pfc-sh7372", | ||
1348 | "lcd_sync", "lcd"), | ||
1349 | /* SCIFA0 */ | ||
1350 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-sh7372", | ||
1351 | "scifa0_data", "scifa0"), | ||
1352 | /* SCIFA2 (GT-720F GPS module) */ | ||
1353 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh7372", | ||
1354 | "scifa2_data", "scifa2"), | ||
1312 | /* SDHI0 */ | 1355 | /* SDHI0 */ |
1313 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh7372", | 1356 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh7372", |
1314 | "sdhi0_data4", "sdhi0"), | 1357 | "sdhi0_data4", "sdhi0"), |
@@ -1316,6 +1359,8 @@ static const struct pinctrl_map mackerel_pinctrl_map[] = { | |||
1316 | "sdhi0_ctrl", "sdhi0"), | 1359 | "sdhi0_ctrl", "sdhi0"), |
1317 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh7372", | 1360 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh7372", |
1318 | "sdhi0_wp", "sdhi0"), | 1361 | "sdhi0_wp", "sdhi0"), |
1362 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh7372", | ||
1363 | "intc_irq26_1", "intc"), | ||
1319 | /* SDHI1 */ | 1364 | /* SDHI1 */ |
1320 | #if !IS_ENABLED(CONFIG_MMC_SH_MMCIF) | 1365 | #if !IS_ENABLED(CONFIG_MMC_SH_MMCIF) |
1321 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh7372", | 1366 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh7372", |
@@ -1334,6 +1379,25 @@ static const struct pinctrl_map mackerel_pinctrl_map[] = { | |||
1334 | "sdhi2_data4", "sdhi2"), | 1379 | "sdhi2_data4", "sdhi2"), |
1335 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-sh7372", | 1380 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.2", "pfc-sh7372", |
1336 | "sdhi2_ctrl", "sdhi2"), | 1381 | "sdhi2_ctrl", "sdhi2"), |
1382 | /* SMSC911X */ | ||
1383 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-sh7372", | ||
1384 | "bsc_cs5a", "bsc"), | ||
1385 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-sh7372", | ||
1386 | "intc_irq6_0", "intc"), | ||
1387 | /* ST1232 */ | ||
1388 | PIN_MAP_MUX_GROUP_DEFAULT("0-0055", "pfc-sh7372", | ||
1389 | "intc_irq7_0", "intc"), | ||
1390 | /* TCA6416 */ | ||
1391 | PIN_MAP_MUX_GROUP_DEFAULT("0-0020", "pfc-sh7372", | ||
1392 | "intc_irq9_0", "intc"), | ||
1393 | /* USBHS0 */ | ||
1394 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.0", "pfc-sh7372", | ||
1395 | "usb0_vbus", "usb0"), | ||
1396 | /* USBHS1 */ | ||
1397 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", | ||
1398 | "usb1_vbus", "usb1"), | ||
1399 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", | ||
1400 | "usb1_otg_id_0", "usb1"), | ||
1337 | }; | 1401 | }; |
1338 | 1402 | ||
1339 | #define GPIO_PORT9CR IOMEM(0xE6051009) | 1403 | #define GPIO_PORT9CR IOMEM(0xE6051009) |
@@ -1377,61 +1441,18 @@ static void __init mackerel_init(void) | |||
1377 | ARRAY_SIZE(mackerel_pinctrl_map)); | 1441 | ARRAY_SIZE(mackerel_pinctrl_map)); |
1378 | sh7372_pinmux_init(); | 1442 | sh7372_pinmux_init(); |
1379 | 1443 | ||
1380 | /* enable SCIFA0 */ | ||
1381 | gpio_request(GPIO_FN_SCIFA0_TXD, NULL); | ||
1382 | gpio_request(GPIO_FN_SCIFA0_RXD, NULL); | ||
1383 | |||
1384 | /* enable SMSC911X */ | ||
1385 | gpio_request(GPIO_FN_CS5A, NULL); | ||
1386 | gpio_request(GPIO_FN_IRQ6_39, NULL); | ||
1387 | |||
1388 | /* LCDC */ | ||
1389 | gpio_request(GPIO_FN_LCDD23, NULL); | ||
1390 | gpio_request(GPIO_FN_LCDD22, NULL); | ||
1391 | gpio_request(GPIO_FN_LCDD21, NULL); | ||
1392 | gpio_request(GPIO_FN_LCDD20, NULL); | ||
1393 | gpio_request(GPIO_FN_LCDD19, NULL); | ||
1394 | gpio_request(GPIO_FN_LCDD18, NULL); | ||
1395 | gpio_request(GPIO_FN_LCDD17, NULL); | ||
1396 | gpio_request(GPIO_FN_LCDD16, NULL); | ||
1397 | gpio_request(GPIO_FN_LCDD15, NULL); | ||
1398 | gpio_request(GPIO_FN_LCDD14, NULL); | ||
1399 | gpio_request(GPIO_FN_LCDD13, NULL); | ||
1400 | gpio_request(GPIO_FN_LCDD12, NULL); | ||
1401 | gpio_request(GPIO_FN_LCDD11, NULL); | ||
1402 | gpio_request(GPIO_FN_LCDD10, NULL); | ||
1403 | gpio_request(GPIO_FN_LCDD9, NULL); | ||
1404 | gpio_request(GPIO_FN_LCDD8, NULL); | ||
1405 | gpio_request(GPIO_FN_LCDD7, NULL); | ||
1406 | gpio_request(GPIO_FN_LCDD6, NULL); | ||
1407 | gpio_request(GPIO_FN_LCDD5, NULL); | ||
1408 | gpio_request(GPIO_FN_LCDD4, NULL); | ||
1409 | gpio_request(GPIO_FN_LCDD3, NULL); | ||
1410 | gpio_request(GPIO_FN_LCDD2, NULL); | ||
1411 | gpio_request(GPIO_FN_LCDD1, NULL); | ||
1412 | gpio_request(GPIO_FN_LCDD0, NULL); | ||
1413 | gpio_request(GPIO_FN_LCDDISP, NULL); | ||
1414 | gpio_request(GPIO_FN_LCDDCK, NULL); | ||
1415 | |||
1416 | /* backlight, off by default */ | 1444 | /* backlight, off by default */ |
1417 | gpio_request_one(31, GPIOF_OUT_INIT_LOW, NULL); | 1445 | gpio_request_one(31, GPIOF_OUT_INIT_LOW, NULL); |
1418 | 1446 | ||
1419 | gpio_request_one(151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */ | 1447 | gpio_request_one(151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */ |
1420 | 1448 | ||
1421 | /* USBHS0 */ | 1449 | /* USBHS0 */ |
1422 | gpio_request(GPIO_FN_VBUS0_0, NULL); | ||
1423 | gpio_request_pulldown(GPIO_PORT168CR); /* VBUS0_0 pull down */ | 1450 | gpio_request_pulldown(GPIO_PORT168CR); /* VBUS0_0 pull down */ |
1424 | 1451 | ||
1425 | /* USBHS1 */ | 1452 | /* USBHS1 */ |
1426 | gpio_request(GPIO_FN_VBUS0_1, NULL); | ||
1427 | gpio_request_pulldown(GPIO_PORT167CR); /* VBUS0_1 pull down */ | 1453 | gpio_request_pulldown(GPIO_PORT167CR); /* VBUS0_1 pull down */ |
1428 | gpio_request(GPIO_FN_IDIN_1_113, NULL); | ||
1429 | 1454 | ||
1430 | /* enable FSI2 port A (ak4643) */ | 1455 | /* FSI2 port A (ak4643) */ |
1431 | gpio_request(GPIO_FN_FSIAIBT, NULL); | ||
1432 | gpio_request(GPIO_FN_FSIAILR, NULL); | ||
1433 | gpio_request(GPIO_FN_FSIAISLD, NULL); | ||
1434 | gpio_request(GPIO_FN_FSIAOSLD, NULL); | ||
1435 | gpio_request_one(161, GPIOF_OUT_INIT_LOW, NULL); /* slave */ | 1456 | gpio_request_one(161, GPIOF_OUT_INIT_LOW, NULL); /* slave */ |
1436 | 1457 | ||
1437 | gpio_request(9, NULL); | 1458 | gpio_request(9, NULL); |
@@ -1441,8 +1462,7 @@ static void __init mackerel_init(void) | |||
1441 | 1462 | ||
1442 | intc_set_priority(IRQ_FSI, 3); /* irq priority FSI(3) > SMSC911X(2) */ | 1463 | intc_set_priority(IRQ_FSI, 3); /* irq priority FSI(3) > SMSC911X(2) */ |
1443 | 1464 | ||
1444 | /* setup FSI2 port B (HDMI) */ | 1465 | /* FSI2 port B (HDMI) */ |
1445 | gpio_request(GPIO_FN_FSIBCK, NULL); | ||
1446 | __raw_writew(__raw_readw(USCCR1) & ~(1 << 6), USCCR1); /* use SPDIF */ | 1466 | __raw_writew(__raw_readw(USCCR1) & ~(1 << 6), USCCR1); /* use SPDIF */ |
1447 | 1467 | ||
1448 | /* set SPU2 clock to 119.6 MHz */ | 1468 | /* set SPU2 clock to 119.6 MHz */ |
@@ -1452,68 +1472,15 @@ static void __init mackerel_init(void) | |||
1452 | clk_put(clk); | 1472 | clk_put(clk); |
1453 | } | 1473 | } |
1454 | 1474 | ||
1455 | /* enable Keypad */ | 1475 | /* Keypad */ |
1456 | gpio_request(GPIO_FN_IRQ9_42, NULL); | ||
1457 | irq_set_irq_type(IRQ9, IRQ_TYPE_LEVEL_HIGH); | 1476 | irq_set_irq_type(IRQ9, IRQ_TYPE_LEVEL_HIGH); |
1458 | 1477 | ||
1459 | /* enable Touchscreen */ | 1478 | /* Touchscreen */ |
1460 | gpio_request(GPIO_FN_IRQ7_40, NULL); | ||
1461 | irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW); | 1479 | irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW); |
1462 | 1480 | ||
1463 | /* enable Accelerometer */ | 1481 | /* Accelerometer */ |
1464 | gpio_request(GPIO_FN_IRQ21, NULL); | ||
1465 | irq_set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH); | 1482 | irq_set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH); |
1466 | 1483 | ||
1467 | /* SDHI0 PORT172 card-detect IRQ26 */ | ||
1468 | gpio_request(GPIO_FN_IRQ26_172, NULL); | ||
1469 | |||
1470 | /* FLCTL */ | ||
1471 | gpio_request(GPIO_FN_D0_NAF0, NULL); | ||
1472 | gpio_request(GPIO_FN_D1_NAF1, NULL); | ||
1473 | gpio_request(GPIO_FN_D2_NAF2, NULL); | ||
1474 | gpio_request(GPIO_FN_D3_NAF3, NULL); | ||
1475 | gpio_request(GPIO_FN_D4_NAF4, NULL); | ||
1476 | gpio_request(GPIO_FN_D5_NAF5, NULL); | ||
1477 | gpio_request(GPIO_FN_D6_NAF6, NULL); | ||
1478 | gpio_request(GPIO_FN_D7_NAF7, NULL); | ||
1479 | gpio_request(GPIO_FN_D8_NAF8, NULL); | ||
1480 | gpio_request(GPIO_FN_D9_NAF9, NULL); | ||
1481 | gpio_request(GPIO_FN_D10_NAF10, NULL); | ||
1482 | gpio_request(GPIO_FN_D11_NAF11, NULL); | ||
1483 | gpio_request(GPIO_FN_D12_NAF12, NULL); | ||
1484 | gpio_request(GPIO_FN_D13_NAF13, NULL); | ||
1485 | gpio_request(GPIO_FN_D14_NAF14, NULL); | ||
1486 | gpio_request(GPIO_FN_D15_NAF15, NULL); | ||
1487 | gpio_request(GPIO_FN_FCE0, NULL); | ||
1488 | gpio_request(GPIO_FN_WE0_FWE, NULL); | ||
1489 | gpio_request(GPIO_FN_FRB, NULL); | ||
1490 | gpio_request(GPIO_FN_A4_FOE, NULL); | ||
1491 | gpio_request(GPIO_FN_A5_FCDE, NULL); | ||
1492 | gpio_request(GPIO_FN_RD_FSC, NULL); | ||
1493 | |||
1494 | /* enable GPS module (GT-720F) */ | ||
1495 | gpio_request(GPIO_FN_SCIFA2_TXD1, NULL); | ||
1496 | gpio_request(GPIO_FN_SCIFA2_RXD1, NULL); | ||
1497 | |||
1498 | /* CEU */ | ||
1499 | gpio_request(GPIO_FN_VIO_CLK, NULL); | ||
1500 | gpio_request(GPIO_FN_VIO_VD, NULL); | ||
1501 | gpio_request(GPIO_FN_VIO_HD, NULL); | ||
1502 | gpio_request(GPIO_FN_VIO_FIELD, NULL); | ||
1503 | gpio_request(GPIO_FN_VIO_CKO, NULL); | ||
1504 | gpio_request(GPIO_FN_VIO_D7, NULL); | ||
1505 | gpio_request(GPIO_FN_VIO_D6, NULL); | ||
1506 | gpio_request(GPIO_FN_VIO_D5, NULL); | ||
1507 | gpio_request(GPIO_FN_VIO_D4, NULL); | ||
1508 | gpio_request(GPIO_FN_VIO_D3, NULL); | ||
1509 | gpio_request(GPIO_FN_VIO_D2, NULL); | ||
1510 | gpio_request(GPIO_FN_VIO_D1, NULL); | ||
1511 | gpio_request(GPIO_FN_VIO_D0, NULL); | ||
1512 | |||
1513 | /* HDMI */ | ||
1514 | gpio_request(GPIO_FN_HDMI_HPD, NULL); | ||
1515 | gpio_request(GPIO_FN_HDMI_CEC, NULL); | ||
1516 | |||
1517 | /* Reset HDMI, must be held at least one EXTALR (32768Hz) period */ | 1484 | /* Reset HDMI, must be held at least one EXTALR (32768Hz) period */ |
1518 | srcr4 = __raw_readl(SRCR4); | 1485 | srcr4 = __raw_readl(SRCR4); |
1519 | __raw_writel(srcr4 | (1 << 13), SRCR4); | 1486 | __raw_writel(srcr4 | (1 << 13), SRCR4); |