Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 324319
b: refs/heads/master
c: d2323cf
h: refs/heads/master
i:
  324317: 3ac99ba
  324315: 4f79399
  324311: be71d61
  324303: cfe2e18
  324287: 901c993
v: v3
  • Loading branch information
Daniel Mack authored and Greg Kroah-Hartman committed Aug 16, 2012
1 parent 8f5d24e commit 6190633
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5f3d1382e3ca39a54032784414f0ad4e7078b37e
refs/heads/master: d2323cf77308d6aa13a3a5287310ef93c4919d1e
18 changes: 17 additions & 1 deletion trunk/drivers/w1/masters/w1-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,13 @@ static int __init w1_gpio_probe(struct platform_device *pdev)
if (err)
goto free_master;

if (gpio_is_valid(pdata->ext_pullup_enable_pin)) {
err = gpio_request_one(pdata->ext_pullup_enable_pin,
GPIOF_INIT_LOW, "w1 pullup");
if (err < 0)
goto free_gpio;
}

master->data = pdata;
master->read_bit = w1_gpio_read_bit;

Expand All @@ -117,15 +124,21 @@ static int __init w1_gpio_probe(struct platform_device *pdev)

err = w1_add_master_device(master);
if (err)
goto free_gpio;
goto free_gpio_ext_pu;

if (pdata->enable_external_pullup)
pdata->enable_external_pullup(1);

if (gpio_is_valid(pdata->ext_pullup_enable_pin))
gpio_set_value(pdata->ext_pullup_enable_pin, 1);

platform_set_drvdata(pdev, master);

return 0;

free_gpio_ext_pu:
if (gpio_is_valid(pdata->ext_pullup_enable_pin))
gpio_free(pdata->ext_pullup_enable_pin);
free_gpio:
gpio_free(pdata->pin);
free_master:
Expand All @@ -142,6 +155,9 @@ static int __exit w1_gpio_remove(struct platform_device *pdev)
if (pdata->enable_external_pullup)
pdata->enable_external_pullup(0);

if (gpio_is_valid(pdata->ext_pullup_enable_pin))
gpio_set_value(pdata->ext_pullup_enable_pin, 0);

w1_remove_master_device(master);
gpio_free(pdata->pin);
kfree(master);
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/w1-gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ struct w1_gpio_platform_data {
unsigned int pin;
unsigned int is_open_drain:1;
void (*enable_external_pullup)(int enable);
unsigned int ext_pullup_enable_pin;
};

#endif /* _LINUX_W1_GPIO_H */

0 comments on commit 6190633

Please sign in to comment.