Loading arch/arm/mach-omap2/board-am3517evm.c +145 −0 Original line number Diff line number Diff line Loading @@ -29,9 +29,151 @@ #include <plat/board.h> #include <plat/common.h> #include <plat/usb.h> #include <plat/display.h> #include "mux.h" #define LCD_PANEL_PWR 176 #define LCD_PANEL_BKLIGHT_PWR 182 #define LCD_PANEL_PWM 181 static int lcd_enabled; static int dvi_enabled; static void __init am3517_evm_display_init(void) { int r; omap_mux_init_gpio(LCD_PANEL_PWR, OMAP_PIN_INPUT_PULLUP); omap_mux_init_gpio(LCD_PANEL_BKLIGHT_PWR, OMAP_PIN_INPUT_PULLDOWN); omap_mux_init_gpio(LCD_PANEL_PWM, OMAP_PIN_INPUT_PULLDOWN); /* * Enable GPIO 182 = LCD Backlight Power */ r = gpio_request(LCD_PANEL_BKLIGHT_PWR, "lcd_backlight_pwr"); if (r) { printk(KERN_ERR "failed to get lcd_backlight_pwr\n"); return; } gpio_direction_output(LCD_PANEL_BKLIGHT_PWR, 1); /* * Enable GPIO 181 = LCD Panel PWM */ r = gpio_request(LCD_PANEL_PWM, "lcd_pwm"); if (r) { printk(KERN_ERR "failed to get lcd_pwm\n"); goto err_1; } gpio_direction_output(LCD_PANEL_PWM, 1); /* * Enable GPIO 176 = LCD Panel Power enable pin */ r = gpio_request(LCD_PANEL_PWR, "lcd_panel_pwr"); if (r) { printk(KERN_ERR "failed to get lcd_panel_pwr\n"); goto err_2; } gpio_direction_output(LCD_PANEL_PWR, 1); printk(KERN_INFO "Display initialized successfully\n"); return; err_2: gpio_free(LCD_PANEL_PWM); err_1: gpio_free(LCD_PANEL_BKLIGHT_PWR); } static int am3517_evm_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(LCD_PANEL_PWR, 1); lcd_enabled = 1; return 0; } static void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev) { gpio_set_value(LCD_PANEL_PWR, 0); lcd_enabled = 0; } static struct omap_dss_device am3517_evm_lcd_device = { .type = OMAP_DISPLAY_TYPE_DPI, .name = "lcd", .driver_name = "sharp_lq_panel", .phy.dpi.data_lines = 16, .platform_enable = am3517_evm_panel_enable_lcd, .platform_disable = am3517_evm_panel_disable_lcd, }; static int am3517_evm_panel_enable_tv(struct omap_dss_device *dssdev) { return 0; } static void am3517_evm_panel_disable_tv(struct omap_dss_device *dssdev) { } static struct omap_dss_device am3517_evm_tv_device = { .type = OMAP_DISPLAY_TYPE_VENC, .name = "tv", .driver_name = "venc", .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, .platform_enable = am3517_evm_panel_enable_tv, .platform_disable = am3517_evm_panel_disable_tv, }; static int am3517_evm_panel_enable_dvi(struct omap_dss_device *dssdev) { if (lcd_enabled) { printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); return -EINVAL; } dvi_enabled = 1; return 0; } static void am3517_evm_panel_disable_dvi(struct omap_dss_device *dssdev) { dvi_enabled = 0; } static struct omap_dss_device am3517_evm_dvi_device = { .type = OMAP_DISPLAY_TYPE_DPI, .name = "dvi", .driver_name = "generic_panel", .phy.dpi.data_lines = 24, .platform_enable = am3517_evm_panel_enable_dvi, .platform_disable = am3517_evm_panel_disable_dvi, }; static struct omap_dss_device *am3517_evm_dss_devices[] = { &am3517_evm_lcd_device, &am3517_evm_tv_device, &am3517_evm_dvi_device, }; static struct omap_dss_board_info am3517_evm_dss_data = { .num_devices = ARRAY_SIZE(am3517_evm_dss_devices), .devices = am3517_evm_dss_devices, .default_device = &am3517_evm_lcd_device, }; struct platform_device am3517_evm_dss_device = { .name = "omapdss", .id = -1, .dev = { .platform_data = &am3517_evm_dss_data, }, }; /* * Board initialization */ Loading @@ -39,6 +181,7 @@ static struct omap_board_config_kernel am3517_evm_config[] __initdata = { }; static struct platform_device *am3517_evm_devices[] __initdata = { &am3517_evm_dss_device, }; static void __init am3517_evm_init_irq(void) Loading Loading @@ -78,6 +221,8 @@ static void __init am3517_evm_init(void) omap_serial_init(); usb_ehci_init(&ehci_pdata); /* DSS */ am3517_evm_display_init(); } static void __init am3517_evm_map_io(void) Loading arch/arm/mach-omap2/board-cm-t35.c +238 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ #include <linux/i2c/twl.h> #include <linux/regulator/machine.h> #include <linux/spi/spi.h> #include <linux/spi/tdo24m.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> Loading @@ -41,6 +44,7 @@ #include <plat/nand.h> #include <plat/gpmc.h> #include <plat/usb.h> #include <plat/display.h> #include <mach/hardware.h> Loading Loading @@ -248,7 +252,6 @@ static inline void cm_t35_init_nand(void) {} #if defined(CONFIG_TOUCHSCREEN_ADS7846) || \ defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) #include <linux/spi/spi.h> #include <linux/spi/ads7846.h> #include <plat/mcspi.h> Loading Loading @@ -304,6 +307,193 @@ static void __init cm_t35_init_ads7846(void) static inline void cm_t35_init_ads7846(void) {} #endif #define CM_T35_LCD_EN_GPIO 157 #define CM_T35_LCD_BL_GPIO 58 #define CM_T35_DVI_EN_GPIO 54 static int lcd_bl_gpio; static int lcd_en_gpio; static int dvi_en_gpio; static int lcd_enabled; static int dvi_enabled; static int cm_t35_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(lcd_en_gpio, 1); gpio_set_value(lcd_bl_gpio, 1); lcd_enabled = 1; return 0; } static void cm_t35_panel_disable_lcd(struct omap_dss_device *dssdev) { lcd_enabled = 0; gpio_set_value(lcd_bl_gpio, 0); gpio_set_value(lcd_en_gpio, 0); } static int cm_t35_panel_enable_dvi(struct omap_dss_device *dssdev) { if (lcd_enabled) { printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); return -EINVAL; } gpio_set_value(dvi_en_gpio, 0); dvi_enabled = 1; return 0; } static void cm_t35_panel_disable_dvi(struct omap_dss_device *dssdev) { gpio_set_value(dvi_en_gpio, 1); dvi_enabled = 0; } static int cm_t35_panel_enable_tv(struct omap_dss_device *dssdev) { return 0; } static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev) { } static struct omap_dss_device cm_t35_lcd_device = { .name = "lcd", .driver_name = "toppoly_tdo35s_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 18, .platform_enable = cm_t35_panel_enable_lcd, .platform_disable = cm_t35_panel_disable_lcd, }; static struct omap_dss_device cm_t35_dvi_device = { .name = "dvi", .driver_name = "generic_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 24, .platform_enable = cm_t35_panel_enable_dvi, .platform_disable = cm_t35_panel_disable_dvi, }; static struct omap_dss_device cm_t35_tv_device = { .name = "tv", .driver_name = "venc", .type = OMAP_DISPLAY_TYPE_VENC, .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, .platform_enable = cm_t35_panel_enable_tv, .platform_disable = cm_t35_panel_disable_tv, }; static struct omap_dss_device *cm_t35_dss_devices[] = { &cm_t35_lcd_device, &cm_t35_dvi_device, &cm_t35_tv_device, }; static struct omap_dss_board_info cm_t35_dss_data = { .num_devices = ARRAY_SIZE(cm_t35_dss_devices), .devices = cm_t35_dss_devices, .default_device = &cm_t35_dvi_device, }; static struct platform_device cm_t35_dss_device = { .name = "omapdss", .id = -1, .dev = { .platform_data = &cm_t35_dss_data, }, }; static struct omap2_mcspi_device_config tdo24m_mcspi_config = { .turbo_mode = 0, .single_channel = 1, /* 0: slave, 1: master */ }; static struct tdo24m_platform_data tdo24m_config = { .model = TDO35S, }; static struct spi_board_info cm_t35_lcd_spi_board_info[] __initdata = { { .modalias = "tdo24m", .bus_num = 4, .chip_select = 0, .max_speed_hz = 1000000, .controller_data = &tdo24m_mcspi_config, .platform_data = &tdo24m_config, }, }; static void __init cm_t35_init_display(void) { int err; lcd_en_gpio = CM_T35_LCD_EN_GPIO; lcd_bl_gpio = CM_T35_LCD_BL_GPIO; dvi_en_gpio = CM_T35_DVI_EN_GPIO; spi_register_board_info(cm_t35_lcd_spi_board_info, ARRAY_SIZE(cm_t35_lcd_spi_board_info)); err = gpio_request(lcd_en_gpio, "LCD RST"); if (err) { pr_err("CM-T35: failed to get LCD reset GPIO\n"); goto out; } err = gpio_request(lcd_bl_gpio, "LCD BL"); if (err) { pr_err("CM-T35: failed to get LCD backlight control GPIO\n"); goto err_lcd_bl; } err = gpio_request(dvi_en_gpio, "DVI EN"); if (err) { pr_err("CM-T35: failed to get DVI reset GPIO\n"); goto err_dvi_en; } gpio_export(lcd_en_gpio, 0); gpio_export(lcd_bl_gpio, 0); gpio_export(dvi_en_gpio, 0); gpio_direction_output(lcd_en_gpio, 0); gpio_direction_output(lcd_bl_gpio, 0); gpio_direction_output(dvi_en_gpio, 1); msleep(50); gpio_set_value(lcd_en_gpio, 1); err = platform_device_register(&cm_t35_dss_device); if (err) { pr_err("CM-T35: failed to register DSS device\n"); goto err_dev_reg; } return; err_dev_reg: gpio_free(dvi_en_gpio); err_dvi_en: gpio_free(lcd_bl_gpio); err_lcd_bl: gpio_free(lcd_en_gpio); out: return; } static struct regulator_consumer_supply cm_t35_vmmc1_supply = { .supply = "vmmc", }; Loading @@ -312,6 +502,16 @@ static struct regulator_consumer_supply cm_t35_vsim_supply = { .supply = "vmmc_aux", }; static struct regulator_consumer_supply cm_t35_vdac_supply = { .supply = "vdda_dac", .dev = &cm_t35_dss_device.dev, }; static struct regulator_consumer_supply cm_t35_vdvi_supply = { .supply = "vdvi", .dev = &cm_t35_dss_device.dev, }; /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ static struct regulator_init_data cm_t35_vmmc1 = { .constraints = { Loading Loading @@ -342,6 +542,35 @@ static struct regulator_init_data cm_t35_vsim = { .consumer_supplies = &cm_t35_vsim_supply, }; /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ static struct regulator_init_data cm_t35_vdac = { .constraints = { .min_uV = 1800000, .max_uV = 1800000, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &cm_t35_vdac_supply, }; /* VPLL2 for digital video outputs */ static struct regulator_init_data cm_t35_vpll2 = { .constraints = { .name = "VDVI", .min_uV = 1800000, .max_uV = 1800000, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &cm_t35_vdvi_supply, }; static struct twl4030_usb_data cm_t35_usb_data = { .usb_mode = T2_USB_MODE_ULPI, }; Loading Loading @@ -445,6 +674,8 @@ static struct twl4030_platform_data cm_t35_twldata = { .gpio = &cm_t35_gpio_data, .vmmc1 = &cm_t35_vmmc1, .vsim = &cm_t35_vsim, .vdac = &cm_t35_vdac, .vpll2 = &cm_t35_vpll2, }; static struct i2c_board_info __initdata cm_t35_i2c_boardinfo[] = { Loading Loading @@ -568,6 +799,11 @@ static struct omap_board_mux board_mux[] __initdata = { OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), /* display controls */ OMAP3_MUX(MCBSP1_FSR, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), OMAP3_MUX(GPMC_NCS7, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), OMAP3_MUX(GPMC_NCS3, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), /* TPS IRQ */ OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_WAKEUP_EN | \ OMAP_PIN_INPUT_PULLUP), Loading @@ -584,6 +820,7 @@ static void __init cm_t35_init(void) cm_t35_init_ads7846(); cm_t35_init_ethernet(); cm_t35_init_led(); cm_t35_init_display(); usb_musb_init(); } Loading arch/arm/mach-omap2/board-omap3evm.c +235 −11 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #include <plat/usb.h> #include <plat/common.h> #include <plat/mcspi.h> #include <plat/display.h> #include "mux.h" #include "sdram-micron-mt46h32m32lf-6.h" Loading Loading @@ -147,6 +148,187 @@ static inline void __init omap3evm_init_smsc911x(void) static inline void __init omap3evm_init_smsc911x(void) { return; } #endif /* * OMAP3EVM LCD Panel control signals */ #define OMAP3EVM_LCD_PANEL_LR 2 #define OMAP3EVM_LCD_PANEL_UD 3 #define OMAP3EVM_LCD_PANEL_INI 152 #define OMAP3EVM_LCD_PANEL_ENVDD 153 #define OMAP3EVM_LCD_PANEL_QVGA 154 #define OMAP3EVM_LCD_PANEL_RESB 155 #define OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO 210 #define OMAP3EVM_DVI_PANEL_EN_GPIO 199 static int lcd_enabled; static int dvi_enabled; static void __init omap3_evm_display_init(void) { int r; r = gpio_request(OMAP3EVM_LCD_PANEL_RESB, "lcd_panel_resb"); if (r) { printk(KERN_ERR "failed to get lcd_panel_resb\n"); return; } gpio_direction_output(OMAP3EVM_LCD_PANEL_RESB, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_INI, "lcd_panel_ini"); if (r) { printk(KERN_ERR "failed to get lcd_panel_ini\n"); goto err_1; } gpio_direction_output(OMAP3EVM_LCD_PANEL_INI, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_QVGA, "lcd_panel_qvga"); if (r) { printk(KERN_ERR "failed to get lcd_panel_qvga\n"); goto err_2; } gpio_direction_output(OMAP3EVM_LCD_PANEL_QVGA, 0); r = gpio_request(OMAP3EVM_LCD_PANEL_LR, "lcd_panel_lr"); if (r) { printk(KERN_ERR "failed to get lcd_panel_lr\n"); goto err_3; } gpio_direction_output(OMAP3EVM_LCD_PANEL_LR, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_UD, "lcd_panel_ud"); if (r) { printk(KERN_ERR "failed to get lcd_panel_ud\n"); goto err_4; } gpio_direction_output(OMAP3EVM_LCD_PANEL_UD, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_ENVDD, "lcd_panel_envdd"); if (r) { printk(KERN_ERR "failed to get lcd_panel_envdd\n"); goto err_5; } gpio_direction_output(OMAP3EVM_LCD_PANEL_ENVDD, 0); return; err_5: gpio_free(OMAP3EVM_LCD_PANEL_UD); err_4: gpio_free(OMAP3EVM_LCD_PANEL_LR); err_3: gpio_free(OMAP3EVM_LCD_PANEL_QVGA); err_2: gpio_free(OMAP3EVM_LCD_PANEL_INI); err_1: gpio_free(OMAP3EVM_LCD_PANEL_RESB); } static int omap3_evm_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(OMAP3EVM_LCD_PANEL_ENVDD, 0); if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); else gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); lcd_enabled = 1; return 0; } static void omap3_evm_disable_lcd(struct omap_dss_device *dssdev) { gpio_set_value(OMAP3EVM_LCD_PANEL_ENVDD, 1); if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); else gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); lcd_enabled = 0; } static struct omap_dss_device omap3_evm_lcd_device = { .name = "lcd", .driver_name = "sharp_ls_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 18, .platform_enable = omap3_evm_enable_lcd, .platform_disable = omap3_evm_disable_lcd, }; static int omap3_evm_enable_tv(struct omap_dss_device *dssdev) { return 0; } static void omap3_evm_disable_tv(struct omap_dss_device *dssdev) { } static struct omap_dss_device omap3_evm_tv_device = { .name = "tv", .driver_name = "venc", .type = OMAP_DISPLAY_TYPE_VENC, .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, .platform_enable = omap3_evm_enable_tv, .platform_disable = omap3_evm_disable_tv, }; static int omap3_evm_enable_dvi(struct omap_dss_device *dssdev) { if (lcd_enabled) { printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); return -EINVAL; } gpio_set_value(OMAP3EVM_DVI_PANEL_EN_GPIO, 1); dvi_enabled = 1; return 0; } static void omap3_evm_disable_dvi(struct omap_dss_device *dssdev) { gpio_set_value(OMAP3EVM_DVI_PANEL_EN_GPIO, 0); dvi_enabled = 0; } static struct omap_dss_device omap3_evm_dvi_device = { .name = "dvi", .driver_name = "generic_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 24, .platform_enable = omap3_evm_enable_dvi, .platform_disable = omap3_evm_disable_dvi, }; static struct omap_dss_device *omap3_evm_dss_devices[] = { &omap3_evm_lcd_device, &omap3_evm_tv_device, &omap3_evm_dvi_device, }; static struct omap_dss_board_info omap3_evm_dss_data = { .num_devices = ARRAY_SIZE(omap3_evm_dss_devices), .devices = omap3_evm_dss_devices, .default_device = &omap3_evm_lcd_device, }; static struct platform_device omap3_evm_dss_device = { .name = "omapdss", .id = -1, .dev = { .platform_data = &omap3_evm_dss_data, }, }; static struct regulator_consumer_supply omap3evm_vmmc1_supply = { .supply = "vmmc", }; Loading Loading @@ -236,6 +418,14 @@ static int omap3evm_twl_gpio_setup(struct device *dev, * the P2 connector; notably LEDA for the LCD backlight. */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ gpio_request(gpio + TWL4030_GPIO_MAX, "EN_LCD_BKL"); gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, "EN_DVI"); gpio_direction_output(gpio + 7, 0); /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; Loading Loading @@ -300,6 +490,47 @@ static struct twl4030_codec_data omap3evm_codec_data = { .audio = &omap3evm_audio_data, }; static struct regulator_consumer_supply omap3_evm_vdda_dac_supply = { .supply = "vdda_dac", .dev = &omap3_evm_dss_device.dev, }; /* VDAC for DSS driving S-Video */ static struct regulator_init_data omap3_evm_vdac = { .constraints = { .min_uV = 1800000, .max_uV = 1800000, .apply_uV = true, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &omap3_evm_vdda_dac_supply, }; /* VPLL2 for digital video outputs */ static struct regulator_consumer_supply omap3_evm_vpll2_supply = { .supply = "vdvi", .dev = &omap3_evm_lcd_device.dev, }; static struct regulator_init_data omap3_evm_vpll2 = { .constraints = { .name = "VDVI", .min_uV = 1800000, .max_uV = 1800000, .apply_uV = true, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &omap3_evm_vpll2_supply, }; static struct twl4030_platform_data omap3evm_twldata = { .irq_base = TWL4030_IRQ_BASE, .irq_end = TWL4030_IRQ_END, Loading @@ -310,6 +541,8 @@ static struct twl4030_platform_data omap3evm_twldata = { .usb = &omap3evm_usb_data, .gpio = &omap3evm_gpio_data, .codec = &omap3evm_codec_data, .vdac = &omap3_evm_vdac, .vpll2 = &omap3_evm_vpll2, }; static struct i2c_board_info __initdata omap3evm_i2c_boardinfo[] = { Loading Loading @@ -337,15 +570,6 @@ static int __init omap3_evm_i2c_init(void) return 0; } static struct platform_device omap3_evm_lcd_device = { .name = "omap3evm_lcd", .id = -1, }; static struct omap_lcd_config omap3_evm_lcd_config __initdata = { .ctrl_name = "internal", }; static void ads7846_dev_init(void) { if (gpio_request(OMAP3_EVM_TS_GPIO, "ADS7846 pendown") < 0) Loading Loading @@ -393,7 +617,6 @@ struct spi_board_info omap3evm_spi_board_info[] = { }; static struct omap_board_config_kernel omap3_evm_config[] __initdata = { { OMAP_TAG_LCD, &omap3_evm_lcd_config }, }; static void __init omap3_evm_init_irq(void) Loading @@ -406,7 +629,7 @@ static void __init omap3_evm_init_irq(void) } static struct platform_device *omap3_evm_devices[] __initdata = { &omap3_evm_lcd_device, &omap3_evm_dss_device, }; static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { Loading Loading @@ -473,6 +696,7 @@ static void __init omap3_evm_init(void) usb_ehci_init(&ehci_pdata); ads7846_dev_init(); omap3evm_init_smsc911x(); omap3_evm_display_init(); } static void __init omap3_evm_map_io(void) Loading Loading
arch/arm/mach-omap2/board-am3517evm.c +145 −0 Original line number Diff line number Diff line Loading @@ -29,9 +29,151 @@ #include <plat/board.h> #include <plat/common.h> #include <plat/usb.h> #include <plat/display.h> #include "mux.h" #define LCD_PANEL_PWR 176 #define LCD_PANEL_BKLIGHT_PWR 182 #define LCD_PANEL_PWM 181 static int lcd_enabled; static int dvi_enabled; static void __init am3517_evm_display_init(void) { int r; omap_mux_init_gpio(LCD_PANEL_PWR, OMAP_PIN_INPUT_PULLUP); omap_mux_init_gpio(LCD_PANEL_BKLIGHT_PWR, OMAP_PIN_INPUT_PULLDOWN); omap_mux_init_gpio(LCD_PANEL_PWM, OMAP_PIN_INPUT_PULLDOWN); /* * Enable GPIO 182 = LCD Backlight Power */ r = gpio_request(LCD_PANEL_BKLIGHT_PWR, "lcd_backlight_pwr"); if (r) { printk(KERN_ERR "failed to get lcd_backlight_pwr\n"); return; } gpio_direction_output(LCD_PANEL_BKLIGHT_PWR, 1); /* * Enable GPIO 181 = LCD Panel PWM */ r = gpio_request(LCD_PANEL_PWM, "lcd_pwm"); if (r) { printk(KERN_ERR "failed to get lcd_pwm\n"); goto err_1; } gpio_direction_output(LCD_PANEL_PWM, 1); /* * Enable GPIO 176 = LCD Panel Power enable pin */ r = gpio_request(LCD_PANEL_PWR, "lcd_panel_pwr"); if (r) { printk(KERN_ERR "failed to get lcd_panel_pwr\n"); goto err_2; } gpio_direction_output(LCD_PANEL_PWR, 1); printk(KERN_INFO "Display initialized successfully\n"); return; err_2: gpio_free(LCD_PANEL_PWM); err_1: gpio_free(LCD_PANEL_BKLIGHT_PWR); } static int am3517_evm_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(LCD_PANEL_PWR, 1); lcd_enabled = 1; return 0; } static void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev) { gpio_set_value(LCD_PANEL_PWR, 0); lcd_enabled = 0; } static struct omap_dss_device am3517_evm_lcd_device = { .type = OMAP_DISPLAY_TYPE_DPI, .name = "lcd", .driver_name = "sharp_lq_panel", .phy.dpi.data_lines = 16, .platform_enable = am3517_evm_panel_enable_lcd, .platform_disable = am3517_evm_panel_disable_lcd, }; static int am3517_evm_panel_enable_tv(struct omap_dss_device *dssdev) { return 0; } static void am3517_evm_panel_disable_tv(struct omap_dss_device *dssdev) { } static struct omap_dss_device am3517_evm_tv_device = { .type = OMAP_DISPLAY_TYPE_VENC, .name = "tv", .driver_name = "venc", .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, .platform_enable = am3517_evm_panel_enable_tv, .platform_disable = am3517_evm_panel_disable_tv, }; static int am3517_evm_panel_enable_dvi(struct omap_dss_device *dssdev) { if (lcd_enabled) { printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); return -EINVAL; } dvi_enabled = 1; return 0; } static void am3517_evm_panel_disable_dvi(struct omap_dss_device *dssdev) { dvi_enabled = 0; } static struct omap_dss_device am3517_evm_dvi_device = { .type = OMAP_DISPLAY_TYPE_DPI, .name = "dvi", .driver_name = "generic_panel", .phy.dpi.data_lines = 24, .platform_enable = am3517_evm_panel_enable_dvi, .platform_disable = am3517_evm_panel_disable_dvi, }; static struct omap_dss_device *am3517_evm_dss_devices[] = { &am3517_evm_lcd_device, &am3517_evm_tv_device, &am3517_evm_dvi_device, }; static struct omap_dss_board_info am3517_evm_dss_data = { .num_devices = ARRAY_SIZE(am3517_evm_dss_devices), .devices = am3517_evm_dss_devices, .default_device = &am3517_evm_lcd_device, }; struct platform_device am3517_evm_dss_device = { .name = "omapdss", .id = -1, .dev = { .platform_data = &am3517_evm_dss_data, }, }; /* * Board initialization */ Loading @@ -39,6 +181,7 @@ static struct omap_board_config_kernel am3517_evm_config[] __initdata = { }; static struct platform_device *am3517_evm_devices[] __initdata = { &am3517_evm_dss_device, }; static void __init am3517_evm_init_irq(void) Loading Loading @@ -78,6 +221,8 @@ static void __init am3517_evm_init(void) omap_serial_init(); usb_ehci_init(&ehci_pdata); /* DSS */ am3517_evm_display_init(); } static void __init am3517_evm_map_io(void) Loading
arch/arm/mach-omap2/board-cm-t35.c +238 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ #include <linux/i2c/twl.h> #include <linux/regulator/machine.h> #include <linux/spi/spi.h> #include <linux/spi/tdo24m.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> Loading @@ -41,6 +44,7 @@ #include <plat/nand.h> #include <plat/gpmc.h> #include <plat/usb.h> #include <plat/display.h> #include <mach/hardware.h> Loading Loading @@ -248,7 +252,6 @@ static inline void cm_t35_init_nand(void) {} #if defined(CONFIG_TOUCHSCREEN_ADS7846) || \ defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) #include <linux/spi/spi.h> #include <linux/spi/ads7846.h> #include <plat/mcspi.h> Loading Loading @@ -304,6 +307,193 @@ static void __init cm_t35_init_ads7846(void) static inline void cm_t35_init_ads7846(void) {} #endif #define CM_T35_LCD_EN_GPIO 157 #define CM_T35_LCD_BL_GPIO 58 #define CM_T35_DVI_EN_GPIO 54 static int lcd_bl_gpio; static int lcd_en_gpio; static int dvi_en_gpio; static int lcd_enabled; static int dvi_enabled; static int cm_t35_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(lcd_en_gpio, 1); gpio_set_value(lcd_bl_gpio, 1); lcd_enabled = 1; return 0; } static void cm_t35_panel_disable_lcd(struct omap_dss_device *dssdev) { lcd_enabled = 0; gpio_set_value(lcd_bl_gpio, 0); gpio_set_value(lcd_en_gpio, 0); } static int cm_t35_panel_enable_dvi(struct omap_dss_device *dssdev) { if (lcd_enabled) { printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); return -EINVAL; } gpio_set_value(dvi_en_gpio, 0); dvi_enabled = 1; return 0; } static void cm_t35_panel_disable_dvi(struct omap_dss_device *dssdev) { gpio_set_value(dvi_en_gpio, 1); dvi_enabled = 0; } static int cm_t35_panel_enable_tv(struct omap_dss_device *dssdev) { return 0; } static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev) { } static struct omap_dss_device cm_t35_lcd_device = { .name = "lcd", .driver_name = "toppoly_tdo35s_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 18, .platform_enable = cm_t35_panel_enable_lcd, .platform_disable = cm_t35_panel_disable_lcd, }; static struct omap_dss_device cm_t35_dvi_device = { .name = "dvi", .driver_name = "generic_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 24, .platform_enable = cm_t35_panel_enable_dvi, .platform_disable = cm_t35_panel_disable_dvi, }; static struct omap_dss_device cm_t35_tv_device = { .name = "tv", .driver_name = "venc", .type = OMAP_DISPLAY_TYPE_VENC, .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, .platform_enable = cm_t35_panel_enable_tv, .platform_disable = cm_t35_panel_disable_tv, }; static struct omap_dss_device *cm_t35_dss_devices[] = { &cm_t35_lcd_device, &cm_t35_dvi_device, &cm_t35_tv_device, }; static struct omap_dss_board_info cm_t35_dss_data = { .num_devices = ARRAY_SIZE(cm_t35_dss_devices), .devices = cm_t35_dss_devices, .default_device = &cm_t35_dvi_device, }; static struct platform_device cm_t35_dss_device = { .name = "omapdss", .id = -1, .dev = { .platform_data = &cm_t35_dss_data, }, }; static struct omap2_mcspi_device_config tdo24m_mcspi_config = { .turbo_mode = 0, .single_channel = 1, /* 0: slave, 1: master */ }; static struct tdo24m_platform_data tdo24m_config = { .model = TDO35S, }; static struct spi_board_info cm_t35_lcd_spi_board_info[] __initdata = { { .modalias = "tdo24m", .bus_num = 4, .chip_select = 0, .max_speed_hz = 1000000, .controller_data = &tdo24m_mcspi_config, .platform_data = &tdo24m_config, }, }; static void __init cm_t35_init_display(void) { int err; lcd_en_gpio = CM_T35_LCD_EN_GPIO; lcd_bl_gpio = CM_T35_LCD_BL_GPIO; dvi_en_gpio = CM_T35_DVI_EN_GPIO; spi_register_board_info(cm_t35_lcd_spi_board_info, ARRAY_SIZE(cm_t35_lcd_spi_board_info)); err = gpio_request(lcd_en_gpio, "LCD RST"); if (err) { pr_err("CM-T35: failed to get LCD reset GPIO\n"); goto out; } err = gpio_request(lcd_bl_gpio, "LCD BL"); if (err) { pr_err("CM-T35: failed to get LCD backlight control GPIO\n"); goto err_lcd_bl; } err = gpio_request(dvi_en_gpio, "DVI EN"); if (err) { pr_err("CM-T35: failed to get DVI reset GPIO\n"); goto err_dvi_en; } gpio_export(lcd_en_gpio, 0); gpio_export(lcd_bl_gpio, 0); gpio_export(dvi_en_gpio, 0); gpio_direction_output(lcd_en_gpio, 0); gpio_direction_output(lcd_bl_gpio, 0); gpio_direction_output(dvi_en_gpio, 1); msleep(50); gpio_set_value(lcd_en_gpio, 1); err = platform_device_register(&cm_t35_dss_device); if (err) { pr_err("CM-T35: failed to register DSS device\n"); goto err_dev_reg; } return; err_dev_reg: gpio_free(dvi_en_gpio); err_dvi_en: gpio_free(lcd_bl_gpio); err_lcd_bl: gpio_free(lcd_en_gpio); out: return; } static struct regulator_consumer_supply cm_t35_vmmc1_supply = { .supply = "vmmc", }; Loading @@ -312,6 +502,16 @@ static struct regulator_consumer_supply cm_t35_vsim_supply = { .supply = "vmmc_aux", }; static struct regulator_consumer_supply cm_t35_vdac_supply = { .supply = "vdda_dac", .dev = &cm_t35_dss_device.dev, }; static struct regulator_consumer_supply cm_t35_vdvi_supply = { .supply = "vdvi", .dev = &cm_t35_dss_device.dev, }; /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ static struct regulator_init_data cm_t35_vmmc1 = { .constraints = { Loading Loading @@ -342,6 +542,35 @@ static struct regulator_init_data cm_t35_vsim = { .consumer_supplies = &cm_t35_vsim_supply, }; /* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ static struct regulator_init_data cm_t35_vdac = { .constraints = { .min_uV = 1800000, .max_uV = 1800000, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &cm_t35_vdac_supply, }; /* VPLL2 for digital video outputs */ static struct regulator_init_data cm_t35_vpll2 = { .constraints = { .name = "VDVI", .min_uV = 1800000, .max_uV = 1800000, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &cm_t35_vdvi_supply, }; static struct twl4030_usb_data cm_t35_usb_data = { .usb_mode = T2_USB_MODE_ULPI, }; Loading Loading @@ -445,6 +674,8 @@ static struct twl4030_platform_data cm_t35_twldata = { .gpio = &cm_t35_gpio_data, .vmmc1 = &cm_t35_vmmc1, .vsim = &cm_t35_vsim, .vdac = &cm_t35_vdac, .vpll2 = &cm_t35_vpll2, }; static struct i2c_board_info __initdata cm_t35_i2c_boardinfo[] = { Loading Loading @@ -568,6 +799,11 @@ static struct omap_board_mux board_mux[] __initdata = { OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), /* display controls */ OMAP3_MUX(MCBSP1_FSR, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), OMAP3_MUX(GPMC_NCS7, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), OMAP3_MUX(GPMC_NCS3, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), /* TPS IRQ */ OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_WAKEUP_EN | \ OMAP_PIN_INPUT_PULLUP), Loading @@ -584,6 +820,7 @@ static void __init cm_t35_init(void) cm_t35_init_ads7846(); cm_t35_init_ethernet(); cm_t35_init_led(); cm_t35_init_display(); usb_musb_init(); } Loading
arch/arm/mach-omap2/board-omap3evm.c +235 −11 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #include <plat/usb.h> #include <plat/common.h> #include <plat/mcspi.h> #include <plat/display.h> #include "mux.h" #include "sdram-micron-mt46h32m32lf-6.h" Loading Loading @@ -147,6 +148,187 @@ static inline void __init omap3evm_init_smsc911x(void) static inline void __init omap3evm_init_smsc911x(void) { return; } #endif /* * OMAP3EVM LCD Panel control signals */ #define OMAP3EVM_LCD_PANEL_LR 2 #define OMAP3EVM_LCD_PANEL_UD 3 #define OMAP3EVM_LCD_PANEL_INI 152 #define OMAP3EVM_LCD_PANEL_ENVDD 153 #define OMAP3EVM_LCD_PANEL_QVGA 154 #define OMAP3EVM_LCD_PANEL_RESB 155 #define OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO 210 #define OMAP3EVM_DVI_PANEL_EN_GPIO 199 static int lcd_enabled; static int dvi_enabled; static void __init omap3_evm_display_init(void) { int r; r = gpio_request(OMAP3EVM_LCD_PANEL_RESB, "lcd_panel_resb"); if (r) { printk(KERN_ERR "failed to get lcd_panel_resb\n"); return; } gpio_direction_output(OMAP3EVM_LCD_PANEL_RESB, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_INI, "lcd_panel_ini"); if (r) { printk(KERN_ERR "failed to get lcd_panel_ini\n"); goto err_1; } gpio_direction_output(OMAP3EVM_LCD_PANEL_INI, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_QVGA, "lcd_panel_qvga"); if (r) { printk(KERN_ERR "failed to get lcd_panel_qvga\n"); goto err_2; } gpio_direction_output(OMAP3EVM_LCD_PANEL_QVGA, 0); r = gpio_request(OMAP3EVM_LCD_PANEL_LR, "lcd_panel_lr"); if (r) { printk(KERN_ERR "failed to get lcd_panel_lr\n"); goto err_3; } gpio_direction_output(OMAP3EVM_LCD_PANEL_LR, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_UD, "lcd_panel_ud"); if (r) { printk(KERN_ERR "failed to get lcd_panel_ud\n"); goto err_4; } gpio_direction_output(OMAP3EVM_LCD_PANEL_UD, 1); r = gpio_request(OMAP3EVM_LCD_PANEL_ENVDD, "lcd_panel_envdd"); if (r) { printk(KERN_ERR "failed to get lcd_panel_envdd\n"); goto err_5; } gpio_direction_output(OMAP3EVM_LCD_PANEL_ENVDD, 0); return; err_5: gpio_free(OMAP3EVM_LCD_PANEL_UD); err_4: gpio_free(OMAP3EVM_LCD_PANEL_LR); err_3: gpio_free(OMAP3EVM_LCD_PANEL_QVGA); err_2: gpio_free(OMAP3EVM_LCD_PANEL_INI); err_1: gpio_free(OMAP3EVM_LCD_PANEL_RESB); } static int omap3_evm_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(OMAP3EVM_LCD_PANEL_ENVDD, 0); if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); else gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); lcd_enabled = 1; return 0; } static void omap3_evm_disable_lcd(struct omap_dss_device *dssdev) { gpio_set_value(OMAP3EVM_LCD_PANEL_ENVDD, 1); if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); else gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); lcd_enabled = 0; } static struct omap_dss_device omap3_evm_lcd_device = { .name = "lcd", .driver_name = "sharp_ls_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 18, .platform_enable = omap3_evm_enable_lcd, .platform_disable = omap3_evm_disable_lcd, }; static int omap3_evm_enable_tv(struct omap_dss_device *dssdev) { return 0; } static void omap3_evm_disable_tv(struct omap_dss_device *dssdev) { } static struct omap_dss_device omap3_evm_tv_device = { .name = "tv", .driver_name = "venc", .type = OMAP_DISPLAY_TYPE_VENC, .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, .platform_enable = omap3_evm_enable_tv, .platform_disable = omap3_evm_disable_tv, }; static int omap3_evm_enable_dvi(struct omap_dss_device *dssdev) { if (lcd_enabled) { printk(KERN_ERR "cannot enable DVI, LCD is enabled\n"); return -EINVAL; } gpio_set_value(OMAP3EVM_DVI_PANEL_EN_GPIO, 1); dvi_enabled = 1; return 0; } static void omap3_evm_disable_dvi(struct omap_dss_device *dssdev) { gpio_set_value(OMAP3EVM_DVI_PANEL_EN_GPIO, 0); dvi_enabled = 0; } static struct omap_dss_device omap3_evm_dvi_device = { .name = "dvi", .driver_name = "generic_panel", .type = OMAP_DISPLAY_TYPE_DPI, .phy.dpi.data_lines = 24, .platform_enable = omap3_evm_enable_dvi, .platform_disable = omap3_evm_disable_dvi, }; static struct omap_dss_device *omap3_evm_dss_devices[] = { &omap3_evm_lcd_device, &omap3_evm_tv_device, &omap3_evm_dvi_device, }; static struct omap_dss_board_info omap3_evm_dss_data = { .num_devices = ARRAY_SIZE(omap3_evm_dss_devices), .devices = omap3_evm_dss_devices, .default_device = &omap3_evm_lcd_device, }; static struct platform_device omap3_evm_dss_device = { .name = "omapdss", .id = -1, .dev = { .platform_data = &omap3_evm_dss_data, }, }; static struct regulator_consumer_supply omap3evm_vmmc1_supply = { .supply = "vmmc", }; Loading Loading @@ -236,6 +418,14 @@ static int omap3evm_twl_gpio_setup(struct device *dev, * the P2 connector; notably LEDA for the LCD backlight. */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ gpio_request(gpio + TWL4030_GPIO_MAX, "EN_LCD_BKL"); gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, "EN_DVI"); gpio_direction_output(gpio + 7, 0); /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; Loading Loading @@ -300,6 +490,47 @@ static struct twl4030_codec_data omap3evm_codec_data = { .audio = &omap3evm_audio_data, }; static struct regulator_consumer_supply omap3_evm_vdda_dac_supply = { .supply = "vdda_dac", .dev = &omap3_evm_dss_device.dev, }; /* VDAC for DSS driving S-Video */ static struct regulator_init_data omap3_evm_vdac = { .constraints = { .min_uV = 1800000, .max_uV = 1800000, .apply_uV = true, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &omap3_evm_vdda_dac_supply, }; /* VPLL2 for digital video outputs */ static struct regulator_consumer_supply omap3_evm_vpll2_supply = { .supply = "vdvi", .dev = &omap3_evm_lcd_device.dev, }; static struct regulator_init_data omap3_evm_vpll2 = { .constraints = { .name = "VDVI", .min_uV = 1800000, .max_uV = 1800000, .apply_uV = true, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, .num_consumer_supplies = 1, .consumer_supplies = &omap3_evm_vpll2_supply, }; static struct twl4030_platform_data omap3evm_twldata = { .irq_base = TWL4030_IRQ_BASE, .irq_end = TWL4030_IRQ_END, Loading @@ -310,6 +541,8 @@ static struct twl4030_platform_data omap3evm_twldata = { .usb = &omap3evm_usb_data, .gpio = &omap3evm_gpio_data, .codec = &omap3evm_codec_data, .vdac = &omap3_evm_vdac, .vpll2 = &omap3_evm_vpll2, }; static struct i2c_board_info __initdata omap3evm_i2c_boardinfo[] = { Loading Loading @@ -337,15 +570,6 @@ static int __init omap3_evm_i2c_init(void) return 0; } static struct platform_device omap3_evm_lcd_device = { .name = "omap3evm_lcd", .id = -1, }; static struct omap_lcd_config omap3_evm_lcd_config __initdata = { .ctrl_name = "internal", }; static void ads7846_dev_init(void) { if (gpio_request(OMAP3_EVM_TS_GPIO, "ADS7846 pendown") < 0) Loading Loading @@ -393,7 +617,6 @@ struct spi_board_info omap3evm_spi_board_info[] = { }; static struct omap_board_config_kernel omap3_evm_config[] __initdata = { { OMAP_TAG_LCD, &omap3_evm_lcd_config }, }; static void __init omap3_evm_init_irq(void) Loading @@ -406,7 +629,7 @@ static void __init omap3_evm_init_irq(void) } static struct platform_device *omap3_evm_devices[] __initdata = { &omap3_evm_lcd_device, &omap3_evm_dss_device, }; static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { Loading Loading @@ -473,6 +696,7 @@ static void __init omap3_evm_init(void) usb_ehci_init(&ehci_pdata); ads7846_dev_init(); omap3evm_init_smsc911x(); omap3_evm_display_init(); } static void __init omap3_evm_map_io(void) Loading