* [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number
[not found] <5062652A.8070603@yahoo.com>
@ 2012-09-26 2:17 ` Paul Parsons
2012-09-26 6:40 ` Vasily Khoruzhick
[not found] ` <20120926060337.GB27855@avionic-0098.mockup.avionic-design.de>
1 sibling, 1 reply; 5+ messages in thread
From: Paul Parsons @ 2012-09-26 2:17 UTC (permalink / raw)
To: linux-arm-kernel
Recent changes to PXA PWM support changed the PXA27X PWM device
numbering scheme.
The linux-3.5 PXA PWM driver followed the hardware numbering scheme for
the 4 PWMs, while the linux-3.6-rc1 PXA PWM driver has adopted a linear
numbering scheme:
Address Hardware 3.5 pwm_id 3.6-rc1 pwm_id
0x40b00000 PWM0 0 0
0x40b00010 PWM2 2 1
0x40c00000 PWM1 1 2
0x40c00010 PWM3 3 3
The hx4700 backlight uses PWM1 at 0x40c00000. Consequently the pwm_id
must be changed from 1 to 2.
Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
Cc: Thierry Reding <thierry.reding@avionic-design.de>
---
arch/arm/mach-pxa/hx4700.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index e631198..3720f99 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -556,7 +556,7 @@ static struct platform_device hx4700_lcd = {
*/
static struct platform_pwm_backlight_data backlight_data = {
- .pwm_id = 1,
+ .pwm_id = 2, /* PWM1 */
.max_brightness = 200,
.dft_brightness = 100,
.pwm_period_ns = 30923,
--
1.7.8.6
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number
2012-09-26 2:17 ` [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number Paul Parsons
@ 2012-09-26 6:40 ` Vasily Khoruzhick
2012-09-26 10:39 ` Paul Parsons
0 siblings, 1 reply; 5+ messages in thread
From: Vasily Khoruzhick @ 2012-09-26 6:40 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Sep 26, 2012 at 5:17 AM, Paul Parsons <lost.distance@yahoo.com> wrote:
> Recent changes to PXA PWM support changed the PXA27X PWM device
> numbering scheme.
>
> The linux-3.5 PXA PWM driver followed the hardware numbering scheme for
> the 4 PWMs, while the linux-3.6-rc1 PXA PWM driver has adopted a linear
> numbering scheme:
>
> Address Hardware 3.5 pwm_id 3.6-rc1 pwm_id
> 0x40b00000 PWM0 0 0
> 0x40b00010 PWM2 2 1
> 0x40c00000 PWM1 1 2
> 0x40c00010 PWM3 3 3
Looks very weird to me. Maybe it would be better to fix pwm numbering
scheme to prevent breakage of
other machines?
Regards
Vasily
> The hx4700 backlight uses PWM1 at 0x40c00000. Consequently the pwm_id
> must be changed from 1 to 2.
>
> Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
> Cc: Thierry Reding <thierry.reding@avionic-design.de>
> ---
> arch/arm/mach-pxa/hx4700.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
> index e631198..3720f99 100644
> --- a/arch/arm/mach-pxa/hx4700.c
> +++ b/arch/arm/mach-pxa/hx4700.c
> @@ -556,7 +556,7 @@ static struct platform_device hx4700_lcd = {
> */
>
> static struct platform_pwm_backlight_data backlight_data = {
> - .pwm_id = 1,
> + .pwm_id = 2, /* PWM1 */
> .max_brightness = 200,
> .dft_brightness = 100,
> .pwm_period_ns = 30923,
> --
> 1.7.8.6
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number
2012-09-26 6:40 ` Vasily Khoruzhick
@ 2012-09-26 10:39 ` Paul Parsons
0 siblings, 0 replies; 5+ messages in thread
From: Paul Parsons @ 2012-09-26 10:39 UTC (permalink / raw)
To: linux-arm-kernel
Hello Vasily,
On 26/09/12 07:40, Vasily Khoruzhick wrote:
> On Wed, Sep 26, 2012 at 5:17 AM, Paul Parsons <lost.distance@yahoo.com> wrote:
>> Recent changes to PXA PWM support changed the PXA27X PWM device
>> numbering scheme.
>>
>> The linux-3.5 PXA PWM driver followed the hardware numbering scheme for
>> the 4 PWMs, while the linux-3.6-rc1 PXA PWM driver has adopted a linear
>> numbering scheme:
>>
>> Address Hardware 3.5 pwm_id 3.6-rc1 pwm_id
>> 0x40b00000 PWM0 0 0
>> 0x40b00010 PWM2 2 1
>> 0x40c00000 PWM1 1 2
>> 0x40c00010 PWM3 3 3
>
> Looks very weird to me. Maybe it would be better to fix pwm numbering
> scheme to prevent breakage of
> other machines?
I thought the same thing. However the code doesn't make it easy:
1. The definition of pwm_id values moved from the pwm_probe() in
arch/arm/plat-pxa/pwm.c to pwmchip_add() in drivers/pwm/core.c.
Changing the latter generic code would impact all of the PWM drivers,
not just the PXA PWM driver.
2. Changing just the PXA PWM driver would require its pwm_ops handlers
(config(), enable(), disable()) to quietly translate between PWM1 and
PWM2 devices. However PWM1 and PWM2 are on different chips (i.e.
pwm_chip structures). So what would the driver do when there is only
one chip? i.e.:
a) Between the first and second calls to pwm_probe().
b) Between the first and second calls to pwm_remove().
And in any case quietly translating between PWM1 and PWM2 just doesn't
seem like a good idea: sooner or later it will quietly break the
generic code.
On balance it seemed preferable to change the platform code.
Regards,
Paul
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number
[not found] ` <20120926060337.GB27855@avionic-0098.mockup.avionic-design.de>
@ 2012-09-26 11:01 ` Paul Parsons
2012-09-26 11:12 ` Vasily Khoruzhick
0 siblings, 1 reply; 5+ messages in thread
From: Paul Parsons @ 2012-09-26 11:01 UTC (permalink / raw)
To: linux-arm-kernel
Hello Thierry,
On 26/09/12 07:03, Thierry Reding wrote:
> On Wed, Sep 26, 2012 at 03:15:06AM +0100, Paul Parsons wrote:
>> Recent changes to PXA PWM support changed the PXA27X PWM device
>> numbering scheme.
>>
>> The linux-3.5 PXA PWM driver followed the hardware numbering scheme for
>> the 4 PWMs, while the linux-3.6-rc1 PXA PWM driver has adopted a linear
>> numbering scheme:
>>
>> Address Hardware 3.5 pwm_id 3.6-rc1 pwm_id
>> 0x40b00000 PWM0 0 0
>> 0x40b00010 PWM2 2 1
>> 0x40c00000 PWM1 1 2
>> 0x40c00010 PWM3 3 3
>>
>> The hx4700 backlight uses PWM1 at 0x40c00000. Consequently the pwm_id
>> must be changed from 1 to 2.
>>
>> Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
>> Cc: Thierry Reding <thierry.reding@avionic-design.de>
>> ---
>> arch/arm/mach-pxa/hx4700.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> I wasn't aware of this difference. Sorry for breaking your board. While
> at it, would you mind converting this to the new style PWM lookup table?
>
> You can find the information in Documentation/pwm.txt, but it should be
> roughly something like this:
>
> static struct pwm_lookup hx4700_pwm_lookup[] = {
> PWM_LOOKUP("pxa27x-pwm.1", 0, "pwm-backlight", NULL),
> };
>
> You can then call:
>
> pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup));
>
> from hx4700_init(). The pwm-backlight driver will then be able to use
> the new pwm_get() to obtain the PWM device. Note that pwm_request() will
> go away sometime soon, so this conversion will have to be done anyway.
> If you do it now I won't have to take care of it anymore. =)
OK, will do.
BTW, it is possible that the changed numbering scheme will also have
broken three other PXA27X/PXA3XX boards which use PWM1 or PWM2:
cm-x300
tavorevb
z2
Unfortunately I have no way of testing these.
Regards,
Paul
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number
2012-09-26 11:01 ` Paul Parsons
@ 2012-09-26 11:12 ` Vasily Khoruzhick
0 siblings, 0 replies; 5+ messages in thread
From: Vasily Khoruzhick @ 2012-09-26 11:12 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Sep 26, 2012 at 2:01 PM, Paul Parsons <lost.distance@yahoo.com> wrote:
> Hello Thierry,
>
> On 26/09/12 07:03, Thierry Reding wrote:
>>
>> On Wed, Sep 26, 2012 at 03:15:06AM +0100, Paul Parsons wrote:
>>>
>>> Recent changes to PXA PWM support changed the PXA27X PWM device
>>> numbering scheme.
>>>
>>> The linux-3.5 PXA PWM driver followed the hardware numbering scheme for
>>> the 4 PWMs, while the linux-3.6-rc1 PXA PWM driver has adopted a linear
>>> numbering scheme:
>>>
>>> Address Hardware 3.5 pwm_id 3.6-rc1 pwm_id
>>> 0x40b00000 PWM0 0 0
>>> 0x40b00010 PWM2 2 1
>>> 0x40c00000 PWM1 1 2
>>> 0x40c00010 PWM3 3 3
>>>
>>> The hx4700 backlight uses PWM1 at 0x40c00000. Consequently the pwm_id
>>> must be changed from 1 to 2.
>>>
>>> Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
>>> Cc: Thierry Reding <thierry.reding@avionic-design.de>
>>> ---
>>> arch/arm/mach-pxa/hx4700.c | 2 +-
>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>>
>> I wasn't aware of this difference. Sorry for breaking your board. While
>> at it, would you mind converting this to the new style PWM lookup table?
>>
>> You can find the information in Documentation/pwm.txt, but it should be
>> roughly something like this:
>>
>> static struct pwm_lookup hx4700_pwm_lookup[] = {
>> PWM_LOOKUP("pxa27x-pwm.1", 0, "pwm-backlight", NULL),
>> };
>>
>> You can then call:
>>
>> pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup));
>>
>> from hx4700_init(). The pwm-backlight driver will then be able to use
>> the new pwm_get() to obtain the PWM device. Note that pwm_request() will
>> go away sometime soon, so this conversion will have to be done anyway.
>> If you do it now I won't have to take care of it anymore. =)
>
>
> OK, will do.
>
> BTW, it is possible that the changed numbering scheme will also have
> broken three other PXA27X/PXA3XX boards which use PWM1 or PWM2:
>
> cm-x300
> tavorevb
> z2
>
> Unfortunately I have no way of testing these.
>
> Regards,
> Paul
I have Z2, looks like it's time to test 3.6-rcs on it :)
Regards
Vasily
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-09-26 11:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <5062652A.8070603@yahoo.com>
2012-09-26 2:17 ` [PATCH] ARM: pxa: hx4700: Fix backlight PWM device number Paul Parsons
2012-09-26 6:40 ` Vasily Khoruzhick
2012-09-26 10:39 ` Paul Parsons
[not found] ` <20120926060337.GB27855@avionic-0098.mockup.avionic-design.de>
2012-09-26 11:01 ` Paul Parsons
2012-09-26 11:12 ` Vasily Khoruzhick
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox