Skip to content

Commit

Permalink
mfd: Add support for stmpe variant 610
Browse files Browse the repository at this point in the history
STMPE610 is very much like STMPE811, except the number of gpio pins, which is 8
in 811 and 6 in 610. This patch adds support for variant 610. STMPE610 will
share most of the code with STMPE811.

Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
  • Loading branch information
Viresh Kumar authored and Samuel Ortiz committed Jan 8, 2012
1 parent e789995 commit 1cda239
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 2 deletions.
1 change: 1 addition & 0 deletions drivers/mfd/stmpe-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ static int __devexit stmpe_i2c_remove(struct i2c_client *i2c)
}

static const struct i2c_device_id stmpe_i2c_id[] = {
{ "stmpe610", STMPE610 },
{ "stmpe811", STMPE811 },
{ "stmpe1601", STMPE1601 },
{ "stmpe2401", STMPE2401 },
Expand Down
1 change: 1 addition & 0 deletions drivers/mfd/stmpe-spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ static int __devexit stmpe_spi_remove(struct spi_device *spi)
}

static const struct spi_device_id stmpe_spi_id[] = {
{ "stmpe610", STMPE610 },
{ "stmpe811", STMPE811 },
{ "stmpe1601", STMPE1601 },
{ "stmpe2401", STMPE2401 },
Expand Down
20 changes: 18 additions & 2 deletions drivers/mfd/stmpe.c
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ static struct mfd_cell stmpe_keypad_cell = {
};

/*
* Touchscreen (STMPE811)
* Touchscreen (STMPE811 or STMPE610)
*/

static struct resource stmpe_ts_resources[] = {
Expand All @@ -346,7 +346,7 @@ static struct mfd_cell stmpe_ts_cell = {
};

/*
* STMPE811
* STMPE811 or STMPE610
*/

static const u8 stmpe811_regs[] = {
Expand Down Expand Up @@ -417,6 +417,21 @@ static struct stmpe_variant_info stmpe811 = {
.get_altfunc = stmpe811_get_altfunc,
};

/* Similar to 811, except number of gpios */
static struct stmpe_variant_info stmpe610 = {
.name = "stmpe610",
.id_val = 0x0811,
.id_mask = 0xffff,
.num_gpios = 6,
.af_bits = 1,
.regs = stmpe811_regs,
.blocks = stmpe811_blocks,
.num_blocks = ARRAY_SIZE(stmpe811_blocks),
.num_irqs = STMPE811_NR_INTERNAL_IRQS,
.enable = stmpe811_enable,
.get_altfunc = stmpe811_get_altfunc,
};

/*
* STMPE1601
*/
Expand Down Expand Up @@ -651,6 +666,7 @@ static struct stmpe_variant_info stmpe2403 = {
};

static struct stmpe_variant_info *stmpe_variant_info[] = {
[STMPE610] = &stmpe610,
[STMPE811] = &stmpe811,
[STMPE1601] = &stmpe1601,
[STMPE2401] = &stmpe2401,
Expand Down
1 change: 1 addition & 0 deletions include/linux/mfd/stmpe.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ enum stmpe_block {
};

enum stmpe_partnum {
STMPE610,
STMPE811,
STMPE1601,
STMPE2401,
Expand Down

0 comments on commit 1cda239

Please sign in to comment.