[OpenWrt-Devel] Review of 0012-pinctrl-lantiq-fix-up-pinmux.patch

Martin Schiller mschiller at tdt.de
Thu Nov 19 02:38:09 EST 2015


On 11/19/2015 at 8:15 AM, John Crispin wrote:
>
>
> On 19/11/2015 06:39, Martin Schiller wrote:
> > 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 <blogic at openwrt.org>
> >>> 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 <blogic at openwrt.org>
> >>> ---
> >>>  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?
> >
>
> we are not a barber shop where you can walk in and demand to be
> serviced right away.

It seemed to me that this topic about the pinctrl is interesting for some people here.

I just thought this mail was overseen/forgotten.

But you are right, there is no obligation for a quick answer.

Martin
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list