mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
82e39409d1
PD#SWPL-91800 Problem: there is no ledIc driver Solution: porting driver Verify: s4 ah212 Signed-off-by: junyi.zhao <junyi.zhao@amlogic.com> Change-Id: Id7e22d21b3378c56bdf2d0f00e55083f0830d94b
59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
|
|
/*
|
|
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __LEDS_STATE_H
|
|
#define __LEDS_STATE_H
|
|
|
|
#include <linux/err.h>
|
|
#include <linux/mutex.h>
|
|
#include <linux/of.h>
|
|
|
|
#define DRIVER_NAME "[Led State]"
|
|
#define MESON_LEDS_SCPI_CNT 50
|
|
#define MESON_LEDS_MAX_BLINK_CNT 15
|
|
#define MESON_LEDS_BREATH_MAX_COUNT 4
|
|
/* Limit on stick mem */
|
|
//#define LED_MAX_TIMES_CNT 255
|
|
#define MESON_LEDS_MAX_TIMES_CNT 0x3F
|
|
#define MESON_LEDS_MAX_HIGH_MS (50 * MESON_LEDS_MAX_TIMES_CNT)
|
|
#define MESON_LEDS_MAX_LOW_MS (50 * MESON_LEDS_MAX_TIMES_CNT)
|
|
|
|
enum led_state_t {
|
|
LED_STATE_DEFAULT = 0,
|
|
LED_STATE_BRIGHTNESS,
|
|
LED_STATE_BREATH,
|
|
LED_STATE_BLINK_ON,
|
|
LED_STATE_BLINK_OFF,
|
|
LED_STATE_BLINK_BREATH,
|
|
LED_STATE_BLINK_ON_HANDLE,
|
|
LED_STATE_BLINK_OFF_HANDLE,
|
|
LED_STATE_BLINK_BREATH_HANDLE,
|
|
LED_STATE_INVALID,
|
|
};
|
|
|
|
enum LedBrightness {
|
|
LED_STATE_OFF = 0,
|
|
LED_STATE_HALF = 127,
|
|
LED_STATE_FULL = 255,
|
|
};
|
|
|
|
struct led_state_data {
|
|
struct led_classdev cdev;
|
|
};
|
|
|
|
/* leds state APIs */
|
|
int meson_led_state_set_brightness(u32 led_id, u32 brightness);
|
|
int meson_led_state_set_breath(u32 led_id, u32 breath_id);
|
|
int meson_led_state_set_blink_on(u32 led_id, u32 blink_times,
|
|
u32 blink_high, u32 blink_low,
|
|
u32 brightness_high,
|
|
u32 brightness_low);
|
|
int meson_led_state_set_blink_off(u32 led_id, u32 blink_times,
|
|
u32 blink_high, u32 blink_low,
|
|
u32 brightness_high,
|
|
u32 brightness_low);
|
|
|
|
#endif /* __LEDS_STATE_H */
|