ARM: pxa: hx4700: Fix backlight PWM device number
Subsystems (3)
PATCH v2 1/1 ARM: pxa: hx4700: Fix backlight PWM device number
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_id0x40b00000 PWM0 0 00x40b00010 PWM2 2 10x40c00000 PWM1 1 20x40c00010 PWM3 3 3
The hx4700 backlight uses PWM1 at 0x40c00000. Consequently the pwm_id must be changed from 1 to 2.
This patch fixes the backlight PWM device number and at the same time moves from the legacy PWM API (pwm_id) to the new PWM API (pwm_lookup).
---
V2: Switch from legacy PWM API to new PWM API.
arch/arm/mach-pxa/hx4700.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
arch/arm/mach-pxa/hx4700.c +7 -1
@@ -28,6 +28,7 @@#include <linux/mfd/asic3.h> #include <linux/mtd/physmap.h> #include <linux/pda_power.h> +#include <linux/pwm.h> #include <linux/pwm_backlight.h> #include <linux/regulator/driver.h> #include <linux/regulator/gpio-regulator.h>
@@ -556,7 +557,7 @@ static struct platform_device hx4700_lcd = {*/ static struct platform_pwm_backlight_data backlight_data = { - .pwm_id =1 , + .pwm_id =-1 ,/* Superseded by pwm_lookup */ .max_brightness =200 , .dft_brightness =100 , .pwm_period_ns =30923 ,
@@ -571,6 +572,10 @@ static struct platform_device backlight = { }, }; +static struct pwm_lookup hx4700_pwm_lookup[] = { +PWM_LOOKUP ("pxa27x-pwm.1" ,0 ,"pwm-backlight" ,NULL ), +}; +/* * USB "Transceiver" */
@@ -872,6 +877,7 @@ static void __init hx4700_init(void)pxa_set_stuart_info (NULL );platform_add_devices (devices,ARRAY_SIZE (devices)); +pwm_add_table (hx4700_pwm_lookup,ARRAY_SIZE (hx4700_pwm_lookup));pxa_set_ficp_info (&ficp_info);pxa27x_set_i2c_power_info (NULL );
Signature · 1 line
1.7.8.6
PATCH v2 1/1 ARM: pxa: hx4700: Fix backlight PWM device number
Quoted 41 lines · Paul Parsons
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_id3.6-rc1pwm_id0x40b00000PWM0 0 00x40b00010PWM2 2 10x40c00000PWM1 1 20x40c00010PWM3 3 3The hx4700 backlight uses PWM1 at
0x40c00000. Consequently thepwm_idmust be changed from 1 to 2.This patch fixes the backlight PWM device number and at the same time moves from the legacy PWM API (
pwm_id) to the new PWM API (pwm_lookup).Signed-off-by Paul Parsons <[email protected]>Cc Thierry Reding <[email protected]>---
V2: Switch from legacy PWM API to new PWM API.
arch/arm/mach-pxa/hx4700.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)arch/arm/mach-pxa/hx4700.c +1
-0@@ -28,6 +28,7 @@#include <linux/mfd/asic3.h> #include <linux/mtd/physmap.h> #include <linux/pda_power.h> +#include <linux/pwm.h> #include <linux/pwm_backlight.h> #include <linux/regulator/driver.h> #include <linux/regulator/gpio-regulator.h>
arch/arm/mach-pxa/hx4700.c static struct platform_device hx4700_lcd = { · line 560
Quoted 5 lines
arch/arm/mach-pxa/hx4700.c +1
-1@@ -556,7 +557,7 @@ static struct platform_device hx4700_lcd = {*/ static struct platform_pwm_backlight_data backlight_data = { - .pwm_id =1 , + .pwm_id =-1 ,/* Superseded by pwm_lookup */
It doesn't actually matter what this is set to, but -1 is probably a good marker that the field is invalid.
Quoted 15 lines
arch/arm/mach-pxa/hx4700.c +4
-0.max_brightness = 200, .dft_brightness = 100, .pwm_period_ns = 30923,@@ -571,6 +572,10 @@ static struct platform_device backlight = { }, }; +static struct pwm_lookup hx4700_pwm_lookup[] = { +PWM_LOOKUP ("pxa27x-pwm.1" ,0 ,"pwm-backlight" ,NULL ), +}; +/* * USB "Transceiver" */
arch/arm/mach-pxa/hx4700.c static void __init hx4700_init(void) · line 883
Quoted 7 lines
arch/arm/mach-pxa/hx4700.c +1
-0@@ -872,6 +877,7 @@ static void __init hx4700_init(void)pxa_set_stuart_info (NULL );platform_add_devices (devices,ARRAY_SIZE (devices)); +pwm_add_table (hx4700_pwm_lookup,ARRAY_SIZE (hx4700_pwm_lookup));pxa_set_ficp_info (&ficp_info);pxa27x_set_i2c_power_info (NULL );
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120927/69adbda6/attachment-0001.sig>
Haojian Zhuang
maintainerPATCH v2 1/1 ARM: pxa: hx4700: Fix backlight PWM device number
Quoted 68 lines · Thierry Reding
Quoted 41 lines · Paul Parsons
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_id3.6-rc1pwm_id0x40b00000 PWM0 0 0 0x40b00010 PWM2 2 1 0x40c00000 PWM1 1 2 0x40c00010 PWM3 3 3The hx4700 backlight uses PWM1 at
0x40c00000. Consequently thepwm_idmust be changed from 1 to 2.This patch fixes the backlight PWM device number and at the same time moves from the legacy PWM API (
pwm_id) to the new PWM API (pwm_lookup).Signed-off-by Paul Parsons <[email protected]>Cc Thierry Reding <[email protected]>---
V2: Switch from legacy PWM API to new PWM API.
arch/arm/mach-pxa/hx4700.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)arch/arm/mach-pxa/hx4700.c +1
-0@@ -28,6 +28,7 @@#include <linux/mfd/asic3.h> #include <linux/mtd/physmap.h> #include <linux/pda_power.h> +#include <linux/pwm.h> #include <linux/pwm_backlight.h> #include <linux/regulator/driver.h> #include <linux/regulator/gpio-regulator.h> arch/arm/mach-pxa/hx4700.c static struct platform_device hx4700_lcd = { · line 560
Quoted 5 lines
arch/arm/mach-pxa/hx4700.c +1
-1@@ -556,7 +557,7 @@ static struct platform_device hx4700_lcd = {*/ static struct platform_pwm_backlight_data backlight_data = { - .pwm_id =1 , + .pwm_id =-1 ,/* Superseded by pwm_lookup */ It doesn't actually matter what this is set to, but -1 is probably a good marker that the field is invalid.
Quoted 17 lines
arch/arm/mach-pxa/hx4700.c +4
-0.max_brightness = 200, .dft_brightness = 100, .pwm_period_ns = 30923,@@ -571,6 +572,10 @@ static struct platform_device backlight = { }, }; +static struct pwm_lookup hx4700_pwm_lookup[] = { +PWM_LOOKUP ("pxa27x-pwm.1" ,0 ,"pwm-backlight" ,NULL ), +}; +/* * USB "Transceiver" */ @@ -872,6 +877,7 @@ static void __init hx4700_init(void)pxa_set_stuart_info (NULL );
Quoted 7 lines
arch/arm/mach-pxa/hx4700.c static void __init hx4700_init(void) · line 883
Quoted 5 lines
arch/arm/mach-pxa/hx4700.c +1
-0platform_add_devices (devices,ARRAY_SIZE (devices)); +pwm_add_table (hx4700_pwm_lookup,ARRAY_SIZE (hx4700_pwm_lookup));pxa_set_ficp_info (&ficp_info);pxa27x_set_i2c_power_info (NULL );Reviewed-by Thierry Reding <[email protected]>
Paul,
I failed to apply this patch on v3.7-rc1. Could you help to format the patch again?
Regards
Haojian