Re: [PATCH] arm: dts: fix rk3066a based boards vdd_log voltage initialization

From: Doug Anderson
Date: Mon Sep 19 2016 - 14:12:19 EST


On Mon, Sep 19, 2016 at 11:06 AM, Boris Brezillon
<boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 19 Sep 2016 10:52:51 -0700
> Doug Anderson <dianders@xxxxxxxxxxxx> wrote:
>> Hi,
>> On Mon, Sep 19, 2016 at 10:48 AM, Boris Brezillon
>> <boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote:
>> > The PWM chip has always claimed the pins and muxed them to the PWM IP.
>> > So, this means it's broken from the beginning, and my patch is only
>> > uncovering the problem (unless the pins stay configured as input until
>> > the PWM is enabled, which I'm not sure is the case).
>> Such a solution is achievable with the pinctrl APIs pretty easily.
>> You might not be able to use the automatic "init" state but you can do
>> something similar and switch to an "active" state once the PWM is
>> actually turned on the first time.
> But is it really the case here (I don't see any code requesting a
> specific pinmux depending on the PWM state)?

It is not happening right now as far as I know. ...but that's a bug.

> Anyway, we really need to handle this case, we should define the
> typical voltage when the PWM is disabled. Same as what you suggested
> with voltage-when-input, but with a different naming (since the concept
> of pinmux is PWM hardware/driver specific).
> voltage-when-pwm-disabled = <...>;

Voltage when disabled and voltage when input are two different states.
A disabled PWM will typically either drive high or low (depending on
where it was when you turned it off). Not all "disabled" states will
mean that the pin is configured as an input.