mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-14 00:26:30 +00:00
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>
80 lines
1.6 KiB
C
80 lines
1.6 KiB
C
/* 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 */
|