summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJun Yan <juyan@nvidia.com>2013-04-05 13:51:18 -0700
committerSimone Willett <swillett@nvidia.com>2013-04-16 13:07:07 -0700
commit83d0a7d9742b052cd5e1262ce1efd1ba4bb8c195 (patch)
treede31defa1b1fc6a97aa785967c1fdddfabe00527 /include
parent6039c5a98fde36976b5e06071fb90999391fb19a (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.h13
-rw-r--r--include/linux/leds_pwm.h11
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