[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ac67418530980e5ac3c25e8665d5ba3c5ef37c8e.1321442150.git.viresh.kumar@st.com>
Date: Wed, 16 Nov 2011 16:56:08 +0530
From: Viresh Kumar <viresh.kumar@...com>
To: <rabin.vincent@...ricsson.com>, <linus.walleij@...ricsson.com>,
<srinidhi.kasagar@...ricsson.com>
Cc: <sameo@...ux.intel.com>, <linux-kernel@...r.kernel.org>,
<armando.visconti@...com>, <shiraz.hashim@...com>,
<vipin.kumar@...com>, <rajeev-dlh.kumar@...com>,
<deepak.sikri@...com>, <vipulkumar.samar@...com>,
<amit.virdi@...com>, <viresh.kumar@...com>,
<pratyush.anand@...com>, <bhupesh.sharma@...com>,
<viresh.linux@...il.com>, <bhavna.yadav@...com>,
<vincenzo.frascino@...com>, <mirko.gardi@...com>,
<grant.likely@...retlab.ca>
Subject: [PATCH 3/5] mfd/stmpe: Add support for stmpe variant 610
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@...com>
---
drivers/mfd/stmpe-i2c.c | 1 +
drivers/mfd/stmpe-spi.c | 1 +
drivers/mfd/stmpe.c | 20 ++++++++++++++++++--
include/linux/mfd/stmpe.h | 1 +
4 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/drivers/mfd/stmpe-i2c.c b/drivers/mfd/stmpe-i2c.c
index 671fd5c..c004319 100644
--- a/drivers/mfd/stmpe-i2c.c
+++ b/drivers/mfd/stmpe-i2c.c
@@ -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 },
diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
index 21861d8..25928f6 100644
--- a/drivers/mfd/stmpe-spi.c
+++ b/drivers/mfd/stmpe-spi.c
@@ -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 },
diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c
index a564f91..34046b5 100644
--- a/drivers/mfd/stmpe.c
+++ b/drivers/mfd/stmpe.c
@@ -321,7 +321,7 @@ static struct mfd_cell stmpe_keypad_cell = {
};
/*
- * Touchscreen (STMPE811)
+ * Touchscreen (STMPE811 or STMPE610)
*/
static struct resource stmpe_ts_resources[] = {
@@ -346,7 +346,7 @@ static struct mfd_cell stmpe_ts_cell = {
};
/*
- * STMPE811
+ * STMPE811 or STMPE610
*/
static const u8 stmpe811_regs[] = {
@@ -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
*/
@@ -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,
diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h
index 102c06d..79e4fc4 100644
--- a/include/linux/mfd/stmpe.h
+++ b/include/linux/mfd/stmpe.h
@@ -20,6 +20,7 @@ enum stmpe_block {
};
enum stmpe_partnum {
+ STMPE610,
STMPE811,
STMPE1601,
STMPE2401,
--
1.7.2.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists