All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] *** SUBJECT HERE ***
@ 2013-05-22 12:07 yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 1/4] mfd: 88pm800: fix NULL pointer error yizhang.mrvl
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: yizhang.mrvl @ 2013-05-22 12:07 UTC (permalink / raw)
  To: sameo, gregkh, yizhang.mrvl; +Cc: cxie4, arnd, yizhang, linux-kernel

From: Yi Zhang <yizhang@marvell.com>

These patches fix 88pm800 bugs and add regulator support

Yi Zhang (3):
  mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag
  mfd: 88pm800: fix probe bug
  mfd: 88pm800: add regulator support

 drivers/mfd/88pm800.c       |  139 ++++++++++++++++++++++++++++++++++++++++---
 include/linux/mfd/88pm80x.h |   48 +++++++++++++++
 2 files changed, 178 insertions(+), 9 deletions(-)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/4] mfd: 88pm800: fix NULL pointer error
  2013-05-22 12:07 [PATCH 0/3] *** SUBJECT HERE *** yizhang.mrvl
@ 2013-05-22 12:07 ` yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 2/4] mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag yizhang.mrvl
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: yizhang.mrvl @ 2013-05-22 12:07 UTC (permalink / raw)
  To: sameo, gregkh, yizhang.mrvl; +Cc: cxie4, arnd, yizhang, linux-kernel

From: Yi Zhang <yizhang@marvell.com>

move "device_800_init" to fix NULL pointer error when
calling "device_gpadc_init"

for "device_gpadc_init" needs "subchip->regmap_gpadc"
to set registers via regmap interface

Signed-off-by: Yi Zhang <yizhang@marvell.com>
---
 drivers/mfd/88pm800.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
index 582bda5..bbb6aa8 100644
--- a/drivers/mfd/88pm800.c
+++ b/drivers/mfd/88pm800.c
@@ -528,25 +528,25 @@ static int pm800_probe(struct i2c_client *client,
 	subchip->gpadc_page_addr = pdata->gpadc_page_addr;
 	chip->subchip = subchip;
 
-	ret = device_800_init(chip, pdata);
-	if (ret) {
-		dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id);
-		goto err_subchip_alloc;
-	}
-
 	ret = pm800_pages_init(chip);
 	if (ret) {
 		dev_err(&client->dev, "pm800_pages_init failed!\n");
 		goto err_page_init;
 	}
 
+	ret = device_800_init(chip, pdata);
+	if (ret) {
+		dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id);
+		goto err_subchip_alloc;
+	}
+
 	if (pdata->plat_config)
 		pdata->plat_config(chip, pdata);
 
-err_page_init:
+err_subchip_alloc:
 	mfd_remove_devices(chip->dev);
 	device_irq_exit_800(chip);
-err_subchip_alloc:
+err_page_init:
 	pm80x_deinit();
 out_init:
 	return ret;
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/4] mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag
  2013-05-22 12:07 [PATCH 0/3] *** SUBJECT HERE *** yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 1/4] mfd: 88pm800: fix NULL pointer error yizhang.mrvl
@ 2013-05-22 12:07 ` yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 3/4] mfd: 88pm800: fix probe bug yizhang.mrvl
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: yizhang.mrvl @ 2013-05-22 12:07 UTC (permalink / raw)
  To: sameo, gregkh, yizhang.mrvl; +Cc: cxie4, arnd, yizhang, linux-kernel

From: Yi Zhang <yizhang@marvell.com>

for interrupt controller such as GIC who is level triggered,
"IRQF_TRIGGER_FALLING" will fail to request irq

Signed-off-by: Yi Zhang <yizhang@marvell.com>
---
 drivers/mfd/88pm800.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
