summaryrefslogtreecommitdiff
path: root/include/keyboard_backlight.h
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-05-08 14:45:55 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-05-11 12:10:44 -0700
commit94b4c511a6a5f185bce14d30731f165c4c48d752 (patch)
tree1b26f85d80991d24cf22eb5e123796dd3d48c3cf /include/keyboard_backlight.h
parentf21a0681c78e67ccc11f350dc3a455360fc765fb (diff)
downloadchrome-ec-94b4c511a6a5f185bce14d30731f165c4c48d752.tar.gz
kblight: Add keyboard backlight control module
This patch promotes board/nami/keyboard_backlight.c to common directory. Board customization is done via board_kblight_init callback. It currently supports two drivers: direct PWM control and lm3509. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b:78360907,b:78141647 BRANCH=none TEST=On Nami (for lm3509) and Sona (pwm), verify the followings: 1. Alt + brightness up/down works 2. After suspend-resume, brightness is restored 3. Lid close/open 4. After screen is off, keyboard backlight is turned off Change-Id: I584c06e8702fe7b289999698f277311cfd3400bd Reviewed-on: https://chromium-review.googlesource.com/1051027 Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'include/keyboard_backlight.h')
-rw-r--r--include/keyboard_backlight.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/include/keyboard_backlight.h b/include/keyboard_backlight.h
new file mode 100644
index 0000000000..2389b3dfe0
--- /dev/null
+++ b/include/keyboard_backlight.h
@@ -0,0 +1,79 @@
+/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef __CROS_EC_KEYBOARD_BACKLIGHT_H
+#define __CROS_EC_KEYBOARD_BACKLIGHT_H
+
+struct kblight_conf {
+ const struct kblight_drv *drv;
+};
+
+struct kblight_drv {
+ /**
+ * Initialize the keyboard backlight controller
+ * @return EC_SUCCESS or EC_ERROR_*
+ */
+ int (*init)(void);
+
+ /**
+ * Set the brightness
+ * @param percent
+ * @return EC_SUCCESS or EC_ERROR_*
+ */
+ int (*set)(int percent);
+
+ /**
+ * Get the current brightness
+ * @return Brightness in percentage
+ */
+ int (*get)(void);
+
+ /**
+ * Enable or disable keyboard backlight
+ * @param enable: 1=Enable, 0=Disable.
+ * @return EC_SUCCESS or EC_ERROR_*
+ */
+ int (*enable)(int enable);
+};
+
+/**
+ * Initialize keyboard backlight per board
+ */
+void board_kblight_init(void);
+
+/**
+ * Set keyboard backlight brightness
+ *
+ * @param percent Brightness in percentage
+ * @return EC_SUCCESS or EC_ERROR_*
+ */
+int kblight_set(int percent);
+
+/**
+ * Get keyboard backlight brightness
+ *
+ * @return Brightness in percentage
+ */
+int kblight_get(void);
+
+/**
+ * Enable or disable keyboard backlight
+ *
+ * @param enable: 1=Enable, 0=Disable.
+ * @return EC_SUCCESS or EC_ERROR_*
+ */
+int kblight_enable(int enable);
+
+/**
+ * Register keyboard backlight controller
+ *
+ * @param drv: Driver of keyboard backlight controller
+ * @return EC_SUCCESS or EC_ERROR_*
+ */
+int kblight_register(const struct kblight_drv *drv);
+
+extern const struct kblight_drv kblight_pwm;
+
+#endif /* __CROS_EC_KEYBOARD_BACKLIGHT_H */