Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5cca9147 authored by eric miao's avatar eric miao Committed by Russell King
Browse files

[ARM] pxa: make zylonite use the generic PWM backlight driver



Patch mostly by Eric Miao, minor edits by rmk.

Signed-off-by: default avatareric miao <eric.miao@marvell.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 42796d37
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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
+17 −9
Original line number Diff line number Diff line
@@ -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);
+1 −3
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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 */
+0 −1
Original line number Diff line number Diff line
@@ -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;