[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120802095354.GA18945@avionic-0098.adnet.avionic-design.de>
Date: Thu, 2 Aug 2012 11:53:54 +0200
From: Thierry Reding <thierry.reding@...onic-design.de>
To: Jingoo Han <jg1.han@...sung.com>
Cc: linux-kernel@...r.kernel.org
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@...sung.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
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists