From: Hans de Goede Date: Wed, 22 Apr 2015 14:27:01 +0000 (+0200) Subject: sunxi: axp: Change axp_gpio_foo prototypes to match gpio uclass ops X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=12ce15538a4512834138ee4d0ded416286ec46ad;p=u-boot.git sunxi: axp: Change axp_gpio_foo prototypes to match gpio uclass ops Change the axp_gpio_foo function prototypes to match the gpio uclass op prototypes, this is a preparation patch for moving the axp gpio code to a separate driver-model gpio driver. Note that the ugly calls with a NULL udev pointer in drivers/gpio/sunxi_gpio.c this adds are removed in a later patch. Signed-off-by: Hans de Goede Reviewed-by: Simon Glass Acked-by: Ian Campbell --- diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c index 91af1a54ec..0774b70934 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 1d7be4991a..98c214fa7a 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 dc3a7f19bd..4970ab46ee 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 d36da41a5e..fe4a1694b6 100644 --- a/include/axp209.h +++ b/include/axp209.h @@ -4,6 +4,8 @@ * SPDX-License-Identifier: GPL-2.0+ */ +struct udevice; + enum axp209_reg { AXP209_POWER_STATUS = 0x00, AXP209_CHIP_VERSION = 0x03, @@ -53,7 +55,7 @@ extern int axp209_init(void); extern int axp209_poweron_by_dc(void); extern int axp209_power_button(void); -extern int axp_gpio_direction_input(unsigned int pin); -extern int axp_gpio_direction_output(unsigned int pin, unsigned int val); -extern int axp_gpio_get_value(unsigned int pin); -extern int axp_gpio_set_value(unsigned int pin, unsigned int val); +extern int axp_gpio_direction_input(struct udevice *dev, unsigned offset); +extern int axp_gpio_direction_output(struct udevice *dev, unsigned offset, int val); +extern int axp_gpio_get_value(struct udevice *dev, unsigned offset); +extern int axp_gpio_set_value(struct udevice *dev, unsigned offset, int val); diff --git a/include/axp221.h b/include/axp221.h index 0aac04dfeb..e826ca8ac1 100644 --- a/include/axp221.h +++ b/include/axp221.h @@ -6,6 +6,8 @@ * SPDX-License-Identifier: GPL-2.0+ */ +struct udevice; + #define AXP221_CHIP_ADDR 0x68 #define AXP221_CTRL_ADDR 0x3e #define AXP221_INIT_DATA 0x3e @@ -80,7 +82,7 @@ int axp221_set_eldo(int eldo_num, unsigned int mvolt); int axp221_init(void); int axp221_get_sid(unsigned int *sid); -int axp_gpio_direction_input(unsigned int pin); -int axp_gpio_direction_output(unsigned int pin, unsigned int val); -int axp_gpio_get_value(unsigned int pin); -int axp_gpio_set_value(unsigned int pin, unsigned int val); +int axp_gpio_direction_input(struct udevice *dev, unsigned offset); +int axp_gpio_direction_output(struct udevice *dev, unsigned offset, int val); +int axp_gpio_get_value(struct udevice *dev, unsigned offset); +int axp_gpio_set_value(struct udevice *dev, unsigned offset, int val);