drivers: max77693: Move state container to common header
authorKrzysztof Kozlowski <k.kozlowski.k@gmail.com>
Wed, 15 Jul 2015 12:59:50 +0000 (21:59 +0900)
committerMark Brown <broonie@kernel.org>
Thu, 16 Jul 2015 20:39:30 +0000 (21:39 +0100)
This prepares for merging some of the drivers between max77693 and
max77843 so the child MFD driver can be attached to any parent MFD main
driver.

Move the state container to common header file. Additionally add
consistent 'i2c' prefixes to its members (of 'struct i2c_client' type).

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Acked-by: Sebastian Reichel <sre@kernel.org>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/extcon/extcon-max77693.c
drivers/input/misc/max77693-haptic.c
drivers/leds/leds-max77693.c
drivers/mfd/max77693.c
drivers/power/max77693_charger.c
drivers/regulator/max77693.c
include/linux/mfd/max77693-common.h [new file with mode: 0644]
include/linux/mfd/max77693-private.h

index 770db3a72a6a342083e270bf6548b92506e954aa..c7bb180cfff456939c1e72621c876b6ed4496763 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/err.h>
 #include <linux/platform_device.h>
 #include <linux/mfd/max77693.h>
+#include <linux/mfd/max77693-common.h>
 #include <linux/mfd/max77693-private.h>
 #include <linux/extcon.h>
 #include <linux/regmap.h>
