Re: [PATCH 2/2] pwm: samsung: fix the number of PWMs

From: Thierry Reding
Date: Thu Aug 02 2012 - 05:53:55 EST


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@xxxxxxxxxxx>
> ---
> 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

Attachment: pgp00000.pgp
Description: PGP signature