186 lines
5.3 KiB
C
Executable File
186 lines
5.3 KiB
C
Executable File
/*
|
|
* board/novatek/evb670b/nvt_stbc.h
|
|
*
|
|
* Author: Alvin lin
|
|
* Created: April 29, 2013
|
|
* Copyright: Novatek Inc.
|
|
*
|
|
*/
|
|
#ifndef __NVT_STBC_H__
|
|
#define __NVT_STBC_H__
|
|
void nvt_stbc_unlock_reg(void);
|
|
void nvt_stbc_set_keypass(int enable);
|
|
void nvt_stbc_stay_in_sram(void);
|
|
void nvt_stbc_exit_idle(void);
|
|
void nvt_stbc_reset(void);
|
|
#define STBCDAT_SIGN "SDAT"
|
|
|
|
//Power on mode store in partition 7(important data), which use EXT4 filesystem
|
|
#define POWERON_MODE_PARTITON 7
|
|
#define POWERON_MODE_NAME "power_mode.bin"
|
|
#define USR_MODE_PARTITON 8
|
|
#define USR_MODE_NAME "usr_stbc.bin"
|
|
|
|
#define MAC_FILE_NAME "mac.bin"
|
|
|
|
typedef struct _stbcdat {
|
|
unsigned char sign[4];//'S','D','A','T'
|
|
unsigned int uboot_load_id;//0 or 1
|
|
unsigned char reserved[504];
|
|
} stbcdat;
|
|
|
|
#define STBCDATA_SIGN "STBC"
|
|
|
|
typedef enum {
|
|
POWERON_MODE_ON,
|
|
POWERON_MODE_STB,
|
|
POWERON_MODE_LAST,
|
|
POWERON_MODE_NUMS
|
|
}FAC_POWERON_MODE_TYPE;
|
|
|
|
typedef enum _stbc_pwr_sts {
|
|
STBC_PWR_ON,
|
|
STBC_PWR_STANDBY
|
|
}FAC_POWERON_LAST_MODE;
|
|
|
|
typedef enum _backlight_flag {
|
|
BACKLIGHT_ON,
|
|
BACKLIGHT_OFF
|
|
}BACKLIGHT_FLAG_E;
|
|
|
|
typedef enum _keypad_lock_flag {
|
|
KEYPAD_UNLOCK,
|
|
KEYPAD_LOCK
|
|
}KEYPAD_LOCK_FLAG;
|
|
|
|
typedef enum _cec_auto_power_on_mode{
|
|
AUTO_POWER_OFF,
|
|
AUTO_POWER_ON
|
|
}CEC_AUTO_POWER_ON_MODE;
|
|
|
|
/*typedef struct _stbc_data {
|
|
u8 Sign[4];//signature 'S','T','B','C'
|
|
FAC_POWERON_MODE_TYPE PowerOnMode;
|
|
FAC_POWERON_LAST_MODE PowerStatus;
|
|
BACKLIGHT_FLAG_E BacklightOnFlag;
|
|
KEYPAD_LOCK_FLAG KeypadLockFlag;
|
|
CEC_AUTO_POWER_ON_MODE CecAutoPowerOnMode;
|
|
} FAC_STBC_DATA;*/
|
|
|
|
typedef struct _stbc_data{
|
|
char Sign[4];//signature 'S','T','B','C'
|
|
FAC_POWERON_MODE_TYPE PowerOnMode;
|
|
}FAC_STBC_DATA;
|
|
|
|
typedef struct _usr_stbc_data{
|
|
char Sign[4];//signature 'S','T','B','C'
|
|
FAC_POWERON_LAST_MODE PowerStatus;
|
|
BACKLIGHT_FLAG_E BacklightOnFlag;
|
|
KEYPAD_LOCK_FLAG KeypadLockFlag;
|
|
CEC_AUTO_POWER_ON_MODE CecAutoPowerOnMode;
|
|
}USR_STBC_DATA;
|
|
|
|
typedef enum _EN_DRV_STBC_POWER_ON_EVENT
|
|
{
|
|
EN_DRV_STBC_POWER_ON_EVENT_LAST_POWER_IS_ON = 1,
|
|
EN_DRV_STBC_POWER_ON_EVENT_AC_POWER_TO_ON,
|
|
|
|
//remote-controller wake up.
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_PWR_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N0_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N1_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N2_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N3_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N4_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N5_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N6_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N7_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N8_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_N9_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_PRG_UP_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_PRG_DOWN_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_IN_SRC_KEY,//16
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_KEY_START = EN_DRV_STBC_POWER_ON_EVENT_RC_PWR_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_KEY_END = EN_DRV_STBC_POWER_ON_EVENT_RC_IN_SRC_KEY,
|
|
|
|
//front-panel wake up.
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_PWR_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_PRG_UP_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_PRG_DOWN_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_VOL_UP_KEY, //touchpad
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_VOL_DOWN_KEY, //touchpad
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_TVAV_KEY, //touchpad
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_IN_SRC_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_MENU_KEY,
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_KEY_START = EN_DRV_STBC_POWER_ON_EVENT_FP_PWR_KEY,
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_KEY_END = EN_DRV_STBC_POWER_ON_EVENT_FP_MENU_KEY,
|
|
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_VALID_SYNC_TO_ON,
|
|
EN_DRV_STBC_POWER_ON_EVENT_WAKE_UP_TIME_MATCH,
|
|
EN_DRV_STBC_POWER_ON_EVENT_CEC_POWER_ON,
|
|
EN_DRV_STBC_POWER_ON_EVENT_SCART_PIN8_EXT1,
|
|
EN_DRV_STBC_POWER_ON_EVENT_SCART_PIN8_EXT2,
|
|
EN_DRV_STBC_POWER_ON_EVENT_CUSTOMER1,
|
|
EN_DRV_STBC_POWER_ON_EVENT_CUSTOMER2,
|
|
EN_DRV_STBC_POWER_ON_EVENT_CUSTOMER3,
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_RESET, //SLSL 2010-06-28 add system reset event
|
|
EN_DRV_STBC_POWER_ON_EVENT_UPGRADE,
|
|
EN_DRV_STBC_POWER_ON_EVENT_WDT_RESET,
|
|
EN_DRV_STBC_POWER_ON_EVENT_DBG_MENU,
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_LONG_PRESS_IR_RESET,
|
|
EN_DRV_STBC_POWER_ON_EVENT_LONG_PRESS_KEYPAD_RESET,
|
|
EN_POWER_ON_EVENT_AC_POWER_TO_ON_THEN_STANDBY = 0x2E, //0X2E , for BT RC, standby after firmware load in u-boot
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_NUM=(EN_DRV_STBC_POWER_ON_EVENT_LONG_PRESS_KEYPAD_RESET+1),
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_RC_KEY_NUM = (EN_DRV_STBC_POWER_ON_EVENT_RC_KEY_END - EN_DRV_STBC_POWER_ON_EVENT_RC_KEY_START + 1),
|
|
EN_DRV_STBC_POWER_ON_EVENT_FP_KEY_NUM = (EN_DRV_STBC_POWER_ON_EVENT_FP_KEY_END - EN_DRV_STBC_POWER_ON_EVENT_FP_KEY_START + 1),
|
|
|
|
EN_DRV_STBC_POWER_ON_EVENT_INVALID = 0xFF
|
|
|
|
} EN_DRV_STBC_POWER_ON_EVENT;
|
|
|
|
typedef enum
|
|
{
|
|
EN_CLOCK_DIVIDER_12M = 0,
|
|
EN_CLOCK_DIVIDER_6M,
|
|
EN_CLOCK_DIVIDER_3M
|
|
}EN_CLOCK_DIVIDER;
|
|
|
|
int nvt_stbc_boot_check(void);
|
|
void nvt_stbc_enable_wdog(unsigned short sec);
|
|
void nvt_stbc_disable_wdog(void);
|
|
unsigned int nvt_stbc_read_power_on_event(void);
|
|
unsigned int nvt_stbc_get_clock_divider(void);
|
|
|
|
typedef enum {
|
|
NVT_SAR_ADC0,
|
|
NVT_SAR_ADC1,
|
|
NVT_SAR_ADC2,
|
|
NVT_SAR_ADC3,
|
|
NVT_SAR_ADC4,
|
|
NVT_SAR_ADC5,
|
|
NVT_SAR_ADC_MAX,
|
|
} NVT_SAR_ADC_ID;
|
|
|
|
typedef enum _EN_GPIO_CTRL
|
|
{
|
|
EN_GPIO_CTRL_FUNCTION,
|
|
EN_GPIO_CTRL_GPIO_INPUT,
|
|
EN_GPIO_CTRL_GPIO_OUTPUT_HIGH,
|
|
EN_GPIO_CTRL_GPIO_OUTPUT_LOW,
|
|
EN_GPIO_CTRL_TOTAL
|
|
}EN_GPIO_CTRL;
|
|
|
|
void nvt_stbc_sar_adc_init(void);
|
|
int nvt_stbc_sar_adc_pressed(NVT_SAR_ADC_ID id);
|
|
void nvt_stbc_set_gpio(u8 pin, EN_GPIO_CTRL enCtrl);
|
|
|
|
|
|
#endif
|