@@ -1077,7 +1078,7 @@ static int max77693_muic_probe(struct platform_device *pdev)
                dev_dbg(&pdev->dev, "allocate register map\n");
        } else {
                info->max77693->regmap_muic = devm_regmap_init_i2c(
-                                               info->max77693->muic,
+                                               info->max77693->i2c_muic,
                                                &max77693_muic_regmap_config);
                if (IS_ERR(info->max77693->regmap_muic)) {
                        ret = PTR_ERR(info->max77693->regmap_muic);
index 39e930c10ebbd9d46154dff935aa05404b5918d8..4524499ea72fd756bf23aac8c6465636f59d6e99 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/workqueue.h>
 #include <linux/regulator/consumer.h>
 #include <linux/mfd/max77693.h>
+#include <linux/mfd/max77693-common.h>
 #include <linux/mfd/max77693-private.h>
 
 #define MAX_MAGNITUDE_SHIFT    16
index b8b0eec7b54058cb1c671e4e76739277589406aa..df348a06d8c71faa60d80530f29bec8a050469dc 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <linux/led-class-flash.h>
 #include <linux/mfd/max77693.h>
+#include <linux/mfd/max77693-common.h>
 #include <linux/mfd/max77693-private.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
index cb14afa97e6fbbf9403cd55687b39d43de5a7919..67bc53fdc38927a206c3d44b505afe4e8747a5fa 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/mutex.h>
 #include <linux/mfd/core.h>
 #include <linux/mfd/max77693.h>
+#include <linux/mfd/max77693-common.h>
 #include <linux/mfd/max77693-private.h>
 #include <linux/regulator/machine.h>
 #include <linux/regmap.h>
@@ -193,22 +194,22 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
        } else
                dev_info(max77693->dev, "device ID: 0x%x\n", reg_data);
 
-       max77693->muic = i2c_new_dummy(i2c->adapter, I2C_ADDR_MUIC);
-       if (!max77693->muic) {
+       max77693->i2c_muic = i2c_new_dummy(i2c->adapter, I2C_ADDR_MUIC);
+       if (!max77693->i2c_muic) {
                dev_err(max77693->dev, "Failed to allocate I2C device for MUIC\n");
                return -ENODEV;
        }
-       i2c_set_clientdata(max77693->muic, max77693);
+       i2c_set_clientdata(max77693->i2c_muic, max77693);
 
-       max77693->haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC);
-       if (!max77693->haptic) {
+       max77693->i2c_haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC);
+       if (!max77693->i2c_haptic) {
                dev_err(max77693->dev, "Failed to allocate I2C device for Haptic\n");
                ret = -ENODEV;
                goto err_i2c_haptic;
        }
-       i2c_set_clientdata(max77693->haptic, max77693);
+       i2c_set_clientdata(max77693->i2c_haptic, max77693);
 
-       max77693->regmap_haptic = devm_regmap_init_i2c(max77693->haptic,
+       max77693->regmap_haptic = devm_regmap_init_i2c(max77693->i2c_haptic,
                                        &max77693_regmap_haptic_config);
        if (IS_ERR(max77693->regmap_haptic)) {
                ret = PTR_ERR(max77693->regmap_haptic);
@@ -222,7 +223,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
         * instance of MUIC device when irq of max77693 is initialized
         * before call max77693-muic probe() function.
         */
-       max77693->regmap_muic = devm_regmap_init_i2c(max77693->muic,
+       max77693->regmap_muic = devm_regmap_init_i2c(max77693->i2c_muic,
                                         &max77693_regmap_muic_config);
        if (IS_ERR(max77693->regmap_muic)) {
                ret = PTR_ERR(max77693->regmap_muic);
@@ -255,7 +256,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
                                IRQF_ONESHOT | IRQF_SHARED |
                                IRQF_TRIGGER_FALLING, 0,
                                &max77693_charger_irq_chip,
-                               &max77693->irq_data_charger);
+                               &max77693->irq_data_chg);
        if (ret) {
                dev_err(max77693->dev, "failed to add irq chip: %d\n", ret);
                goto err_irq_charger;
@@ -296,15 +297,15 @@ err_mfd:
 err_intsrc:
        regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic);
 err_irq_muic:
-       regmap_del_irq_chip(max77693->irq, max77693->irq_data_charger);
+       regmap_del_irq_chip(max77693->irq, max77693->irq_data_chg);
 err_irq_charger:
        regmap_del_irq_chip(max77693->irq, max77693->irq_data_topsys);
 err_irq_topsys:
        regmap_del_irq_chip(max77693->irq, max77693->irq_data_led);
 err_regmap:
-       i2c_unregister_device(max77693->haptic);
+       i2c_unregister_device(max77693->i2c_haptic);
 err_i2c_haptic:
-       i2c_unregister_device(max77693->muic);
+       i2c_unregister_device(max77693->i2c_muic);
        return ret;
 }
 
@@ -315,12 +316,12 @@ static int max77693_i2c_remove(struct i2c_client *i2c)
        mfd_remove_devices(max77693->dev);
 
        regmap_del_irq_chip(max77693->irq, max77693->irq_data_muic);
-       regmap_del_irq_chip(max77693->irq, max77693->irq_data_charger);
+       regmap_del_irq_chip(max77693->irq, max77693->irq_data_chg);
        regmap_del_irq_chip(max77693->irq, max77693->irq_data_topsys);
        regmap_del_irq_chip(max77693->irq, max77693->irq_data_led);
 
-       i2c_unregister_device(max77693->muic);
-       i2c_unregister_device(max77693->haptic);
+       i2c_unregister_device(max77693->i2c_muic);
+       i2c_unregister_device(max77693->i2c_haptic);
 
        return 0;
 }
index 754879eb59f67b878fc70b6b19dc10935c15d257..060cab5ae3aa2de0f91e2d6b376e2daa7b2b1863 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/power_supply.h>
 #include <linux/regmap.h>
 #include <linux/mfd/max77693.h>
+#include <linux/mfd/max77693-common.h>
 #include <linux/mfd/max77693-private.h>
 
 #define MAX77693_CHARGER_NAME                          "max77693-charger"
index 236851ab575a4a9a5ee03142a7e8eff9a9e6c9bf..c6ab440a74b7816cc88f1ca55548d3dcba5b5c61 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
 #include <linux/mfd/max77693.h>
+#include <linux/mfd/max77693-common.h>
 #include <linux/mfd/max77693-private.h>
 #include <linux/regulator/of_regulator.h>
 #include <linux/regmap.h>
diff --git a/include/linux/mfd/max77693-common.h b/include/linux/mfd/max77693-common.h
new file mode 100644 (file)
index 0000000..7da4cc3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Common data shared between Maxim 77693 and 77843 drivers
+ *
+ * Copyright (C) 2015 Samsung Electronics
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#ifndef __LINUX_MFD_MAX77693_COMMON_H
+#define __LINUX_MFD_MAX77693_COMMON_H
+
+enum max77693_types {
+       TYPE_MAX77693_UNKNOWN,
+       TYPE_MAX77693,
+};
+
+/*
+ * Shared also with max77843.
+ */
+struct max77693_dev {
+       struct device *dev;
+       struct i2c_client *i2c;         /* 0xCC , PMIC, Charger, Flash LED */
+       struct i2c_client *i2c_muic;    /* 0x4A , MUIC */
+       struct i2c_client *i2c_haptic;  /* MAX77693: 0x90 , Haptic */
+
+       enum max77693_types type;
+
+       struct regmap *regmap;
+       struct regmap *regmap_muic;
+       struct regmap *regmap_haptic;   /* Only MAX77693 */
+
+       struct regmap_irq_chip_data *irq_data_led;
+       struct regmap_irq_chip_data *irq_data_topsys;
+       struct regmap_irq_chip_data *irq_data_chg; /* Only MAX77693 */
+       struct regmap_irq_chip_data *irq_data_muic;
+
+       int irq;
+};
+
+
+#endif /*  __LINUX_MFD_MAX77693_COMMON_H */
index e3c0afff38d3f81a9847d70bb4d51c0c394a0fcb..8c4143c0c651ab50ec1e0500ad6a6071373a50df 100644 (file)
@@ -529,29 +529,4 @@ enum max77693_irq_muic {
        MAX77693_MUIC_IRQ_NR,
 };
 
-enum max77693_types {
-       TYPE_MAX77693_UNKNOWN,
-       TYPE_MAX77693,
-};
-
-struct max77693_dev {
-       struct device *dev;
-       struct i2c_client *i2c;         /* 0xCC , PMIC, Charger, Flash LED */
-       struct i2c_client *muic;        /* 0x4A , MUIC */
-       struct i2c_client *haptic;      /* 0x90 , Haptic */
-
-       enum max77693_types type;
-
-       struct regmap *regmap;
-       struct regmap *regmap_muic;
-       struct regmap *regmap_haptic;
-
-       struct regmap_irq_chip_data *irq_data_led;
-       struct regmap_irq_chip_data *irq_data_topsys;
-       struct regmap_irq_chip_data *irq_data_charger;
-       struct regmap_irq_chip_data *irq_data_muic;
-
-       int irq;
-};
-
 #endif /*  __LINUX_MFD_MAX77693_PRIV_H */