Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
- index a56b0d5..9588886 100644
- --- a/arch/arm/mach-omap2/board-omap3beagle.c
- +++ b/arch/arm/mach-omap2/board-omap3beagle.c
- @@ -26,6 +26,9 @@
- #include <linux/gpio_keys.h>
- #include <linux/opp.h>
- +// Added for touch screen
- +#include <linux/spi/ads7846.h>
- +
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
- #include <linux/mtd/nand.h>
- @@ -191,6 +194,88 @@ static struct {
- .i2c_settings = EXPANSION_I2C_NONE,
- };
- +#ifdef CONFIG_TOUCHSCREEN_ADS7846
- +
- +#define OMAP3_EVM_TS_GPIO 162 /* gpio_133 for v1.0 */
- +
- +#include <plat/mcspi.h>
- +#include <linux/spi/spi.h>
- +
- +static struct omap2_mcspi_device_config ads7846_mcspi_config = {
- + .turbo_mode = 0,
- + //.single_channel = 1, /* 0: slave, 1: master */
- +};
- +
- +static int ads7846_get_pendown_state(void)
- +{
- + return !gpio_get_value(OMAP3_EVM_TS_GPIO);
- +}
- +
- +struct ads7846_platform_data ads7846_config = {
- + .x_max = 0x0fff,
- + .y_max = 0x0fff,
- + .x_plate_ohms = 180,
- + .pressure_max = 255,
- + .debounce_max = 10,
- + .debounce_tol = 3,
- + .debounce_rep = 1,
- + .get_pendown_state = ads7846_get_pendown_state,
- + .keep_vref_on = 1,
- + .settle_delay_usecs = 150,
- + .wakeup = true,
- +};
- +
- +struct spi_board_info omap3evm_spi_board_info[] = {
- + [0] = {
- + .modalias = "ads7846",
- + .bus_num = 3,
- + .chip_select = 0,
- + .max_speed_hz = 1500000,
- + .controller_data = &ads7846_mcspi_config,
- + .platform_data = &ads7846_config,
- + .mode = SPI_MODE_1 | SPI_CS_HIGH,
- + },
- +};
- +
- +static void ads7846_dev_init(void)
- +{
- + printk("::::::::: Initialize ads7846 touch screen controller\n");
- +
- + if (gpio_request(OMAP3_EVM_TS_GPIO, "ADS7846 pendown") < 0)
- + printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
- +
- + omap3evm_spi_board_info[0].irq = gpio_to_irq(OMAP3_EVM_TS_GPIO);
- + gpio_direction_input(OMAP3_EVM_TS_GPIO);
- +
- + //omap_set_gpio_debounce(OMAP3_EVM_TS_GPIO, 1);
- + //omap_set_gpio_debounce_time(OMAP3_EVM_TS_GPIO, 0xa);
- + gpio_set_debounce(OMAP3_EVM_TS_GPIO, (0x0a+1)*31);
- + spi_register_board_info(omap3evm_spi_board_info, ARRAY_SIZE(omap3evm_spi_board_info));
- +}
- +
- +/* ads7846 on SPI */
- +static struct regulator_consumer_supply omap3evm_vio_supply[] = {
- + REGULATOR_SUPPLY("vcc", "spi3.0"),
- +};
- +
- +/* VIO for ads7846 */
- +static struct regulator_init_data omap3evm_vio = {
- + .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 = ARRAY_SIZE(omap3evm_vio_supply),
- + .consumer_supplies = omap3evm_vio_supply,
- +};
- +
- +#else
- +static inline void __init ads7846_dev_init(void) { return; }
- +#endif
- #if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
- #include <linux/regulator/fixed.h>
- #include <linux/ti_wilink_st.h>
- @@ -474,6 +559,14 @@ static struct omap2_hsmmc_info mmc[] = {
- .gpio_wp = -EINVAL,
- .deferred = true,
- },
- +#if 0
- + {
- + .mmc = 2,
- + .caps = MMC_CAP_4_BIT_DATA,
- + .transceiver = true,
- + .ocr_mask = 0x00100000, /* 3.3V */
- + },
- +#endif
- {} /* Terminator */
- };
- @@ -712,6 +805,7 @@ static struct twl4030_platform_data beagle_twldata = {
- .vmmc1 = &beagle_vmmc1,
- .vsim = &beagle_vsim,
- .vaux3 = &beagle_vaux3,
- + .vio = &omap3evm_vio,
- .vaux4 = &beagle_vaux4,
- .power = &beagle_twl4030_power_data,
- };
- @@ -1022,11 +1116,20 @@ static void __init beagle_opp_init(void)
- static void __init omap3_beagle_config_mcspi3_mux(void)
- {
- // NOTE: Clock pins need to be in input mode
- +#if 0
- omap_mux_init_signal("sdmmc2_clk.mcspi3_clk", OMAP_PIN_INPUT);
- omap_mux_init_signal("sdmmc2_cmd.mcspi3_simo", OMAP_PIN_OUTPUT);
- omap_mux_init_signal("sdmmc2_dat0.mcspi3_somi", OMAP_PIN_INPUT_PULLUP);
- omap_mux_init_signal("sdmmc2_dat2.mcspi3_cs1", OMAP_PIN_OUTPUT);
- omap_mux_init_signal("sdmmc2_dat3.mcspi3_cs0", OMAP_PIN_OUTPUT);
- +#else
- + omap_mux_init_signal("etk_d3.mcspi3_clk", OMAP_PIN_INPUT);
- + omap_mux_init_signal("etk_d0.mcspi3_simo", OMAP_PIN_OUTPUT);
- + omap_mux_init_signal("etk_d1.mcspi3_somi", OMAP_PIN_INPUT_PULLUP);
- + omap_mux_init_signal("sdmmc2_dat2.mcspi3_cs1", OMAP_PIN_OUTPUT);
- + omap_mux_init_signal("etk_d2.mcspi3_cs0", OMAP_PIN_OUTPUT);
- + omap_mux_init_signal("mcbsp1_clkx.gpio_162", OMAP_PIN_INPUT);
- +#endif
- }
- static void __init omap3_beagle_config_mcspi4_mux(void)
- @@ -1225,9 +1328,13 @@ static void __init omap3_beagle_init(void)
- omap3_beagle_config_mcspi4_mux();
- spi_register_board_info(beagle_mcspi_board_info, ARRAY_SIZE(beagle_mcspi_board_info));
- }
- + omap3_beagle_config_mcspi3_mux();
- + //omap3_beagle_config_mcspi4_mux();
- usb_musb_init(NULL);
- usbhs_init(&usbhs_bdata);
- + ads7846_dev_init();
- + //omap_ads7846_init( 3, OMAP3_EVM_TS_GPIO, 310, NULL );
- omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
- ARRAY_SIZE(omap3beagle_nand_partitions));
- diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
- index 69ad1ec..4f740c3 100644
- --- a/drivers/video/modedb.c
- +++ b/drivers/video/modedb.c
- @@ -297,6 +297,18 @@ static const struct fb_videomode modedb[] = {
- /* 800x480 @ 60 Hz, Toshiba LTA070B220F 7 inch LCD */
- { NULL, 60, 800, 480, 32787, 48, 80, 33, 31, 32, 2,
- FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, FB_VMODE_NONINTERLACED },
- +
- + /* 800x480 @ 60 Hz, Toshiba LTA070B220F 7 inch LCD */
- + { "armphone", 60, 800, 480, 36000,
- + 10, 80, 20, 31,
- + 32, 2,
- + FB_VMODE_NONINTERLACED },
- + //i { "hd720", 60, 1280, 720, 13468,
- + // 220, 110, 20, 5,
- + // 40, 5, 0,
- + //{ NULL, 60, 1024, 768, 15384,
- + // 168, 8, 29, 3,
- + // 144, 6, 0,
- };
- #ifdef CONFIG_FB_MODE_HELPERS
- diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
- index 0e329d4..e64daef 100644
- --- a/drivers/video/omap2/displays/panel-generic-dpi.c
- +++ b/drivers/video/omap2/displays/panel-generic-dpi.c
- @@ -55,6 +55,7 @@ static struct panel_config generic_dpi_panels[] = {
- /* Sharp LQ043T1DG01 */
- {
- {
- + /*
- .x_res = 480,
- .y_res = 272,
- @@ -67,6 +68,16 @@ static struct panel_config generic_dpi_panels[] = {
- .vsw = 11,
- .vfp = 3,
- .vbp = 2,
- + */
- + .x_res = 800,
- + .y_res = 480,
- + .pixel_clock = 36000,
- + .hfp = 1,
- + .hsw = 48,
- + .hbp = 46,
- + .vfp = 12,
- + .vsw = 3,
- + .vbp = 23,
- .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
- .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement