#ifndef LEDS_MAIN_H_
#define LEDS_MAIN_H_

#define CAL_FILENAME "led_calibration_LUT.txt"

// R,G,B,Brightness
#define N_CAL_SETTINGS 4

int get_cal_string(char *buf, int len);
void get_cal_settings(unsigned int *settings, const char color_header[]);

enum LED_ANIMATION { WHITE, YELLOW, GREEN, BLUE, ORANGE, PURPLE, PINK};
#define NUM_LEDS 8

int check_read_cal_done(void);
void turn_on_led(enum LED_ANIMATION led_animation, unsigned int led_index);
void turn_off_led(unsigned int led_index);
void uboot_init_led_status(void);
void start_kernel_led_status(void);
void udisk_update_led_status(void);

#ifdef CONFIG_LED_AW210XX
int aw210xx_turn_on_led(enum LED_ANIMATION led_animation, unsigned int led_gcfg);
int aw210xx_turn_off_led(unsigned int led_index);
void aw210xx_uboot_init_led_status(void);
void aw210xx_start_kernel_led_status(void);
void aw210xx_udisk_update_led_status(void);
#endif

#ifdef CONFIG_LED_LP50XX
int lp50xx_turn_on_led(enum LED_ANIMATION led_animation, unsigned int led_index);
int lp50xx_turn_off_led(unsigned int led_index);
void lp50xx_uboot_init_led_status(void);
void lp50xx_start_kernel_led_status(void);
void lp50xx_udisk_update_led_status(void);
#endif

#endif  // LEDS_MAIN_H_
