diff options
Diffstat (limited to 'recipes/linux/linux-davinci/hawkboard/patch_hawk.diff')
-rw-r--r-- | recipes/linux/linux-davinci/hawkboard/patch_hawk.diff | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff b/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff new file mode 100644 index 0000000000..fb323236ac --- /dev/null +++ b/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff @@ -0,0 +1,196 @@ +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 <mach/nand.h> + #include <mach/mux.h> + +-#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 */ |