diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2013-05-05 18:54:51 +0200 |
---|---|---|
committer | Paul Kocialkowski <contact@paulk.fr> | 2013-05-05 18:54:51 +0200 |
commit | 737e645e2a4e063be4b70e51bb19fad30a7c497e (patch) | |
tree | f124c35233b990d19408542634d670f7f7c529ce | |
parent | 1b0dad0c66906c3f731e9d7b43729984e81a4386 (diff) | |
download | kernel_goldelico_gta04-737e645e2a4e063be4b70e51bb19fad30a7c497e.zip kernel_goldelico_gta04-737e645e2a4e063be4b70e51bb19fad30a7c497e.tar.gz kernel_goldelico_gta04-737e645e2a4e063be4b70e51bb19fad30a7c497e.tar.bz2 |
w1_bq27000: properly register platform device
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
-rw-r--r-- | drivers/w1/slaves/w1_bq27000.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/w1/slaves/w1_bq27000.c b/drivers/w1/slaves/w1_bq27000.c index c876e37..24b919f 100644 --- a/drivers/w1/slaves/w1_bq27000.c +++ b/drivers/w1/slaves/w1_bq27000.c @@ -15,6 +15,7 @@ #include <linux/types.h> #include <linux/platform_device.h> #include <linux/mutex.h> +#include <linux/power/bq27x00_battery.h> #include "../w1.h" #include "../w1_int.h" @@ -27,7 +28,7 @@ static int F_ID; void w1_bq27000_write(struct device *dev, u8 buf, u8 reg) { - struct w1_slave *sl = container_of(dev, struct w1_slave, dev); + struct w1_slave *sl = container_of(dev->parent, struct w1_slave, dev); if (!dev) { pr_info("Could not obtain slave dev ptr\n"); @@ -39,10 +40,10 @@ void w1_bq27000_write(struct device *dev, u8 buf, u8 reg) } EXPORT_SYMBOL(w1_bq27000_write); -int w1_bq27000_read(struct device *dev, u8 reg) +int w1_bq27000_read(struct device *dev, unsigned int reg) { u8 val; - struct w1_slave *sl = container_of(dev, struct w1_slave, dev); + struct w1_slave *sl = container_of(dev->parent, struct w1_slave, dev); if (!dev) return 0; @@ -56,17 +57,24 @@ int w1_bq27000_read(struct device *dev, u8 reg) } EXPORT_SYMBOL(w1_bq27000_read); +static struct bq27000_platform_data bq27000_battery_info = { + .read = w1_bq27000_read, + .name = "bq27000-battery", +}; + static int w1_bq27000_add_slave(struct w1_slave *sl) { int ret; - int id = 1; struct platform_device *pdev; - pdev = platform_device_alloc("bq27000-battery", id); + pdev = platform_device_alloc("bq27000-battery", -1); if (!pdev) { ret = -ENOMEM; return ret; } + ret = platform_device_add_data(pdev, + &bq27000_battery_info, + sizeof(bq27000_battery_info)); pdev->dev.parent = &sl->dev; ret = platform_device_add(pdev); |