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. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot