diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 607dd2d..d7f5dff 100755 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c @@ -37,14 +37,14 @@ #include #include -#define DA850_EVM_PHY_MASK 0x1 +#define DA850_EVM_PHY_MASK (1 << 7) #define DA850_EVM_MDIO_FREQUENCY 2200000 /* PHY bus frequency */ #define DA850_LCD_PWR_PIN GPIO_TO_PIN(2, 8) #define DA850_LCD_BL_PIN GPIO_TO_PIN(2, 15) -#define DA850_MMCSD_CD_PIN GPIO_TO_PIN(4, 0) -#define DA850_MMCSD_WP_PIN GPIO_TO_PIN(4, 1) +#define DA850_MMCSD_CD_PIN GPIO_TO_PIN(3, 12) +#define DA850_MMCSD_WP_PIN GPIO_TO_PIN(3, 13) #define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6) @@ -431,8 +431,8 @@ static struct davinci_uart_config da850_evm_uart_config __initdata = { static u8 da850_iis_serializer_direction[] = { INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, - INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, TX_MODE, - RX_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, + INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, + INACTIVE_MODE, TX_MODE, RX_MODE, INACTIVE_MODE, }; static struct snd_platform_data da850_evm_snd_data = { @@ -866,11 +866,11 @@ static __init void da850_evm_init(void) { int ret; - ret = pmic_tps65070_init(); +/* ret = pmic_tps65070_init(); if (ret) pr_warning("da850_evm_init: TPS65070 PMIC init failed: %d\n", ret); - +*/ ret = da8xx_register_edma(); if (ret) pr_warning("da850_evm_init: edma registration failed: %d\n", @@ -886,12 +886,26 @@ static __init void da850_evm_init(void) pr_warning("da850_evm_init: i2c0 registration failed: %d\n", ret); + davinci_serial_init(&da850_evm_uart_config); + + i2c_register_board_info(1, da850_evm_i2c_devices, + ARRAY_SIZE(da850_evm_i2c_devices)); + + __raw_writel(0, IO_ADDRESS(0x01E13028)); + + /* + * 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_UART1_BASE) + 0x30); + __raw_writel(0, IO_ADDRESS(DA8XX_UART0_BASE) + 0x30); ret = da8xx_register_watchdog(); if (ret) pr_warning("da830_evm_init: watchdog registration failed: %d\n", ret); - + if (HAS_MMC) { ret = da8xx_pinmux_setup(da850_mmcsd0_pins); if (ret) @@ -916,19 +930,6 @@ static __init void da850_evm_init(void) " %d\n", ret); } - davinci_serial_init(&da850_evm_uart_config); - - 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_UART1_BASE) + 0x30); - __raw_writel(0, IO_ADDRESS(DA8XX_UART0_BASE) + 0x30); - if (HAS_MCBSP0) { if (HAS_EMAC) pr_warning("WARNING: both MCBSP0 and EMAC are " @@ -988,15 +989,17 @@ static __init void da850_evm_init(void) pr_warning("da850_evm_init: lcd initialization failed: %d\n", ret); - ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); + ret = da8xx_register_lcdc(&vga_monitor_pdata); if (ret) pr_warning("da850_evm_init: lcdc registration failed: %d\n", ret); +#if 0 ret = da8xx_register_rtc(); if (ret) pr_warning("da850_evm_init: rtc setup failed: %d\n", ret); + ret = da850_register_cpufreq(); if (ret) pr_warning("da850_evm_init: cpufreq registration failed: %d\n", @@ -1006,6 +1009,7 @@ static __init void da850_evm_init(void) if (ret) pr_warning("da850_evm_init: cpuidle registration failed: %d\n", ret); +#endif ret = da8xx_pinmux_setup(da850_spi1_pins); if (ret) @@ -1021,6 +1025,7 @@ static __init void da850_evm_init(void) if (ret) pr_warning("da850_evm_init: SATA registration failed: %d\n", ret); + } #ifdef CONFIG_SERIAL_8250_CONSOLE diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index 94355fa..cda39a3 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c @@ -658,7 +658,7 @@ const short da850_rmii_pins[] __initdata = { const short da850_mcasp_pins[] __initdata = { DA850_AHCLKX, DA850_ACLKX, DA850_AFSX, DA850_AHCLKR, DA850_ACLKR, DA850_AFSR, DA850_AMUTE, - DA850_AXR_11, DA850_AXR_12, + DA850_AXR_11, DA850_AXR_12, DA850_AXR_13, DA850_AXR_14, -1 }; diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index b3f1317..7218539 100755 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c @@ -396,6 +396,11 @@ struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata = { .controller_data = &lcd_cfg, .type = "Sharp_LK043T1DG01", }; +struct da8xx_lcdc_platform_data vga_monitor_pdata = { + .manu_name = "vga_monitor", + .controller_data = &lcd_cfg, + .type = "VGA_Monitor", +}; #if !defined(CONFIG_FB_DA8XX) && !defined(CONFIG_FB_DA8XX_MODULE) static struct da8xx_clcd_platform_data da8xx_evm_clcd_pdata = { diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index 362ff83..8da6983 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h @@ -110,6 +110,7 @@ extern struct platform_device da8xx_serial_device; extern struct emac_platform_data da8xx_emac_pdata; extern struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata; extern struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata; +extern struct da8xx_lcdc_platform_data vga_monitor_pdata; void da8xx_usb20_configure(struct musb_hdrc_platform_data *pdata, u8 num_inst); extern const short da830_emif25_pins[]; diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c index 67550e6..5e32391 100644 --- a/drivers/video/da8xx-fb.c +++ b/drivers/video/da8xx-fb.c @@ -193,6 +193,20 @@ static struct da8xx_panel known_lcd_panels[] = { .pxl_clk = 7833600, .invert_pxl_clk = 0, }, + /* CRT Monitor or LCD Screen */ + [2] = { + .name = "VGA_Monitor", + .width = 640, + .height = 480, + .hfp = 48, + .hbp = 48, + .hsw = 63, + .vfp = 11, + .vbp = 31, + .vsw = 1, + .pxl_clk = 25000000, + .invert_pxl_clk = 1, + }, }; /* Disable the Raster Engine of the LCD Controller */