From 5d3fe6e3707774d5e2122ba139df6bfd76db63e5 Mon Sep 17 00:00:00 2001 From: Grazvydas Ignotas Date: Sun, 15 Jan 2012 00:05:12 +0200 Subject: [PATCH] twl4030_charger: pass supplied_to through platform_data --- arch/arm/mach-omap2/board-omap3pandora.c | 9 ++++++++- drivers/power/twl4030_charger.c | 10 ++++++++++ include/linux/i2c/twl.h | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 247a8ebca2f0..44cc3bc4f65a 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -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, diff --git a/drivers/power/twl4030_charger.c b/drivers/power/twl4030_charger.c index 3095a9c1c9fb..ac0c551203dc 100644 --- a/drivers/power/twl4030_charger.c +++ b/drivers/power/twl4030_charger.c @@ -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) { diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 114c0f6fc63d..11e3b95133b9 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h @@ -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 */ -- 2.39.2