Re: [PATCH 2/2] pwm: pca9685: fix prescaler initialization

From: Clemens Gruber
Date: Thu Jan 19 2017 - 09:58:16 EST


On Thu, Jan 19, 2017 at 02:34:39PM +0200, Andy Shevchenko wrote:
> On Wed, 2017-01-18 at 15:25 +0100, Clemens Gruber wrote:
> > Yes, that's what this patch tries to solve by verifying that the
> > external setting (the prescale register) is set to its hardware
> > default
> > value of 0x1E (corresponding to a period of 1/200 Hz).
> > If it is not 0x1E, the driver will reconfigure the prescaler according
> > to the desired period at the time of the next configuration.
>
> Yes, and my question is what is possible go wrong if you just enforce
> prescaler to be 1/200Hz?

If we enforce a default of 1 / 200 Hz, we have to go through the SLEEP
mode and udelay for 0.5ms once for our default and then again for the
user, if he does not want a period of 1 / 200 Hz.
-> Number of prescaler changes: 1 or 2

I think it is better as it is now + my patch applied: We verify if the
prescaler is already set to 1 / 200 Hz.
Then, as soon as the user configures his PWM channels, we either do not
have to change the prescaler at all (if he wants 1 / 200 Hz) or do it
once at the time of configuration.
-> Number of prescaler changes: 0 or 1

What's the advantage of enforcing the prescaler to 1 / 200 Hz in the
probe function when we do not know yet if 1 / 200 Hz is the period the
user is going to configure?

Thanks,
Clemens