diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-05-08 14:45:55 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-05-11 12:10:44 -0700 |
commit | 94b4c511a6a5f185bce14d30731f165c4c48d752 (patch) | |
tree | 1b26f85d80991d24cf22eb5e123796dd3d48c3cf /include/keyboard_backlight.h | |
parent | f21a0681c78e67ccc11f350dc3a455360fc765fb (diff) | |
download | chrome-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.h | 79 |
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 */ |