aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/board-da850-evm.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-davinci/board-da850-evm.c')
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c126
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
1257static 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
1259static struct vpif_subdev_info da850_vpif_subdev[] = { 1268static 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,