static __init void da850_vpif_init(void) { int ret; ret = da850_register_vpif(); if (ret) pr_warn("da850_evm_init: VPIF setup failed: %d\n", ret); ret = davinci_cfg_reg_list(da850_vpif_capture_pins); if (ret) pr_warn("da850_evm_init: VPIF capture mux setup failed: %d\n", ret); ret = da850_register_vpif_capture(&da850_vpif_capture_config); if (ret) pr_warn("da850_evm_init: VPIF capture setup failed: %d\n", ret); ret = davinci_cfg_reg_list(da850_vpif_display_pins); if (ret) pr_warn("da850_evm_init: VPIF display mux setup failed: %d\n", ret); ret = da850_register_vpif_display(&da850_vpif_display_config); if (ret) pr_warn("da850_evm_init: VPIF display setup failed: %d\n", ret); }
static __init void da850_evm_init(void) { int ret; char mask = 0; struct davinci_soc_info *soc_info = &davinci_soc_info; u8 rmii_en = soc_info->emac_pdata->rmii_en; ret = da850_register_edma(da850_edma_rsv); if (ret) pr_warning("da850_evm_init: edma registration failed: %d\n", ret); ret = davinci_cfg_reg_list(da850_i2c0_pins); if (ret) pr_warning("da850_evm_init: i2c0 mux setup failed: %d\n", ret); platform_device_register(&da850_gpio_i2c); ret = da8xx_register_watchdog(); if (ret) pr_warning("da830_evm_init: watchdog registration failed: %d\n", ret); /* Support for UART 1 */ ret = davinci_cfg_reg_list(da850_uart1_pins); if (ret) pr_warning("da850_evm_init: UART 1 mux setup failed:" " %d\n", ret); ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); if (ret) pr_warning("da850_evm_init: sata registration failed: %d\n", ret); if (HAS_MMC) { ret = davinci_cfg_reg_list(da850_mmcsd0_pins); if (ret) pr_warning("da850_evm_init: mmcsd0 mux setup failed:" " %d\n", ret); ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n"); if (ret) pr_warning("da850_evm_init: can not open GPIO %d\n", DA850_MMCSD_CD_PIN); gpio_direction_input(DA850_MMCSD_CD_PIN); ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n"); if (ret) pr_warning("da850_evm_init: can not open GPIO %d\n", DA850_MMCSD_WP_PIN); gpio_direction_input(DA850_MMCSD_WP_PIN); ret = da8xx_register_mmcsd0(&da850_mmc_config); if (ret) pr_warning("da850_evm_init: mmcsd0 registration failed:" " %d\n", ret); } davinci_serial_init(&da850_evm_uart_config); if (have_imager()) i2c_add_driver(&pca9543a_driver); i2c_register_board_info(1, da850_evm_i2c_devices, ARRAY_SIZE(da850_evm_i2c_devices)); /* * shut down uart 0 and 1; they are not used on the board and * accessing them causes endless "too much work in irq53" messages * with arago fs */ __raw_writel(0, IO_ADDRESS(DA8XX_UART0_BASE) + 0x30); if (HAS_MCBSP0) { if (HAS_EMAC) pr_warning("WARNING: both MCBSP0 and EMAC are " "enabled, but they share pins.\n" "\tDisable one of them.\n"); ret = davinci_cfg_reg_list(da850_mcbsp0_pins); if (ret) pr_warning("da850_evm_init: mcbsp0 mux setup failed:" " %d\n", ret); ret = da850_init_mcbsp(&da850_mcbsp0_config); if (ret) pr_warning("da850_evm_init: mcbsp0 registration" "failed: %d\n", ret); } if (HAS_MCBSP1) { ret = davinci_cfg_reg_list(da850_mcbsp1_pins); if (ret) pr_warning("da850_evm_init: mcbsp1 mux setup failed:" " %d\n", ret); ret = da850_init_mcbsp(&da850_mcbsp1_config); if (ret) pr_warning("da850_evm_init: mcbsp1 registration" " failed: %d\n", ret); } if (HAS_MCASP) { if ((HAS_MCBSP0 || HAS_MCBSP1)) pr_warning("WARNING: both McASP and McBSP are enabled, " "but they share pins.\n" "\tOnly McASP will work. If you want " "McBSP support, disable McASP.\n"); if (HAS_UART1_AFE) pr_warning("WARNING: both McASP and UART1_AFE are " "enabled, but they share pins.\n" "\tDisable one of them.\n"); ret = davinci_cfg_reg_list(da850_mcasp_pins); if (ret) pr_warning("da850_evm_init: mcasp mux setup failed:" "%d\n", ret); da8xx_register_mcasp(0, &da850_evm_snd_data); } ret = davinci_cfg_reg_list(da850_lcdcntl_pins); if (ret) pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", ret); /* Handle board specific muxing for LCD here */ ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); if (ret) pr_warning("da850_evm_init: evm specific lcd mux setup " "failed: %d\n", ret); ret = da850_lcd_hw_init(); if (ret) pr_warning("da850_evm_init: lcd initialization failed: %d\n", ret); sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); if (ret) pr_warning("da850_evm_init: lcdc registration failed: %d\n", ret); ret = da8xx_register_rtc(); if (ret) pr_warning("da850_evm_init: rtc setup failed: %d\n", ret); ret = da850_evm_init_cpufreq(); if (ret) pr_warning("da850_evm_init: cpufreq registration failed: %d\n", ret); ret = da8xx_register_cpuidle(); if (ret) pr_warning("da850_evm_init: cpuidle registration failed: %d\n", ret); ret = da850_register_pm(&da850_pm_device); if (ret) pr_warning("da850_evm_init: suspend registration failed: %d\n", ret); if (system_rev & 0x100) { ((struct flash_platform_data *)da850evm_spi_info[0] \ .platform_data)->type = "w25x64"; } else { ((struct flash_platform_data *)da850evm_spi_info[0] \ .platform_data)->type = "m25p64"; } da850evm_init_spi1(da850evm_spi_info, ARRAY_SIZE(da850evm_spi_info)); if (HAS_VPIF_DISPLAY || HAS_VPIF_CAPTURE) { ret = da850_register_vpif(); if (ret) pr_warning("da850_evm_init: VPIF registration failed: " "%d\n", ret); } if (!HAS_RMII && HAS_VPIF_CAPTURE) { ret = davinci_cfg_reg_list(da850_vpif_capture_pins); if (ret) pr_warning("da850_evm_init: vpif capture mux failed: " "%d\n", ret); ret = da850_register_vpif_capture(&da850_vpif_capture_config); if (ret) pr_warning("da850_evm_init: VPIF registration failed: " "%d\n", ret); } if (!HAS_GLCD && HAS_VPIF_DISPLAY) { ret = davinci_cfg_reg_list(da850_vpif_display_pins); if (ret) pr_warning("da850_evm_init: vpif capture mux failed: " "%d\n", ret); ret = da850_register_vpif_display(&da850_vpif_display_config); if (ret) pr_warning("da850_evm_init: VPIF registration failed: " "%d\n", ret); } if (rmii_en) { ret = davinci_cfg_reg_list(da850_ehrpwm0_pins); if (ret) pr_warning("da850_evm_init: ehrpwm0 mux setup failed:" "%d\n", ret); else mask = BIT(0) | BIT(1); } else { pr_warning("da850_evm_init: eHRPWM module 0 cannot be used" " since it is being used by MII interface\n"); mask = 0; } if (!HAS_LCD) { ret = davinci_cfg_reg_list(da850_ehrpwm1_pins); if (ret) pr_warning("da850_evm_init: eHRPWM module1 output A mux" " setup failed %d\n", ret); else mask = mask | BIT(2); } else { pr_warning("da850_evm_init: eHRPWM module1 outputA cannot be" " used since it is being used by LCD\n"); } if (!HAS_SPI) { ret = davinci_cfg_reg(DA850_EHRPWM1_B); if (ret) pr_warning("da850_evm_init: eHRPWM module1 outputB mux" " setup failed %d\n", ret); else mask = mask | BIT(3); } else { pr_warning("da850_evm_init: eHRPWM module1 outputB cannot be" " used since it is being used by spi1\n"); } da850_register_ehrpwm(mask); ret = platform_device_register(&da850evm_backlight); if (ret) pr_warning("da850_evm_init: backlight device registration" " failed: %d\n", ret); ret = davinci_cfg_reg(DA850_ECAP2_APWM2); if (ret) pr_warning("da850_evm_init:ecap mux failed: %d\n", ret); ret = da850_register_ecap(2); if (ret) pr_warning("da850_evm_init: eCAP registration failed: %d\n", ret); /* initilaize usb module */ da850_evm_usb_init(); }