summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/input/misc/Kconfig8
-rw-r--r--drivers/input/misc/ab8500-ponkey.c6
-rwxr-xr-xdrivers/mfd/ab5500-core.c19
-rw-r--r--include/linux/mfd/abx500/ab5500.h1
4 files changed, 30 insertions, 4 deletions
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 5994a58224f..0a4341a4a51 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -30,11 +30,11 @@ config INPUT_AB8500_ACCDET
AB8500 Mix-Sig PMIC.
config INPUT_AB8500_PONKEY
- tristate "AB8500 Pon (PowerOn) Key"
- depends on AB8500_CORE
+ tristate "AB5500/AB8500 Pon (PowerOn) Key"
+ depends on AB5500_CORE || AB8500_CORE
help
- Say Y here to use the PowerOn Key for ST-Ericsson's AB8500
- Mix-Sig PMIC.
+ Say Y here to use the PowerOn Key for ST-Ericsson's AB5500/AB8500
+ Mix-Sig PMICs.
To compile this driver as a module, choose M here: the module
will be called ab8500-ponkey.
diff --git a/drivers/input/misc/ab8500-ponkey.c b/drivers/input/misc/ab8500-ponkey.c
index 445a9ad3eab..39964956de2 100644
--- a/drivers/input/misc/ab8500-ponkey.c
+++ b/drivers/input/misc/ab8500-ponkey.c
@@ -18,6 +18,11 @@ struct ab8500_ponkey_variant {
const char *irq_rising;
};
+static const struct ab8500_ponkey_variant ab5500_onswa = {
+ .irq_falling = "ONSWAn_falling",
+ .irq_rising = "ONSWAn_rising",
+};
+
static const struct ab8500_ponkey_variant ab8500_ponkey = {
.irq_falling = "ONKEY_DBF",
.irq_rising = "ONKEY_DBR",
@@ -144,6 +149,7 @@ static int __devexit ab8500_ponkey_remove(struct platform_device *pdev)
}
static struct platform_device_id ab8500_ponkey_id_table[] = {
+ { "ab5500-onswa", (kernel_ulong_t)&ab5500_onswa, },
{ "ab8500-poweron-key", (kernel_ulong_t)&ab8500_ponkey, },
{ },
};
diff --git a/drivers/mfd/ab5500-core.c b/drivers/mfd/ab5500-core.c
index df61dff7968..6b80fdbd52a 100755
--- a/drivers/mfd/ab5500-core.c
+++ b/drivers/mfd/ab5500-core.c
@@ -1090,6 +1090,25 @@ static struct mfd_cell ab5500_devs[AB5500_NUM_DEVICES] = {
},
},
},
+ [AB5500_DEVID_ONSWA] = {
+ .name = "ab5500-onswa",
+ .id = AB5500_DEVID_ONSWA,
+ .num_resources = 2,
+ .resources = (struct resource[]) {
+ {
+ .name = "ONSWAn_rising",
+ .flags = IORESOURCE_IRQ,
+ .start = AB5500_IRQ(1, 3),
+ .end = AB5500_IRQ(1, 3),
+ },
+ {
+ .name = "ONSWAn_falling",
+ .flags = IORESOURCE_IRQ,
+ .start = AB5500_IRQ(1, 4),
+ .end = AB5500_IRQ(1, 4),
+ },
+ },
+ },
};
/*
diff --git a/include/linux/mfd/abx500/ab5500.h b/include/linux/mfd/abx500/ab5500.h
index a2ac05a8ebc..72c2baf1b83 100644
--- a/include/linux/mfd/abx500/ab5500.h
+++ b/include/linux/mfd/abx500/ab5500.h
@@ -25,6 +25,7 @@ enum ab5500_devid {
AB5500_DEVID_OTP,
AB5500_DEVID_VIDEO,
AB5500_DEVID_DBIECI,
+ AB5500_DEVID_ONSWA,
AB5500_NUM_DEVICES,
};