forked from Minki/linux
[ARM] pxa: make zylonite use the generic PWM backlight driver
Patch mostly by Eric Miao, minor edits by rmk. Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
42796d37da
commit
5cca91479b
@ -116,6 +116,7 @@ config MACH_COLIBRI
|
||||
config MACH_ZYLONITE
|
||||
bool "PXA3xx Development Platform"
|
||||
select PXA3xx
|
||||
select HAVE_PWM
|
||||
|
||||
config MACH_LITTLETON
|
||||
bool "PXA3xx Form Factor Platform (aka Littleton)"
|
||||
@ -276,6 +277,7 @@ config PXA_SSP
|
||||
|
||||
config PXA_PWM
|
||||
tristate
|
||||
default BACKLIGHT_PWM
|
||||
help
|
||||
Enable support for PXA2xx/PXA3xx PWM controllers
|
||||
endif
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -28,12 +29,12 @@
|
||||
#include <asm/arch/mmc.h>
|
||||
#include <asm/arch/pxa27x_keypad.h>
|
||||
|
||||
#include "devices.h"
|
||||
#include "generic.h"
|
||||
|
||||
#define MAX_SLOTS 3
|
||||
struct platform_mmc_slot zylonite_mmc_slot[MAX_SLOTS];
|
||||
|
||||
int gpio_backlight;
|
||||
int gpio_eth_irq;
|
||||
|
||||
int wm9713_irq;
|
||||
@ -62,10 +63,20 @@ static struct platform_device smc91x_device = {
|
||||
};
|
||||
|
||||
#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
|
||||
static void zylonite_backlight_power(int on)
|
||||
{
|
||||
gpio_set_value(gpio_backlight, on);
|
||||
}
|
||||
static struct platform_pwm_backlight_data zylonite_backlight_data = {
|
||||
.pwm_id = 3,
|
||||
.max_brightness = 100,
|
||||
.dft_brightness = 100,
|
||||
.pwm_period_ns = 10000,
|
||||
};
|
||||
|
||||
static struct platform_device zylonite_backlight_device = {
|
||||
.name = "pwm-backlight",
|
||||
.dev = {
|
||||
.parent = &pxa27x_device_pwm1.dev,
|
||||
.platform_data = &zylonite_backlight_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pxafb_mode_info toshiba_ltm035a776c_mode = {
|
||||
.pixclock = 110000,
|
||||
@ -98,7 +109,6 @@ static struct pxafb_mode_info toshiba_ltm04c380k_mode = {
|
||||
static struct pxafb_mach_info zylonite_toshiba_lcd_info = {
|
||||
.num_modes = 1,
|
||||
.lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
||||
.pxafb_backlight_power = zylonite_backlight_power,
|
||||
};
|
||||
|
||||
static struct pxafb_mode_info sharp_ls037_modes[] = {
|
||||
@ -134,13 +144,11 @@ static struct pxafb_mach_info zylonite_sharp_lcd_info = {
|
||||
.modes = sharp_ls037_modes,
|
||||
.num_modes = 2,
|
||||
.lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
||||
.pxafb_backlight_power = zylonite_backlight_power,
|
||||
};
|
||||
|
||||
static void __init zylonite_init_lcd(void)
|
||||
{
|
||||
/* backlight GPIO: output, default on */
|
||||
gpio_direction_output(gpio_backlight, 1);
|
||||
platform_device_register(&zylonite_backlight_device);
|
||||
|
||||
if (lcd_id & 0x20) {
|
||||
set_pxa_fb_info(&zylonite_sharp_lcd_info);
|
||||
|
@ -50,6 +50,7 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
|
||||
GPIO75_LCD_BIAS,
|
||||
GPIO76_LCD_VSYNC,
|
||||
GPIO127_LCD_CS_N,
|
||||
GPIO20_PWM3_OUT, /* backlight */
|
||||
|
||||
/* BTUART */
|
||||
GPIO111_UART2_RTS,
|
||||
@ -200,9 +201,6 @@ void __init zylonite_pxa300_init(void)
|
||||
/* detect LCD panel */
|
||||
zylonite_detect_lcd_panel();
|
||||
|
||||
/* GPIO pin assignment */
|
||||
gpio_backlight = mfp_to_gpio(MFP_PIN_GPIO20);
|
||||
|
||||
/* MMC card detect & write protect for controller 0 */
|
||||
zylonite_mmc_slot[0].gpio_cd = EXT_GPIO(0);
|
||||
zylonite_mmc_slot[0].gpio_wp = EXT_GPIO(2);
|
||||
|
@ -49,6 +49,7 @@ static mfp_cfg_t mfp_cfg[] __initdata = {
|
||||
GPIO15_2_LCD_LCLK,
|
||||
GPIO16_2_LCD_PCLK,
|
||||
GPIO17_2_LCD_BIAS,
|
||||
GPIO14_PWM3_OUT, /* backlight */
|
||||
|
||||
/* FFUART */
|
||||
GPIO41_UART1_RXD | MFP_LPM_EDGE_FALL,
|
||||
@ -187,7 +188,6 @@ void __init zylonite_pxa320_init(void)
|
||||
zylonite_detect_lcd_panel();
|
||||
|
||||
/* GPIO pin assignment */
|
||||
gpio_backlight = mfp_to_gpio(MFP_PIN_GPIO14);
|
||||
gpio_eth_irq = mfp_to_gpio(MFP_PIN_GPIO9);
|
||||
|
||||
/* MMC card detect & write protect for controller 0 */
|
||||
|
@ -15,7 +15,6 @@ struct platform_mmc_slot {
|
||||
|
||||
extern struct platform_mmc_slot zylonite_mmc_slot[];
|
||||
|
||||
extern int gpio_backlight;
|
||||
extern int gpio_eth_irq;
|
||||
|
||||
extern int wm9713_irq;
|
||||
|
Loading…
Reference in New Issue
Block a user