diff options
author | Jun Yan <juyan@nvidia.com> | 2013-04-05 13:51:18 -0700 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2013-04-16 13:07:07 -0700 |
commit | 83d0a7d9742b052cd5e1262ce1efd1ba4bb8c195 (patch) | |
tree | de31defa1b1fc6a97aa785967c1fdddfabe00527 /include | |
parent | 6039c5a98fde36976b5e06071fb90999391fb19a (diff) |
kernel: drivers: leds: Modify led pwm driver
Added sysfs node that can enable/disable the tri-state
buffer at Tegra LED driving output
This change and change http://git-master/r/#change,216037
DEPENDS ON EACH OTHER
Bug 1198937
Change-Id: I1e9fe9e83ddddec44e2740ba23c8ee3de1cc3561
Signed-off-by: Jun Yan <juyan@nvidia.com>
Reviewed-on: http://git-master/r/216038
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Matt Wagner <mwagner@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/leds.h | 13 | ||||
-rw-r--r-- | include/linux/leds_pwm.h | 11 |
2 files changed, 22 insertions, 2 deletions
diff --git a/include/linux/leds.h b/include/linux/leds.h index 5884def15a24..32c4a4679be6 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h @@ -28,11 +28,17 @@ enum led_brightness { LED_FULL = 255, }; +enum led_enable { + LED_ENABLE = 1, + LED_DISABLE = 0, +}; + struct led_classdev { const char *name; int brightness; int max_brightness; int flags; + int enable; /* Lower 16 bits reflect status */ #define LED_SUSPENDED (1 << 0) @@ -46,6 +52,10 @@ struct led_classdev { /* Get LED brightness level */ enum led_brightness (*brightness_get)(struct led_classdev *led_cdev); + void (*enable_set)(struct led_classdev *led_cdev, + enum led_enable enable); + enum led_enable (*enable_get)(struct led_classdev *led_cdev); + /* * Activate hardware accelerated blink, delays are in milliseconds * and if both are zero then a sensible default should be chosen. @@ -112,6 +122,9 @@ extern void led_blink_set(struct led_classdev *led_cdev, extern void led_brightness_set(struct led_classdev *led_cdev, enum led_brightness brightness); +extern void led_enable_set(struct led_classdev *led_cdev, + enum led_enable enable); + /* * LED Triggers */ diff --git a/include/linux/leds_pwm.h b/include/linux/leds_pwm.h index 33a071167489..7ca03a7134e8 100644 --- a/include/linux/leds_pwm.h +++ b/include/linux/leds_pwm.h @@ -4,6 +4,10 @@ #ifndef __LINUX_LEDS_PWM_H #define __LINUX_LEDS_PWM_H +#include <mach/pinmux.h> + +#define TEGRA_LED_MAX 1 + struct led_pwm { const char *name; const char *default_trigger; @@ -14,8 +18,11 @@ struct led_pwm { }; struct led_pwm_platform_data { - int num_leds; - struct led_pwm *leds; + int num_leds; + struct led_pwm *leds; + int init_gpio; + int OE_gpio; + const struct tegra_pingroup_config *mux; }; #endif |