Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: tps62360: replacing legacy gpio interface for gpiod

Removing all linux/gpio.h and linux/of_gpio.h dependencies and replacing
them with the gpiod interface.

Signed-off-by: Maíra Canal <maira.canal@usp.br>
Link: https://lore.kernel.org/r/YWxmL2baF5AdzyHv@fedora
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Maíra Canal and committed by
Mark Brown
6a8b5bb0 061514db

+26 -39
+26 -33
drivers/regulator/tps62360-regulator.c
··· 28 28 #include <linux/err.h> 29 29 #include <linux/of.h> 30 30 #include <linux/of_device.h> 31 - #include <linux/of_gpio.h> 32 31 #include <linux/regulator/of_regulator.h> 33 32 #include <linux/platform_device.h> 34 33 #include <linux/regulator/driver.h> 35 34 #include <linux/regulator/machine.h> 36 35 #include <linux/regulator/tps62360.h> 37 - #include <linux/gpio.h> 36 + #include <linux/gpio/consumer.h> 38 37 #include <linux/i2c.h> 39 38 #include <linux/slab.h> 40 39 #include <linux/regmap.h> ··· 64 65 struct regulator_desc desc; 65 66 struct regulator_dev *rdev; 66 67 struct regmap *regmap; 67 - int vsel0_gpio; 68 - int vsel1_gpio; 68 + struct gpio_desc *vsel0_gpio; 69 + struct gpio_desc *vsel1_gpio; 69 70 u8 voltage_reg_mask; 70 71 bool en_internal_pulldn; 71 72 bool en_discharge; ··· 164 165 165 166 /* Select proper VSET register vio gpios */ 166 167 if (tps->valid_gpios) { 167 - gpio_set_value_cansleep(tps->vsel0_gpio, new_vset_id & 0x1); 168 - gpio_set_value_cansleep(tps->vsel1_gpio, 168 + gpiod_set_value_cansleep(tps->vsel0_gpio, new_vset_id & 0x1); 169 + gpiod_set_value_cansleep(tps->vsel1_gpio, 169 170 (new_vset_id >> 1) & 0x1); 170 171 } 171 172 return 0; ··· 309 310 return NULL; 310 311 } 311 312 312 - pdata->vsel0_gpio = of_get_named_gpio(np, "vsel0-gpio", 0); 313 - pdata->vsel1_gpio = of_get_named_gpio(np, "vsel1-gpio", 0); 314 - 315 313 if (of_find_property(np, "ti,vsel0-state-high", NULL)) 316 314 pdata->vsel0_def_state = 1; 317 315 ··· 345 349 int ret; 346 350 int i; 347 351 int chip_id; 352 + int gpio_flags; 348 353 349 354 pdata = dev_get_platdata(&client->dev); 350 355 ··· 387 390 388 391 tps->en_discharge = pdata->en_discharge; 389 392 tps->en_internal_pulldn = pdata->en_internal_pulldn; 390 - tps->vsel0_gpio = pdata->vsel0_gpio; 391 - tps->vsel1_gpio = pdata->vsel1_gpio; 392 393 tps->dev = &client->dev; 393 394 394 395 switch (chip_id) { ··· 421 426 tps->lru_index[0] = tps->curr_vset_id; 422 427 tps->valid_gpios = false; 423 428 424 - if (gpio_is_valid(tps->vsel0_gpio) && gpio_is_valid(tps->vsel1_gpio)) { 425 - int gpio_flags; 426 - gpio_flags = (pdata->vsel0_def_state) ? 427 - GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW; 428 - ret = devm_gpio_request_one(&client->dev, tps->vsel0_gpio, 429 - gpio_flags, "tps62360-vsel0"); 430 - if (ret) { 431 - dev_err(&client->dev, 432 - "%s(): Could not obtain vsel0 GPIO %d: %d\n", 433 - __func__, tps->vsel0_gpio, ret); 434 - return ret; 435 - } 429 + gpio_flags = (pdata->vsel0_def_state) ? 430 + GPIOD_OUT_HIGH : GPIOD_OUT_LOW; 431 + tps->vsel0_gpio = devm_gpiod_get_optional(&client->dev, "vsel0", gpio_flags); 432 + if (IS_ERR(tps->vsel0_gpio)) { 433 + dev_err(&client->dev, 434 + "%s(): Could not obtain vsel0 GPIO: %ld\n", 435 + __func__, PTR_ERR(tps->vsel0_gpio)); 436 + return PTR_ERR(tps->vsel0_gpio); 437 + } 436 438 437 - gpio_flags = (pdata->vsel1_def_state) ? 438 - GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW; 439 - ret = devm_gpio_request_one(&client->dev, tps->vsel1_gpio, 440 - gpio_flags, "tps62360-vsel1"); 441 - if (ret) { 442 - dev_err(&client->dev, 443 - "%s(): Could not obtain vsel1 GPIO %d: %d\n", 444 - __func__, tps->vsel1_gpio, ret); 445 - return ret; 446 - } 439 + gpio_flags = (pdata->vsel1_def_state) ? 440 + GPIOD_OUT_HIGH : GPIOD_OUT_LOW; 441 + tps->vsel1_gpio = devm_gpiod_get_optional(&client->dev, "vsel1", gpio_flags); 442 + if (IS_ERR(tps->vsel1_gpio)) { 443 + dev_err(&client->dev, 444 + "%s(): Could not obtain vsel1 GPIO: %ld\n", 445 + __func__, PTR_ERR(tps->vsel1_gpio)); 446 + return PTR_ERR(tps->vsel1_gpio); 447 + } 448 + 449 + if (tps->vsel0_gpio != NULL && tps->vsel1_gpio != NULL) { 447 450 tps->valid_gpios = true; 448 451 449 452 /*
-6
include/linux/regulator/tps62360.h
··· 19 19 * @en_discharge: Enable discharge the output capacitor via internal 20 20 * register. 21 21 * @en_internal_pulldn: internal pull down enable or not. 22 - * @vsel0_gpio: Gpio number for vsel0. It should be -1 if this is tied with 23 - * fixed logic. 24 - * @vsel1_gpio: Gpio number for vsel1. It should be -1 if this is tied with 25 - * fixed logic. 26 22 * @vsel0_def_state: Default state of vsel0. 1 if it is high else 0. 27 23 * @vsel1_def_state: Default state of vsel1. 1 if it is high else 0. 28 24 */ ··· 26 30 struct regulator_init_data *reg_init_data; 27 31 bool en_discharge; 28 32 bool en_internal_pulldn; 29 - int vsel0_gpio; 30 - int vsel1_gpio; 31 33 int vsel0_def_state; 32 34 int vsel1_def_state; 33 35 };