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

- From: Paul Cercueil \<paul@crapouillou.net\>
- Date: 2017-01-20 10:17:52 
- List: linux-fbdev
- Page: https://ratatoskr.run/linux-fbdev/2017/01/4916971
- Thread: https://ratatoskr.run/linux-gpio/2017/01/4914584/t.md

```text
Le 2017-01-20 09:40, Linus Walleij a Ã©crit :

> On Thu, Jan 19, 2017 at 12:19 PM, Paul Cercueil [ref] 
> wrote:
> 
>> 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.
> 
> I do not really understand, do you really use all 2^8 states in a given
> system?
> 
> The pin control states are to be used for practical situations, not
> for all theoretical situations.
> 
> You should define in your device tree the states that your
> particular system will use. Not all possible states on all possible
> systems.
> 

Well, that was if I wanted to dynamically set/unset the pin mux and
configuration when requesting/freeing a PWM. Then I'd need 2^x states
for X PWM pins.

Anyway, a static configuration works for me too. If at some point I
want dynamic configuration of the pins then I'll make the PWM driver
handle only one PWM pin and create one driver instance for each pin.

Regards,
-Paul
```
