linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Vokáč Michal" <Michal.Vokac@ysoft.com>
To: "Uwe Kleine-König" <uwe@kleine-koenig.org>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	"linux-pwm@vger.kernel.org" <linux-pwm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [3/3] pwm: imx: Implement get_state() function for hardware readout
Date: Fri, 14 Dec 2018 16:40:30 +0000	[thread overview]
Message-ID: <37cc424e-cafd-acb6-d7d2-c6c98abf53de@ysoft.com> (raw)
In-Reply-To: <20181212105118.GA9268@taurus.defre.kleine-koenig.org>

On 12.12.2018 11:51, Uwe Kleine-König wrote:
> Hello,
> 
> On Mon, Oct 01, 2018 at 04:19:48PM +0200, Michal Vokáč wrote:
>> Implement the get_state() function and set the initial state to reflect
>> real state of the hardware. This allows to keep the PWM running if it was
>> enabled in bootloader. It is very similar to the GPIO behavior. GPIO pin
>> set as output in bootloader keep the same setting in Linux unless it is
>> reconfigured.
>>
>> If we find the PWM block enabled we need to prepare and enable its source
>> clock otherwise the clock will be disabled late in the boot as unused.
>> That will leave the PWM in enabled state but with disabled clock. That has
>> a side effect that the PWM output is left at its current level at which
>> the clock was disabled. It is totally non-deterministic and it may be LOW
>> or HIGH.
> 
> Does this problem still exist if the pwm-imx driver is a module?

Yes. The source clock for PWM is stopped by the clock core shortly
before init process is started and it does not matter if the pwm-imx
driver is built as a module or built into the kernel.

When the module is loaded, the .get_state function is executed and
reads the PWM registers. If the EN bit is set the clock is started
and PWM continues from where it was stopped.

Michal

  reply	other threads:[~2018-12-14 16:40 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-01 14:19 [PATCH 1/3] pwm: imx: Sort include files Michal Vokáč
2018-10-01 14:19 ` [PATCH 2/3] pwm: imx: Use bitops and bitfield macros to define register values Michal Vokáč
2018-12-12 10:53   ` Thierry Reding
2018-12-12 10:55   ` [2/3] " Uwe Kleine-König
2018-10-01 14:19 ` [PATCH 3/3] pwm: imx: Implement get_state() function for hardware readout Michal Vokáč
2018-12-12 10:51   ` [3/3] " Uwe Kleine-König
2018-12-14 16:40     ` Vokáč Michal [this message]
2018-12-12 10:54   ` [PATCH 3/3] " Thierry Reding
2018-12-13  8:52     ` Uwe Kleine-König
2018-12-13 17:00       ` Thierry Reding
2018-12-13 20:14         ` Uwe Kleine-König
2018-12-14 16:57           ` Vokáč Michal
2018-12-12 10:52 ` [PATCH 1/3] pwm: imx: Sort include files Thierry Reding

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=37cc424e-cafd-acb6-d7d2-c6c98abf53de@ysoft.com \
    --to=michal.vokac@ysoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=uwe@kleine-koenig.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).