From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: linux-sh@vger.kernel.org
Subject: Re: GPIO request failure with PCF pinmux
Date: Wed, 19 Sep 2012 15:19:44 +0000 [thread overview]
Message-ID: <4393656.sG2WiufOXf@avalon> (raw)
In-Reply-To: <6045802.ynsOILKLIK@avalon>
Hi Paul,
On Tuesday 18 September 2012 16:12:08 Paul Mundt wrote:
> On Fri, Sep 14, 2012 at 10:11:00PM +0200, Laurent Pinchart wrote:
> > Hi Paul,
> >
> > I ran into an issue with GPIO and pinmuxing in the TPU PWM driver.
> >
> > The driver needs to switch the PWM pin between GPIO and function at
> > runtime. To do so, I use the PWM pin GPIO (GPIO_PORT202) and the
> > associated function GPIO (GPIO_FN_TPU0TO2_PORT202).
> >
> > The driver configures the pin as a GPIO output when loaded with
> >
> > gpio_request_one(GPIO_PORT202, GPIOF_INIT_LOW);
> >
> > This results in a call to sh_pfc_gpio_request_enable() followed by a call
> > to sh_pfc_reconfig_pin() for GPIO 202. The later changes the pinmux type
> > from PINMUX_TYPE_GPIO (2) to PINMUX_TYPE_OUTPUT (3).
> >
> > I then call gpio_free(GPIO_PORT202) and
> > gpio_request(GPIO_FN_TPU0TO2_PORT202) to switch from GPIO to function.
> > The former calls sh_pfc_gpio_disable_free:() on GPIO 202.
> >
> > When I later call gpio_free(GPIO_FN_TPU0TO2_PORT202) and
> > gpio_request_one(GPIO_PORT202, GPIOF_INIT_LOW), the call to
> > sh_pfc_gpio_request_enable() fails with
> >
> > pinctrl-sh_pfc pinctrl: Unsupported mux type (3), bailing...
> > pinctrl-sh_pfc pinctrl-sh_pfc: request() failed for pin 202
> > pinctrl-sh_pfc pinctrl-sh_pfc: pin-202 (pinctrl-sh_pfc) status -524
> >
> > You're more familiar with pinmux than I am. Am I doing something wrong, or
> > is there a bug in the PFC pinmux implementation ?
>
> That's a bug, the pin has been reconfigured to a different mux type which
> we should handle. At first glance, simply handling the input/output types
> ought to work ok, but we may need more work than that. How does it go
> with this?
That seems to work, thank you. Will you push a patch ?
> ---
>
> diff --git a/drivers/sh/pfc/pinctrl.c b/drivers/sh/pfc/pinctrl.c
> index 2804eaa..c0857d5 100644
> --- a/drivers/sh/pfc/pinctrl.c
> +++ b/drivers/sh/pfc/pinctrl.c
> @@ -208,6 +208,8 @@ static int sh_pfc_gpio_request_enable(struct pinctrl_dev
> *pctldev,
>
> break;
> case PINMUX_TYPE_GPIO:
> + case PINMUX_TYPE_INPUT:
> + case PINMUX_TYPE_OUTPUT:
> break;
> default:
> pr_err("Unsupported mux type (%d), bailing...\n", pinmux_type);
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2012-09-19 15:19 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-14 20:11 GPIO request failure with PCF pinmux Laurent Pinchart
2012-09-14 20:36 ` Laurent Pinchart
2012-09-18 7:12 ` Paul Mundt
2012-09-18 7:22 ` Paul Mundt
2012-09-19 15:19 ` Laurent Pinchart [this message]
2012-09-19 15:33 ` Paul Mundt
2012-10-02 12:24 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4393656.sG2WiufOXf@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=linux-sh@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.