index bbb6aa8..618a6b9 100644
--- a/drivers/mfd/88pm800.c
+++ b/drivers/mfd/88pm800.c
@@ -318,7 +318,7 @@ out:
 static int device_irq_init_800(struct pm80x_chip *chip)
 {
 	struct regmap *map = chip->regmap;
-	unsigned long flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
+	unsigned long flags = IRQF_ONESHOT;
 	int data, mask, ret = -EINVAL;
 
 	if (!map || !chip->irq) {
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/4] mfd: 88pm800: fix probe bug
  2013-05-22 12:07 [PATCH 0/3] *** SUBJECT HERE *** yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 1/4] mfd: 88pm800: fix NULL pointer error yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 2/4] mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag yizhang.mrvl
@ 2013-05-22 12:07 ` yizhang.mrvl
  2013-05-22 12:07 ` [PATCH 4/4] mfd: 88pm800: add regulator support yizhang.mrvl
  2013-05-22 14:06 ` [PATCH 0/3] *** SUBJECT HERE *** Greg KH
  4 siblings, 0 replies; 8+ messages in thread
From: yizhang.mrvl @ 2013-05-22 12:07 UTC (permalink / raw)
  To: sameo, gregkh, yizhang.mrvl; +Cc: cxie4, arnd, yizhang, linux-kernel

From: Yi Zhang <yizhang@marvell.com>

1) return 0 when probe function is successful
2) fine-tune pm800_pages_init()

Signed-off-by: Yi Zhang <yizhang@marvell.com>
---
 drivers/mfd/88pm800.c |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
index 618a6b9..475b5fa 100644
--- a/drivers/mfd/88pm800.c
+++ b/drivers/mfd/88pm800.c
@@ -369,32 +369,43 @@ static int pm800_pages_init(struct pm80x_chip *chip)
 	struct pm80x_subchip *subchip;
 	struct i2c_client *client = chip->client;
 
+	int ret = -ENODEV;
+
 	subchip = chip->subchip;
 	/* PM800 block power: i2c addr 0x31 */
-	if (subchip->power_page_addr) {
+	if (subchip & (subchip->power_page_addr)) {
 		subchip->power_page =
 		    i2c_new_dummy(client->adapter, subchip->power_page_addr);
 		subchip->regmap_power =
 		    devm_regmap_init_i2c(subchip->power_page,
 					 &pm80x_regmap_config);
 		i2c_set_clientdata(subchip->power_page, chip);
-	} else
+	} else {
 		dev_info(chip->dev,
 			 "PM800 block power 0x31: No power_page_addr\n");
+		return ret;
+	}
 
 	/* PM800 block GPADC: i2c addr 0x32 */
-	if (subchip->gpadc_page_addr) {
+	if (subchip & (subchip->gpadc_page_addr)) {
 		subchip->gpadc_page = i2c_new_dummy(client->adapter,
 						    subchip->gpadc_page_addr);
 		subchip->regmap_gpadc =
 		    devm_regmap_init_i2c(subchip->gpadc_page,
 					 &pm80x_regmap_config);
 		i2c_set_clientdata(subchip->gpadc_page, chip);
-	} else
+	} else {
 		dev_info(chip->dev,
 			 "PM800 block GPADC 0x32: No gpadc_page_addr\n");
+		goto out_gpadc_page;
+	}
 
 	return 0;
+
+out_gpadc_page:
+	regmap_exit(subchip->regmap_power);
+	i2c_unregister_device(subchip->power_page);
+	return ret;
 }
 
 static void pm800_pages_exit(struct pm80x_chip *chip)
@@ -537,16 +548,18 @@ static int pm800_probe(struct i2c_client *client,
 	ret = device_800_init(chip, pdata);
 	if (ret) {
 		dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id);
-		goto err_subchip_alloc;
+		goto err_800_init;
 	}
 
 	if (pdata->plat_config)
 		pdata->plat_config(chip, pdata);
 
-err_subchip_alloc:
-	mfd_remove_devices(chip->dev);
-	device_irq_exit_800(chip);
+	return 0;
+
+err_800_init:
+	pm800_pages_exit(chip);
 err_page_init:
+err_subchip_alloc:
 	pm80x_deinit();
 out_init:
 	return ret;
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/4] mfd: 88pm800: add regulator support
  2013-05-22 12:07 [PATCH 0/3] *** SUBJECT HERE *** yizhang.mrvl
                   ` (2 preceding siblings ...)
  2013-05-22 12:07 ` [PATCH 3/4] mfd: 88pm800: fix probe bug yizhang.mrvl
@ 2013-05-22 12:07 ` yizhang.mrvl
  2013-05-22 14:06 ` [PATCH 0/3] *** SUBJECT HERE *** Greg KH
  4 siblings, 0 replies; 8+ messages in thread
From: yizhang.mrvl @ 2013-05-22 12:07 UTC (permalink / raw)
  To: sameo, gregkh, yizhang.mrvl; +Cc: cxie4, arnd, yizhang, linux-kernel

From: Yi Zhang <yizhang@marvell.com>

Signed-off-by: Yi Zhang <yizhang@marvell.com>
---
 drivers/mfd/88pm800.c       |  108 +++++++++++++++++++++++++++++++++++++++++++
 include/linux/mfd/88pm80x.h |   48 +++++++++++++++++++
 2 files changed, 156 insertions(+), 0 deletions(-)

diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
index 475b5fa..46085e9 100644
--- a/drivers/mfd/88pm800.c
+++ b/drivers/mfd/88pm800.c
@@ -167,6 +167,62 @@ static struct mfd_cell onkey_devs[] = {
 	 },
 };
 
+static struct resource regulator_resources[] = {
+	{PM800_ID_BUCK1, PM800_ID_BUCK1, "buck-1", IORESOURCE_IO,},
+	{PM800_ID_BUCK2, PM800_ID_BUCK2, "buck-2", IORESOURCE_IO,},
+	{PM800_ID_BUCK3, PM800_ID_BUCK3, "buck-3", IORESOURCE_IO,},
+	{PM800_ID_BUCK4, PM800_ID_BUCK4, "buck-4", IORESOURCE_IO,},
+	{PM800_ID_BUCK5, PM800_ID_BUCK5, "buck-5", IORESOURCE_IO,},
+	{PM800_ID_LDO1, PM800_ID_LDO1, "ldo-01", IORESOURCE_IO,},
+	{PM800_ID_LDO2, PM800_ID_LDO2, "ldo-02", IORESOURCE_IO,},
+	{PM800_ID_LDO3, PM800_ID_LDO3, "ldo-03", IORESOURCE_IO,},
+	{PM800_ID_LDO4, PM800_ID_LDO4, "ldo-04", IORESOURCE_IO,},
+	{PM800_ID_LDO5, PM800_ID_LDO5, "ldo-05", IORESOURCE_IO,},
+	{PM800_ID_LDO6, PM800_ID_LDO6, "ldo-06", IORESOURCE_IO,},
+	{PM800_ID_LDO7, PM800_ID_LDO7, "ldo-07", IORESOURCE_IO,},
+	{PM800_ID_LDO8, PM800_ID_LDO8, "ldo-08", IORESOURCE_IO,},
+	{PM800_ID_LDO9, PM800_ID_LDO9, "ldo-09", IORESOURCE_IO,},
+	{PM800_ID_LDO10, PM800_ID_LDO10, "ldo-10", IORESOURCE_IO,},
+	{PM800_ID_LDO11, PM800_ID_LDO11, "ldo-11", IORESOURCE_IO,},
+	{PM800_ID_LDO12, PM800_ID_LDO12, "ldo-12", IORESOURCE_IO,},
+	{PM800_ID_LDO13, PM800_ID_LDO13, "ldo-13", IORESOURCE_IO,},
+	{PM800_ID_LDO14, PM800_ID_LDO14, "ldo-14", IORESOURCE_IO,},
+	{PM800_ID_LDO15, PM800_ID_LDO15, "ldo-15", IORESOURCE_IO,},
+	{PM800_ID_LDO16, PM800_ID_LDO16, "ldo-16", IORESOURCE_IO,},
+	{PM800_ID_LDO17, PM800_ID_LDO17, "ldo-17", IORESOURCE_IO,},
+	{PM800_ID_LDO18, PM800_ID_LDO18, "ldo-18", IORESOURCE_IO,},
+	{PM800_ID_LDO19, PM800_ID_LDO19, "ldo-19", IORESOURCE_IO,},
+};
+
+static struct mfd_cell regulator_devs[] = {
+	{"88pm80x-regulator", 0,},
+	{"88pm80x-regulator", 1,},
+	{"88pm80x-regulator", 2,},
+	{"88pm80x-regulator", 3,},
+	{"88pm80x-regulator", 4,},
+	{"88pm80x-regulator", 5,},
+	{"88pm80x-regulator", 6,},
+	{"88pm80x-regulator", 7,},
+	{"88pm80x-regulator", 8,},
+	{"88pm80x-regulator", 9,},
+	{"88pm80x-regulator", 10,},
+	{"88pm80x-regulator", 11,},
+	{"88pm80x-regulator", 12,},
+	{"88pm80x-regulator", 13,},
+	{"88pm80x-regulator", 14,},
+	{"88pm80x-regulator", 15,},
+	{"88pm80x-regulator", 16,},
+	{"88pm80x-regulator", 17,},
+	{"88pm80x-regulator", 18,},
+	{"88pm80x-regulator", 19,},
+	{"88pm80x-regulator", 20,},
+	{"88pm80x-regulator", 21,},
+	{"88pm80x-regulator", 22,},
+	{"88pm80x-regulator", 23,},
+};
+
+static struct regulator_init_data regulator_pdata[ARRAY_SIZE(regulator_devs)];
+
 static const struct regmap_irq pm800_irqs[] = {
 	/* INT0 */
 	[PM800_IRQ_ONKEY] = {
@@ -315,6 +371,52 @@ out:
 	return ret;
 }
 
+static int device_regulator_init(struct pm80x_chip *chip,
+					   struct pm80x_platform_data *pdata)
+{
+	struct regulator_init_data *initdata;
+	int ret = 0;
+	int i, seq;
+
+	if (!pdata || !pdata->regulator) {
+		dev_warn(chip->dev, "Regulator pdata is unavailable!\n");
+		return 0;
+	}
+
+	if (pdata->num_regulators > ARRAY_SIZE(regulator_devs))
+		pdata->num_regulators = ARRAY_SIZE(regulator_devs);
+
+	for (i = 0; i < pdata->num_regulators; i++) {
+		initdata = &pdata->regulator[i];
+		seq = *(unsigned int *)initdata->driver_data;
+		if ((seq < 0) || (seq > PM800_ID_RG_MAX)) {
+			dev_err(chip->dev, "Wrong ID(%d) on regulator(%s)\n",
+				seq, initdata->constraints.name);
+			ret = -EINVAL;
+			goto out_err;
+		}
+		memcpy(&regulator_pdata[i], &pdata->regulator[i],
+		       sizeof(struct regulator_init_data));
+		regulator_devs[i].platform_data = &regulator_pdata[i];
+		regulator_devs[i].pdata_size =
+			sizeof(struct regulator_init_data);
+		regulator_devs[i].num_resources = 1;
+		regulator_devs[i].resources = &regulator_resources[seq];
+
+		ret = mfd_add_devices(chip->dev, 0, &regulator_devs[i], 1,
+				      &regulator_resources[seq], 0, NULL);
+		if (ret < 0) {
+			dev_err(chip->dev, "Failed to add regulator subdev\n");
+			goto out_err;
+		}
+	}
+
+	return 0;
+
+out_err:
+	return ret;
+}
+
 static int device_irq_init_800(struct pm80x_chip *chip)
 {
 	struct regmap *map = chip->regmap;
@@ -479,6 +581,12 @@ static int device_800_init(struct pm80x_chip *chip,
 		goto out;
 	}
 
+	ret = device_regulator_init(chip, pdata);
+	if (ret < 0) {
+		dev_err(chip->dev, "[%s]Failed to init regulators\n", __func__);
+		goto out;
+	}
+
 	ret =
 	    mfd_add_devices(chip->dev, 0, &onkey_devs[0],
 			    ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0,
diff --git a/include/linux/mfd/88pm80x.h b/include/linux/mfd/88pm80x.h
index e94537b..2a3a959 100644
--- a/include/linux/mfd/88pm80x.h
+++ b/include/linux/mfd/88pm80x.h
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/regmap.h>
 #include <linux/atomic.h>
+#include <linux/regulator/machine.h>
 
 #define PM80X_VERSION_MASK		(0xFF)	/* 80X chip ID mask */
 enum {
@@ -139,6 +140,51 @@ enum {
 #define PM800_BUCK1_SLP1_SHIFT	0
 #define PM800_BUCK1_SLP1_MASK	(0x3 << PM800_BUCK1_SLP1_SHIFT)
 
+/* page 1 POWER */
+
+/* BUCK4 with DVC[0..3] */
+#define PM800_AUDIO_MODE_CONFIG1	(0x38)
+#define PM800_BUCK3		(0x41)
+#define PM800_BUCK4		(0x42)
+#define PM800_BUCK4_1		(0x43)
+#define PM800_BUCK4_2		(0x44)
+#define PM800_BUCK4_3		(0x45)
+#define PM800_BUCK5		(0x46)
+/* BUCK Sleep Mode Register 2: BUCK5 */
+#define PM800_BUCK_SLP2		(0x5B)
+#define PM800_BUCK5_SLP2_SHIFT	0
+#define PM800_BUCK5_SLP2_MASK	(0x3 << PM800_BUCK5_SLP2_SHIFT)
+
+#define PM800_LDO1_1		(0x08)
+#define PM800_LDO1_2		(0x09)
+#define PM800_LDO1_3		(0x0a)
+#define PM800_LDO2		(0x0b)
+#define PM800_LDO3		(0x0c)
+#define PM800_LDO4		(0x0d)
+#define PM800_LDO5		(0x0e)
+#define PM800_LDO6		(0x0f)
+#define PM800_LDO7		(0x10)
+#define PM800_LDO8		(0x11)
+#define PM800_LDO9		(0x12)
+#define PM800_LDO10		(0x13)
+#define PM800_LDO11		(0x14)
+#define PM800_LDO12		(0x15)
+#define PM800_LDO13		(0x16)
+#define PM800_LDO14		(0x17)
+#define PM800_LDO15		(0x18)
+#define PM800_LDO16		(0x19)
+#define PM800_LDO17		(0x1a)
+#define PM800_LDO18		(0x1b)
+#define PM800_LDO19		(0x1c)
+/* LDO Sleep Mode Register 5: LDO[17..19] */
+#define PM800_LDO_SLP5		(0x60)
+#define PM800_LDO17_SLP5_SHIFT	0
+#define PM800_LDO17_SLP5_MASK	(0x3 << PM800_LDO17_SLP5_SHIFT)
+#define PM800_LDO18_SLP5_SHIFT	2
+#define PM800_LDO18_SLP5_MASK	(0x3 << PM800_LDO18_SLP5_SHIFT)
+#define PM800_LDO19_SLP5_SHIFT	4
+#define PM800_LDO19_SLP5_MASK	(0x3 << PM800_LDO19_SLP5_SHIFT)
+
 /* page 2 GPADC: slave adder 0x02 */
 #define PM800_GPADC_MEAS_EN1		(0x01)
 #define PM800_MEAS_EN1_VBAT         (1 << 2)
@@ -309,10 +355,12 @@ struct pm80x_chip {
 
 struct pm80x_platform_data {
 	struct pm80x_rtc_pdata *rtc;
+	struct regulator_init_data *regulator;
 	unsigned short power_page_addr;	/* power page I2C address */
 	unsigned short gpadc_page_addr;	/* gpadc page I2C address */
 	int irq_mode;		/* Clear interrupt by read/write(0/1) */
 	int batt_det;		/* enable/disable */
+	int num_regulators;
 	int (*plat_config)(struct pm80x_chip *chip,
 				struct pm80x_platform_data *pdata);
 };
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] *** SUBJECT HERE ***
  2013-05-22 12:07 [PATCH 0/3] *** SUBJECT HERE *** yizhang.mrvl
                   ` (3 preceding siblings ...)
  2013-05-22 12:07 ` [PATCH 4/4] mfd: 88pm800: add regulator support yizhang.mrvl
@ 2013-05-22 14:06 ` Greg KH
  2013-05-23 11:04   ` yi zhang
  4 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2013-05-22 14:06 UTC (permalink / raw)
  To: yizhang.mrvl; +Cc: sameo, cxie4, arnd, yizhang, linux-kernel

On Wed, May 22, 2013 at 08:07:05PM +0800, yizhang.mrvl@gmail.com wrote:
> From: Yi Zhang <yizhang@marvell.com>
> 
> These patches fix 88pm800 bugs and add regulator support

What's with the Subject:?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] *** SUBJECT HERE ***
  2013-05-22 14:06 ` [PATCH 0/3] *** SUBJECT HERE *** Greg KH
