Re: [RCF PATCH,v2,2/2] pwm: imx: Configure output to GPIO in disabled state

Vokáč Michal
2018-11-22T15:42:22Z

On 16.11.2018 09:25, Uwe Kleine-König wrote:
> On Fri, Nov 16, 2018 at 08:34:30AM +0100, Lothar Waßmann wrote:
>> Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote:
>>> On Thu, Nov 15, 2018 at 04:25:45PM +0100, Thierry Reding wrote:
>>>> On Wed, Nov 14, 2018 at 10:51:20PM +0100, Uwe Kleine-König wrote:
>>>>> On Wed, Nov 14, 2018 at 12:34:49PM +0100, Thierry Reding wrote:
>> [...]
>>>>> Also dts writes don't need to lookup the needed GPIO numbers and pinctrl.
>>>>
>>>> Just to clarify: I don't think that we need to get the GPIO number
>>>> involved in this case, because we don't have to reconfigure the pin as
>>>> GPIO to make this work. The only reason that Michal's proposal did that
>>>> is because that was believed to be necessary. But if the pin can just be
>>>> configured with a 100k pull-up, that's enough to pull the pin high when
>>>> we need it.

Thierry, I have to disagree here. I do not really know how to activate
the internal pull-up without requesting the GPIO and configuring the pin
as *input*. And to do it the GPIO number needs to be specified in DT.

>>> Unless the gpio happens to be configured as output at the wrong value.
>>> Further I'm not sure if the pwm in disabled state actively pulls to 0
>>> and if in this state the PU of the pin is good enough to ensure a one
>>> here. That would need verification first.
>>
>> No. You can disable the output driver via pinctrl, so that only the
>> selected pull-up/down is relevant. The pin function and GPIO register
>> settings don't matter at all in this case.

Lothar, please can you be more specific how would you do that? IFAIK the
pull-up/down internal resistors have effect only if the pin is configured
as GPIO *input* (on i.MX6 at least). See the TRM, 29.4.2.2 Output driver:

"Internal pull-up, pull-down resistors, and pad keeper are disabled in
output mode."

> Is this about DSE=HI-Z in the pad control register? I didn't know about
> this. I see this exists on i.MX6 but not on i.MX25. Also i.MX51 doesn't
> seem to have this feature.

Uwe, I also did not find the DSE option on other SoCs in their respective
manuals and source code. But even if it would be available on all SoCs
I still think it is not enough.

Best regards,
Michal