|
@@ -24,8 +24,10 @@
|
|
|
#include <linux/gpio_keys.h>
|
|
|
#include <linux/regulator/machine.h>
|
|
|
#include <linux/regulator/fixed.h>
|
|
|
+#include <linux/pwm.h>
|
|
|
#include <linux/leds.h>
|
|
|
#include <linux/leds_pwm.h>
|
|
|
+#include <linux/pwm_backlight.h>
|
|
|
#include <linux/platform_data/omap4-keypad.h>
|
|
|
#include <linux/usb/musb.h>
|
|
|
|
|
@@ -256,10 +258,20 @@ static struct gpio_led_platform_data sdp4430_led_data = {
|
|
|
.num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
|
|
|
};
|
|
|
|
|
|
+static struct pwm_lookup sdp4430_pwm_lookup[] = {
|
|
|
+ PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "omap4::keypad"),
|
|
|
+ PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", NULL),
|
|
|
+ PWM_LOOKUP("twl-pwmled", 0, "leds_pwm", "omap4:green:chrg"),
|
|
|
+};
|
|
|
+
|
|
|
static struct led_pwm sdp4430_pwm_leds[] = {
|
|
|
+ {
|
|
|
+ .name = "omap4::keypad",
|
|
|
+ .max_brightness = 127,
|
|
|
+ .pwm_period_ns = 7812500,
|
|
|
+ },
|
|
|
{
|
|
|
.name = "omap4:green:chrg",
|
|
|
- .pwm_id = 1,
|
|
|
.max_brightness = 255,
|
|
|
.pwm_period_ns = 7812500,
|
|
|
},
|
|
@@ -278,6 +290,20 @@ static struct platform_device sdp4430_leds_pwm = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static struct platform_pwm_backlight_data sdp4430_backlight_data = {
|
|
|
+ .max_brightness = 127,
|
|
|
+ .dft_brightness = 127,
|
|
|
+ .pwm_period_ns = 7812500,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device sdp4430_backlight_pwm = {
|
|
|
+ .name = "pwm-backlight",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &sdp4430_backlight_data,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static int omap_prox_activate(struct device *dev)
|
|
|
{
|
|
|
gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
|
|
@@ -412,6 +438,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
|
|
|
&sdp4430_gpio_keys_device,
|
|
|
&sdp4430_leds_gpio,
|
|
|
&sdp4430_leds_pwm,
|
|
|
+ &sdp4430_backlight_pwm,
|
|
|
&sdp4430_vbat,
|
|
|
&sdp4430_dmic_codec,
|
|
|
&sdp4430_abe_audio,
|
|
@@ -707,6 +734,7 @@ static void __init omap_4430sdp_init(void)
|
|
|
ARRAY_SIZE(sdp4430_spi_board_info));
|
|
|
}
|
|
|
|
|
|
+ pwm_add_table(sdp4430_pwm_lookup, ARRAY_SIZE(sdp4430_pwm_lookup));
|
|
|
status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data);
|
|
|
if (status)
|
|
|
pr_err("Keypad initialization failed: %d\n", status);
|