| 
					
				 | 
			
			
				@@ -134,3 +134,119 @@ static struct omap_smsc911x_platform_data smsc911x2_cfg = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.flags		= SMSC911X_USE_32BIT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void __init overo_init_smsc911x(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpmc_smsc911x_init(&smsc911x_cfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpmc_smsc911x_init(&smsc911x2_cfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static inline void __init overo_init_smsc911x(void) { return; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* DSS */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int lcd_enabled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int dvi_enabled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define OVERO_GPIO_LCD_EN 144 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define OVERO_GPIO_LCD_BL 145 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct gpio overo_dss_gpios[] __initdata = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ OVERO_GPIO_LCD_EN, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_LCD_EN" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ OVERO_GPIO_LCD_BL, GPIOF_OUT_INIT_HIGH, "OVERO_GPIO_LCD_BL" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void __init overo_display_init(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (gpio_request_array(overo_dss_gpios, ARRAY_SIZE(overo_dss_gpios))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printk(KERN_ERR "could not obtain DSS control GPIOs\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpio_export(OVERO_GPIO_LCD_EN, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpio_export(OVERO_GPIO_LCD_BL, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct tfp410_platform_data dvi_panel = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.i2c_bus_num		= 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.power_down_gpio	= -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_dss_device overo_dvi_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name			= "dvi", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.type			= OMAP_DISPLAY_TYPE_DPI, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.driver_name		= "tfp410", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.data			= &dvi_panel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.phy.dpi.data_lines	= 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_dss_device overo_tv_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name = "tv", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.driver_name = "venc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.type = OMAP_DISPLAY_TYPE_VENC, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static int overo_panel_enable_lcd(struct omap_dss_device *dssdev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (dvi_enabled) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printk(KERN_ERR "cannot enable LCD, DVI is enabled\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return -EINVAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpio_set_value(OVERO_GPIO_LCD_EN, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpio_set_value(OVERO_GPIO_LCD_BL, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lcd_enabled = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void overo_panel_disable_lcd(struct omap_dss_device *dssdev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpio_set_value(OVERO_GPIO_LCD_EN, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gpio_set_value(OVERO_GPIO_LCD_BL, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lcd_enabled = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct panel_generic_dpi_data lcd43_panel = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name			= "samsung_lte430wq_f0c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.platform_enable	= overo_panel_enable_lcd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.platform_disable	= overo_panel_disable_lcd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_dss_device overo_lcd43_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name			= "lcd43", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.type			= OMAP_DISPLAY_TYPE_DPI, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.driver_name		= "generic_dpi_panel", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.data			= &lcd43_panel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.phy.dpi.data_lines	= 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_dss_device overo_lcd35_device = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.type			= OMAP_DISPLAY_TYPE_DPI, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name			= "lcd35", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.driver_name		= "lgphilips_lb035q02_panel", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.phy.dpi.data_lines	= 24, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.platform_enable	= overo_panel_enable_lcd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.platform_disable	= overo_panel_disable_lcd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_dss_device *overo_dss_devices[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	&overo_dvi_device, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	&overo_tv_device, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	&overo_lcd35_device, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	&overo_lcd43_device, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_dss_board_info overo_dss_data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_devices	= ARRAY_SIZE(overo_dss_devices), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.devices	= overo_dss_devices, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.default_device	= &overo_dvi_device, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct mtd_partition overo_nand_partitions[] = { 
			 |