aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index 8e50daa99151..dc526ef2e9b3 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -40,6 +40,7 @@
40struct regulator_quirk { 40struct regulator_quirk {
41 struct list_head list; 41 struct list_head list;
42 const struct of_device_id *id; 42 const struct of_device_id *id;
43 struct device_node *np;
43 struct of_phandle_args irq_args; 44 struct of_phandle_args irq_args;
44 struct i2c_msg i2c_msg; 45 struct i2c_msg i2c_msg;
45 bool shared; /* IRQ line is shared */ 46 bool shared; /* IRQ line is shared */
@@ -101,6 +102,9 @@ static int regulator_quirk_notify(struct notifier_block *nb,
101 if (!pos->shared) 102 if (!pos->shared)
102 continue; 103 continue;
103 104
105 if (pos->np->parent != client->dev.parent->of_node)
106 continue;
107
104 dev_info(&client->dev, "clearing %s@0x%02x interrupts\n", 108 dev_info(&client->dev, "clearing %s@0x%02x interrupts\n",
105 pos->id->compatible, pos->i2c_msg.addr); 109 pos->id->compatible, pos->i2c_msg.addr);
106 110
@@ -165,6 +169,7 @@ static int __init rcar_gen2_regulator_quirk(void)
165 memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); 169 memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg));
166 170
167 quirk->id = id; 171 quirk->id = id;
172 quirk->np = np;
168 quirk->i2c_msg.addr = addr; 173 quirk->i2c_msg.addr = addr;
169 174
170 ret = of_irq_parse_one(np, 0, argsa); 175 ret = of_irq_parse_one(np, 0, argsa);