Commit 61e0ac03 authored by Igor Grinberg's avatar Igor Grinberg Committed by Eric Miao

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

Signed-off-by: default avatarIgor Grinberg <grinberg@compulab.co.il>
Signed-off-by: default avatarMike Rapoport <mike@compulab.co.il>
Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
parent 5c380462
...@@ -110,6 +110,8 @@ config MACH_CM_X300 ...@@ -110,6 +110,8 @@ config MACH_CM_X300
bool "CompuLab CM-X300 modules" bool "CompuLab CM-X300 modules"
select PXA3xx select PXA3xx
select CPU_PXA300 select CPU_PXA300
select CPU_PXA310
select HAVE_PWM
config ARCH_GUMSTIX config ARCH_GUMSTIX
bool "Gumstix XScale 255 boards" bool "Gumstix XScale 255 boards"
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <linux/dm9000.h> #include <linux/dm9000.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/rtc-v3020.h> #include <linux/rtc-v3020.h>
#include <linux/pwm_backlight.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/i2c/pca953x.h> #include <linux/i2c/pca953x.h>
...@@ -50,6 +51,7 @@ ...@@ -50,6 +51,7 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include "generic.h" #include "generic.h"
#include "devices.h"
#define CM_X300_ETH_PHYS 0x08000010 #define CM_X300_ETH_PHYS 0x08000010
...@@ -160,6 +162,9 @@ static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = { ...@@ -160,6 +162,9 @@ static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = {
/* Standard I2C */ /* Standard I2C */
GPIO21_I2C_SCL, GPIO21_I2C_SCL,
GPIO22_I2C_SDA, GPIO22_I2C_SDA,
/* PWM Backlight */
GPIO19_PWM2_OUT,
}; };
static mfp_cfg_t cm_x3xx_rev_lt130_mfp_cfg[] __initdata = { static mfp_cfg_t cm_x3xx_rev_lt130_mfp_cfg[] __initdata = {
...@@ -290,6 +295,30 @@ static void __init cm_x300_init_lcd(void) ...@@ -290,6 +295,30 @@ static void __init cm_x300_init_lcd(void)
static inline void cm_x300_init_lcd(void) {} static inline void cm_x300_init_lcd(void) {}
#endif #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) #if defined(CONFIG_SPI_GPIO) || defined(CONFIG_SPI_GPIO_MODULE)
#define GPIO_LCD_BASE (144) #define GPIO_LCD_BASE (144)
#define GPIO_LCD_DIN (GPIO_LCD_BASE + 8) /* aux_gpio3_0 */ #define GPIO_LCD_DIN (GPIO_LCD_BASE + 8) /* aux_gpio3_0 */
...@@ -654,6 +683,7 @@ static void __init cm_x300_init(void) ...@@ -654,6 +683,7 @@ static void __init cm_x300_init(void)
cm_x300_init_rtc(); cm_x300_init_rtc();
cm_x300_init_ac97(); cm_x300_init_ac97();
cm_x300_init_wi2wi(); cm_x300_init_wi2wi();
cm_x300_init_bl();
} }
static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags, static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment