/** * @file gama_regs.h * @brief SemiDrive asw regs header file. * * @copyright Copyright (c) 2022 Semidrive Semiconductor. * All rights reserved. */ #ifndef __GAMA_REGS_H__ #define __GAMA_REGS_H__ #define GAMA_LB_JUMP 0x00200000 #define GAMA_IB_JUMP 0x00100000 #define GAMA_IRQST_JUMP 0x000F0000 #define GAMA_ASW_JUMP 0x00030000 #define GAMA_DMA_JUMP 0x00020000 #define GAMA_FRS_JUMP 0x00011000 #define GAMA_VS_JUMP 0x00010000 #define GAMA_STN_CFG_JUMP 0x00000000 #define ASW_REG(x) ((x) + GAMA_ASW_JUMP) /* GAMA ASW registers (RMW mode) definition */ /* ASW_RA000 */ #define ASW_RA000 ASW_REG(0x0) #define ASW_SHIFT00_RA000 0 #define ASW_MASK00_RA000 0x1 << ASW_SHIFT00_RA000 /*ASW_RA004*/ #define ASW_RA004 ASW_REG(0x4) #define ASW_SHIFT00_RA004 0 #define ASW_MASK00_RA004 0x1 << ASW_SHIFT00_RA004 /*ASW_RA008*/ #define ASW_RA008 ASW_REG(0x8) #define ASW_SHIFT20_RA008 20 #define ASW_MASK20_RA008 0xFFFUL << ASW_SHIFT20_RA008 #define ASW_SHIFT12_RA008 12 #define ASW_MASK12_RA008 0x3 << ASW_SHIFT12_RA008 #define ASW_SHIFT11_RA008 11 #define ASW_MASK11_RA008 0x1 << ASW_SHIFT11_RA008 #define ASW_SHIFT10_RA008 10 #define ASW_MASK10_RA008 0x1 << ASW_SHIFT10_RA008 #define ASW_SHIFT08_RA008 8 #define ASW_MASK08_RA008 0x3 << ASW_SHIFT08_RA008 #define ASW_SHIFT04_RA008 4 #define ASW_MASK04_RA008 0xF << ASW_SHIFT04_RA008 #define ASW_SHIFT01_RA008 1 #define ASW_MASK01_RA008 0x7 << ASW_SHIFT01_RA008 #define ASW_SHIFT00_RA008 0 #define ASW_MASK00_RA008 0x1 << ASW_SHIFT00_RA008 /*ASW_RA00C*/ #define ASW_RA00C ASW_REG(0xc) #define ASW_SHIFT12_RA00C 12 #define ASW_MASK12_RA00C 0x3 << ASW_SHIFT12_RA00C #define ASW_SHIFT10_RA00C 10 #define ASW_MASK10_RA00C 0x3 << ASW_SHIFT10_RA00C #define ASW_SHIFT04_RA00C 4 #define ASW_MASK04_RA00C 0x3F << ASW_SHIFT04_RA00C #define ASW_SHIFT00_RA00C 0 #define ASW_MASK00_RA00C 0xF << ASW_SHIFT00_RA00C /*ASW_RA010*/ #define ASW_RA010 ASW_REG(0x10) #define ASW_SHIFT16_RA010 16 #define ASW_MASK16_RA010 0xFFF << ASW_SHIFT16_RA010 #define ASW_SHIFT00_RA010 0 #define ASW_MASK00_RA010 0xFFF << ASW_SHIFT00_RA010 /*ASW_RA014*/ #define ASW_RA014 ASW_REG(0x14) #define ASW_SHIFT16_RA014 16 #define ASW_MASK16_RA014 0xFFF << ASW_SHIFT16_RA014 #define ASW_SHIFT00_RA014 0 #define ASW_MASK00_RA014 0xFFF << ASW_SHIFT00_RA014 /*ASW_RA018*/ #define ASW_RA018 ASW_REG(0x18) #define ASW_SHIFT25_RA018 25 #define ASW_MASK25_RA018 0x1 << ASW_SHIFT25_RA018 #define ASW_SHIFT24_RA018 24 #define ASW_MASK24_RA018 0x1 << ASW_SHIFT24_RA018 #define ASW_SHIFT16_RA018 16 #define ASW_MASK16_RA018 0xF << ASW_SHIFT16_RA018 #define ASW_SHIFT09_RA018 9 #define ASW_MASK09_RA018 0x1 << ASW_SHIFT09_RA018 #define ASW_SHIFT08_RA018 8 #define ASW_MASK08_RA018 0x1 << ASW_SHIFT08_RA018 #define ASW_SHIFT00_RA018 0 #define ASW_MASK00_RA018 0xF << ASW_SHIFT00_RA018 /*ASW_CFG_PROT*/ #define ASW_RA01C ASW_REG(0x1c) #define ASW_SHIFT01_RA01C 1 #define ASW_MASK01_RA01C 0x1 << ASW_SHIFT01_RA01C #define ASW_SHIFT00_RA01C 0 #define ASW_MASK00_RA01C 0x1 << ASW_SHIFT00_RA01C /*ASW_RA020*/ #define ASW_RA020 ASW_REG(0x20) #define ASW_SHIFT16_RA020 16 #define ASW_MASK16_RA020 0x3FF << ASW_SHIFT16_RA020 #define ASW_SHIFT00_RA020 0 #define ASW_MASK00_RA020 0x3FF << ASW_SHIFT00_RA020 /*ASW_RA024*/ #define ASW_RA024 ASW_REG(0x24) #define ASW_SHIFT16_RA024 16 #define ASW_MASK16_RA024 0xFFF << ASW_SHIFT16_RA024 #define ASW_SHIFT00_RA024 0 #define ASW_MASK00_RA024 0xFFF << ASW_SHIFT00_RA024 /*ASW_RA028*/ #define ASW_RA028 ASW_REG(0x28) #define ASW_SHIFT00_RA028 0 #define ASW_MASK00_RA028 0xFFFFF << ASW_SHIFT00_RA028 /*ASW_RA02C*/ #define ASW_RA02C ASW_REG(0x2c) #define LUT_SETPV_RECP_VAL_SHIFT 0 #define LUT_SETPV_RECP_VAL_MASK 0xFFFFF << LUT_SETPV_RECP_VAL_SHIFT /*ASW_RA030*/ #define ASW_RA030 ASW_REG(0x30) /*ASW_RA034*/ #define ASW_RA034 ASW_REG(0x34) /*ASW_RA038*/ #define ASW_RA038 ASW_REG(0x38) /*ASW_RA040*/ #define ASW_RA040 ASW_REG(0x40) /*ASW_RA044*/ #define ASW_RA044 ASW_REG(0x44) /*ASW_RA048*/ #define ASW_RA048 ASW_REG(0x48) /*ASW_RA04C*/ #define ASW_RA04C ASW_REG(0x4c) /*ASW_RA050*/ #define ASW_RA050 ASW_REG(0x50) /*ASW_RA058*/ #define ASW_RA058 ASW_REG(0x58) /*ASW_RA060*/ #define ASW_RA060 ASW_REG(0x60) /*ASW_RA064*/ #define ASW_RA064 ASW_REG(0x64) /*ASW_RA068*/ #define ASW_RA068 ASW_REG(0x68) /*ASW_RA06C*/ #define ASW_RA06C ASW_REG(0x6c) /*ASW_RA070*/ #define ASW_RA070 ASW_REG(0x70) /*ASW_RA074*/ #define ASW_RA074 ASW_REG(0x74) /*ASW_RA080*/ #define ASW_RA080 ASW_REG(0x80) /*ASW_RA084*/ #define ASW_RA084 ASW_REG(0x84) /*ASW_RA088*/ #define ASW_RA088 ASW_REG(0x88) #define ASW_SHIFT24_RA088 24 #define ASW_MASK24_RA088 0xFF << ASW_SHIFT24_RA088 #define ASW_SHIFT16_RA088 16 #define ASW_MASK16_RA088 0xFF << ASW_SHIFT16_RA088 #define ASW_SHIFT08_RA088 8 #define ASW_MASK08_RA088 0xFF << ASW_SHIFT08_RA088 #define ASW_SHIFT00_RA088 0 #define ASW_MASK00_RA088 0xFF << ASW_SHIFT00_RA088 /*ASW_RA090*/ #define ASW_RA090 ASW_REG(0x90) /*ASW_RA094*/ #define ASW_RA094 ASW_REG(0x94) /*ASW_RA098*/ #define ASW_RA098 ASW_REG(0x98) /*ASW_RA09C*/ #define ASW_RA09C ASW_REG(0x9c) /*ASW_RA0A0*/ #define ASW_RA0A0 ASW_REG(0xa0) /*ASW_RA0A4*/ #define ASW_RA0A4 ASW_REG(0xa4) /*ASW_RA0A8*/ #define ASW_RA0A8 ASW_REG(0xa8) /*ASW_RA0AC*/ #define ASW_RA0AC ASW_REG(0xac) /*ASW_RA0B0*/ #define ASW_RA0B0 ASW_REG(0xb0) /*ASW_RA0B4*/ #define ASW_RA0B4 ASW_REG(0xb4) /*ASW_RA0B8*/ #define ASW_RA0B8 ASW_REG(0xb8) /*ASW_RA0AC*/ #define ASW_RA0BC ASW_REG(0xbc) /*ASW_RA0E0*/ #define ASW_RA0E0 ASW_REG(0xe0) #define ASW_SHIFT02_RA0E0 2 #define ASW_MASK02_RA0E0 0x3 << ASW_SHIFT02_RA0E0 #define ASW_SHIFT01_RA0E0 1 #define ASW_MASK01_RA0E0 00x1 << ASW_SHIFT01_RA0E0 #define ASW_SHIFT00_RA0E0 0 #define ASW_MASK00_RA0E0 0x1 << ASW_SHIFT00_RA0E0 /*ASW_RA0E4*/ #define ASW_RA0E4 ASW_REG(0xe4) /*ASW_RA0F0*/ #define ASW_RA0F0 ASW_REG(0xf0) /*ASW_RA0F4*/ #define ASW_RA0F4 ASW_REG(0xf4) /*ASW_RA0F8*/ #define ASW_RA0F8 ASW_REG(0xf8) /*ASW_RA0FC*/ #define ASW_RA0FC ASW_REG(0xfc) /*ASW_RA100*/ #define ASW_RA100 ASW_REG(0x100) /*ASW_RA104*/ #define ASW_RA104 ASW_REG(0x104) /*ASW_RA108*/ #define ASW_RA108 ASW_REG(0x108) /*ASW_RA10C*/ #define ASW_RA10C ASW_REG(0x10c) /*ASW_RA110*/ #define ASW_RA110 ASW_REG(0x110) /*ASW_RA114*/ #define ASW_RA114 ASW_REG(0x114) /*ASW_RA118*/ #define ASW_RA118 ASW_REG(0x118) /*ASW_RA11C*/ #define ASW_RA11C ASW_REG(0x11c) /*ASW_RA120*/ #define ASW_RA120 ASW_REG(0x120) /*ASW_RA124*/ #define ASW_RA124 ASW_REG(0x124) /*ASW_RA128*/ #define ASW_RA128 ASW_REG(0x128) /*ASW_RA12C*/ #define ASW_RA12C ASW_REG(0x12c) /****irqst ab0*****/ #define IRQST_REG(x) ((x) + GAMA_IRQST_JUMP) /*ASW_RB010*/ #define ASW_RB010 IRQST_REG(0x10) #define ASW_SHIFT26_RB010 26 #define ASW_MASK26_RB010 0x3F << ASW_SHIFT26_RB010 #define ASW_SHIFT20_RB010 20 #define ASW_MASK20_RB010 0x3F << ASW_SHIFT20_RB010 #define ASW_SHIFT14_RB010 14 #define ASW_MASK14_RB010 0x3F << ASW_SHIFT14_RB010 #define ASW_SHIFT12_RB010 12 #define ASW_MASK12_RB010 0x3 << ASW_SHIFT12_RB010 #define ASW_SHIFT11_RB010 11 #define ASW_MASK11_RB010 0x1 << ASW_SHIFT11_RB010 #define ASW_SHIFT10_RB010 10 #define ASW_MASK10_RB010 0x1 << ASW_SHIFT10_RB010 #define ASW_SHIFT09_RB010 9 #define ASW_MASK09_RB010 0x1 << ASW_SHIFT09_RB010 #define ASW_SHIFT02_RB010 2 #define ASW_MASK02_RB010 0x1 << ASW_SHIFT02_RB010 #define ASW_SHIFT01_RB010 1 #define ASW_MASK01_RB010 0x1 << ASW_SHIFT01_RB010 #define ASW_SHIFT00_RB010 0 #define ASW_MASK00_RB010 0x1 << ASW_SHIFT00_RB010 /*irqst ab0*/ #define ASW_RC024 IRQST_REG(0x1024) #define ASW_RC028 IRQST_REG(0x1028) #define ASW_RC02C IRQST_REG(0x102c) #define ASW_RC030 IRQST_REG(0x1030) #define ASW_RC034 IRQST_REG(0x1034) #define WRITE_OUT_FRM_DONE_SHIFT 0 #define WRITE_OUT_FRM_DONE_MASK 1 << WRITE_OUT_FRM_DONE_SHIFT /*dma*/ #define DMA_REG(x) ((x) + GAMA_DMA_JUMP) #define RD_CHN_NUM 3 #define RD_CHN_JUMP 0x40 #define WD_CHN_NUM 2 #define WD_CHN_JUMP 0x40 #define ASW_RD000(i) (DMA_REG(0x0) + RD_CHN_JUMP * (i)) #define ASW_RD00C(i) (DMA_REG(0xc) + WD_CHN_JUMP * (i)) #define ASW_SHIFT30_RD00X 30 #define ASW_MASK30_RD00X 0x3 << ASW_SHIFT30_RD00X #define ASW_SHIFT20_RD00X 20 #define ASW_MASK20_RD00X 0xF << ASW_SHIFT20_RD00X #define ASW_SHIFT00_RD00X 0 #define ASW_MASK00_RD00X 0xFFFFF << ASW_SHIFT00_RD00X #define ASW_RD010(i) (DMA_REG(0x10) + RD_CHN_JUMP * (i)) #define ASW_RD014(i) (DMA_REG(0x14) + RD_CHN_JUMP * (i)) #define ASW_RD018(i) (DMA_REG(0x18) + RD_CHN_JUMP * (i)) #define ASW_SHIFT04_RD018 4 #define ASW_MASK04_RD018 0x3 << ASW_SHIFT04_RD018 #define ASW_SHIFT00_RD018 0 #define ASW_MASK00_RD018 0xF << ASW_SHIFT00_RD018 #define ASW_RD01C(i) (DMA_REG(0x1c) + RD_CHN_JUMP * (i)) #define ASW_RD020(i) (DMA_REG(0x20) + RD_CHN_JUMP * (i)) #define ASW_RD024(i) (DMA_REG(0x24) + RD_CHN_JUMP * (i)) #define ASW_SHIFT01_RD024 1 #define ASW_MASK01_RD024 0x7 << ASW_SHIFT01_RD024 #define ASW_SHIFT00_RD024 0 #define ASW_MASK00_RD024 0x1 << ASW_SHIFT00_RD024 #define ASW_RE000 DMA_REG(0x1000) #define ASW_SHIFT01_RE000 1 #define ASW_MASK01_RE000 0x1 << ASW_SHIFT01_RE000 #define ASW_SHIFT00_RE000 0 #define ASW_MASK00_RE000 0x1 << ASW_SHIFT00_RE000 #define ASW_RF000(i) (DMA_REG(0x2000) + WD_CHN_JUMP * (i)) #define ASW_RF004(i) (DMA_REG(0x2004) + WD_CHN_JUMP * (i)) #define ASW_RF008(i) (DMA_REG(0x2008) + WD_CHN_JUMP * (i)) #define ASW_SHIFT07_RF008 7 #define ASW_MASK07_RF008 0x1 << ASW_SHIFT07_RF008 #define ASW_SHIFT06_RF008 6 #define ASW_MASK06_RF008 0x7F << ASW_SHIFT06_RF008 #define ASW_SHIFT04_RF008 4 #define ASW_MASK04_RF008 0x3 << ASW_SHIFT04_RF008 #define ASW_SHIFT00_RF008 0 #define ASW_MASK00_RF008 0xF << ASW_SHIFT00_RF008 #define ASW_RF00C(i) (DMA_REG(0x200c) + WD_CHN_JUMP * (i)) #define ASW_RF010(i) (DMA_REG(0x2010) + WD_CHN_JUMP * (i)) #define ASW_RF014(i) (DMA_REG(0x2014) + WD_CHN_JUMP * (i)) #define ASW_SHIFT01_RF014 1 #define ASW_MASK01_RF014 0x7 << ASW_SHIFT01_RF014 #define ASW_SHIFT00_RF014 0 #define ASW_MASK00_RF014 0x1 << ASW_SHIFT00_RF014 #define ASW_RG000 DMA_REG(0x3000) #define ASW_SHIFT01_RG000 1 #define ASW_MASK01_RG000 0x1 << ASW_SHIFT01_RG000 #define ASW_SHIFT00_RG000 0 #define ASW_MASK00_RG000 0x1 << ASW_SHIFT00_RG000 #endif //__GAMA_REGS_H__