diff --git a/[refs] b/[refs] index c1b916b0b3f6..144311f05640 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bc5bca53cca350eb90fc9f84c2e37ba6383807c3 +refs/heads/master: 9f3519d2ed26d2ede5b6432fb64af0e7e8ed13e3 diff --git a/trunk/drivers/w1/slaves/w1_bq27000.c b/trunk/drivers/w1/slaves/w1_bq27000.c index 8f4c91f6c680..8f10fd2630a0 100644 --- a/trunk/drivers/w1/slaves/w1_bq27000.c +++ b/trunk/drivers/w1/slaves/w1_bq27000.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "../w1.h" #include "../w1_int.h" @@ -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) +static 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; @@ -52,19 +53,25 @@ int w1_bq27000_read(struct device *dev, u8 reg) return val; } -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);