[Top] [All Lists]

Re: [PATCH 00/13] Ingenic JZ4740 / JZ4780 pinctrl driver

To: Thierry Reding <>
Subject: Re: [PATCH 00/13] Ingenic JZ4740 / JZ4780 pinctrl driver
From: Paul Cercueil <>
Date: Thu, 19 Jan 2017 12:19:36 +0100
Cc: Linus Walleij <>, Rob Herring <>, Mark Rutland <>, Ralf Baechle <>, Ulf Hansson <>, Boris Brezillon <>, Bartlomiej Zolnierkiewicz <>, Maarten ter Huurne <>, Lars-Peter Clausen <>, Paul Burton <>,,,,,,,,,
In-reply-to: <>
List-archive: <>
List-help: <>
List-id: linux-mips <>
List-owner: <>
List-post: <>
List-software: Ecartis version 1.0.0
List-subscribe: <>
List-unsubscribe: <>
Original-recipient: rfc822;
References: <> <>
Le 2017-01-18 08:15, Thierry Reding a écrit :

On Wed, Jan 18, 2017 at 12:14:08AM +0100, Paul Cercueil wrote:

One problem still unresolved: the pinctrl framework does not allow us to configure each pin on demand (someone please prove me wrong), when the various PWM channels are requested or released. For instance, the PWM channels can be configured from sysfs, which would require all PWM pins to be configured properly beforehand for the PWM function, eventually causing conflicts with other platform or board drivers.

Still catching up on a lot of email, so I haven't gone through the
entire series. But I don't think the above is true.

My understanding is that you can have separate pin groups for each
pin (provided the hardware supports that) and then control each of
these groups dynamically at runtime.

That is you could have the PWM driver's ->request() and ->free()
call into the pinctrl framework to select the correct pinmux
configuration as necessary.

Thanks for the feedback.

The problem with pinctrl and PWM, is that the pinctrl API works by "states". A default state, sleep state, and basically any custom state that the devicetree provides. This works well until you need to control individually each pin; with 8 pins, you would need 2^8 states, each one corresponding to a given configuration.


<Prev in Thread] Current Thread [Next in Thread>