mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-06-19 00:55:37 -04:00
302 lines
7.9 KiB
C
302 lines
7.9 KiB
C
#ifndef __vreg_ctr__
|
||
#define __vreg_ctr__
|
||
|
||
|
||
#include "config.h"
|
||
|
||
#if MCU_VER_MINOR >= 4
|
||
|
||
#define REG_BIT_RTC_BLACKOUT 0b00000001
|
||
#define REG_BIT__SYS_MODE0 0b01000000
|
||
#define REG_BIT_MCU_FIRMBROKEN 0b10000000
|
||
|
||
|
||
// VREG_C_IRQ0
|
||
#define REG_BIT_VR_TUNE_CHANGE ( 1 << 7 )
|
||
#define REG_BIT_VR_SNDVOL_CHANGE ( 1 << 6 )
|
||
#define REG_BIT_SW_WIFI_CLICK ( 1 << 4 )
|
||
#define REG_BIT_SW_POW_HOLD ( 1 << 3 )
|
||
#define REG_BIT_SW_POW_CLICK ( 1 << 2 )
|
||
#define REG_BIT_SW_HOME_HOLD ( 1 << 1 )
|
||
#define REG_BIT_SW_HOME_CLICK ( 1 << 0 )
|
||
|
||
// VREG_C_IRQ1
|
||
#define REG_BIT_WDT_DET ( 1 << 5 )
|
||
#define REG_BIT_ACC_DAT_RDY ( 1 << 4 )
|
||
#define REG_BIT_ACC_ACK ( 1 << 3 )
|
||
#define REG_BIT_RTC_ALARM ( 1 << 2 )
|
||
#define REG_BIT_BT_REMAIN ( 1 << 1 )
|
||
|
||
// VREG_C_IRQ2
|
||
#define REG_BIT_BT_CHG_START ( 1 << 7 )
|
||
#define REG_BIT_BT_CHG_STOP ( 1 << 6 )
|
||
#define REG_BIT_BT_DC_CONNECT ( 1 << 5 )
|
||
#define REG_BIT_BT_DC_DISC ( 1 << 4 )
|
||
#define REG_BIT_EXTOPT_OPEN ( 1 << 3 )
|
||
#define REG_BIT_EXTOPT_LOCK ( 1 << 2 )
|
||
#define REG_BIT_SHELL_OPEN ( 1 << 1 )
|
||
#define REG_BIT_SHELL_CLOSE ( 1 << 0 )
|
||
|
||
#ifdef _VREG_C_NEW_
|
||
// VREG_C_IRQ3
|
||
#define REG_BIT_LCD_ON ( 1 << 5 )
|
||
#define REG_BIT_LCD_OFF ( 1 << 4 )
|
||
#define REG_BIT_BL_U_ON ( 1 << 3 )
|
||
#define REG_BIT_BL_U_OFF ( 1 << 2 )
|
||
#define REG_BIT_BL_L_ON ( 1 << 1 )
|
||
#define REG_BIT_BL_L_OFF ( 1 << 0 )
|
||
|
||
// VREG_C_IRQ4
|
||
#define REG_BIT_TWL_BL_U_ON ( 1 << 5 )
|
||
#define REG_BIT_TWL_BL_U_OFF ( 1 << 4 )
|
||
#define REG_BIT_TWL_BL_L_ON ( 1 << 3 )
|
||
#define REG_BIT_TWL_BL_L_OFF ( 1 << 2 )
|
||
#define REG_BIT_TWL_OFF_REQ ( 1 << 1 )
|
||
#define REG_BIT_TWL_RESET_REQ ( 1 << 0 )
|
||
|
||
#else
|
||
// VREG_C_IRQ3
|
||
#define REG_BIT_TWL_BL_ON ( 1 << 7 )
|
||
#define REG_BIT_TWL_BL_OFF ( 1 << 6 )
|
||
#define REG_BIT_TWL_OFF_REQ ( 1 << 5 )
|
||
#define REG_BIT_TWL_RESET_REQ ( 1 << 4 )
|
||
#define REG_BIT_LCD_ON ( 1 << 3 )
|
||
#define REG_BIT_LCD_OFF ( 1 << 2 )
|
||
#define REG_BIT_BL_ON ( 1 << 1 )
|
||
#define REG_BIT_BL_OFF ( 1 << 0 )
|
||
|
||
#endif
|
||
|
||
// VREG_C_STATUS,
|
||
#define REG_BIT_LCD_POW ( 1 << 7 )
|
||
#define REG_BIT_BL ( 1 << 6 )
|
||
#define REG_BIT_BATT_CHARGE ( 1 << 4 )
|
||
#define REG_BIT_POW_SUPPLY ( 1 << 3 )
|
||
#define REG_BIT_ST_SHELL_OPEN ( 1 << 1 )
|
||
|
||
#define REG_BIT_BL_U ( 1 << 6 )
|
||
#define REG_BIT_BL_L ( 1 << 5 )
|
||
|
||
|
||
// VREG_C_STATUS_1
|
||
#define REG_BIT_GASGAUGE_ERR ( 1 << 0 )
|
||
#define REG_BIT_ACCERO_ERR ( 1 << 1 )
|
||
|
||
|
||
#ifdef _VREG_C_NEW_
|
||
#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 )
|
||
#define REG_BIT_RESET2_REQ ( 1 << 2 )
|
||
#define REG_BIT_RESET1_REQ ( 1 << 1 )
|
||
#define REG_BIT_OFF_REQ ( 1 << 0 )
|
||
|
||
// VREG_C_COMMAND1
|
||
#define REG_BIT_CMD_LCD_ON ( 1 << 5 )
|
||
#define REG_BIT_CMD_LCD_OFF ( 1 << 4 )
|
||
#define REG_BIT_CMD_BL_U_ON ( 1 << 3 )
|
||
#define REG_BIT_CMD_BL_U_OFF ( 1 << 2 )
|
||
#define REG_BIT_CMD_BL_L_ON ( 1 << 1 )
|
||
#define REG_BIT_CMD_BL_L_OFF ( 1 << 0 )
|
||
|
||
// VREG_C_COMMAND2
|
||
#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 )
|
||
#define REG_BIT_SEND_TWL_BATT_LOW ( 1 << 3 )
|
||
#define REG_BIT_SEND_TWL_OFF_REQ ( 1 << 2 )
|
||
#define REG_BIT_SEND_TWL_RESET_REQ ( 1 << 1 )
|
||
#define REG_BIT_SEND_TWL_PWSW_DET ( 1 << 0 )
|
||
#else
|
||
|
||
// <20>b<EFBFBD><62><EFBFBD>@<40>R<EFBFBD><52><EFBFBD>p<EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>ʂ<EFBFBD><CA82><EFBFBD><EFBFBD><EFBFBD>
|
||
#define REG_BIT_CMD_BL_U_ON ( 1 << 3 )
|
||
#define REG_BIT_CMD_BL_U_OFF ( 1 << 2 )
|
||
#define REG_BIT_CMD_BL_L_ON ( 1 << 1 )
|
||
#define REG_BIT_CMD_BL_L_OFF ( 1 << 0 )
|
||
|
||
// VREG_C_COMMAND0
|
||
#define REG_BIT_CMD_LCD_ON ( 1 << 7 )
|
||
#define REG_BIT_CMD_LCD_OFF ( 1 << 6 )
|
||
#define REG_BIT_CMD_BL_ON ( 1 << 5 )
|
||
#define REG_BIT_CMD_BL_OFF ( 1 << 4 )
|
||
#define REG_BIT_FCRAM_RESET_REQ ( 1 << 3 )
|
||
#define REG_BIT_RESET2_REQ ( 1 << 2 )
|
||
#define REG_BIT_RESET1_REQ ( 1 << 1 )
|
||
#define REG_BIT_OFF_REQ ( 1 << 0 )
|
||
|
||
// VREG_C_COMMAND1
|
||
#define REG_BIT_SEND_TWL_BATT_EMPTY ( 1 << 4 )
|
||
#define REG_BIT_SEND_TWL_BATT_LOW ( 1 << 3 )
|
||
#define REG_BIT_SEND_TWL_OFF_REQ ( 1 << 2 )
|
||
#define REG_BIT_SEND_TWL_RESET_REQ ( 1 << 1 )
|
||
#define REG_BIT_SEND_TWL_PWSW_DET ( 1 << 0 )
|
||
#endif
|
||
|
||
|
||
// VREG_C_WIFI_LED
|
||
enum
|
||
{
|
||
WIFI_LED_OFF = 0,
|
||
WIFI_LED_ON,
|
||
WIFI_LED_TXAUTO,
|
||
WIFI_LED_PTN0,
|
||
WIFI_LED_PTN1
|
||
};
|
||
|
||
|
||
// VREG_C_CAM_LED
|
||
enum
|
||
{
|
||
CAM_LED_OFF = 0,
|
||
CAM_LED_BLINK,
|
||
CAM_LED_ON,
|
||
CAM_LED_BY_TWL,
|
||
CAM_LED_ON_PLUSE,
|
||
CAM_LED_OFF_PLUSE
|
||
};
|
||
|
||
|
||
// TWL<57>ɑ<EFBFBD><C991><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h
|
||
// command2
|
||
#define REG_BIT_TWL_CMD_PWSW_DET 0x01
|
||
#define REG_BIT_TWL_CMD_RESET 0x02
|
||
#define REG_BIT_TWL_CMD_OFF 0x04
|
||
#define REG_BIT_TWL_CMD_BT_LOW 0x08
|
||
#define REG_BIT_TWL_CMD_BT_EMPTY 0x10
|
||
#define REG_BIT_TWL_CMD_VOL_CHANGE 0x20
|
||
|
||
// <20><>TWL<57><4C>
|
||
#define REG_BIT_TWL_IRQ_PWSW_DET 0x08
|
||
#define REG_BIT_TWL_IRQ_RESET 0x01
|
||
#define REG_BIT_TWL_IRQ_OFF 0x02
|
||
#define REG_BIT_TWL_IRQ_BT_LOW 0x20
|
||
#define REG_BIT_TWL_IRQ_BT_EMPTY 0x10
|
||
#define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40
|
||
|
||
|
||
/*
|
||
<20>e<EFBFBD><65><EFBFBD>v<EFBFBD><76>
|
||
#define REG_BIT_ ( 1 << 7 )
|
||
#define REG_BIT_ ( 1 << 6 )
|
||
#define REG_BIT_ ( 1 << 5 )
|
||
#define REG_BIT_ ( 1 << 4 )
|
||
#define REG_BIT_ ( 1 << 3 )
|
||
#define REG_BIT_ ( 1 << 2 )
|
||
#define REG_BIT_ ( 1 << 1 )
|
||
#define REG_BIT_ ( 1 << 0 )
|
||
*/
|
||
|
||
|
||
|
||
/*============================================================================*/
|
||
extern u8 vreg_ctr[];
|
||
|
||
/*============================================================================*/
|
||
enum VREG_C
|
||
{ // <20><><EFBFBD><EFBFBD><EFBFBD>`<60>A<EFBFBD>h<EFBFBD><68><EFBFBD>X<EFBFBD>֏<EFBFBD><D68F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۂ̓<DB82><CC93><EFBFBD><EFBFBD>͕s<CD95><73>
|
||
VREG_C_MCU_VER_MAJOR = 0x00,
|
||
VREG_C_MCU_VER_MINOR,
|
||
VREG_C_MCU_STATUS,
|
||
|
||
VREG_C_VCOM_T = 0x03,
|
||
VREG_C_VCOM_B,
|
||
|
||
VREG_C_DBG1 = 0x05,
|
||
VREG_C_DBG2,
|
||
VREG_C_DBG3,
|
||
|
||
VREG_C_TUNE = 0x08,
|
||
VREG_C_SND_VOL,
|
||
#ifdef _VREG_C_NEW_
|
||
VREG_C_BT_TEMP,
|
||
VREG_C_BT_REMAIN,
|
||
VREG_C_BT_REMAIN_FINE,
|
||
#else
|
||
VREG_C_BT_REMAIN,
|
||
VREG_C_BT_TEMP,
|
||
VREG_C_BT_REMAIN_FINE, // <20>_<EFBFBD>~<7E>[<5B>ł<EFBFBD><C582><EFBFBD>
|
||
#endif
|
||
|
||
VREG_C_STATUS_1 = 0x0E,
|
||
VREG_C_STATUS = 0x0F,
|
||
|
||
VREG_C_IRQ0 = 0x10,
|
||
VREG_C_IRQ1,
|
||
VREG_C_IRQ2,
|
||
VREG_C_IRQ3,
|
||
VREG_C_IRQ4,
|
||
|
||
VREG_C_IRQ_MASK0 = 0x18,
|
||
VREG_C_IRQ_MASK1,
|
||
VREG_C_IRQ_MASK2,
|
||
VREG_C_IRQ_MASK3,
|
||
VREG_C_IRQ_MASK4,
|
||
|
||
VREG_C_COMMAND0 = 0x20,
|
||
VREG_C_COMMAND1,
|
||
VREG_C_COMMAND2,
|
||
VREG_C_COMMAND3, // 'r' <20>Ń}<7D>C<EFBFBD>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
|
||
VREG_C_FREE0 = 0x24,
|
||
VREG_C_FREE1,
|
||
VREG_C_FREE2,
|
||
VREG_C_FREE3,
|
||
|
||
VREG_C_LED_BRIGHT = 0x28,
|
||
VREG_C_LED_POW,
|
||
VREG_C_LED_WIFI,
|
||
VREG_C_LED_CAM,
|
||
VREG_C_LED_TUNE,
|
||
|
||
VREG_C_RTC_SEC = 0x30,
|
||
VREG_C_RTC_MIN,
|
||
VREG_C_RTC_HOUR,
|
||
VREG_C_RTC_YOBI,
|
||
VREG_C_RTC_DAY,
|
||
VREG_C_RTC_MONTH,
|
||
VREG_C_RTC_YEAR,
|
||
|
||
VREG_C_RTC_COMP,
|
||
|
||
VREG_C_RTC_ALARM_MIN = 0x38,
|
||
VREG_C_RTC_ALARM_HOUR,
|
||
VREG_C_RTC_ALARM_DAY,
|
||
VREG_C_RTC_ALARM_MONTH,
|
||
VREG_C_RTC_ALARM_YEAR,
|
||
|
||
VREG_C_ACC_CONFIG = 0x40,
|
||
VREG_C_ACC_R_ADRS,
|
||
VREG_C_RESERVED5,
|
||
VREG_C_ACC_W_ADRS,
|
||
VREG_C_ACC_W_BUF,
|
||
|
||
VREG_C_ACC_XL = 0x45,
|
||
VREG_C_ACC_XH,
|
||
VREG_C_ACC_YL,
|
||
VREG_C_ACC_YH,
|
||
VREG_C_ACC_ZL,
|
||
VREG_C_ACC_ZH,
|
||
|
||
VREG_C_ACC_HOSU_L = 0x4B,
|
||
VREG_C_ACC_HOSU_M,
|
||
VREG_C_ACC_HOSU_H,
|
||
VREG_C_ACC_HOSU_HIST = 0x4E,
|
||
|
||
VREG_C_ENDMARK_
|
||
};
|
||
/*
|
||
VREG_C_PM_INFO, // <20><><EFBFBD>g<EFBFBD>p
|
||
VREG_C_BT_INFO, // <20><><EFBFBD>g<EFBFBD>p
|
||
*/
|
||
|
||
#else
|
||
|
||
<EFBFBD>E@"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƕς<EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂ŁA<EFBFBD><EFBFBD><EFBFBD>ł̃f<EFBFBD>B<EFBFBD><EFBFBD><EFBFBD>N<EFBFBD>g<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><EFBFBD><EFBFBD>ĉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B"
|
||
#endif
|
||
/*============================================================================*/
|
||
void vreg_ctr_init( );
|
||
void vreg_ctr_write( u8 adrs, u8 data );
|
||
u8 vreg_ctr_read( u8 phy_adrs );
|
||
void vreg_ctr_after_read( u8 adrs );
|
||
void set_irq( u8 irqreg, u8 irq_flg );
|
||
|
||
|
||
#endif
|