twl4030_charger: pass supplied_to through platform_data
authorGrazvydas Ignotas <notasas@gmail.com>
Sat, 14 Jan 2012 22:05:12 +0000 (00:05 +0200)
committerGrazvydas Ignotas <notasas@gmail.com>
Sat, 14 Jan 2012 22:16:43 +0000 (00:16 +0200)
arch/arm/mach-omap2/board-omap3pandora.c
drivers/power/twl4030_charger.c
include/linux/i2c/twl.h

index 247a8eb..44cc3bc 100644 (file)
@@ -556,7 +556,14 @@ static struct platform_device pandora_vwlan_device = {
        },
 };
 
-static struct twl4030_bci_platform_data pandora_bci_data;
+static char *pandora_power_supplied_to[] = {
+       "bq27500-0",
+};
+
+static struct twl4030_bci_platform_data pandora_bci_data = {
+       .supplied_to            = pandora_power_supplied_to,
+       .num_supplicants        = ARRAY_SIZE(pandora_power_supplied_to),
+};
 
 static struct twl4030_power_data pandora_power_data = {
        .use_poweroff   = 1,
index 3095a9c..ac0c551 100644 (file)
@@ -511,10 +511,16 @@ static enum power_supply_property twl4030_charger_props[] = {
 
 static int __init twl4030_bci_probe(struct platform_device *pdev)
 {
+       const struct twl4030_bci_platform_data *pdata = pdev->dev.platform_data;
        struct twl4030_bci *bci;
        int ret;
        u32 reg;
 
+       if (pdata == NULL) {
+               dev_err(&pdev->dev, "No platform data\n");
+               return -EINVAL;
+       }
+
        bci = kzalloc(sizeof(*bci), GFP_KERNEL);
        if (bci == NULL)
                return -ENOMEM;
@@ -532,6 +538,8 @@ static int __init twl4030_bci_probe(struct platform_device *pdev)
        bci->ac.properties = twl4030_charger_props;
        bci->ac.num_properties = ARRAY_SIZE(twl4030_charger_props);
        bci->ac.get_property = twl4030_bci_get_property;
+       bci->ac.supplied_to = pdata->supplied_to;
+       bci->ac.num_supplicants = pdata->num_supplicants;
 
        ret = power_supply_register(&pdev->dev, &bci->ac);
        if (ret) {
@@ -544,6 +552,8 @@ static int __init twl4030_bci_probe(struct platform_device *pdev)
        bci->usb.properties = twl4030_charger_props;
        bci->usb.num_properties = ARRAY_SIZE(twl4030_charger_props);
        bci->usb.get_property = twl4030_bci_get_property;
+       bci->usb.supplied_to = pdata->supplied_to;
+       bci->usb.num_supplicants = pdata->num_supplicants;
 
        ret = power_supply_register(&pdev->dev, &bci->usb);
        if (ret) {
index 114c0f6..11e3b95 100644 (file)
@@ -557,6 +557,8 @@ struct twl4030_clock_init_data {
 struct twl4030_bci_platform_data {
        int *battery_tmp_tbl;
        unsigned int tblsize;
+       char **supplied_to;
+       size_t num_supplicants;
 };
 
 /* TWL4030_GPIO_MAX (18) GPIOs, with interrupts */