Pull the complex condition in regulator_quirk_notify() into
regulator_quirk_check(). Moreover, do not hard-code the I2C
address, but rather use the one in da9xxx_msgs[].

Signed-off-by: Marek Vasut <[email protected]>
Cc: Geert Uytterhoeven <[email protected]>
Cc: Kuninori Morimoto <[email protected]>
Cc: Simon Horman <[email protected]>
Cc: Wolfram Sang <[email protected]>
---
 arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c 
b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index 27fb3a5ec73e..862f7757ef5d 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -66,6 +66,13 @@ static struct i2c_msg da9xxx_msgs[3] = {
        },
 };
 
+static int regulator_quirk_check(struct i2c_client *client, u8 i2c_id,
+                                char *compat_string)
+{
+       return client->addr == da9xxx_msgs[i2c_id].addr &&
+              !strcmp(client->name, compat_string);
+}
+
 static int regulator_quirk_notify(struct notifier_block *nb,
                                  unsigned long action, void *data)
 {
@@ -88,9 +95,9 @@ static int regulator_quirk_notify(struct notifier_block *nb,
        client = to_i2c_client(dev);
        dev_dbg(dev, "Detected %s\n", client->name);
 
-       if ((client->addr == 0x58 && !strcmp(client->name, "da9063")) ||
-           (client->addr == 0x68 && !strcmp(client->name, "da9210")) ||
-           (client->addr == 0x70 && !strcmp(client->name, "da9210"))) {
+       if (regulator_quirk_check(client, 0, "da9063") ||
+           regulator_quirk_check(client, 1, "da9210") ||
+           regulator_quirk_check(client, 2, "da9210")) {
                int ret, len;
 
                /* There are two DA9210 on Stout, one on the other boards. */
-- 
2.15.1

Reply via email to