aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-davinci/hawkboard/patch_hawk.diff')
-rw-r--r--recipes/linux/linux-davinci/hawkboard/patch_hawk.diff196
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 */