drivers/nfc/pn544.c: add missing regulator
The regulator framework is used for power management. The regulators are only named in the driver code, the actual control stuff is in the board file for each architecture or use case. The PN544 chip has three regulators that can be controlled or not - depending on the architecture where the chip is being used. So some of the regulators may not be controllable. In our current case the third regulator, which was missing from the code, went unnoticed because we didn't need to control it. To be as general as possible - in this respect - the driver needs to list all regulators. Then the board file can be used to actually set the usage. Signed-off-by: Matti J. Aaltonen <matti.j.aaltonen@nokia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
d73fa4b914
Коммит
ac3c830419
|
@ -60,7 +60,7 @@ enum pn544_irq {
|
|||
struct pn544_info {
|
||||
struct miscdevice miscdev;
|
||||
struct i2c_client *i2c_dev;
|
||||
struct regulator_bulk_data regs[2];
|
||||
struct regulator_bulk_data regs[3];
|
||||
|
||||
enum pn544_state state;
|
||||
wait_queue_head_t read_wait;
|
||||
|
@ -74,6 +74,7 @@ struct pn544_info {
|
|||
|
||||
static const char reg_vdd_io[] = "Vdd_IO";
|
||||
static const char reg_vbat[] = "VBat";
|
||||
static const char reg_vsim[] = "VSim";
|
||||
|
||||
/* sysfs interface */
|
||||
static ssize_t pn544_test(struct device *dev,
|
||||
|
@ -740,6 +741,7 @@ static int __devinit pn544_probe(struct i2c_client *client,
|
|||
|
||||
info->regs[0].supply = reg_vdd_io;
|
||||
info->regs[1].supply = reg_vbat;
|
||||
info->regs[2].supply = reg_vsim;
|
||||
r = regulator_bulk_get(&client->dev, ARRAY_SIZE(info->regs),
|
||||
info->regs);
|
||||
if (r < 0)
|
||||
|
|
Загрузка…
Ссылка в новой задаче