On 11/17/2015 at 8:50 AM, Martin Schiller wrote: > Hi, > > here follows a little review of the 0012-pinctrl-lantiq-fix-up- > pinmux.patch > to get this stuff upstream: > > > From 25494c55a4007a1409f53ddbafd661636e47ea34 Mon Sep 17 00:00:00 > 2001 > > From: John Crispin <[email protected]> > > Date: Fri, 9 Aug 2013 20:38:15 +0200 > > Subject: [PATCH 12/36] pinctrl/lantiq: fix up pinmux > > > > We found out how to set the gphy led pinmuxing. > > > > Signed-off-by: John Crispin <[email protected]> > > --- > > drivers/pinctrl/pinctrl-xway.c | 28 ++++++++++++++++++++++++++-- > > 1 file changed, 26 insertions(+), 2 deletions(-) > > > > --- a/drivers/pinctrl/pinctrl-xway.c > > +++ b/drivers/pinctrl/pinctrl-xway.c > > @@ -609,10 +609,9 @@ static struct pinctrl_desc xway_pctrl_de > > .confops= &xway_pinconf_ops, > > }; > > > > -static inline int xway_mux_apply(struct pinctrl_dev *pctrldev, > > +static int mux_apply(struct ltq_pinmux_info *info, > > int pin, int mux) > > { > > -struct ltq_pinmux_info *info = pinctrl_dev_get_drvdata(pctrldev); > > int port = PORT(pin); > > u32 alt1_reg = GPIO_ALT1(pin); > > > > @@ -632,6 +631,14 @@ static inline int xway_mux_apply(struct > > return 0; > > } > > > > +static inline int xway_mux_apply(struct pinctrl_dev *pctrldev, > > +int pin, int mux) > > +{ > > +struct ltq_pinmux_info *info = pinctrl_dev_get_drvdata(pctrldev); > > + > > +return mux_apply(info, pin, mux); > > +} > > + > > static const struct ltq_cfg_param xway_cfg_params[] = { > > {"lantiq,pull",LTQ_PINCONF_PARAM_PULL}, > > {"lantiq,open-drain",LTQ_PINCONF_PARAM_OPEN_DRAIN}, > > What are these changes for? > > > @@ -676,6 +683,10 @@ static int xway_gpio_dir_out(struct gpio > > { > > struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev); > > > > +if (PORT(pin) == PORT3) > > +gpio_setbit(info->membase[0], GPIO3_OD, PORT_PIN(pin)); > > +else > > +gpio_setbit(info->membase[0], GPIO_OD(pin), PORT_PIN(pin)); > > gpio_setbit(info->membase[0], GPIO_DIR(pin), PORT_PIN(pin)); > > xway_gpio_set(chip, pin, val); > > > > This fixes the GPIO Setup for GPIOs >= GPIO48 (GPIO Port3), right? > > > > @@ -696,6 +707,18 @@ static void xway_gpio_free(struct gpio_c > > pinctrl_free_gpio(gpio); > > } > > > > +static int xway_gpio_to_irq(struct gpio_chip *chip, unsigned offset) > > +{ > > +struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev); > > +int i; > > + > > +for (i = 0; i < info->num_exin; i++) > > +if (info->exin[i] == offset) > > +return ltq_eiu_get_irq(i); > > + > > +return -1; > > +} > > + > > static struct gpio_chip xway_chip = { > > .label = "gpio-xway", > > .direction_input = xway_gpio_dir_in, > > @@ -704,6 +727,7 @@ static struct gpio_chip xway_chip = { > > .set = xway_gpio_set, > > .request = xway_gpio_req, > > .free = xway_gpio_free, > > +.to_irq = xway_gpio_to_irq, > > .base = -1, > > }; > > > > This implements the IRQ Mapping for GPIOs. > > > So which of these changes is related to gphy led pinmuxing? > > I think we can make 2 patches out of this one: > > [1/2] pinctrl/lantiq: Fix GPIO Setup for GPIO Port3 > [2/2] pinctrl/lantiq: Implement gpio_chip.to_irq
Aren't there any comments / suggestions? _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