@ 2013-05-23 11:04   ` yi zhang
  0 siblings, 0 replies; 8+ messages in thread
From: yi zhang @ 2013-05-23 11:04 UTC (permalink / raw)
  To: Greg KH; +Cc: sameo, cxie4, arnd, Yi Zhang, linux-kernel

2013/5/22 Greg KH <gregkh@linuxfoundation.org>:
> On Wed, May 22, 2013 at 08:07:05PM +0800, yizhang.mrvl@gmail.com wrote:
>> From: Yi Zhang <yizhang@marvell.com>
>>
>> These patches fix 88pm800 bugs and add regulator support
>
> What's with the Subject:?
>

Sorry for my mistake, I'll fix it and send patches again;
thanks;

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 2/4] mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag
  2013-05-23 11:10 [PATCH 0/3] mfd: 88pm800: bug fix and add regulator support yizhang.mrvl
@ 2013-05-23 11:10 ` yizhang.mrvl
  0 siblings, 0 replies; 8+ messages in thread
From: yizhang.mrvl @ 2013-05-23 11:10 UTC (permalink / raw)
  To: sameo, gregkh, yizhang.mrvl; +Cc: cxie4, arnd, yizhang, linux-kernel, jtzhou

From: Yi Zhang <yizhang@marvell.com>

