Hi, On 27/02/17 10:07, Maxime Ripard wrote: > On Mon, Feb 27, 2017 at 12:26:40AM +0000, Andre Przywara wrote: >> Instead of hard-coding GPIO pins used for a certain peripheral, we >> should just use the pinctrl information from the DT. >> The sun8i-emac driver has some simple implementation of that, so >> let's just generalize this and move the code into a more common >> location. >> On the way we add support for the new, generic pinctrl binding now >> used by all Allwinner SoCs. >> >> Signed-off-by: Andre Przywara <andre.przyw...@arm.com> >> --- >> arch/arm/include/asm/arch-sunxi/gpio.h | 4 ++ >> arch/arm/mach-sunxi/pinmux.c | 77 >> ++++++++++++++++++++++++++++++++++ >> 2 files changed, 81 insertions(+) >> >> diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h >> b/arch/arm/include/asm/arch-sunxi/gpio.h >> index 85a4ec3..ba8c661 100644 >> --- a/arch/arm/include/asm/arch-sunxi/gpio.h >> +++ b/arch/arm/include/asm/arch-sunxi/gpio.h >> @@ -239,4 +239,8 @@ int axp_gpio_init(void); >> static inline int axp_gpio_init(void) { return 0; } >> #endif >> >> +int sunxi_gpio_parse_pin_name(const char *pin_name); >> +int sunxi_gpio_setup_dt_pins(const void * volatile fdt_blob, int node, >> + const char * mux_name, int mux_sel); >> + >> #endif /* _SUNXI_GPIO_H */ >> diff --git a/arch/arm/mach-sunxi/pinmux.c b/arch/arm/mach-sunxi/pinmux.c >> index b026f78..f1e1e8f 100644 >> --- a/arch/arm/mach-sunxi/pinmux.c >> +++ b/arch/arm/mach-sunxi/pinmux.c >> @@ -9,6 +9,9 @@ >> #include <common.h> >> #include <asm/io.h> >> #include <asm/arch/gpio.h> >> +#include <fdtdec.h> >> +#include <fdt_support.h> >> +#include <dt-bindings/pinctrl/sun4i-a10.h> >> >> void sunxi_gpio_set_cfgbank(struct sunxi_gpio *pio, int bank_offset, u32 >> val) >> { >> @@ -69,3 +72,77 @@ int sunxi_gpio_set_pull(u32 pin, u32 val) >> >> return 0; >> } >> + >> +int sunxi_gpio_parse_pin_name(const char *pin_name) >> +{ >> + int pin; >> + >> + if (pin_name[0] != 'P') >> + return -1; >> + >> + if (pin_name[1] < 'A' || pin_name[1] > 'Z') >> + return -1; >> + >> + pin = (pin_name[1] - 'A') << 5; >> + pin += simple_strtol(&pin_name[2], NULL, 10); >> + >> + return pin; >> +} > > That function already exists, sunxi_name_to_gpio.
Indeed, I found this yesterday _after_ sending the patches ;-) For some reasons I missed that when I originally wrote the patches, sorry for that. Cheers, Andre. -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.