abx500-chargalg: Store the AB8500 MFD parent device for platform differentiation
authorLee Jones <lee.jones@linaro.org>
Fri, 15 Feb 2013 10:53:57 +0000 (10:53 +0000)
committerLee Jones <lee.jones@linaro.org>
Thu, 7 Mar 2013 04:35:35 +0000 (12:35 +0800)
Any platform can be dynamically probed for model and version number
provided the AB8500 MFD parent device pointer is available. This
patch obtains that pointer and stores it in a locally controlled
struct for later use.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/power/abx500_chargalg.c

index f043c0851a7600d1417711b7f1ec4364e9331985..31507bfe549c403fffb02744e338622bde122d24 100644 (file)
@@ -204,6 +204,7 @@ enum maxim_ret {
  * @batt_data:         data of the battery
  * @susp_status:       current charger suspension status
  * @bm:                Platform specific battery management information
+ * @parent:            pointer to the struct abx500
  * @chargalg_psy:      structure that holds the battery properties exposed by
  *                     the charging algorithm
  * @events:            structure for information about events triggered
@@ -227,6 +228,7 @@ struct abx500_chargalg {
        struct abx500_chargalg_charger_info chg_info;
        struct abx500_chargalg_battery_data batt_data;
        struct abx500_chargalg_suspension_status susp_status;
+       struct ab8500 *parent;
        struct abx500_bm_data *bm;
        struct power_supply chargalg_psy;
        struct ux500_charger *ac_chg;
@@ -1873,8 +1875,9 @@ static int abx500_chargalg_probe(struct platform_device *pdev)
                }
        }
 
-       /* get device struct */
+       /* get device struct and parent */
        di->dev = &pdev->dev;
+       di->parent = dev_get_drvdata(pdev->dev.parent);
 
        /* chargalg supply */
        di->chargalg_psy.name = "abx500_chargalg";