Re: [U-Boot] [PATCH 10/21] sunxi: gpio: Change axp_gpio_foo prototype to match gpio uclass ops

2015-04-24 Thread Simon Glass
Hi Hans,

On 24 April 2015 at 07:48, Hans de Goede hdego...@redhat.com wrote:
 Change the axp_gpio_foo function prototypes to match the gpio uclass op
 prototypes, so that they can be used directly when adding device-model
 support for the axp gpios.

 Signed-off-by: Hans de Goede hdego...@redhat.com
 ---
  drivers/gpio/sunxi_gpio.c |  8 
  drivers/power/axp209.c| 10 +-
  drivers/power/axp221.c| 10 +-
  include/axp209.h  | 10 ++
  include/axp221.h  | 10 ++
  5 files changed, 26 insertions(+), 22 deletions(-)

This AXP think should be a separate GPIO driver.


 diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
 index 91af1a5..0774b70 100644
 --- a/drivers/gpio/sunxi_gpio.c
 +++ b/drivers/gpio/sunxi_gpio.c
 @@ -81,7 +81,7 @@ int gpio_direction_input(unsigned gpio)
  {
  #ifdef AXP_GPIO
 if (gpio = SUNXI_GPIO_AXP0_START)
 -   return axp_gpio_direction_input(gpio - SUNXI_GPIO_AXP0_START);
 +   return axp_gpio_direction_input(NULL, gpio - 
 SUNXI_GPIO_AXP0_START);
  #endif
 sunxi_gpio_set_cfgpin(gpio, SUNXI_GPIO_INPUT);

 @@ -92,7 +92,7 @@ int gpio_direction_output(unsigned gpio, int value)
  {
  #ifdef AXP_GPIO
 if (gpio = SUNXI_GPIO_AXP0_START)
 -   return axp_gpio_direction_output(gpio - SUNXI_GPIO_AXP0_START,
 +   return axp_gpio_direction_output(NULL, gpio - 
 SUNXI_GPIO_AXP0_START,
  value);
  #endif
 sunxi_gpio_set_cfgpin(gpio, SUNXI_GPIO_OUTPUT);
 @@ -104,7 +104,7 @@ int gpio_get_value(unsigned gpio)
  {
  #ifdef AXP_GPIO
 if (gpio = SUNXI_GPIO_AXP0_START)
 -   return axp_gpio_get_value(gpio - SUNXI_GPIO_AXP0_START);
 +   return axp_gpio_get_value(NULL, gpio - SUNXI_GPIO_AXP0_START);
  #endif
 return sunxi_gpio_input(gpio);
  }
 @@ -113,7 +113,7 @@ int gpio_set_value(unsigned gpio, int value)
  {
  #ifdef AXP_GPIO
 if (gpio = SUNXI_GPIO_AXP0_START)
 -   return axp_gpio_set_value(gpio - SUNXI_GPIO_AXP0_START, 
 value);
 +   return axp_gpio_set_value(NULL, gpio - SUNXI_GPIO_AXP0_START, 
 value);
  #endif
 return sunxi_gpio_output(gpio, value);
  }
 diff --git a/drivers/power/axp209.c b/drivers/power/axp209.c
 index 1d7be49..98c214f 100644
 --- a/drivers/power/axp209.c
 +++ b/drivers/power/axp209.c
 @@ -167,7 +167,7 @@ static u8 axp209_get_gpio_ctrl_reg(unsigned int pin)
 return 0;
  }

 -int axp_gpio_direction_input(unsigned int pin)
 +int axp_gpio_direction_input(struct udevice *dev, unsigned pin)
  {
 if (pin == SUNXI_GPIO_AXP0_VBUS_DETECT)
 return 0;
 @@ -179,7 +179,7 @@ int axp_gpio_direction_input(unsigned int pin)
 return axp209_write(reg, val);
  }

 -int axp_gpio_direction_output(unsigned int pin, unsigned int val)
 +int axp_gpio_direction_output(struct udevice *dev, unsigned pin, int val)
  {
 u8 reg = axp209_get_gpio_ctrl_reg(pin);

 @@ -194,7 +194,7 @@ int axp_gpio_direction_output(unsigned int pin, unsigned 
 int val)
 return axp209_write(reg, val);
  }

 -int axp_gpio_get_value(unsigned int pin)
 +int axp_gpio_get_value(struct udevice *dev, unsigned pin)
  {
 u8 val, mask;
 int rc;
 @@ -215,7 +215,7 @@ int axp_gpio_get_value(unsigned int pin)
 return (val  mask) ? 1 : 0;
  }

 -int axp_gpio_set_value(unsigned int pin, unsigned int val)
 +int axp_gpio_set_value(struct udevice *dev, unsigned pin, int val)
  {
 -   return axp_gpio_direction_output(pin, val);
 +   return axp_gpio_direction_output(dev, pin, val);
  }
 diff --git a/drivers/power/axp221.c b/drivers/power/axp221.c
 index dc3a7f1..4970ab4 100644
 --- a/drivers/power/axp221.c
 +++ b/drivers/power/axp221.c
 @@ -386,7 +386,7 @@ int axp221_get_sid(unsigned int *sid)
 return 0;
  }

 -int axp_gpio_direction_input(unsigned int pin)
 +int axp_gpio_direction_input(struct udevice *dev, unsigned pin)
  {
 switch (pin) {
 case SUNXI_GPIO_AXP0_VBUS_DETECT:
 @@ -396,7 +396,7 @@ int axp_gpio_direction_input(unsigned int pin)
 }
  }

 -int axp_gpio_direction_output(unsigned int pin, unsigned int val)
 +int axp_gpio_direction_output(struct udevice *dev, unsigned pin, int val)
  {
 int ret;

 @@ -407,13 +407,13 @@ int axp_gpio_direction_output(unsigned int pin, 
 unsigned int val)
 if (ret)
 return ret;

 -   return axp_gpio_set_value(pin, val);
 +   return axp_gpio_set_value(dev, pin, val);
 default:
 return -EINVAL;
 }
  }

 -int axp_gpio_get_value(unsigned int pin)
 +int axp_gpio_get_value(struct udevice *dev, unsigned pin)
  {
 int ret;
 u8 val;
 @@ -430,7 +430,7 @@ int axp_gpio_get_value(unsigned int pin)
 }
  }

 -int axp_gpio_set_value(unsigned int pin, unsigned int val)
 +int axp_gpio_set_value(struct udevice *dev, 

[U-Boot] [PATCH 10/21] sunxi: gpio: Change axp_gpio_foo prototype to match gpio uclass ops

2015-04-24 Thread Hans de Goede
Change the axp_gpio_foo function prototypes to match the gpio uclass op
prototypes, so that they can be used directly when adding device-model
support for the axp gpios.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 drivers/gpio/sunxi_gpio.c |  8 
 drivers/power/axp209.c| 10 +-
 drivers/power/axp221.c| 10 +-
 include/axp209.h  | 10 ++
 include/axp221.h  | 10 ++
 5 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
index 91af1a5..0774b70 100644
--- a/drivers/gpio/sunxi_gpio.c
+++ b/drivers/gpio/sunxi_gpio.c
@@ -81,7 +81,7 @@ int gpio_direction_input(unsigned gpio)
 {
 #ifdef AXP_GPIO
if (gpio = SUNXI_GPIO_AXP0_START)
-   return axp_gpio_direction_input(gpio - SUNXI_GPIO_AXP0_START);
+   return axp_gpio_direction_input(NULL, gpio - 
SUNXI_GPIO_AXP0_START);
 #endif
sunxi_gpio_set_cfgpin(gpio, SUNXI_GPIO_INPUT);
 
@@ -92,7 +92,7 @@ int gpio_direction_output(unsigned gpio, int value)
 {
 #ifdef AXP_GPIO
if (gpio = SUNXI_GPIO_AXP0_START)
-   return axp_gpio_direction_output(gpio - SUNXI_GPIO_AXP0_START,
+   return axp_gpio_direction_output(NULL, gpio - 
SUNXI_GPIO_AXP0_START,
 value);
 #endif
sunxi_gpio_set_cfgpin(gpio, SUNXI_GPIO_OUTPUT);
@@ -104,7 +104,7 @@ int gpio_get_value(unsigned gpio)
 {
 #ifdef AXP_GPIO
if (gpio = SUNXI_GPIO_AXP0_START)
-   return axp_gpio_get_value(gpio - SUNXI_GPIO_AXP0_START);
+   return axp_gpio_get_value(NULL, gpio - SUNXI_GPIO_AXP0_START);
 #endif
return sunxi_gpio_input(gpio);
 }
@@ -113,7 +113,7 @@ int gpio_set_value(unsigned gpio, int value)
 {
 #ifdef AXP_GPIO
if (gpio = SUNXI_GPIO_AXP0_START)
-   return axp_gpio_set_value(gpio - SUNXI_GPIO_AXP0_START, value);
+   return axp_gpio_set_value(NULL, gpio - SUNXI_GPIO_AXP0_START, 
value);
 #endif
return sunxi_gpio_output(gpio, value);
 }
diff --git a/drivers/power/axp209.c b/drivers/power/axp209.c
index 1d7be49..98c214f 100644
--- a/drivers/power/axp209.c
+++ b/drivers/power/axp209.c
@@ -167,7 +167,7 @@ static u8 axp209_get_gpio_ctrl_reg(unsigned int pin)
return 0;
 }
 
-int axp_gpio_direction_input(unsigned int pin)
+int axp_gpio_direction_input(struct udevice *dev, unsigned pin)
 {
if (pin == SUNXI_GPIO_AXP0_VBUS_DETECT)
return 0;
@@ -179,7 +179,7 @@ int axp_gpio_direction_input(unsigned int pin)
return axp209_write(reg, val);
 }
 
-int axp_gpio_direction_output(unsigned int pin, unsigned int val)
+int axp_gpio_direction_output(struct udevice *dev, unsigned pin, int val)
 {
u8 reg = axp209_get_gpio_ctrl_reg(pin);
 
@@ -194,7 +194,7 @@ int axp_gpio_direction_output(unsigned int pin, unsigned 
int val)
return axp209_write(reg, val);
 }
 
-int axp_gpio_get_value(unsigned int pin)
+int axp_gpio_get_value(struct udevice *dev, unsigned pin)
 {
u8 val, mask;
int rc;
@@ -215,7 +215,7 @@ int axp_gpio_get_value(unsigned int pin)
return (val  mask) ? 1 : 0;
 }
 
-int axp_gpio_set_value(unsigned int pin, unsigned int val)
+int axp_gpio_set_value(struct udevice *dev, unsigned pin, int val)
 {
-   return axp_gpio_direction_output(pin, val);
+   return axp_gpio_direction_output(dev, pin, val);
 }
diff --git a/drivers/power/axp221.c b/drivers/power/axp221.c
index dc3a7f1..4970ab4 100644
--- a/drivers/power/axp221.c
+++ b/drivers/power/axp221.c
@@ -386,7 +386,7 @@ int axp221_get_sid(unsigned int *sid)
return 0;
 }
 
-int axp_gpio_direction_input(unsigned int pin)
+int axp_gpio_direction_input(struct udevice *dev, unsigned pin)
 {
switch (pin) {
case SUNXI_GPIO_AXP0_VBUS_DETECT:
@@ -396,7 +396,7 @@ int axp_gpio_direction_input(unsigned int pin)
}
 }
 
-int axp_gpio_direction_output(unsigned int pin, unsigned int val)
+int axp_gpio_direction_output(struct udevice *dev, unsigned pin, int val)
 {
int ret;
 
@@ -407,13 +407,13 @@ int axp_gpio_direction_output(unsigned int pin, unsigned 
int val)
if (ret)
return ret;
 
-   return axp_gpio_set_value(pin, val);
+   return axp_gpio_set_value(dev, pin, val);
default:
return -EINVAL;
}
 }
 
-int axp_gpio_get_value(unsigned int pin)
+int axp_gpio_get_value(struct udevice *dev, unsigned pin)
 {
int ret;
u8 val;
@@ -430,7 +430,7 @@ int axp_gpio_get_value(unsigned int pin)
}
 }
 
-int axp_gpio_set_value(unsigned int pin, unsigned int val)
+int axp_gpio_set_value(struct udevice *dev, unsigned pin, int val)
 {
int ret;
 
diff --git a/include/axp209.h b/include/axp209.h
index d36da41..fe4a169 100644
--- a/include/axp209.h
+++ b/include/axp209.h
@@ -4,6 +4,8 @@
  * SPDX-License-Identifier:GPL-2.0+
  */
 
+struct