[04/21] regulator: da9055: Pass descriptor instead of GPIO number

Message ID 20180212131717.27193-5-linus.walleij@linaro.org
State New
Headers show
Series
  • regulator: switch core to GPIO descriptors
Related show

Commit Message

Linus Walleij Feb. 12, 2018, 1:17 p.m.
When setting up a fixed regulator on the DA9055, pass a descriptor
instead of a global GPIO number. This facility is not used in the
kernel so we can easily just say that this should be a descriptor
if/when put to use.

Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Lee: would be nice if you could ACK this smallish patch
to the MFD header.
---
 drivers/regulator/da9055-regulator.c | 4 ++--
 include/linux/mfd/da9055/pdata.h     | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

Comments

Lee Jones Feb. 12, 2018, 2:59 p.m. | #1
On Mon, 12 Feb 2018, Linus Walleij wrote:

> When setting up a fixed regulator on the DA9055, pass a descriptor
> instead of a global GPIO number. This facility is not used in the
> kernel so we can easily just say that this should be a descriptor
> if/when put to use.
> 
> Cc: Lee Jones <lee.jones@linaro.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Lee: would be nice if you could ACK this smallish patch
> to the MFD header.

Fine, but any sign of a conflict and I'll need a PR.

Acked-by: Lee Jones <lee.jones@linaro.org>

> ---
>  drivers/regulator/da9055-regulator.c | 4 ++--
>  include/linux/mfd/da9055/pdata.h     | 5 +++--
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/regulator/da9055-regulator.c b/drivers/regulator/da9055-regulator.c
> index d029c941a1e1..f40c3b8644ae 100644
> --- a/drivers/regulator/da9055-regulator.c
> +++ b/drivers/regulator/da9055-regulator.c
> @@ -16,6 +16,7 @@
>  #include <linux/init.h>
>  #include <linux/err.h>
>  #include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
>  #include <linux/platform_device.h>
>  #include <linux/regulator/driver.h>
>  #include <linux/regulator/machine.h>
> @@ -455,8 +456,7 @@ static int da9055_gpio_init(struct da9055_regulator *regulator,
>  		char name[18];
>  		int gpio_mux = pdata->gpio_ren[id];
>  
> -		config->ena_gpio = pdata->ena_gpio[id];
> -		config->ena_gpio_flags = GPIOF_OUT_INIT_HIGH;
> +		config->ena_gpiod = pdata->ena_gpiods[id];
>  		config->ena_gpio_invert = 1;
>  
>  		/*
> diff --git a/include/linux/mfd/da9055/pdata.h b/include/linux/mfd/da9055/pdata.h
> index 04e092be4b07..1a94fa2ac309 100644
> --- a/include/linux/mfd/da9055/pdata.h
> +++ b/include/linux/mfd/da9055/pdata.h
> @@ -12,6 +12,7 @@
>  #define DA9055_MAX_REGULATORS	8
>  
>  struct da9055;
> +struct gpio_desc;
>  
>  enum gpio_select {
>  	NO_GPIO = 0,
> @@ -47,7 +48,7 @@ struct da9055_pdata {
>  	 * controls the regulator set A/B, 0 if  not available.
>  	 */
>  	enum gpio_select *reg_rsel;
> -	/* GPIOs to enable regulator, 0 if not available */
> -	int *ena_gpio;
> +	/* GPIO descriptors to enable regulator, NULL if not available */
> +	struct gpio_desc **ena_gpiods;
>  };
>  #endif /* __DA9055_PDATA_H */

Patch

diff --git a/drivers/regulator/da9055-regulator.c b/drivers/regulator/da9055-regulator.c
index d029c941a1e1..f40c3b8644ae 100644
--- a/drivers/regulator/da9055-regulator.c
+++ b/drivers/regulator/da9055-regulator.c
@@ -16,6 +16,7 @@ 
 #include <linux/init.h>
 #include <linux/err.h>
 #include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/platform_device.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
@@ -455,8 +456,7 @@  static int da9055_gpio_init(struct da9055_regulator *regulator,
 		char name[18];
 		int gpio_mux = pdata->gpio_ren[id];
 
-		config->ena_gpio = pdata->ena_gpio[id];
-		config->ena_gpio_flags = GPIOF_OUT_INIT_HIGH;
+		config->ena_gpiod = pdata->ena_gpiods[id];
 		config->ena_gpio_invert = 1;
 
 		/*
diff --git a/include/linux/mfd/da9055/pdata.h b/include/linux/mfd/da9055/pdata.h
index 04e092be4b07..1a94fa2ac309 100644
--- a/include/linux/mfd/da9055/pdata.h
+++ b/include/linux/mfd/da9055/pdata.h
@@ -12,6 +12,7 @@ 
 #define DA9055_MAX_REGULATORS	8
 
 struct da9055;
+struct gpio_desc;
 
 enum gpio_select {
 	NO_GPIO = 0,
@@ -47,7 +48,7 @@  struct da9055_pdata {
 	 * controls the regulator set A/B, 0 if  not available.
 	 */
 	enum gpio_select *reg_rsel;
-	/* GPIOs to enable regulator, 0 if not available */
-	int *ena_gpio;
+	/* GPIO descriptors to enable regulator, NULL if not available */
+	struct gpio_desc **ena_gpiods;
 };
 #endif /* __DA9055_PDATA_H */