50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2021 MediaTek Inc.
|
|
*
|
|
*/
|
|
|
|
#include <linux/leds.h>
|
|
|
|
enum mtk_leds_events {
|
|
LED_BRIGHTNESS_CHANGED = 0,
|
|
LED_STATUS_SHUTDOWN = 1
|
|
};
|
|
|
|
enum led_mode {
|
|
MT_LED_MODE_CUST_LCM = 4,
|
|
MT_LED_MODE_CUST_BLS_PWM,
|
|
MT_LED_MODE_CUST_BLS_I2C
|
|
};
|
|
|
|
struct led_conf_info {
|
|
int max_hw_brightness;
|
|
int min_hw_brightness;
|
|
int limit_hw_brightness;
|
|
int min_brightness;
|
|
unsigned int aal_enable;
|
|
struct led_classdev cdev;
|
|
int flags;
|
|
enum led_mode mode;
|
|
int connector_id;
|
|
#define LED_MT_BRIGHTNESS_HW_CHANGED BIT(1)
|
|
#define LED_MT_BRIGHTNESS_CHANGED BIT(2)
|
|
|
|
#ifdef CONFIG_LEDS_MT_BRIGHTNESS_HW_CHANGED
|
|
int brightness_hw_changed;
|
|
struct kernfs_node *brightness_hw_changed_kn;
|
|
#endif
|
|
};
|
|
|
|
#ifdef CONFIG_LEDS_MT_BRIGHTNESS_HW_CHANGED
|
|
void mtk_leds_notify_brightness_hw_changed(
|
|
struct led_conf_info *led_conf, enum led_brightness brightness);
|
|
#else
|
|
static inline void mtk_leds_notify_brightness_hw_changed(
|
|
struct led_conf_info *led_conf, enum led_brightness brightness) { }
|
|
#endif
|
|
|
|
int mtk_leds_register_notifier(struct notifier_block *nb);
|
|
int mtk_leds_unregister_notifier(struct notifier_block *nb);
|
|
int mtk_leds_brightness_set(char *name, int level, unsigned int params, unsigned int params_flag);
|
|
int setMaxBrightness(char *name, int percent, bool enable);
|