Hi Tom, On 28 July 2014 21:36, Tom Rini <tr...@ti.com> wrote: > On Mon, Jul 28, 2014 at 06:11:37AM -0600, Simon Glass wrote: > >> Convert the exynos GPIO driver to driver model. This implements the generic >> GPIO interface but not the extra Exynos-specific functions. > > OK, so same comment as about the serial conversion. And, I hear you > about there being big changes, but I think this illustrates best why we > need to keep function ordering the same: > > [snip] >> @@ -132,35 +57,34 @@ static void s5p_gpio_cfg_pin(struct s5p_gpio_bank >> *bank, int gpio, int cfg) >> writel(value, &bank->con); >> } >> >> -static void s5p_gpio_set_value(struct s5p_gpio_bank *bank, int gpio, int en) >> +#ifndef CONFIG_SPL_BUILD >> +static int s5p_gpio_get_cfg_pin(struct s5p_gpio_bank *bank, int gpio) >> { >> unsigned int value; >> >> - value = readl(&bank->dat); >> - value &= ~DAT_MASK(gpio); >> - if (en) >> - value |= DAT_SET(gpio); >> - writel(value, &bank->dat); >> + value = readl(&bank->con); >> + value &= CON_MASK(gpio); >> + return CON_SFR_UNSHIFT(value, gpio); >> } > [snip] >> -static unsigned int s5p_gpio_get_value(struct s5p_gpio_bank *bank, int gpio) >> +static void s5p_gpio_set_value(struct s5p_gpio_bank *bank, int gpio, int en) >> { >> unsigned int value; >> >> value = readl(&bank->dat); >> - return !!(value & DAT_MASK(gpio)); >> + value &= ~DAT_MASK(gpio); >> + if (en) >> + value |= DAT_SET(gpio); >> + writel(value, &bank->dat); >> } > > We've moved the function around, the signature changed but the guts > didn't at all?
Yes that's just wrong, I will fix it. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot