Messages in this thread | | | Date | Thu, 2 Aug 2012 11:53:54 +0200 | From | Thierry Reding <> | Subject | Re: [PATCH 2/2] pwm: samsung: fix the number of PWMs |
| |
On Thu, Aug 02, 2012 at 05:56:27PM +0900, Jingoo Han wrote: > Samsung SoC can provide 4 PWMs; thus, the number of PWMs should be > set as 4. > > Signed-off-by: Jingoo Han <jg1.han@samsung.com> > --- > drivers/pwm/pwm-samsung.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c > index e5187c0..32562c6 100644 > --- a/drivers/pwm/pwm-samsung.c > +++ b/drivers/pwm/pwm-samsung.c > @@ -228,7 +228,7 @@ static int s3c_pwm_probe(struct platform_device *pdev) > s3c->chip.dev = &pdev->dev; > s3c->chip.ops = &s3c_pwm_ops; > s3c->chip.base = -1; > - s3c->chip.npwm = 1; > + s3c->chip.npwm = 4;
I don't think this is correct. The driver seems to be using the platform device id as index currently, which indicates that the driver is bound against 4 different platform devices, each representing a single PWM. If you want to service multiple PWM devices by a single instance you need to make further changes to the driver. For instance the tcon_base is initialized based on the platform id. This could easily be replaced by making it depend on the .hwpwm member of pwm_device.
You may also want to consider making the driver a proper module if that works on the platforms that need it. I see that it is currently an arch_initcall, but it might be cleaner to use deferred driver probe instead.
Thierry [unhandled content-type:application/pgp-signature] | |