for interrupt controller such as GIC who is level triggered,
"IRQF_TRIGGER_FALLING" will fail to request irq

Signed-off-by: Yi Zhang <yizhang@marvell.com>
---
 drivers/mfd/88pm800.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
index bbb6aa8..618a6b9 100644
--- a/drivers/mfd/88pm800.c
+++ b/drivers/mfd/88pm800.c
@@ -318,7 +318,7 @@ out:
 static int device_irq_init_800(struct pm80x_chip *chip)
 {
 	struct regmap *map = chip->regmap;
-	unsigned long flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
+	unsigned long flags = IRQF_ONESHOT;
 	int data, mask, ret = -EINVAL;
 
 	if (!map || !chip->irq) {
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-05-23 11:17 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-22 12:07 [PATCH 0/3] *** SUBJECT HERE *** yizhang.mrvl
2013-05-22 12:07 ` [PATCH 1/4] mfd: 88pm800: fix NULL pointer error yizhang.mrvl
2013-05-22 12:07 ` [PATCH 2/4] mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag yizhang.mrvl
2013-05-22 12:07 ` [PATCH 3/4] mfd: 88pm800: fix probe bug yizhang.mrvl
2013-05-22 12:07 ` [PATCH 4/4] mfd: 88pm800: add regulator support yizhang.mrvl
2013-05-22 14:06 ` [PATCH 0/3] *** SUBJECT HERE *** Greg KH
2013-05-23 11:04   ` yi zhang
2013-05-23 11:10 [PATCH 0/3] mfd: 88pm800: bug fix and add regulator support yizhang.mrvl
2013-05-23 11:10 ` [PATCH 2/4] mfd: 88pm800: remove "IRQF_TRIGGER_FALLING" flag yizhang.mrvl

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.