SY8837_Demo_For_OurSelf/UsrInc/inc/reg883x.h

254 lines
6.1 KiB
C

/*---------------------------------------------------------------------
REG3102.H
Header file for TP3410 microcontroller.
Initial Released by zheng, 2021-01-13.
Thinkplus Semiconductor co., ltd, All Rights Reserved!
----------------------------------------------------------------------*/
#ifndef _REG3102_H_
#define _REG3102_H_
//------------------------ Ext SFR Registers -------------------------
/*------ GPIO/MFP Registers ------*/
#define P0_PU 0x00
#define P0_PD 0x01
#define P0_OD 0x02
#define P0_DRV0 0x03
#define P0_IE 0x05
#define P0_OE 0x06
#define MFP_CTL0 0x0E
#define MFP_CTL1 0x0F
/*----- IRQ Enable Registers ----*/
#define IRQ_EN0 0x14 // Abnormal interrupt enable
#define IRQ_EN1 0x15 // EXTI interrupt enable 0
#define IRQ_EN2 0x16 // EXTI interrupt enable 1
#define IRQ_EN3 0x17 // VOL/R LOADIN/ON interrupt enable
#define IRQ_EN4 0x18 // VOL/R Recharge and IOFF interrupt enable
#define IRQ_EN7 0x1B // KEY/PWM interrupt enable
#define IRQ_EN8 0x1C // COMM interrupt enable
#define IRQ_EN9 0x1D // Charger interrupt enable
#define IRQ_EN10 0x1E // VBUS/COMP/HALL/STBTMR/ADC_DATA_RDY interrupt enable
/*--- Wakeup Enable Registers ---*/
#define WKUP_EN0 0x21 // BOOST/HALL/KEY/VBUS Wakeup enable
#define WKUP_EN1 0x22 // EXTI and VOL/R Short Wakeup enable
#define WKUP_EN3 0x24 // BAT_LOW/TMR/VOX LOADIN/ON Wakeup enable
/*-------- ADC Registers --------*/
#define ADC_CTL0 0x29
#define ADC00 0x2D
#define NTC_RES 0x2E
#define ADCCS_CTL0 0x4F
/*------ PWM Registers ------*/
#define PWM_CTL 0x53
#define PWM_PRE 0x54
#define PWM_REL 0x56
/*------- MTP Registers ------*/
#define OTP_CTL1 0x61
#define OTP_ADD0 0x62
#define OTP_ADD1 0x63
#define MTP_WDAT 0x64
#define MTP_OP0 0x65
#define MTP_RDAT 0x66
#define MTP_KEY 0x68
#define OTP_KEY 0x8F
/*------ VOL/R Registers -----*/
#define IVOX 0x69
#define VOX_CON0 0x6A
#define VOX_CON1 0x6B
#define VOX_CON2 0x6C
#define VOX_IADT 0x6D
#define ST_VOX 0x6E
#define COMM_CON 0x6F
/*------ CHG Registers ------*/
#define REG_CHG0 0x70
#define OTP_CHG0 0x71
/*----- BOOST Registers -----*/
#define BST00 0x78
#define BST01 0x79
#define BST02 0x7A
/*------ PMU Registers ------*/
#define PMU_CTL0 0x80
#define PMU_CTL1 0x81
#define PMU_CTL3 0x83
#define PMU_CTL6 0x86
#define PMU_CTL7 0x87
#define PMU_CTL8 0x88
#define PMU_CTL9 0x89
/*------ CMU Registers ------*/
#define HOSC_CTL 0x8B
/*------ Misc Registers -----*/
#define CHIP_ID 0x8D
#define CHIP_VER 0x8E
//------------------------- SFR Registers ----------------------------
/*--- BYTE Register ---*/
sfr P0 = 0x80;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr DPL1 = 0x84;
sfr DPH1 = 0x85;
sfr WDTREL = 0x86;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr CKCON = 0x8E;
sfr S0CON = 0x98;
sfr S0BUF = 0x99;
sfr IEN2 = 0x9A;
sfr S1CON = 0x9B;
sfr S1BUF = 0x9C;
sfr S1RELL = 0x9D;
sfr ADC_DATL = 0xA1;
sfr ADC_DATH = 0xA2;
sfr ADC_OFFSET = 0xA3;
sfr ADC_CTL1 = 0xA5;
sfr IEN0 = 0xA8;
sfr IP0 = 0xA9;
sfr S0RELL = 0xAA;
sfr IVOL_GAIN = 0xAB;
sfr IVOR_GAIN = 0xAC;
sfr IVOX_OFFSET = 0xAD;
sfr REG_CHG1 = 0xB1;
sfr REG_CHG2 = 0xB2;
sfr CHG_CTL = 0xB3;
sfr BST_EN = 0xB5;
sfr VOX_CTL0 = 0xB7;
sfr COMM_CTL = 0xBD;
sfr COMM_DT = 0xBE;
sfr IEN1 = 0xB8;
sfr IP1 = 0xB9;
sfr S0RELH = 0xBA;
sfr S1RELH = 0xBB;
sfr IRCON2 = 0xBF;
sfr IRCON = 0xC0;
sfr PWM0_CMP = 0xCE;
sfr PWM1_CMP = 0xCF;
sfr PWM2_CMP = 0xDE;
sfr PWM3_CMP = 0xDF;
sfr CLKPRE = 0xD2;
sfr RSTCON = 0xD3;
sfr STBTIM_CTL = 0xD4;
sfr RST_CTL = 0xD7;
sfr ADCON = 0xD8;
sfr RST_FLAG = 0xE1;
sfr CHIP_STA0 = 0xE2;
sfr CHIP_STA1 = 0xE3;
sfr CHIP_STA2 = 0xE4;
sfr CHIP_STA3 = 0xE5;
sfr CHIP_STA4 = 0xE6;
sfr IRQ_FLAG0 = 0xE8;
sfr IRQ_FLAG1 = 0xE9;
sfr IRQ_FLAG2 = 0xEA;
sfr IRQ_FLAG3 = 0xEB;
sfr IRQ_FLAG4 = 0xEC;
sfr IRQ_FLAG7 = 0xEF;
sfr IRQ_FLAG8 = 0xF1;
sfr IRQ_FLAG9 = 0xF2;
sfr IRQ_FLAG10 = 0xF3;
sfr SRST = 0xF7;
sfr WKUP_FLAG0 = 0xF6;
sfr WKUP_FLAG1 = 0xF8;
sfr WKUP_FLAG3 = 0xFA;
sfr SFRADDR = 0xFE;
sfr SFRDATA = 0xFF;
/*--- BIT Register ---*/
/* PSW */
sbit CY = 0xD7;
sbit AC = 0xD6;
sbit F0 = 0xD5;
sbit RS1 = 0xD4;
sbit RS0 = 0xD3;
sbit OV = 0xD2;
sbit F1 = 0xD1;
sbit P = 0xD0;
/* TCON */
sbit TF1 = 0x8F;
sbit TR1 = 0x8E;
sbit TF0 = 0x8D;
sbit TR0 = 0x8C;
sbit IE1 = 0x8B;
sbit IT1 = 0x8A;
sbit IE0 = 0x89;
sbit IT0 = 0x88;
/* S0CON */
sbit SM0 = 0x9F;
sbit SM1 = 0x9E;
sbit SM20 = 0x9D;
sbit REN0 = 0x9C;
sbit TB80 = 0x9B;
sbit RB80 = 0x9A;
sbit TI0 = 0x99;
sbit RI0 = 0x98;
/* IEN0 */
sbit EAL = 0xAF;
sbit WDT = 0xAE;
sbit ES0 = 0xAC;
sbit ET1 = 0xAB;
sbit EX1 = 0xAA;
sbit ET0 = 0xA9;
sbit EX0 = 0xA8;
/* IEN1 */
sbit SWDT = 0xBE;
sbit EX6 = 0xBD;
sbit EX5 = 0xBC;
sbit EX4 = 0xBB;
sbit EX3 = 0xBA;
sbit EX2 = 0xB9;
sbit EX7 = 0xB8;
/* IRCON */
sbit IEX6 = 0xC5;
sbit IEX5 = 0xC4;
sbit IEX4 = 0xC3;
sbit IEX3 = 0xC2;
sbit IEX2 = 0xC1;
sbit IEX7 = 0xC0;
/* ADCON */
sbit BD = 0xDF;
/* P0 */
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit P03 = P0^3;
sbit P04 = P0^4;
sbit P05 = P0^5;
sbit P06 = P0^6;
sbit P07 = P0^7;
#endif