Skip to content

Commit

Permalink
ARM: OMAP: N770: add missing LCD, LCD controller, touchscreen device …
Browse files Browse the repository at this point in the history
…registration

These were left out from the board file when merging these drivers,
add them here.

Call GPIO init from the board file as well, since the platform device init
code uses the GPIO API.

Signed-off-by: Imre Deak <imre.deak@solidboot.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

Removed hwa742 init for now as it needs some clock updates.

Signed-off-by: Tony Lindgren <tony@atomide.com>
  • Loading branch information
Imre Deak authored and Tony Lindgren committed Sep 21, 2007
1 parent 4dcc6d2 commit 06767fb
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions arch/arm/mach-omap1/board-nokia770.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,13 @@
#include <asm/arch/dsp_common.h>
#include <asm/arch/aic23.h>
#include <asm/arch/gpio.h>
#include <asm/arch/omapfb.h>
#include <asm/arch/lcd_mipid.h>

#include "../plat-omap/dsp/dsp_common.h"

#define ADS7846_PENDOWN_GPIO 15

static void __init omap_nokia770_init_irq(void)
{
/* On Nokia 770, the SleepX signal is masked with an
Expand Down Expand Up @@ -96,13 +100,50 @@ static struct platform_device *nokia770_devices[] __initdata = {
&nokia770_kp_device,
};

static void mipid_shutdown(struct mipid_platform_data *pdata)
{
if (pdata->nreset_gpio != -1) {
printk(KERN_INFO "shutdown LCD\n");
omap_set_gpio_dataout(pdata->nreset_gpio, 0);
msleep(120);
}
}

static struct mipid_platform_data nokia770_mipid_platform_data = {
.shutdown = mipid_shutdown,
};

static void mipid_dev_init(void)
{
const struct omap_lcd_config *conf;

conf = omap_get_config(OMAP_TAG_LCD, struct omap_lcd_config);
if (conf != NULL) {
nokia770_mipid_platform_data.nreset_gpio = conf->nreset_gpio;
nokia770_mipid_platform_data.data_lines = conf->data_lines;
}
}

static void ads7846_dev_init(void)
{
if (omap_request_gpio(ADS7846_PENDOWN_GPIO) < 0)
printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
}

static int ads7846_get_pendown_state(void)
{
return !omap_get_gpio_datain(ADS7846_PENDOWN_GPIO);
}

static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = {
.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,
};

static struct spi_board_info nokia770_spi_board_info[] __initdata = {
Expand All @@ -111,6 +152,7 @@ static struct spi_board_info nokia770_spi_board_info[] __initdata = {
.bus_num = 2,
.chip_select = 3,
.max_speed_hz = 12000000,
.platform_data = &nokia770_mipid_platform_data,
},
[1] = {
.modalias = "ads7846",
Expand Down Expand Up @@ -287,8 +329,11 @@ static void __init omap_nokia770_init(void)
ARRAY_SIZE(nokia770_spi_board_info));
omap_board_config = nokia770_config;
omap_board_config_size = ARRAY_SIZE(nokia770_config);
omap_gpio_init();
omap_serial_init();
omap_dsp_init();
ads7846_dev_init();
mipid_dev_init();
}

static void __init omap_nokia770_map_io(void)
Expand Down

0 comments on commit 06767fb

Please sign in to comment.