diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-14 13:32:28 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-14 13:32:28 -0500 |
commit | 0a33d88d072ff589f0cfa18212ef8565dc1c82f2 (patch) | |
tree | a0ac4808dac4b71b4505aa86b4b7042dbc88d65e | |
parent | 4675348e78fab420e70f9144b320d9c063c7cee8 (diff) | |
parent | ac323d8d807060f7c95a685a9fe861e7b6300993 (diff) |
Merge tag 'for-v3.14-fixes' of git://git.infradead.org/battery-2.6
Pull battery fixes from Dmitry Eremin-Solenikov:
- Fix NULL pointer dereference in max17040 driver
- Add bq2415x dts bindings documentation
- Fix misleading comment in ds2782 driver
- Remove useless check in isp1704 charger driver.
* tag 'for-v3.14-fixes' of git://git.infradead.org/battery-2.6:
power: max17040: Fix NULL pointer dereference when there is no platform_data
dt: binding documentation for bq2415x charger
isp1704_charger: remove useless check in isp1704_charger_probe()
power: ds2782_battery: Typo in comment
-rw-r--r-- | Documentation/devicetree/bindings/power/bq2415x.txt | 47 | ||||
-rw-r--r-- | drivers/power/ds2782_battery.c | 2 | ||||
-rw-r--r-- | drivers/power/isp1704_charger.c | 2 | ||||
-rw-r--r-- | drivers/power/max17040_battery.c | 5 |
4 files changed, 51 insertions, 5 deletions
diff --git a/Documentation/devicetree/bindings/power/bq2415x.txt b/Documentation/devicetree/bindings/power/bq2415x.txt new file mode 100644 index 000000000000..d0327f0b59ad --- /dev/null +++ b/Documentation/devicetree/bindings/power/bq2415x.txt | |||
@@ -0,0 +1,47 @@ | |||
1 | Binding for TI bq2415x Li-Ion Charger | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should contain one of the following: | ||
5 | * "ti,bq24150" | ||
6 | * "ti,bq24150" | ||
7 | * "ti,bq24150a" | ||
8 | * "ti,bq24151" | ||
9 | * "ti,bq24151a" | ||
10 | * "ti,bq24152" | ||
11 | * "ti,bq24153" | ||
12 | * "ti,bq24153a" | ||
13 | * "ti,bq24155" | ||
14 | * "ti,bq24156" | ||
15 | * "ti,bq24156a" | ||
16 | * "ti,bq24158" | ||
17 | - reg: integer, i2c address of the device. | ||
18 | - ti,current-limit: integer, initial maximum current charger can pull | ||
19 | from power supply in mA. | ||
20 | - ti,weak-battery-voltage: integer, weak battery voltage threshold in mV. | ||
21 | The chip will use slow precharge if battery voltage | ||
22 | is below this value. | ||
23 | - ti,battery-regulation-voltage: integer, maximum charging voltage in mV. | ||
24 | - ti,charge-current: integer, maximum charging current in mA. | ||
25 | - ti,termination-current: integer, charge will be terminated when current in | ||
26 | constant-voltage phase drops below this value (in mA). | ||
27 | - ti,resistor-sense: integer, value of sensing resistor in milliohm. | ||
28 | |||
29 | Optional properties: | ||
30 | - ti,usb-charger-detection: phandle to usb charger detection device. | ||
31 | (required for auto mode) | ||
32 | |||
33 | Example from Nokia N900: | ||
34 | |||
35 | bq24150a { | ||
36 | compatible = "ti,bq24150a"; | ||
37 | reg = <0x6b>; | ||
38 | |||
39 | ti,current-limit = <100>; | ||
40 | ti,weak-battery-voltage = <3400>; | ||
41 | ti,battery-regulation-voltage = <4200>; | ||
42 | ti,charge-current = <650>; | ||
43 | ti,termination-current = <100>; | ||
44 | ti,resistor-sense = <68>; | ||
45 | |||
46 | ti,usb-charger-detection = <&isp1704>; | ||
47 | }; | ||
diff --git a/drivers/power/ds2782_battery.c b/drivers/power/ds2782_battery.c index 563174891c90..041f9b638d28 100644 --- a/drivers/power/ds2782_battery.c +++ b/drivers/power/ds2782_battery.c | |||
@@ -192,7 +192,7 @@ static int ds2786_get_voltage(struct ds278x_info *info, int *voltage_uV) | |||
192 | 192 | ||
193 | /* | 193 | /* |
194 | * Voltage is measured in units of 1.22mV. The voltage is stored as | 194 | * Voltage is measured in units of 1.22mV. The voltage is stored as |
195 | * a 10-bit number plus sign, in the upper bits of a 16-bit register | 195 | * a 12-bit number plus sign, in the upper bits of a 16-bit register |
196 | */ | 196 | */ |
197 | err = ds278x_read_reg16(info, DS278x_REG_VOLT_MSB, &raw); | 197 | err = ds278x_read_reg16(info, DS278x_REG_VOLT_MSB, &raw); |
198 | if (err) | 198 | if (err) |
diff --git a/drivers/power/isp1704_charger.c b/drivers/power/isp1704_charger.c index 80edb7d8cb54..0b4cf9d63291 100644 --- a/drivers/power/isp1704_charger.c +++ b/drivers/power/isp1704_charger.c | |||
@@ -444,8 +444,6 @@ static int isp1704_charger_probe(struct platform_device *pdev) | |||
444 | ret = PTR_ERR(isp->phy); | 444 | ret = PTR_ERR(isp->phy); |
445 | goto fail0; | 445 | goto fail0; |
446 | } | 446 | } |
447 | if (!isp->phy) | ||
448 | goto fail0; | ||
449 | 447 | ||
450 | isp->dev = &pdev->dev; | 448 | isp->dev = &pdev->dev; |
451 | platform_set_drvdata(pdev, isp); | 449 | platform_set_drvdata(pdev, isp); |
diff --git a/drivers/power/max17040_battery.c b/drivers/power/max17040_battery.c index c7ff6d67f158..0fbac861080d 100644 --- a/drivers/power/max17040_battery.c +++ b/drivers/power/max17040_battery.c | |||
@@ -148,7 +148,7 @@ static void max17040_get_online(struct i2c_client *client) | |||
148 | { | 148 | { |
149 | struct max17040_chip *chip = i2c_get_clientdata(client); | 149 | struct max17040_chip *chip = i2c_get_clientdata(client); |
150 | 150 | ||
151 | if (chip->pdata->battery_online) | 151 | if (chip->pdata && chip->pdata->battery_online) |
152 | chip->online = chip->pdata->battery_online(); | 152 | chip->online = chip->pdata->battery_online(); |
153 | else | 153 | else |
154 | chip->online = 1; | 154 | chip->online = 1; |
@@ -158,7 +158,8 @@ static void max17040_get_status(struct i2c_client *client) | |||
158 | { | 158 | { |
159 | struct max17040_chip *chip = i2c_get_clientdata(client); | 159 | struct max17040_chip *chip = i2c_get_clientdata(client); |
160 | 160 | ||
161 | if (!chip->pdata->charger_online || !chip->pdata->charger_enable) { | 161 | if (!chip->pdata || !chip->pdata->charger_online |
162 | || !chip->pdata->charger_enable) { | ||
162 | chip->status = POWER_SUPPLY_STATUS_UNKNOWN; | 163 | chip->status = POWER_SUPPLY_STATUS_UNKNOWN; |
163 | return; | 164 | return; |
164 | } | 165 | } |