/* SPDX-License-Identifier: GPL-2.0 */
/*
 * PWM LED driver data - see drivers/leds/leds-breath.c
 */
#ifndef __LINUX_LEDS_MTK_CONTROL_H
#define __LINUX_LEDS_MTK_CONTROL_H

extern int mtk_rpmsg_led_txn(void *data, size_t len);
int mtk_led_control(int mode, bool on);
int mtk_led_ir_blinking(bool on);


#define GPIO_CONTROL_MODE		(1UL << 0)
#define PWM_CONTROL_MODE		(1UL << 1)
#define PMU_CONTROL_MODE		(1UL << 2)
#define LIGHTBAR_CONTROL_MODE	(1UL << 3)

#define LED_HIGH_DUTY		(100)
#define LED_MID_DUTY		(60)
#define LED_LOW_DUTY		(30)

enum LED_CONTROL {
	LED_CONTROL_LIGHT = 0x00,
	LED_CONTROL_FLICKER,
	LED_CONTROL_BREATH,
};

enum LED_MODE {
	LED_MODE_LIGHT = 0,
	LED_MODE_OFF,
	LED_MODE_BREATH,
	LED_MODE_GPIO_SET, //led gpio setting
	LED_MODE_FLICKER, //flicker
	LED_MODE_MAX
};

enum LED_BLINK_STAGE {
	E_LED_STAGE_STANDBY_ENTER = 0,
	E_LED_STAGE_STANDBY_EXIT,
	E_LED_STAGE_STANDBY_SEARCH,
	E_LED_STAGE_OAD,
	E_LED_STAGE_RECORD,
	E_LED_STAGE_AIRPLAY,
	E_LED_STAGE_IR_BLINKING,
};

enum LED_DUTY_MODE {
	E_LED_DUTY_HIGH = 0x00,
	E_LED_DUTY_MEDIUM,
	E_LED_DUTY_LOW,
	E_LED_DUTY_MAX,
};

enum IR_KEY_STAGE {
	E_IR_KEY_STANDBY = 0x00,
	E_IR_KEY_PRESS,
	E_IR_KEY_RELEASE,
};

extern int mtk_led_ir_blinking(bool on);

#endif
