diff options
Diffstat (limited to 'arch/arm/mach-davinci/board-da850-evm.c')
| -rw-r--r-- | arch/arm/mach-davinci/board-da850-evm.c | 126 |
1 files changed, 64 insertions, 62 deletions
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 0299915575a8..c2dfe06563df 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
| @@ -349,13 +349,13 @@ static inline void da850_evm_setup_nor_nand(void) | |||
| 349 | if (!HAS_MMC) { | 349 | if (!HAS_MMC) { |
| 350 | ret = davinci_cfg_reg_list(da850_evm_nand_pins); | 350 | ret = davinci_cfg_reg_list(da850_evm_nand_pins); |
| 351 | if (ret) | 351 | if (ret) |
| 352 | pr_warning("da850_evm_init: nand mux setup failed: " | 352 | pr_warn("%s: NAND mux setup failed: %d\n", |
| 353 | "%d\n", ret); | 353 | __func__, ret); |
| 354 | 354 | ||
| 355 | ret = davinci_cfg_reg_list(da850_evm_nor_pins); | 355 | ret = davinci_cfg_reg_list(da850_evm_nor_pins); |
| 356 | if (ret) | 356 | if (ret) |
| 357 | pr_warning("da850_evm_init: nor mux setup failed: %d\n", | 357 | pr_warn("%s: NOR mux setup failed: %d\n", |
| 358 | ret); | 358 | __func__, ret); |
| 359 | 359 | ||
| 360 | da850_evm_init_nor(); | 360 | da850_evm_init_nor(); |
| 361 | 361 | ||
| @@ -477,19 +477,19 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio, | |||
| 477 | 477 | ||
| 478 | ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]); | 478 | ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]); |
| 479 | if (ret) { | 479 | if (ret) { |
| 480 | pr_warning("Cannot open UI expander pin %d\n", sel_a); | 480 | pr_warn("Cannot open UI expander pin %d\n", sel_a); |
| 481 | goto exp_setup_sela_fail; | 481 | goto exp_setup_sela_fail; |
| 482 | } | 482 | } |
| 483 | 483 | ||
| 484 | ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]); | 484 | ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]); |
| 485 | if (ret) { | 485 | if (ret) { |
| 486 | pr_warning("Cannot open UI expander pin %d\n", sel_b); | 486 | pr_warn("Cannot open UI expander pin %d\n", sel_b); |
| 487 | goto exp_setup_selb_fail; | 487 | goto exp_setup_selb_fail; |
| 488 | } | 488 | } |
| 489 | 489 | ||
| 490 | ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]); | 490 | ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]); |
| 491 | if (ret) { | 491 | if (ret) { |
| 492 | pr_warning("Cannot open UI expander pin %d\n", sel_c); | 492 | pr_warn("Cannot open UI expander pin %d\n", sel_c); |
| 493 | goto exp_setup_selc_fail; | 493 | goto exp_setup_selc_fail; |
| 494 | } | 494 | } |
| 495 | 495 | ||
| @@ -501,7 +501,7 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio, | |||
| 501 | da850_evm_ui_keys_init(gpio); | 501 | da850_evm_ui_keys_init(gpio); |
| 502 | ret = platform_device_register(&da850_evm_ui_keys_device); | 502 | ret = platform_device_register(&da850_evm_ui_keys_device); |
| 503 | if (ret) { | 503 | if (ret) { |
| 504 | pr_warning("Could not register UI GPIO expander push-buttons"); | 504 | pr_warn("Could not register UI GPIO expander push-buttons"); |
| 505 | goto exp_setup_keys_fail; | 505 | goto exp_setup_keys_fail; |
| 506 | } | 506 | } |
| 507 | 507 | ||
| @@ -690,14 +690,14 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client, | |||
| 690 | da850_evm_bb_keys_init(gpio); | 690 | da850_evm_bb_keys_init(gpio); |
| 691 | ret = platform_device_register(&da850_evm_bb_keys_device); | 691 | ret = platform_device_register(&da850_evm_bb_keys_device); |
| 692 | if (ret) { | 692 | if (ret) { |
| 693 | pr_warning("Could not register baseboard GPIO expander keys"); | 693 | pr_warn("Could not register baseboard GPIO expander keys"); |
| 694 | goto io_exp_setup_sw_fail; | 694 | goto io_exp_setup_sw_fail; |
| 695 | } | 695 | } |
| 696 | 696 | ||
| 697 | da850_evm_bb_leds_init(gpio); | 697 | da850_evm_bb_leds_init(gpio); |
| 698 | ret = platform_device_register(&da850_evm_bb_leds_device); | 698 | ret = platform_device_register(&da850_evm_bb_leds_device); |
| 699 | if (ret) { | 699 | if (ret) { |
| 700 | pr_warning("Could not register baseboard GPIO expander LEDS"); | 700 | pr_warn("Could not register baseboard GPIO expander LEDs"); |
| 701 | goto io_exp_setup_leds_fail; | 701 | goto io_exp_setup_leds_fail; |
| 702 | } | 702 | } |
| 703 | 703 | ||
| @@ -1065,21 +1065,19 @@ static int __init da850_evm_config_emac(void) | |||
| 1065 | } | 1065 | } |
| 1066 | 1066 | ||
| 1067 | if (ret) | 1067 | if (ret) |
| 1068 | pr_warning("da850_evm_init: cpgmac/rmii mux setup failed: %d\n", | 1068 | pr_warn("%s: CPGMAC/RMII mux setup failed: %d\n", |
| 1069 | ret); | 1069 | __func__, ret); |
| 1070 | 1070 | ||
| 1071 | /* configure the CFGCHIP3 register for RMII or MII */ | 1071 | /* configure the CFGCHIP3 register for RMII or MII */ |
| 1072 | __raw_writel(val, cfg_chip3_base); | 1072 | __raw_writel(val, cfg_chip3_base); |
| 1073 | 1073 | ||
| 1074 | ret = davinci_cfg_reg(DA850_GPIO2_6); | 1074 | ret = davinci_cfg_reg(DA850_GPIO2_6); |
| 1075 | if (ret) | 1075 | if (ret) |
| 1076 | pr_warning("da850_evm_init:GPIO(2,6) mux setup " | 1076 | pr_warn("%s:GPIO(2,6) mux setup failed\n", __func__); |
| 1077 | "failed\n"); | ||
| 1078 | 1077 | ||
| 1079 | ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en"); | 1078 | ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en"); |
| 1080 | if (ret) { | 1079 | if (ret) { |
| 1081 | pr_warning("Cannot open GPIO %d\n", | 1080 | pr_warn("Cannot open GPIO %d\n", DA850_MII_MDIO_CLKEN_PIN); |
| 1082 | DA850_MII_MDIO_CLKEN_PIN); | ||
| 1083 | return ret; | 1081 | return ret; |
| 1084 | } | 1082 | } |
| 1085 | 1083 | ||
| @@ -1090,8 +1088,7 @@ static int __init da850_evm_config_emac(void) | |||
| 1090 | 1088 | ||
| 1091 | ret = da8xx_register_emac(); | 1089 | ret = da8xx_register_emac(); |
| 1092 | if (ret) | 1090 | if (ret) |
| 1093 | pr_warning("da850_evm_init: emac registration failed: %d\n", | 1091 | pr_warn("%s: EMAC registration failed: %d\n", __func__, ret); |
| 1094 | ret); | ||
| 1095 | 1092 | ||
| 1096 | return 0; | 1093 | return 0; |
| 1097 | } | 1094 | } |
| @@ -1256,11 +1253,24 @@ static struct vpif_capture_config da850_vpif_capture_config = { | |||
| 1256 | }; | 1253 | }; |
| 1257 | 1254 | ||
| 1258 | /* VPIF display configuration */ | 1255 | /* VPIF display configuration */ |
| 1256 | |||
| 1257 | static struct adv7343_platform_data adv7343_pdata = { | ||
| 1258 | .mode_config = { | ||
| 1259 | .dac_3 = 1, | ||
| 1260 | .dac_2 = 1, | ||
| 1261 | .dac_1 = 1, | ||
| 1262 | }, | ||
| 1263 | .sd_config = { | ||
| 1264 | .sd_dac_out1 = 1, | ||
| 1265 | }, | ||
| 1266 | }; | ||
| 1267 | |||
| 1259 | static struct vpif_subdev_info da850_vpif_subdev[] = { | 1268 | static struct vpif_subdev_info da850_vpif_subdev[] = { |
| 1260 | { | 1269 | { |
| 1261 | .name = "adv7343", | 1270 | .name = "adv7343", |
| 1262 | .board_info = { | 1271 | .board_info = { |
| 1263 | I2C_BOARD_INFO("adv7343", 0x2a), | 1272 | I2C_BOARD_INFO("adv7343", 0x2a), |
| 1273 | .platform_data = &adv7343_pdata, | ||
| 1264 | }, | 1274 | }, |
| 1265 | }, | 1275 | }, |
| 1266 | }; | 1276 | }; |
| @@ -1443,57 +1453,53 @@ static __init void da850_evm_init(void) | |||
| 1443 | 1453 | ||
| 1444 | ret = pmic_tps65070_init(); | 1454 | ret = pmic_tps65070_init(); |
| 1445 | if (ret) | 1455 | if (ret) |
| 1446 | pr_warning("da850_evm_init: TPS65070 PMIC init failed: %d\n", | 1456 | pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret); |
| 1447 | ret); | ||
| 1448 | 1457 | ||
| 1449 | ret = da850_register_edma(da850_edma_rsv); | 1458 | ret = da850_register_edma(da850_edma_rsv); |
| 1450 | if (ret) | 1459 | if (ret) |
| 1451 | pr_warning("da850_evm_init: edma registration failed: %d\n", | 1460 | pr_warn("%s: EDMA registration failed: %d\n", __func__, ret); |
| 1452 | ret); | ||
| 1453 | 1461 | ||
| 1454 | ret = davinci_cfg_reg_list(da850_i2c0_pins); | 1462 | ret = davinci_cfg_reg_list(da850_i2c0_pins); |
| 1455 | if (ret) | 1463 | if (ret) |
| 1456 | pr_warning("da850_evm_init: i2c0 mux setup failed: %d\n", | 1464 | pr_warn("%s: I2C0 mux setup failed: %d\n", __func__, ret); |
| 1457 | ret); | ||
| 1458 | 1465 | ||
| 1459 | ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata); | 1466 | ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata); |
| 1460 | if (ret) | 1467 | if (ret) |
| 1461 | pr_warning("da850_evm_init: i2c0 registration failed: %d\n", | 1468 | pr_warn("%s: I2C0 registration failed: %d\n", __func__, ret); |
| 1462 | ret); | ||
| 1463 | 1469 | ||
| 1464 | 1470 | ||
| 1465 | ret = da8xx_register_watchdog(); | 1471 | ret = da8xx_register_watchdog(); |
| 1466 | if (ret) | 1472 | if (ret) |
| 1467 | pr_warning("da830_evm_init: watchdog registration failed: %d\n", | 1473 | pr_warn("%s: watchdog registration failed: %d\n", |
| 1468 | ret); | 1474 | __func__, ret); |
| 1469 | 1475 | ||
| 1470 | if (HAS_MMC) { | 1476 | if (HAS_MMC) { |
| 1471 | ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins); | 1477 | ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins); |
| 1472 | if (ret) | 1478 | if (ret) |
| 1473 | pr_warning("da850_evm_init: mmcsd0 mux setup failed:" | 1479 | pr_warn("%s: MMCSD0 mux setup failed: %d\n", |
| 1474 | " %d\n", ret); | 1480 | __func__, ret); |
| 1475 | 1481 | ||
| 1476 | ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n"); | 1482 | ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n"); |
| 1477 | if (ret) | 1483 | if (ret) |
| 1478 | pr_warning("da850_evm_init: can not open GPIO %d\n", | 1484 | pr_warn("%s: can not open GPIO %d\n", |
| 1479 | DA850_MMCSD_CD_PIN); | 1485 | __func__, DA850_MMCSD_CD_PIN); |
| 1480 | gpio_direction_input(DA850_MMCSD_CD_PIN); | 1486 | gpio_direction_input(DA850_MMCSD_CD_PIN); |
| 1481 | 1487 | ||
| 1482 | ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n"); | 1488 | ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n"); |
| 1483 | if (ret) | 1489 | if (ret) |
| 1484 | pr_warning("da850_evm_init: can not open GPIO %d\n", | 1490 | pr_warn("%s: can not open GPIO %d\n", |
| 1485 | DA850_MMCSD_WP_PIN); | 1491 | __func__, DA850_MMCSD_WP_PIN); |
| 1486 | gpio_direction_input(DA850_MMCSD_WP_PIN); | 1492 | gpio_direction_input(DA850_MMCSD_WP_PIN); |
| 1487 | 1493 | ||
| 1488 | ret = da8xx_register_mmcsd0(&da850_mmc_config); | 1494 | ret = da8xx_register_mmcsd0(&da850_mmc_config); |
| 1489 | if (ret) | 1495 | if (ret) |
| 1490 | pr_warning("da850_evm_init: mmcsd0 registration failed:" | 1496 | pr_warn("%s: MMCSD0 registration failed: %d\n", |
| 1491 | " %d\n", ret); | 1497 | __func__, ret); |
| 1492 | 1498 | ||
| 1493 | ret = da850_wl12xx_init(); | 1499 | ret = da850_wl12xx_init(); |
| 1494 | if (ret) | 1500 | if (ret) |
| 1495 | pr_warning("da850_evm_init: wl12xx initialization" | 1501 | pr_warn("%s: WL12xx initialization failed: %d\n", |
| 1496 | " failed: %d\n", ret); | 1502 | __func__, ret); |
| 1497 | } | 1503 | } |
| 1498 | 1504 | ||
| 1499 | davinci_serial_init(&da850_evm_uart_config); | 1505 | davinci_serial_init(&da850_evm_uart_config); |
| @@ -1511,16 +1517,14 @@ static __init void da850_evm_init(void) | |||
| 1511 | 1517 | ||
| 1512 | ret = davinci_cfg_reg_list(da850_evm_mcasp_pins); | 1518 | ret = davinci_cfg_reg_list(da850_evm_mcasp_pins); |
| 1513 | if (ret) | 1519 | if (ret) |
| 1514 | pr_warning("da850_evm_init: mcasp mux setup failed: %d\n", | 1520 | pr_warn("%s: McASP mux setup failed: %d\n", __func__, ret); |
| 1515 | ret); | ||
| 1516 | 1521 | ||
| 1517 | da850_evm_snd_data.sram_pool = sram_get_gen_pool(); | 1522 | da850_evm_snd_data.sram_pool = sram_get_gen_pool(); |
| 1518 | da8xx_register_mcasp(0, &da850_evm_snd_data); | 1523 | da8xx_register_mcasp(0, &da850_evm_snd_data); |
| 1519 | 1524 | ||
| 1520 | ret = davinci_cfg_reg_list(da850_lcdcntl_pins); | 1525 | ret = davinci_cfg_reg_list(da850_lcdcntl_pins); |
| 1521 | if (ret) | 1526 | if (ret) |
| 1522 | pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", | 1527 | pr_warn("%s: LCDC mux setup failed: %d\n", __func__, ret); |
| 1523 | ret); | ||
| 1524 | 1528 | ||
| 1525 | ret = da8xx_register_uio_pruss(); | 1529 | ret = da8xx_register_uio_pruss(); |
| 1526 | if (ret) | 1530 | if (ret) |
| @@ -1530,51 +1534,49 @@ static __init void da850_evm_init(void) | |||
| 1530 | /* Handle board specific muxing for LCD here */ | 1534 | /* Handle board specific muxing for LCD here */ |
| 1531 | ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); | 1535 | ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); |
| 1532 | if (ret) | 1536 | if (ret) |
| 1533 | pr_warning("da850_evm_init: evm specific lcd mux setup " | 1537 | pr_warn("%s: EVM specific LCD mux setup failed: %d\n", |
| 1534 | "failed: %d\n", ret); | 1538 | __func__, ret); |
| 1535 | 1539 | ||
| 1536 | ret = da850_lcd_hw_init(); | 1540 | ret = da850_lcd_hw_init(); |
| 1537 | if (ret) | 1541 | if (ret) |
| 1538 | pr_warning("da850_evm_init: lcd initialization failed: %d\n", | 1542 | pr_warn("%s: LCD initialization failed: %d\n", __func__, ret); |
| 1539 | ret); | ||
| 1540 | 1543 | ||
| 1541 | sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, | 1544 | sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, |
| 1542 | ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); | 1545 | ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); |
| 1543 | if (ret) | 1546 | if (ret) |
| 1544 | pr_warning("da850_evm_init: lcdc registration failed: %d\n", | 1547 | pr_warn("%s: LCDC registration failed: %d\n", __func__, ret); |
| 1545 | ret); | ||
| 1546 | 1548 | ||
| 1547 | ret = da8xx_register_rtc(); | 1549 | ret = da8xx_register_rtc(); |
| 1548 | if (ret) | 1550 | if (ret) |
| 1549 | pr_warning("da850_evm_init: rtc setup failed: %d\n", ret); | 1551 | pr_warn("%s: RTC setup failed: %d\n", __func__, ret); |
| 1550 | 1552 | ||
| 1551 | ret = da850_evm_init_cpufreq(); | 1553 | ret = da850_evm_init_cpufreq(); |
| 1552 | if (ret) | 1554 | if (ret) |
| 1553 | pr_warning("da850_evm_init: cpufreq registration failed: %d\n", | 1555 | pr_warn("%s: cpufreq registration failed: %d\n", __func__, ret); |
| 1554 | ret); | ||
| 1555 | 1556 | ||
| 1556 | ret = da8xx_register_cpuidle(); | 1557 | ret = da8xx_register_cpuidle(); |
| 1557 | if (ret) | 1558 | if (ret) |
| 1558 | pr_warning("da850_evm_init: cpuidle registration failed: %d\n", | 1559 | pr_warn("%s: cpuidle registration failed: %d\n", __func__, ret); |
| 1559 | ret); | ||
| 1560 | 1560 | ||
| 1561 | ret = da850_register_pm(&da850_pm_device); | 1561 | ret = da850_register_pm(&da850_pm_device); |
| 1562 | if (ret) | 1562 | if (ret) |
| 1563 | pr_warning("da850_evm_init: suspend registration failed: %d\n", | 1563 | pr_warn("%s: suspend registration failed: %d\n", __func__, ret); |
| 1564 | ret); | ||
| 1565 | 1564 | ||
| 1566 | da850_vpif_init(); | 1565 | da850_vpif_init(); |
| 1567 | 1566 | ||
| 1568 | ret = da8xx_register_spi(1, da850evm_spi_info, | 1567 | ret = spi_register_board_info(da850evm_spi_info, |
| 1569 | ARRAY_SIZE(da850evm_spi_info)); | 1568 | ARRAY_SIZE(da850evm_spi_info)); |
| 1570 | if (ret) | 1569 | if (ret) |
| 1571 | pr_warning("da850_evm_init: spi 1 registration failed: %d\n", | 1570 | pr_warn("%s: spi info registration failed: %d\n", __func__, |
| 1572 | ret); | 1571 | ret); |
| 1572 | |||
| 1573 | ret = da8xx_register_spi_bus(1, ARRAY_SIZE(da850evm_spi_info)); | ||
| 1574 | if (ret) | ||
| 1575 | pr_warn("%s: SPI 1 registration failed: %d\n", __func__, ret); | ||
| 1573 | 1576 | ||
| 1574 | ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); | 1577 | ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); |
| 1575 | if (ret) | 1578 | if (ret) |
| 1576 | pr_warning("da850_evm_init: sata registration failed: %d\n", | 1579 | pr_warn("%s: SATA registration failed: %d\n", __func__, ret); |
| 1577 | ret); | ||
| 1578 | 1580 | ||
| 1579 | da850_evm_setup_mac_addr(); | 1581 | da850_evm_setup_mac_addr(); |
| 1580 | } | 1582 | } |
| @@ -1599,7 +1601,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") | |||
| 1599 | .atag_offset = 0x100, | 1601 | .atag_offset = 0x100, |
| 1600 | .map_io = da850_evm_map_io, | 1602 | .map_io = da850_evm_map_io, |
| 1601 | .init_irq = cp_intc_init, | 1603 | .init_irq = cp_intc_init, |
| 1602 | .timer = &davinci_timer, | 1604 | .init_time = davinci_timer_init, |
| 1603 | .init_machine = da850_evm_init, | 1605 | .init_machine = da850_evm_init, |
| 1604 | .init_late = davinci_init_late, | 1606 | .init_late = davinci_init_late, |
| 1605 | .dma_zone_size = SZ_128M, | 1607 | .dma_zone_size = SZ_128M, |
