diff options
| author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2013-03-11 12:57:56 +0100 | 
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2013-04-08 14:01:04 -0700 | 
| commit | 2014f269490ca8825cb4c0f71f90ccc8f25c4aa1 (patch) | |
| tree | 5fc74eaeafe92aabbfcbf2a7da579575c2910cf2 /arch/arm/mach-omap2/board-zoom-peripherals.c | |
| parent | 03784f22b97feeedd16db3f998882269231157c2 (diff) | |
| download | olio-linux-3.10-2014f269490ca8825cb4c0f71f90ccc8f25c4aa1.tar.xz olio-linux-3.10-2014f269490ca8825cb4c0f71f90ccc8f25c4aa1.zip  | |
ARM: OMAP: zoom: Use pwm stack for lcd and keyboard backlight
Use pwm_leds driver for the keyboard light and pwm-backlight for the lcd
backlight control (instead of implementing the PWM driver part in the board
file).
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-zoom-peripherals.c')
| -rw-r--r-- | arch/arm/mach-omap2/board-zoom-peripherals.c | 53 | 
1 files changed, 52 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index cdc0c102186..a90375d5b2b 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c @@ -22,6 +22,9 @@  #include <linux/platform_data/gpio-omap.h>  #include <linux/platform_data/omap-twl4030.h>  #include <linux/usb/phy.h> +#include <linux/pwm.h> +#include <linux/leds_pwm.h> +#include <linux/pwm_backlight.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -193,6 +196,53 @@ static struct platform_device omap_vwlan_device = {  	},  }; +static struct pwm_lookup zoom_pwm_lookup[] = { +	PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "zoom::keypad"), +	PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", "backlight"), +}; + +static struct led_pwm zoom_pwm_leds[] = { +	{ +		.name		= "zoom::keypad", +		.max_brightness	= 127, +		.pwm_period_ns	= 7812500, +	}, +}; + +static struct led_pwm_platform_data zoom_pwm_data = { +	.num_leds	= ARRAY_SIZE(zoom_pwm_leds), +	.leds		= zoom_pwm_leds, +}; + +static struct platform_device zoom_leds_pwm = { +	.name	= "leds_pwm", +	.id	= -1, +	.dev	= { +		.platform_data = &zoom_pwm_data, +	}, +}; + +static struct platform_pwm_backlight_data zoom_backlight_data = { +	.pwm_id = 1, +	.max_brightness = 127, +	.dft_brightness = 127, +	.pwm_period_ns = 7812500, +}; + +static struct platform_device zoom_backlight_pwm = { +	.name   = "pwm-backlight", +	.id     = -1, +	.dev    = { +		.platform_data = &zoom_backlight_data, +	}, +}; + +static struct platform_device *zoom_devices[] __initdata = { +	&omap_vwlan_device, +	&zoom_leds_pwm, +	&zoom_backlight_pwm, +}; +  static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {  	.board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */  }; @@ -301,7 +351,8 @@ void __init zoom_peripherals_init(void)  	omap_hsmmc_init(mmc);  	omap_i2c_init(); -	platform_device_register(&omap_vwlan_device); +	pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup)); +	platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));  	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	enable_board_wakeup_source();  |