[PATCH] [ARM] pxa/cm-x300: add PWM backlight support

Igor Grinberg grinberg at compulab.co.il
Sun Nov 15 03:29:37 EST 2009


Hi Eric,

Any updates on this?

Igor Grinberg wrote:
> Signed-off-by: Igor Grinberg <grinberg at compulab.co.il>
> Signed-off-by: Mike Rapoport <mike at compulab.co.il>
> ---
>  arch/arm/mach-pxa/Kconfig   |    1 +
>  arch/arm/mach-pxa/cm-x300.c |   30 ++++++++++++++++++++++++++++++
>  2 files changed, 31 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
> index 5088b7b..f239cbb 100644
> --- a/arch/arm/mach-pxa/Kconfig
> +++ b/arch/arm/mach-pxa/Kconfig
> @@ -244,6 +244,7 @@ config MACH_COLIBRI300
>  	select PXA3xx
>  	select CPU_PXA300
>  	select CPU_PXA310
> +	select HAVE_PWM
>  
>  config MACH_COLIBRI320
>  	bool "Toradex Colibri PXA320"
> diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
> index e475908..9ce1a4b 100644
> --- a/arch/arm/mach-pxa/cm-x300.c
> +++ b/arch/arm/mach-pxa/cm-x300.c
> @@ -24,6 +24,7 @@
>  #include <linux/dm9000.h>
>  #include <linux/leds.h>
>  #include <linux/rtc-v3020.h>
> +#include <linux/pwm_backlight.h>
>  
>  #include <linux/i2c.h>
>  #include <linux/i2c/pca953x.h>
> @@ -50,6 +51,7 @@
>  #include <asm/mach/map.h>
>  
>  #include "generic.h"
> +#include "devices.h"
>  
>  #define CM_X300_ETH_PHYS	0x08000010
>  
> @@ -160,6 +162,9 @@ static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = {
>  	/* Standard I2C */
>  	GPIO21_I2C_SCL,
>  	GPIO22_I2C_SDA,
> +
> +	/* PWM Backlight */
> +	GPIO19_PWM2_OUT,
>  };
>  
>  static mfp_cfg_t cm_x3xx_rev_lt130_mfp_cfg[] __initdata = {
> @@ -290,6 +295,30 @@ static void __init cm_x300_init_lcd(void)
>  static inline void cm_x300_init_lcd(void) {}
>  #endif
>  
> +#if defined(CONFIG_BACKLIGHT_PWM) || defined(CONFIG_BACKLIGHT_PWM_MODULE)
> +static struct platform_pwm_backlight_data cm_x300_backlight_data = {
> +	.pwm_id		= 2,
> +	.max_brightness	= 100,
> +	.dft_brightness	= 100,
> +	.pwm_period_ns	= 10000,
> +};
> +
> +static struct platform_device cm_x300_backlight_device = {
> +	.name		= "pwm-backlight",
> +	.dev		= {
> +		.parent = &pxa27x_device_pwm0.dev,
> +		.platform_data	= &cm_x300_backlight_data,
> +	},
> +};
> +
> +static void cm_x300_init_bl(void)
> +{
> +	platform_device_register(&cm_x300_backlight_device);
> +}
> +#else
> +static inline void cm_x300_init_bl(void) {}
> +#endif
> +
>  #if defined(CONFIG_SPI_GPIO) || defined(CONFIG_SPI_GPIO_MODULE)
>  #define GPIO_LCD_BASE	(144)
>  #define GPIO_LCD_DIN	(GPIO_LCD_BASE + 8)	/* aux_gpio3_0 */
> @@ -649,6 +678,7 @@ static void __init cm_x300_init(void)
>  	cm_x300_init_rtc();
>  	cm_x300_init_ac97();
>  	cm_x300_init_wi2wi();
> +	cm_x300_init_bl();
>  }
>  
>  static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags,
>   



More information about the linux-arm-kernel mailing list