| /* |
| * Copyright (c) 2020 ITE Corporation. All Rights Reserved. |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef CHIP_CHIPREGS_H |
| #define CHIP_CHIPREGS_H |
| |
| #include <sys/util.h> |
| |
| #define EC_REG_BASE_ADDR 0x00f00000 |
| |
| #ifndef FALSE |
| #define FALSE 0 |
| #endif |
| |
| /* TRUE can be defined as !FALSE but defining |
| * it as 1 allows it to fit into a bitfield. |
| */ |
| #ifndef TRUE |
| #define TRUE 1 |
| #endif |
| |
| #ifdef _ASMLANGUAGE |
| #define ECREG(x) x |
| #else |
| |
| /* |
| * Macros for hardware registers access. |
| */ |
| #define ECREG(x) (*((volatile unsigned char *)(x))) |
| #define ECREG_u16(x) (*((volatile unsigned short *)(x))) |
| #define ECREG_u32(x) (*((volatile unsigned long *)(x))) |
| |
| /* |
| * MASK operation macros |
| */ |
| #define SET_MASK(reg, bit_mask) ((reg) |= (bit_mask)) |
| #define CLEAR_MASK(reg, bit_mask) ((reg) &= (~(bit_mask))) |
| #define IS_MASK_SET(reg, bit_mask) (((reg) & (bit_mask)) != 0) |
| #endif /* _ASMLANGUAGE */ |
| |
| #ifndef REG_BASE_ADDR |
| #define REG_BASE_ADDR EC_REG_BASE_ADDR |
| #endif |
| |
| /** |
| * (10XXh) Shared Memory Flash Interface Bridge (SMFI) |
| */ |
| |
| /* FBIU Configuration */ |
| #define FBCFG ECREG(EC_REG_BASE_ADDR + 0x1000) |
| #define SSMC BIT(7) |
| |
| /* Flash Programming Configuration Register*/ |
| #define FPCFG ECREG(EC_REG_BASE_ADDR + 0x1001) |
| |
| /* Memory Zone Configuration */ |
| #define MZCFG ECREG(EC_REG_BASE_ADDR + 0x1002) |
| |
| /* State Memory Zone Configuration */ |
| #define SMZCFG ECREG(EC_REG_BASE_ADDR + 0x1003) |
| |
| /* Flash EC Code Banking Select Register */ |
| #define FECBSR ECREG(EC_REG_BASE_ADDR + 0x1005) |
| |
| /* Flash Memory Size Select Registe */ |
| #define FMSSR ECREG(EC_REG_BASE_ADDR + 0x1007) |
| |
| /* Flash Memory Pre-Scale */ |
| #define FMPSR ECREG(EC_REG_BASE_ADDR + 0x1010) |
| |
| /* Shared Memory EC Control and Status */ |
| #define SMECCS ECREG(EC_REG_BASE_ADDR + 0x1020) |
| #define HOSTWA BIT(5) |
| #define LKPRR BIT(2) |
| |
| /* Shared Memory Host Semaphore */ |
| #define SMHSR ECREG(EC_REG_BASE_ADDR + 0x1022) |
| |
| /* FWH Flash ID Register */ |
| #define FWHFIDR ECREG(EC_REG_BASE_ADDR + 0x1030) |
| |
| /* Flash Control Register 1 */ |
| #define FLHCTRL1R ECREG(EC_REG_BASE_ADDR + 0x1031) |
| |
| /* SPI Flash Read Mode |
| * 11b: Uses “Fast Read Dual Input/Output (DIOFR)” cycle (instruction = BBh) |
| * 10b: Uses “Fast Read Dual Output (DOFR)” cycle (instruction = 3Bh) |
| * 01b: Uses “Fast Read (FREAD)” cycle (instruction = 0Bh) |
| * 00b: Uses “Read” cycle (instruction = 03h) |
| */ |
| #define SPIFR1 BIT(5) |
| #define SPIFR0 BIT(4) |
| /* Serial Wait 1T */ |
| #define LFSW1T BIT(3) |
| |
| /* Flash Control Register 2 */ |
| #define FLHCTRL2R ECREG(EC_REG_BASE_ADDR + 0x1032) |
| |
| /* 256 bytes cache */ |
| #define DCACHE ECREG(EC_REG_BASE_ADDR + 0x1033) |
| |
| /* uC Control Register */ |
| #define UCCTRLR ECREG(EC_REG_BASE_ADDR + 0x1034) |
| |
| /* Host Control 2 Register */ |
| #define HCTRL2R ECREG(EC_REG_BASE_ADDR + 0x1036) |
| |
| /* HSPI Control 2 Register */ |
| #define HSPICTRL2R ECREG(EC_REG_BASE_ADDR + 0x1039) |
| |
| /* HSPI */ |
| #define HSPICTRL3R ECREG(EC_REG_BASE_ADDR + 0x103A) |
| |
| /* EC-Indirect Memory Address Register 0 */ |
| #define ECINDAR0 ECREG(EC_REG_BASE_ADDR + 0x103B) |
| |
| /* EC-Indirect Memory Address Register 1 */ |
| #define ECINDAR1 ECREG(EC_REG_BASE_ADDR + 0x103C) |
| |
| /* EC-Indirect Memory Address Register 2 */ |
| #define ECINDAR2 ECREG(EC_REG_BASE_ADDR + 0x103D) |
| |
| /* EC-Indirect Memory Address Register 3 */ |
| #define ECINDAR3 ECREG(EC_REG_BASE_ADDR + 0x103E) |
| |
| /* EC-Indirect Memory Data Register */ |
| #define ECINDDR ECREG(EC_REG_BASE_ADDR + 0x103F) |
| |
| /* Scratch SRAM 0 Address Low Byte Register */ |
| #define SCRA0L ECREG(EC_REG_BASE_ADDR + 0x1040) |
| |
| /* Scratch SRAM 0 Address Middle Byte Register */ |
| #define SCRA0M ECREG(EC_REG_BASE_ADDR + 0x1041) |
| |
| /* Scratch SRAM 0 Address High Byte Register */ |
| #define SCRA0H ECREG(EC_REG_BASE_ADDR + 0x1042) |
| |
| /* Scratch SRAM 1 Address Low Byte Register */ |
| #define SCRA1L ECREG(EC_REG_BASE_ADDR + 0x1043) |
| |
| /* Scratch SRAM 1 Address Middle Byte Register */ |
| #define SCRA1M ECREG(EC_REG_BASE_ADDR + 0x1044) |
| |
| /* Scratch SRAM 1 Address High Byte Register */ |
| #define SCRA1H ECREG(EC_REG_BASE_ADDR + 0x1045) |
| |
| /* Scratch SRAM 2 Address Low Byte Register */ |
| #define SCRA2L ECREG(EC_REG_BASE_ADDR + 0x1046) |
| |
| /* Scratch SRAM 2 Address Middle Byte Register */ |
| #define SCRA2M ECREG(EC_REG_BASE_ADDR + 0x1047) |
| |
| /* Scratch SRAM 2 Address High Byte Register */ |
| #define SCRA2H ECREG(EC_REG_BASE_ADDR + 0x1048) |
| |
| /* Scratch SRAM 3 Address Low Byte Register */ |
| #define SCRA3L ECREG(EC_REG_BASE_ADDR + 0x1049) |
| |
| /* Scratch SRAM 3 Address Middle Byte Register */ |
| #define SCRA3M ECREG(EC_REG_BASE_ADDR + 0x104A) |
| |
| /* Scratch SRAM 3 Address High Byte Register */ |
| #define SCRA3H ECREG(EC_REG_BASE_ADDR + 0x104B) |
| |
| /* Scratch SRAM 4 Address Low Byte Register */ |
| #define SCRA4L ECREG(EC_REG_BASE_ADDR + 0x104C) |
| |
| /* Scratch SRAM 4 Address Middle Byte Register */ |
| #define SCRA4M ECREG(EC_REG_BASE_ADDR + 0x104D) |
| |
| /* Scratch SRAM 4 Address High Byte Register */ |
| #define SCRA4H ECREG(EC_REG_BASE_ADDR + 0x104E) |
| |
| /* Protect 0 Base Addr Register 0 */ |
| #define P0BA0R ECREG(EC_REG_BASE_ADDR + 0x104F) |
| |
| /* Protect 0 Base Addr Register 1 */ |
| #define P0BA1R ECREG(EC_REG_BASE_ADDR + 0x1050) |
| |
| /* Protect 0 Size Register */ |
| #define P0ZR ECREG(EC_REG_BASE_ADDR + 0x1051) |
| |
| /* Protect 1 Base Addr Register 0 */ |
| #define P1BA0R ECREG(EC_REG_BASE_ADDR + 0x1052) |
| |
| /* Protect 1 Base Addr Register 1 */ |
| #define P1BA1R ECREG(EC_REG_BASE_ADDR + 0x1053) |
| |
| /* Protect 1 Size Register */ |
| #define P1ZR ECREG(EC_REG_BASE_ADDR + 0x1054) |
| |
| /* Deferred SPI Instruction */ |
| #define DSINST ECREG(EC_REG_BASE_ADDR + 0x1055) |
| |
| /* Deferred SPI Address */ |
| #define DSADR1 ECREG(EC_REG_BASE_ADDR + 0x1056) |
| |
| /* Deferred SPI Address */ |
| #define DSADR2 ECREG(EC_REG_BASE_ADDR + 0x1057) |
| |
| /* Host Instruction Control 1 */ |
| #define HINSTC1 ECREG(EC_REG_BASE_ADDR + 0x1058) |
| #define DISSV BIT(3) |
| #define DISS BIT(2) |
| #define ENDPI BIT(1) |
| #define ENDEI BIT(0) |
| |
| /* Host Instruction Control 2 */ |
| #define HINSTC2 ECREG(EC_REG_BASE_ADDR + 0x1059) |
| #define DISEID8 BIT(3) |
| #define DISEID7 BIT(2) |
| #define DISEI52 BIT(1) |
| #define DISEI20 BIT(0) |
| |
| /* Host RAM Window Control */ |
| #define HRAMWC ECREG(EC_REG_BASE_ADDR + 0x105A) |
| /* Window 0 enabled */ |
| #define WINDOW0EN BIT(0) |
| /* Window 1 enabled */ |
| #define WINDOW1EN BIT(1) |
| /* 0 : H2RAM-HLPC selected, 1 : H2RAM-HSPI selected */ |
| #define H2RAMS BIT(4) |
| |
| /* Host RAM Winodw 0 Base Address */ |
| #define HRAMW0BA ECREG(EC_REG_BASE_ADDR + 0x105B) |
| /* Host RAM Window 1 Base Address */ |
| #define HRAMW1BA ECREG(EC_REG_BASE_ADDR + 0x105C) |
| /* Host RAM Window 0 Access Allow Size */ |
| #define HRAMW0AAS ECREG(EC_REG_BASE_ADDR + 0x105D) |
| /* Host RAM Window 1 Access Allow Size */ |
| #define HRAMW1AAS ECREG(EC_REG_BASE_ADDR + 0x105E) |
| #define HOSTRAMSIZE16BYTE 0x00 |
| #define HOSTRAMSIZE32BYTE 0x01 |
| #define HOSTRAMSIZE64BYTE 0x02 |
| #define HOSTRAMSIZE128BYTE 0x03 |
| #define HOSTRAMSIZE256BYTE 0x04 |
| #define HOSTRAMSIZE512BYTE 0x05 |
| #define HOSTRAMSIZE1024BYTE 0x06 |
| #define HOSTRAMSIZE2048BYTE 0x07 |
| |
| #define CHECK64KSRAM ECREG(EC_REG_BASE_ADDR + 0x1060) |
| #define CRC_HBYTE ECREG(EC_REG_BASE_ADDR + 0x1061) |
| #define CRC_LBYTE ECREG(EC_REG_BASE_ADDR + 0x1062) |
| #define FLHCTRL3R ECREG(EC_REG_BASE_ADDR + 0x1063) |
| #define FLHCTRL4R ECREG(EC_REG_BASE_ADDR + 0x1064) |
| #define P2BA0R ECREG(EC_REG_BASE_ADDR + 0x1070) |
| #define P2BA1R ECREG(EC_REG_BASE_ADDR + 0x1071) |
| #define P2ZR ECREG(EC_REG_BASE_ADDR + 0x1072) |
| #define P3BA0R ECREG(EC_REG_BASE_ADDR + 0x1073) |
| #define P3BA1R ECREG(EC_REG_BASE_ADDR + 0x1074) |
| #define P3ZR ECREG(EC_REG_BASE_ADDR + 0x1075) |
| #define HRAMW2BA ECREG(EC_REG_BASE_ADDR + 0x1076) |
| #define HRAMW3BA ECREG(EC_REG_BASE_ADDR + 0x1077) |
| #define HRAMW2AAS ECREG(EC_REG_BASE_ADDR + 0x1078) |
| #define HRAMW3AAS ECREG(EC_REG_BASE_ADDR + 0x1079) |
| #define H2RAMECSIE ECREG(EC_REG_BASE_ADDR + 0x107A) |
| #define H2RAMECSA ECREG(EC_REG_BASE_ADDR + 0x107B) |
| #define H2RAMHSS ECREG(EC_REG_BASE_ADDR + 0x107C) |
| #define HPADR ECREG(EC_REG_BASE_ADDR + 0x107E) |
| #define STCDMACR ECREG(EC_REG_BASE_ADDR + 0x1080) |
| #define SCRA5L ECREG(EC_REG_BASE_ADDR + 0x1081) |
| #define SCRA5M ECREG(EC_REG_BASE_ADDR + 0x1082) |
| #define SCRA5H ECREG(EC_REG_BASE_ADDR + 0x1083) |
| #define SCRA6L ECREG(EC_REG_BASE_ADDR + 0x1084) |
| #define SCRA6M ECREG(EC_REG_BASE_ADDR + 0x1085) |
| #define SCRA6H ECREG(EC_REG_BASE_ADDR + 0x1086) |
| #define SCRA7L ECREG(EC_REG_BASE_ADDR + 0x1087) |
| #define SCRA7M ECREG(EC_REG_BASE_ADDR + 0x1088) |
| #define SCRA7H ECREG(EC_REG_BASE_ADDR + 0x1089) |
| #define SCRA8L ECREG(EC_REG_BASE_ADDR + 0x108A) |
| #define SCRA8M ECREG(EC_REG_BASE_ADDR + 0x108B) |
| #define SCRA8H ECREG(EC_REG_BASE_ADDR + 0x108C) |
| #define SCRA9L ECREG(EC_REG_BASE_ADDR + 0x108D) |
| #define SCRA9M ECREG(EC_REG_BASE_ADDR + 0x108E) |
| #define SCRA9H ECREG(EC_REG_BASE_ADDR + 0x108F) |
| #define SCRA10L ECREG(EC_REG_BASE_ADDR + 0x1090) |
| #define SCRA10M ECREG(EC_REG_BASE_ADDR + 0x1091) |
| #define SCRA10H ECREG(EC_REG_BASE_ADDR + 0x1092) |
| #define SCRA11L ECREG(EC_REG_BASE_ADDR + 0x1093) |
| #define SCRA11M ECREG(EC_REG_BASE_ADDR + 0x1094) |
| #define SCRA11H ECREG(EC_REG_BASE_ADDR + 0x1095) |
| #define SCRA12L ECREG(EC_REG_BASE_ADDR + 0x1096) |
| #define SCRA12M ECREG(EC_REG_BASE_ADDR + 0x1097) |
| #define SCRA12H ECREG(EC_REG_BASE_ADDR + 0x1098) |
| #define ROMARL ECREG(EC_REG_BASE_ADDR + 0x1099) |
| #define ROMARM ECREG(EC_REG_BASE_ADDR + 0x109A) |
| #define ROMARH ECREG(EC_REG_BASE_ADDR + 0x109B) |
| #define SEMBARL ECREG(EC_REG_BASE_ADDR + 0x109C) |
| #define SEMBARM ECREG(EC_REG_BASE_ADDR + 0x109D) |
| #define SEMBARH ECREG(EC_REG_BASE_ADDR + 0x109E) |
| #define SCRATH_SRAM 0x08 |
| |
| /** |
| * |
| * (11xxh) Interrupt controller (INTC) |
| * |
| */ |
| #define MAX_ISR_REG_NUM 24 |
| #define ISR0 ECREG(EC_REG_BASE_ADDR + 0x3F00) |
| #define ISR1 ECREG(EC_REG_BASE_ADDR + 0x3F01) |
| #define ISR2 ECREG(EC_REG_BASE_ADDR + 0x3F02) |
| #define ISR3 ECREG(EC_REG_BASE_ADDR + 0x3F03) |
| #define ISR4 ECREG(EC_REG_BASE_ADDR + 0x3F14) |
| #define ISR5 ECREG(EC_REG_BASE_ADDR + 0x3F18) |
| #define ISR6 ECREG(EC_REG_BASE_ADDR + 0x3F1C) |
| #define ISR7 ECREG(EC_REG_BASE_ADDR + 0x3F20) |
| #define ISR8 ECREG(EC_REG_BASE_ADDR + 0x3F24) |
| #define ISR9 ECREG(EC_REG_BASE_ADDR + 0x3F28) |
| #define ISR10 ECREG(EC_REG_BASE_ADDR + 0x3F2C) |
| #define ISR11 ECREG(EC_REG_BASE_ADDR + 0x3F30) |
| #define ISR12 ECREG(EC_REG_BASE_ADDR + 0x3F34) |
| #define ISR13 ECREG(EC_REG_BASE_ADDR + 0x3F38) |
| #define ISR14 ECREG(EC_REG_BASE_ADDR + 0x3F3C) |
| #define ISR15 ECREG(EC_REG_BASE_ADDR + 0x3F40) |
| #define ISR16 ECREG(EC_REG_BASE_ADDR + 0x3F44) |
| #define ISR17 ECREG(EC_REG_BASE_ADDR + 0x3F48) |
| #define ISR18 ECREG(EC_REG_BASE_ADDR + 0x3F4C) |
| #define ISR19 ECREG(EC_REG_BASE_ADDR + 0x3F50) |
| #define ISR20 ECREG(EC_REG_BASE_ADDR + 0x3F54) |
| |
| #define IER0 ECREG(EC_REG_BASE_ADDR + 0x3F04) |
| #define IER1 ECREG(EC_REG_BASE_ADDR + 0x3F05) |
| #define IER2 ECREG(EC_REG_BASE_ADDR + 0x3F06) |
| #define IER3 ECREG(EC_REG_BASE_ADDR + 0x3F07) |
| #define IER4 ECREG(EC_REG_BASE_ADDR + 0x3F15) |
| #define IER5 ECREG(EC_REG_BASE_ADDR + 0x3F19) |
| #define IER6 ECREG(EC_REG_BASE_ADDR + 0x3F1D) |
| #define IER7 ECREG(EC_REG_BASE_ADDR + 0x3F21) |
| #define IER8 ECREG(EC_REG_BASE_ADDR + 0x3F25) |
| #define IER9 ECREG(EC_REG_BASE_ADDR + 0x3F29) |
| #define IER10 ECREG(EC_REG_BASE_ADDR + 0x3F2D) |
| #define IER11 ECREG(EC_REG_BASE_ADDR + 0x3F31) |
| #define IER12 ECREG(EC_REG_BASE_ADDR + 0x3F35) |
| #define IER13 ECREG(EC_REG_BASE_ADDR + 0x3F39) |
| #define IER14 ECREG(EC_REG_BASE_ADDR + 0x3F3D) |
| #define IER15 ECREG(EC_REG_BASE_ADDR + 0x3F41) |
| #define IER16 ECREG(EC_REG_BASE_ADDR + 0x3F45) |
| #define IER17 ECREG(EC_REG_BASE_ADDR + 0x3F49) |
| #define IER18 ECREG(EC_REG_BASE_ADDR + 0x3F4D) |
| #define IER19 ECREG(EC_REG_BASE_ADDR + 0x3F51) |
| #define IER20 ECREG(EC_REG_BASE_ADDR + 0x3F55) |
| |
| #define IELMR0 ECREG(EC_REG_BASE_ADDR + 0x3F08) |
| #define IELMR1 ECREG(EC_REG_BASE_ADDR + 0x3F09) |
| #define IELMR2 ECREG(EC_REG_BASE_ADDR + 0x3F0A) |
| #define IELMR3 ECREG(EC_REG_BASE_ADDR + 0x3F0B) |
| #define IELMR4 ECREG(EC_REG_BASE_ADDR + 0x3F16) |
| #define IELMR5 ECREG(EC_REG_BASE_ADDR + 0x3F1A) |
| #define IELMR6 ECREG(EC_REG_BASE_ADDR + 0x3F1E) |
| #define IELMR7 ECREG(EC_REG_BASE_ADDR + 0x3F22) |
| #define IELMR8 ECREG(EC_REG_BASE_ADDR + 0x3F26) |
| #define IELMR9 ECREG(EC_REG_BASE_ADDR + 0x3F2A) |
| #define IELMR10 ECREG(EC_REG_BASE_ADDR + 0x3F2E) |
| #define IELMR11 ECREG(EC_REG_BASE_ADDR + 0x3F32) |
| #define IELMR12 ECREG(EC_REG_BASE_ADDR + 0x3F36) |
| #define IELMR13 ECREG(EC_REG_BASE_ADDR + 0x3F3A) |
| #define IELMR14 ECREG(EC_REG_BASE_ADDR + 0x3F3E) |
| #define IELMR15 ECREG(EC_REG_BASE_ADDR + 0x3F42) |
| #define IELMR16 ECREG(EC_REG_BASE_ADDR + 0x3F46) |
| #define IELMR17 ECREG(EC_REG_BASE_ADDR + 0x3F4A) |
| #define IELMR18 ECREG(EC_REG_BASE_ADDR + 0x3F4E) |
| #define IELMR19 ECREG(EC_REG_BASE_ADDR + 0x3F52) |
| #define IELMR20 ECREG(EC_REG_BASE_ADDR + 0x3F56) |
| |
| #define IPOLR0 ECREG(EC_REG_BASE_ADDR + 0x3F0C) |
| #define IPOLR1 ECREG(EC_REG_BASE_ADDR + 0x3F0D) |
| #define IPOLR2 ECREG(EC_REG_BASE_ADDR + 0x3F0E) |
| #define IPOLR3 ECREG(EC_REG_BASE_ADDR + 0x3F0F) |
| #define IPOLR4 ECREG(EC_REG_BASE_ADDR + 0x3F17) |
| #define IPOLR5 ECREG(EC_REG_BASE_ADDR + 0x3F1B) |
| #define IPOLR6 ECREG(EC_REG_BASE_ADDR + 0x3F1F) |
| #define IPOLR7 ECREG(EC_REG_BASE_ADDR + 0x3F23) |
| #define IPOLR8 ECREG(EC_REG_BASE_ADDR + 0x3F27) |
| #define IPOLR9 ECREG(EC_REG_BASE_ADDR + 0x3F2B) |
| #define IPOLR10 ECREG(EC_REG_BASE_ADDR + 0x3F2F) |
| #define IPOLR11 ECREG(EC_REG_BASE_ADDR + 0x3F33) |
| #define IPOLR12 ECREG(EC_REG_BASE_ADDR + 0x3F37) |
| #define IPOLR13 ECREG(EC_REG_BASE_ADDR + 0x3F3B) |
| #define IPOLR14 ECREG(EC_REG_BASE_ADDR + 0x3F3F) |
| #define IPOLR15 ECREG(EC_REG_BASE_ADDR + 0x3F43) |
| #define IPOLR16 ECREG(EC_REG_BASE_ADDR + 0x3F47) |
| #define IPOLR17 ECREG(EC_REG_BASE_ADDR + 0x3F4B) |
| #define IPOLR18 ECREG(EC_REG_BASE_ADDR + 0x3F4F) |
| #define IPOLR19 ECREG(EC_REG_BASE_ADDR + 0x3F53) |
| #define IPOLR20 ECREG(EC_REG_BASE_ADDR + 0x3F57) |
| |
| #define IVECT0 ECREG(EC_REG_BASE_ADDR + 0x3F80) |
| #define IVECT1 ECREG(EC_REG_BASE_ADDR + 0x3F81) |
| #define IVECT2 ECREG(EC_REG_BASE_ADDR + 0x3F82) |
| #define IVECT3 ECREG(EC_REG_BASE_ADDR + 0x3F83) |
| #define IVECT4 ECREG(EC_REG_BASE_ADDR + 0x3F84) |
| #define IVECT5 ECREG(EC_REG_BASE_ADDR + 0x3F85) |
| #define IVECT6 ECREG(EC_REG_BASE_ADDR + 0x3F86) |
| #define IVECT7 ECREG(EC_REG_BASE_ADDR + 0x3F87) |
| #define IVECT8 ECREG(EC_REG_BASE_ADDR + 0x3F88) |
| #define IVECT9 ECREG(EC_REG_BASE_ADDR + 0x3F89) |
| #define IVECT10 ECREG(EC_REG_BASE_ADDR + 0x3F8A) |
| #define IVECT11 ECREG(EC_REG_BASE_ADDR + 0x3F8B) |
| #define IVECT12 ECREG(EC_REG_BASE_ADDR + 0x3F8C) |
| #define IVECT13 ECREG(EC_REG_BASE_ADDR + 0x3F8D) |
| #define IVECT14 ECREG(EC_REG_BASE_ADDR + 0x3F8E) |
| #define IVECT15 ECREG(EC_REG_BASE_ADDR + 0x3F8F) |
| #define IVECT ECREG(EC_REG_BASE_ADDR + 0x3F10) |
| #define INT0ST ECREG(EC_REG_BASE_ADDR + 0x3F11) |
| #define PFAILR ECREG(EC_REG_BASE_ADDR + 0x3F12) |
| #define IGER0 ECREG(EC_REG_BASE_ADDR + 0x3F60) |
| #define IGER1 ECREG(EC_REG_BASE_ADDR + 0x3F61) |
| #define IGER2 ECREG(EC_REG_BASE_ADDR + 0x3F62) |
| #define IGER3 ECREG(EC_REG_BASE_ADDR + 0x3F63) |
| #define IGER4 ECREG(EC_REG_BASE_ADDR + 0x3F64) |
| #define IGER5 ECREG(EC_REG_BASE_ADDR + 0x3F65) |
| #define IGER6 ECREG(EC_REG_BASE_ADDR + 0x3F66) |
| #define IGER7 ECREG(EC_REG_BASE_ADDR + 0x3F67) |
| #define IGER8 ECREG(EC_REG_BASE_ADDR + 0x3F68) |
| #define IGER9 ECREG(EC_REG_BASE_ADDR + 0x3F69) |
| #define IGER10 ECREG(EC_REG_BASE_ADDR + 0x3F6A) |
| #define IGER11 ECREG(EC_REG_BASE_ADDR + 0x3F6B) |
| #define IGER12 ECREG(EC_REG_BASE_ADDR + 0x3F6C) |
| #define IGER13 ECREG(EC_REG_BASE_ADDR + 0x3F6D) |
| #define IGER14 ECREG(EC_REG_BASE_ADDR + 0x3F6E) |
| #define IGER15 ECREG(EC_REG_BASE_ADDR + 0x3F6F) |
| #define IGER16 ECREG(EC_REG_BASE_ADDR + 0x3F70) |
| #define IGER17 ECREG(EC_REG_BASE_ADDR + 0x3F71) |
| #define IGER18 ECREG(EC_REG_BASE_ADDR + 0x3F72) |
| #define IGER19 ECREG(EC_REG_BASE_ADDR + 0x3F73) |
| #define IGER20 ECREG(EC_REG_BASE_ADDR + 0x3F74) |
| |
| /* IER0 */ |
| #define INT_WKO20 BIT(1) |
| #define INT_KBCOBFE BIT(2) |
| #define INT_PMCOBFE BIT(3) |
| #define INT_SMBUS3 BIT(4) |
| #define INT_WKINTAD BIT(5) |
| #define INT_WKO23 BIT(6) |
| #define INT_PWM BIT(7) |
| |
| /* IER1 */ |
| #define INT_ADC BIT(0) |
| #define INT_SMBUS0 BIT(1) |
| #define INT_SMBUS1 BIT(2) |
| #define INT_KB BIT(3) |
| #define INT_WKO26 BIT(4) |
| #define INT_WKINTC BIT(5) |
| #define INT_WKO25 BIT(6) |
| #define INT_CIR BIT(7) |
| |
| /* IER2 */ |
| #define INT_SMBUS2 BIT(0) |
| #define INT_WKO24 BIT(1) |
| #define INT_PS2_2 BIT(2) |
| #define INT_PS2_1 BIT(3) |
| #define INT_PS2_0 BIT(4) |
| #define INT_WKO22 BIT(5) |
| #define SMFIS BIT(6) |
| |
| /* IER3 */ |
| #define INT_KBCIBF BIT(0) |
| #define INT_PMCIBF BIT(1) |
| #define INT_PMC2OBE BIT(2) |
| #define INT_PMC2IBF BIT(3) |
| #define INT_GINT BIT(4) |
| #define INT_EGPC BIT(5) |
| #define INT_EXTIMER BIT(6) |
| #define INT_WKO21 BIT(7) |
| |
| /* IER4 */ |
| #define INT_GPINT0 BIT(0) |
| #define INT_GPINT1 BIT(1) |
| #define INT_GPINT2 BIT(2) |
| #define INT_GPINT3 BIT(3) |
| #define INT_CIRGPINT BIT(4) |
| #define INT_SSPI BIT(5) |
| #define INT_UART1 BIT(6) |
| #define INT_UART2 BIT(7) |
| |
| /* IER6 */ |
| #define INT_WKO60 BIT(0) |
| #define INT_WKO61 BIT(1) |
| #define INT_WKO62 BIT(2) |
| #define INT_WKO63 BIT(3) |
| #define INT_WKO64 BIT(4) |
| #define INT_WKO65 BIT(5) |
| #define INT_WKO66 BIT(6) |
| #define INT_WKO67 BIT(7) |
| |
| /* IER7 */ |
| #define INT_RTCTALARM1 BIT(0) |
| #define INT_RTCTALARM2 BIT(1) |
| #define INT_ET2INTR BIT(2) |
| #define INT_TMRINTA0 BIT(4) |
| #define INT_TMRINTA1 BIT(5) |
| #define INT_TMRINTB0 BIT(6) |
| #define INT_TMRINTB1 BIT(7) |
| |
| /* IER8 */ |
| #define INT_PMC2EXOBE BIT(0) |
| #define INT_PMC2EXIBF BIT(1) |
| #define INT_PMC3OBE BIT(2) |
| #define INT_PMC3IBF BIT(3) |
| #define INT_PMC4OBE BIT(4) |
| #define INT_PMC4IBF BIT(5) |
| #define INT_I2BRAM BIT(7) |
| |
| /* IER9 */ |
| #define INT_WKO70 BIT(0) |
| #define INT_WKO71 BIT(1) |
| #define INT_WKO72 BIT(2) |
| #define INT_WKO73 BIT(3) |
| #define INT_WKO74 BIT(4) |
| #define INT_WKO75 BIT(5) |
| #define INT_WKO76 BIT(6) |
| #define INT_WKO77 BIT(7) |
| |
| /* IER10 */ |
| #define INT_ET8INTR BIT(0) |
| #define INT_SMBUSCHINER BIT(1) |
| #define INT_CEC BIT(2) |
| #define INT_H2RAMLPC BIT(3) |
| #define INT_KBSDVINTR BIT(4) |
| #define INT_WKO88 BIT(5) |
| #define INT_WKO89 BIT(6) |
| #define INT_WKO90 BIT(7) |
| |
| /* IER11 */ |
| #define INT_WKO80 BIT(0) |
| #define INT_WKO81 BIT(1) |
| #define INT_WKO82 BIT(2) |
| #define INT_WKO83 BIT(3) |
| #define INT_WKO84 BIT(4) |
| #define INT_WKO85 BIT(5) |
| #define INT_WKO86 BIT(6) |
| #define INT_WKO87 BIT(7) |
| |
| /* IER12 */ |
| #define INT_WKO91 BIT(0) |
| #define INT_WKO92 BIT(1) |
| #define INT_WKO93 BIT(2) |
| #define INT_WKO94 BIT(3) |
| #define INT_WKO95 BIT(4) |
| #define INT_WKO96 BIT(5) |
| #define INT_WKO97 BIT(6) |
| #define INT_WKO98 BIT(7) |
| |
| /* IER13 */ |
| #define INT_WKO99 BIT(0) |
| #define INT_WKO100 BIT(1) |
| #define INT_WKO101 BIT(2) |
| #define INT_WKO102 BIT(3) |
| #define INT_WKO103 BIT(4) |
| #define INT_WKO104 BIT(5) |
| #define INT_WKO105 BIT(6) |
| #define INT_WKO106 BIT(7) |
| |
| /* IER14 */ |
| #define INT_WKO107 BIT(0) |
| #define INT_WKO108 BIT(1) |
| #define INT_WKO109 BIT(2) |
| #define INT_WKO110 BIT(3) |
| #define INT_WKO111 BIT(4) |
| #define INT_WKO112 BIT(5) |
| #define INT_WKO113 BIT(6) |
| #define INT_WKO114 BIT(7) |
| |
| /* IER15 */ |
| #define INT_WKO115 BIT(0) |
| #define INT_WKO116 BIT(1) |
| #define INT_WKO117 BIT(2) |
| #define INT_WKO118 BIT(3) |
| #define INT_WKO119 BIT(4) |
| #define INT_WKO120 BIT(5) |
| #define INT_WKO121 BIT(6) |
| #define INT_WKO122 BIT(7) |
| |
| /* IER16 */ |
| #define INT_WKO128 BIT(0) |
| #define INT_WKO129 BIT(1) |
| #define INT_WKO130 BIT(2) |
| #define INT_WKO131 BIT(3) |
| #define INT_WKO132 BIT(4) |
| #define INT_WKO133 BIT(5) |
| #define INT_WKO134 BIT(6) |
| |
| /* IER18 */ |
| #define INT_PMC5OBE BIT(5) |
| #define INT_PMC5IBE BIT(6) |
| #define INT_VCI BIT(7) |
| |
| /* IER19 */ |
| #define INT_SMBUSE BIT(0) |
| #define INT_SMBUSF BIT(1) |
| #define INT_OSCDMAINTER BIT(2) |
| #define INT_ET3INTR BIT(3) |
| #define INT_ET4INTR BIT(4) |
| #define INT_ET5INTR BIT(5) |
| #define INT_ET6INTR BIT(6) |
| #define INT_ET7INTR BIT(7) |
| |
| /** |
| * |
| * (12xxh) EC Access to ost Controlled Modules (EC2I Bridge) |
| * |
| */ |
| #define IHIOA ECREG(EC_REG_BASE_ADDR + 0x1200) |
| #define IHD ECREG(EC_REG_BASE_ADDR + 0x1201) |
| #define LSIOHA ECREG(EC_REG_BASE_ADDR + 0x1202) |
| #define SIOLV ECREG(EC_REG_BASE_ADDR + 0x1203) |
| #define IBMAE ECREG(EC_REG_BASE_ADDR + 0x1204) |
| #define IBCTL ECREG(EC_REG_BASE_ADDR + 0x1205) |
| |
| /* Lock Super I/O Host Access Register */ |
| #define LKCFG BIT(0) |
| |
| /* Super I/O Access Lock Violation Register */ |
| #define CFGLV BIT(0) |
| |
| /* EC to I-Bus Modules Access Enable Register */ |
| #define SWUCAE BIT(2) |
| #define CFGAE BIT(0) |
| |
| /* I-Bus Control Register */ |
| #define CWIB BIT(2) |
| #define CRIB BIT(1) |
| #define CSAE BIT(0) |
| |
| /** |
| * |
| * (13xxh) Keyboard Controller (KBC) |
| * |
| */ |
| #define KBHICR ECREG(EC_REG_BASE_ADDR + 0x1300) |
| #define KBIRQR ECREG(EC_REG_BASE_ADDR + 0x1302) |
| #define KBHISR ECREG(EC_REG_BASE_ADDR + 0x1304) |
| #define KBHIKDOR ECREG(EC_REG_BASE_ADDR + 0x1306) |
| #define KBHIMDOR ECREG(EC_REG_BASE_ADDR + 0x1308) |
| #define KBHIDIR ECREG(EC_REG_BASE_ADDR + 0x130A) |
| |
| /* KBC Host Interface Control Register*/ |
| #define PM1ICIE BIT(6) |
| #define PM1OCIE BIT(5) |
| #define PM1HIE BIT(4) |
| #define IBFCIE BIT(3) |
| #define OBECIE BIT(2) |
| #define OBFMIE BIT(1) |
| #define OBFKIE BIT(0) |
| |
| /* KBC Interrupt Control Register */ |
| #define IRQNP BIT(6) |
| #define IRQ11B BIT(2) |
| #define IRQ12B BIT(1) |
| #define IRQ1B BIT(0) |
| |
| /* KBC Host Interface Keyboard/Mouse Status Register */ |
| #define PARE BIT(7) |
| #define GTIM BIT(6) |
| #define AOBF BIT(5) |
| #define KEYL BIT(4) |
| #define C_D BIT(3) |
| #define SYSF BIT(2) |
| #define IBF BIT(1) |
| #define OBF BIT(0) |
| |
| /** |
| * |
| * (14xxh) System Wake-Up Control (SWUC) |
| * |
| */ |
| #define SWCTL1 ECREG(EC_REG_BASE_ADDR + 0x1400) |
| #define SWCTL2 ECREG(EC_REG_BASE_ADDR + 0x1402) |
| #define SWCTL3 ECREG(EC_REG_BASE_ADDR + 0x1404) |
| #define SWCBALR ECREG(EC_REG_BASE_ADDR + 0x1408) |
| #define SWCBAHR ECREG(EC_REG_BASE_ADDR + 0x140A) |
| #define SWCIER ECREG(EC_REG_BASE_ADDR + 0x140C) |
| #define SWCHSTR ECREG(EC_REG_BASE_ADDR + 0x140E) |
| #define SWCHIER ECREG(EC_REG_BASE_ADDR + 0x1410) |
| |
| /** |
| * |
| * (14XXh) ISO14443 PICC Register |
| * |
| */ |
| #define PICC_BASE_ADDR (EC_REG_BASE_ADDR + 0x1400) |
| #define PATQA0SR ECREG(EC_REG_BASE_ADDR + 0x1400) |
| #define PATQA1SR ECREG(EC_REG_BASE_ADDR + 0x1401) |
| #define PSAKSR ECREG(EC_REG_BASE_ADDR + 0x1402) |
| #define PTRRR ECREG(EC_REG_BASE_ADDR + 0x1403) |
| #define PFDTA1R ECREG(EC_REG_BASE_ADDR + 0x141E) |
| #define PFDTA2R ECREG(EC_REG_BASE_ADDR + 0x141F) |
| #define PACCR ECREG(EC_REG_BASE_ADDR + 0x1404) |
| #define PIR ECREG(EC_REG_BASE_ADDR + 0x1405) |
| #define PICC_HF_ENABLE BIT(5) |
| #define PICC_HF_DISABLE BIT(4) |
| #define PICC_DATA_ERROR BIT(3) |
| #define PICC_RX_DONE BIT(2) |
| #define PICC_TX_DONE BIT(1) |
| #define PICC_ANTI_COLL_DONE BIT(0) |
| #define PIMR ECREG(EC_REG_BASE_ADDR + 0x1406) |
| #define PMCR ECREG(EC_REG_BASE_ADDR + 0x1407) |
| #define PTXCR ECREG(EC_REG_BASE_ADDR + 0x1408) |
| #define PRAMBA0R ECREG(EC_REG_BASE_ADDR + 0x140A) |
| #define PRAMBA1R ECREG(EC_REG_BASE_ADDR + 0x140B) |
| #define PTSR ECREG(EC_REG_BASE_ADDR + 0x140C) |
| #define PRTC0R ECREG(EC_REG_BASE_ADDR + 0x140E) |
| #define PRTC1R ECREG(EC_REG_BASE_ADDR + 0x140F) |
| #define PUID0R ECREG(EC_REG_BASE_ADDR + 0x1410) |
| #define PUID0R_ADDR (PICC_BASE_ADDR + 0x10) |
| #define PUID1R ECREG(EC_REG_BASE_ADDR + 0x1411) |
| #define PUID2R ECREG(EC_REG_BASE_ADDR + 0x1412) |
| #define PUID3R ECREG(EC_REG_BASE_ADDR + 0x1413) |
| #define PUID4R ECREG(EC_REG_BASE_ADDR + 0x1414) |
| #define PUID5R ECREG(EC_REG_BASE_ADDR + 0x1415) |
| #define PUID6R ECREG(EC_REG_BASE_ADDR + 0x1416) |
| #define PUID7R ECREG(EC_REG_BASE_ADDR + 0x1417) |
| #define PUID8R ECREG(EC_REG_BASE_ADDR + 0x1418) |
| #define PUID9R ECREG(EC_REG_BASE_ADDR + 0x1419) |
| #define PDER ECREG(EC_REG_BASE_ADDR + 0x141A) |
| #define PRC0R ECREG(EC_REG_BASE_ADDR + 0x141C) |
| #define PRC1R ECREG(EC_REG_BASE_ADDR + 0x141D) |
| |
| /** |
| * |
| * (15xxh) Power Management Channel (PMC) |
| * |
| */ |
| /* PM1 */ |
| #define PM1STS ECREG(EC_REG_BASE_ADDR + 0x1500) |
| #define PM1DO ECREG(EC_REG_BASE_ADDR + 0x1501) |
| #define PM1DOSCI ECREG(EC_REG_BASE_ADDR + 0x1502) |
| #define PM1DOSMI ECREG(EC_REG_BASE_ADDR + 0x1503) |
| #define PM1DI ECREG(EC_REG_BASE_ADDR + 0x1504) |
| #define PM1DISCI ECREG(EC_REG_BASE_ADDR + 0x1505) |
| #define PM1CTL ECREG(EC_REG_BASE_ADDR + 0x1506) |
| #define PM1IC ECREG(EC_REG_BASE_ADDR + 0x1507) |
| #define PM1IE ECREG(EC_REG_BASE_ADDR + 0x1508) |
| /* PM2 */ |
| #define PM2STS ECREG(EC_REG_BASE_ADDR + 0x1510) |
| #define PM2DO ECREG(EC_REG_BASE_ADDR + 0x1511) |
| #define PM2DOSCI ECREG(EC_REG_BASE_ADDR + 0x1512) |
| #define PM2DOSMI ECREG(EC_REG_BASE_ADDR + 0x1513) |
| #define PM2DI ECREG(EC_REG_BASE_ADDR + 0x1514) |
| #define PM2DISCI ECREG(EC_REG_BASE_ADDR + 0x1515) |
| #define PM2CTL ECREG(EC_REG_BASE_ADDR + 0x1516) |
| #define PM2IC ECREG(EC_REG_BASE_ADDR + 0x1517) |
| #define PM2IE ECREG(EC_REG_BASE_ADDR + 0x1518) |
| /* Mailbox */ |
| #define MBXCTRL ECREG(EC_REG_BASE_ADDR + 0x1519) |
| /* 16-byte PMC2EX Mailbox 0 ~ Mailbox 15 */ |
| #define MBXEC_00 ECREG(EC_REG_BASE_ADDR + 0x15F0) |
| #define MBXEC_01 ECREG(EC_REG_BASE_ADDR + 0x15F1) |
| #define MBXEC_02 ECREG(EC_REG_BASE_ADDR + 0x15F2) |
| #define MBXEC_03 ECREG(EC_REG_BASE_ADDR + 0x15F3) |
| #define MBXEC_04 ECREG(EC_REG_BASE_ADDR + 0x15F4) |
| #define MBXEC_05 ECREG(EC_REG_BASE_ADDR + 0x15F5) |
| #define MBXEC_06 ECREG(EC_REG_BASE_ADDR + 0x15F6) |
| #define MBXEC_07 ECREG(EC_REG_BASE_ADDR + 0x15F7) |
| #define MBXEC_08 ECREG(EC_REG_BASE_ADDR + 0x15F8) |
| #define MBXEC_09 ECREG(EC_REG_BASE_ADDR + 0x15F9) |
| #define MBXEC_10 ECREG(EC_REG_BASE_ADDR + 0x15FA) |
| #define MBXEC_11 ECREG(EC_REG_BASE_ADDR + 0x15FB) |
| #define MBXEC_12 ECREG(EC_REG_BASE_ADDR + 0x15FC) |
| #define MBXEC_13 ECREG(EC_REG_BASE_ADDR + 0x15FD) |
| #define MBXEC_14 ECREG(EC_REG_BASE_ADDR + 0x15FE) |
| #define MBXEC_15 ECREG(EC_REG_BASE_ADDR + 0x15FF) |
| #define PM3STS ECREG(EC_REG_BASE_ADDR + 0x1520) |
| #define PM3DO ECREG(EC_REG_BASE_ADDR + 0x1521) |
| #define PM3DI ECREG(EC_REG_BASE_ADDR + 0x1522) |
| #define PM3CTL ECREG(EC_REG_BASE_ADDR + 0x1523) |
| #define PM3IC ECREG(EC_REG_BASE_ADDR + 0x1524) |
| #define PM3IE ECREG(EC_REG_BASE_ADDR + 0x1525) |
| #define PM4STS ECREG(EC_REG_BASE_ADDR + 0x1530) |
| #define PM4DO ECREG(EC_REG_BASE_ADDR + 0x1531) |
| #define PM4DI ECREG(EC_REG_BASE_ADDR + 0x1532) |
| #define PM4CTL ECREG(EC_REG_BASE_ADDR + 0x1533) |
| #define PM4IC ECREG(EC_REG_BASE_ADDR + 0x1534) |
| #define PM4IE ECREG(EC_REG_BASE_ADDR + 0x1535) |
| #define PM5STS ECREG(EC_REG_BASE_ADDR + 0x1540) |
| #define PM5DO ECREG(EC_REG_BASE_ADDR + 0x1541) |
| #define PM5DI ECREG(EC_REG_BASE_ADDR + 0x1542) |
| #define PM5CTL ECREG(EC_REG_BASE_ADDR + 0x1543) |
| #define PM5IC ECREG(EC_REG_BASE_ADDR + 0x1544) |
| #define PM5IE ECREG(EC_REG_BASE_ADDR + 0x1545) |
| |
| /* PM Status Register */ |
| #define SMIEVT BIT(6) |
| #define SCIEVT BIT(5) |
| #define BURST BIT(4) |
| #define P_C_D BIT(3) |
| #define P_IBF BIT(1) |
| #define P_OBF BIT(0) |
| |
| /* PM Control */ |
| #define APM BIT(7) |
| #define SCINP BIT(6) |
| #define OBEIE BIT(1) |
| #define IBFIE BIT(0) |
| |
| /* PM Interrupt Control */ |
| #define SMINP BIT(6) |
| #define SCIB BIT(2) |
| #define SMIB BIT(1) |
| #define IRQB BIT(0) |
| |
| /* PM Interrupt Enable */ |
| #define HWSMIEN BIT(5) |
| #define HWSCIEN BIT(4) |
| #define HWIRQEN BIT(3) |
| #define SMIEN BIT(2) |
| #define SCIEN BIT(1) |
| #define IRQEN BIT(0) |
| |
| /* PM Interrupt Enable */ |
| #define MBXEN BIT(7) |
| |
| /** |
| * |
| * (16XXh) General Purpose I/O Control Register |
| * |
| */ |
| /* GPIO data register */ |
| #define GCR ECREG(EC_REG_BASE_ADDR + 0x1600) |
| #define GFLE BIT(7) |
| #define WUI7EN BIT(6) |
| #define WUI6EN BIT(5) |
| #define LPCRSTEN_GPB7 BIT(2) |
| #define LPCRSTEN_GPD2 BIT(1) |
| |
| #define GCR1 ECREG(EC_REG_BASE_ADDR + 0x16F0) |
| #define SPICTRL_0 BIT(4) |
| #define SPICTRL_1 BIT(5) |
| #define SSSPIBP BIT(6) |
| #define SPICTRL_2 BIT(7) |
| |
| #define GCR2 ECREG(EC_REG_BASE_ADDR + 0x16F1) |
| #define CK32OE BIT(6) |
| #define SMB3E BIT(5) |
| #define PECIE BIT(4) |
| |
| #define GCR3 ECREG(EC_REG_BASE_ADDR + 0x16F2) |
| #define GCR4 ECREG(EC_REG_BASE_ADDR + 0x16F3) |
| #define GCR5 ECREG(EC_REG_BASE_ADDR + 0x16F4) |
| #define GCR6 ECREG(EC_REG_BASE_ADDR + 0x16F5) |
| #define GCR7 ECREG(EC_REG_BASE_ADDR + 0x16F6) |
| #define GCR8 ECREG(EC_REG_BASE_ADDR + 0x16F7) |
| #define GCR9 ECREG(EC_REG_BASE_ADDR + 0x16F8) |
| #define GCR10 ECREG(EC_REG_BASE_ADDR + 0x16F9) |
| #define GCR11 ECREG(EC_REG_BASE_ADDR + 0x16FA) |
| #define GCR12 ECREG(EC_REG_BASE_ADDR + 0x16FB) |
| #define GCR13 ECREG(EC_REG_BASE_ADDR + 0x16FC) |
| #define GCR14 ECREG(EC_REG_BASE_ADDR + 0x16FD) |
| #define GCR15 ECREG(EC_REG_BASE_ADDR + 0x16FE) |
| #define GCR16 ECREG(EC_REG_BASE_ADDR + 0x16E0) |
| #define GCR17 ECREG(EC_REG_BASE_ADDR + 0x16E1) |
| #define GCR18 ECREG(EC_REG_BASE_ADDR + 0x16E2) |
| #define GCR19 ECREG(EC_REG_BASE_ADDR + 0x16E4) |
| #define GCR20 ECREG(EC_REG_BASE_ADDR + 0x16E5) |
| #define GCR21 ECREG(EC_REG_BASE_ADDR + 0x16E6) |
| #define GPDRA ECREG(EC_REG_BASE_ADDR + 0x1601) |
| #define GPDRB ECREG(EC_REG_BASE_ADDR + 0x1602) |
| #define GPDRC ECREG(EC_REG_BASE_ADDR + 0x1603) |
| #define GPDRD ECREG(EC_REG_BASE_ADDR + 0x1604) |
| #define GPDRE ECREG(EC_REG_BASE_ADDR + 0x1605) |
| #define GPDRF ECREG(EC_REG_BASE_ADDR + 0x1606) |
| #define GPDRG ECREG(EC_REG_BASE_ADDR + 0x1607) |
| #define GPDRH ECREG(EC_REG_BASE_ADDR + 0x1608) |
| #define GPDRI ECREG(EC_REG_BASE_ADDR + 0x1609) |
| #define GPDRJ ECREG(EC_REG_BASE_ADDR + 0x160A) |
| #define GPDRM ECREG(EC_REG_BASE_ADDR + 0x160D) |
| |
| /* GPIO control register */ |
| #define GPCRA0 ECREG(EC_REG_BASE_ADDR + 0x1610) |
| #define GPCRA1 ECREG(EC_REG_BASE_ADDR + 0x1611) |
| #define GPCRA2 ECREG(EC_REG_BASE_ADDR + 0x1612) |
| #define GPCRA3 ECREG(EC_REG_BASE_ADDR + 0x1613) |
| #define GPCRA4 ECREG(EC_REG_BASE_ADDR + 0x1614) |
| #define GPCRA5 ECREG(EC_REG_BASE_ADDR + 0x1615) |
| #define GPCRA6 ECREG(EC_REG_BASE_ADDR + 0x1616) |
| #define GPCRA7 ECREG(EC_REG_BASE_ADDR + 0x1617) |
| #define GPCRB0 ECREG(EC_REG_BASE_ADDR + 0x1618) |
| #define GPCRB1 ECREG(EC_REG_BASE_ADDR + 0x1619) |
| #define GPCRB2 ECREG(EC_REG_BASE_ADDR + 0x161A) |
| #define GPCRB3 ECREG(EC_REG_BASE_ADDR + 0x161B) |
| #define GPCRB4 ECREG(EC_REG_BASE_ADDR + 0x161C) |
| #define GPCRB5 ECREG(EC_REG_BASE_ADDR + 0x161D) |
| #define GPCRB6 ECREG(EC_REG_BASE_ADDR + 0x161E) |
| #define GPCRB7 ECREG(EC_REG_BASE_ADDR + 0x161F) |
| #define GPCRC0 ECREG(EC_REG_BASE_ADDR + 0x1620) |
| #define GPCRC1 ECREG(EC_REG_BASE_ADDR + 0x1621) |
| #define GPCRC2 ECREG(EC_REG_BASE_ADDR + 0x1622) |
| #define GPCRC3 ECREG(EC_REG_BASE_ADDR + 0x1623) |
| #define GPCRC4 ECREG(EC_REG_BASE_ADDR + 0x1624) |
| #define GPCRC5 ECREG(EC_REG_BASE_ADDR + 0x1625) |
| #define GPCRC6 ECREG(EC_REG_BASE_ADDR + 0x1626) |
| #define GPCRC7 ECREG(EC_REG_BASE_ADDR + 0x1627) |
| #define GPCRD0 ECREG(EC_REG_BASE_ADDR + 0x1628) |
| #define GPCRD1 ECREG(EC_REG_BASE_ADDR + 0x1629) |
| #define GPCRD2 ECREG(EC_REG_BASE_ADDR + 0x162A) |
| #define GPCRD3 ECREG(EC_REG_BASE_ADDR + 0x162B) |
| #define GPCRD4 ECREG(EC_REG_BASE_ADDR + 0x162C) |
| #define GPCRD5 ECREG(EC_REG_BASE_ADDR + 0x162D) |
| #define GPCRD6 ECREG(EC_REG_BASE_ADDR + 0x162E) |
| #define GPCRD7 ECREG(EC_REG_BASE_ADDR + 0x162F) |
| #define GPCRE0 ECREG(EC_REG_BASE_ADDR + 0x1630) |
| #define GPCRE1 ECREG(EC_REG_BASE_ADDR + 0x1631) |
| #define GPCRE2 ECREG(EC_REG_BASE_ADDR + 0x1632) |
| #define GPCRE3 ECREG(EC_REG_BASE_ADDR + 0x1633) |
| #define GPCRE4 ECREG(EC_REG_BASE_ADDR + 0x1634) |
| #define GPCRE5 ECREG(EC_REG_BASE_ADDR + 0x1635) |
| #define GPCRE6 ECREG(EC_REG_BASE_ADDR + 0x1636) |
| #define GPCRE7 ECREG(EC_REG_BASE_ADDR + 0x1637) |
| #define GPCRF0 ECREG(EC_REG_BASE_ADDR + 0x1638) |
| #define GPCRF1 ECREG(EC_REG_BASE_ADDR + 0x1639) |
| #define GPCRF2 ECREG(EC_REG_BASE_ADDR + 0x163A) |
| #define GPCRF3 ECREG(EC_REG_BASE_ADDR + 0x163B) |
| #define GPCRF4 ECREG(EC_REG_BASE_ADDR + 0x163C) |
| #define GPCRF5 ECREG(EC_REG_BASE_ADDR + 0x163D) |
| #define GPCRF6 ECREG(EC_REG_BASE_ADDR + 0x163E) |
| #define GPCRF7 ECREG(EC_REG_BASE_ADDR + 0x163F) |
| #define GPCRG0 ECREG(EC_REG_BASE_ADDR + 0x1640) |
| #define GPCRG1 ECREG(EC_REG_BASE_ADDR + 0x1641) |
| #define GPCRG2 ECREG(EC_REG_BASE_ADDR + 0x1642) |
| #define GPCRG3 ECREG(EC_REG_BASE_ADDR + 0x1643) |
| #define GPCRG4 ECREG(EC_REG_BASE_ADDR + 0x1644) |
| #define GPCRG5 ECREG(EC_REG_BASE_ADDR + 0x1645) |
| #define GPCRG6 ECREG(EC_REG_BASE_ADDR + 0x1646) |
| #define GPCRG7 ECREG(EC_REG_BASE_ADDR + 0x1647) |
| #define GPCRH0 ECREG(EC_REG_BASE_ADDR + 0x1648) |
| #define GPCRH1 ECREG(EC_REG_BASE_ADDR + 0x1649) |
| #define GPCRH2 ECREG(EC_REG_BASE_ADDR + 0x164A) |
| #define GPCRH3 ECREG(EC_REG_BASE_ADDR + 0x164B) |
| #define GPCRH4 ECREG(EC_REG_BASE_ADDR + 0x164C) |
| #define GPCRH5 ECREG(EC_REG_BASE_ADDR + 0x164D) |
| #define GPCRH6 ECREG(EC_REG_BASE_ADDR + 0x164E) |
| #define GPCRI0 ECREG(EC_REG_BASE_ADDR + 0x1650) |
| #define GPCRI1 ECREG(EC_REG_BASE_ADDR + 0x1651) |
| #define GPCRI2 ECREG(EC_REG_BASE_ADDR + 0x1652) |
| #define GPCRI3 ECREG(EC_REG_BASE_ADDR + 0x1653) |
| #define GPCRI4 ECREG(EC_REG_BASE_ADDR + 0x1654) |
| #define GPCRI5 ECREG(EC_REG_BASE_ADDR + 0x1655) |
| #define GPCRI6 ECREG(EC_REG_BASE_ADDR + 0x1656) |
| #define GPCRI7 ECREG(EC_REG_BASE_ADDR + 0x1657) |
| #define GPCRJ0 ECREG(EC_REG_BASE_ADDR + 0x1658) |
| #define GPCRJ1 ECREG(EC_REG_BASE_ADDR + 0x1659) |
| #define GPCRJ2 ECREG(EC_REG_BASE_ADDR + 0x165A) |
| #define GPCRJ3 ECREG(EC_REG_BASE_ADDR + 0x165B) |
| #define GPCRJ4 ECREG(EC_REG_BASE_ADDR + 0x165C) |
| #define GPCRJ5 ECREG(EC_REG_BASE_ADDR + 0x165D) |
| #define GPCRJ6 ECREG(EC_REG_BASE_ADDR + 0x165E) |
| #define GPCRJ7 ECREG(EC_REG_BASE_ADDR + 0x165F) |
| #define GPCRM0 ECREG(EC_REG_BASE_ADDR + 0x16A0) |
| #define GPCRM1 ECREG(EC_REG_BASE_ADDR + 0x16A1) |
| #define GPCRM2 ECREG(EC_REG_BASE_ADDR + 0x16A2) |
| #define GPCRM3 ECREG(EC_REG_BASE_ADDR + 0x16A3) |
| #define GPCRM4 ECREG(EC_REG_BASE_ADDR + 0x16A4) |
| #define GPCRM5 ECREG(EC_REG_BASE_ADDR + 0x16A5) |
| #define GPCRM6 ECREG(EC_REG_BASE_ADDR + 0x16A6) |
| |
| /* Port Data Mirror Register */ |
| #define GPDMRA ECREG(EC_REG_BASE_ADDR + 0x1661) |
| #define GPDMRB ECREG(EC_REG_BASE_ADDR + 0x1662) |
| #define GPDMRC ECREG(EC_REG_BASE_ADDR + 0x1663) |
| #define GPDMRD ECREG(EC_REG_BASE_ADDR + 0x1664) |
| #define GPDMRE ECREG(EC_REG_BASE_ADDR + 0x1665) |
| #define GPDMRF ECREG(EC_REG_BASE_ADDR + 0x1666) |
| #define GPDMRG ECREG(EC_REG_BASE_ADDR + 0x1667) |
| #define GPDMRH ECREG(EC_REG_BASE_ADDR + 0x1668) |
| #define GPDMRI ECREG(EC_REG_BASE_ADDR + 0x1669) |
| #define GPDMRJ ECREG(EC_REG_BASE_ADDR + 0x166A) |
| #define GPDMRM ECREG(EC_REG_BASE_ADDR + 0x166D) |
| #define GPOTA ECREG(EC_REG_BASE_ADDR + 0x1671) |
| #define GPOTB ECREG(EC_REG_BASE_ADDR + 0x1672) |
| #define GPOTD ECREG(EC_REG_BASE_ADDR + 0x1674) |
| #define GPOTE ECREG(EC_REG_BASE_ADDR + 0x1675) |
| #define GPOTF ECREG(EC_REG_BASE_ADDR + 0x1676) |
| #define GPOTH ECREG(EC_REG_BASE_ADDR + 0x1678) |
| #define GPOTJ ECREG(EC_REG_BASE_ADDR + 0x167A) |
| |
| /** |
| * |
| * (17XXh) PS/2 Interface Register |
| * |
| */ |
| #define PSCTL1 ECREG(EC_REG_BASE_ADDR + 0x1700) |
| #define PSCTL2 ECREG(EC_REG_BASE_ADDR + 0x1701) |
| #define PSCTL3 ECREG(EC_REG_BASE_ADDR + 0x1702) |
| #define PSINT1 ECREG(EC_REG_BASE_ADDR + 0x1704) |
| #define PSINT2 ECREG(EC_REG_BASE_ADDR + 0x1705) |
| #define PSINT3 ECREG(EC_REG_BASE_ADDR + 0x1706) |
| #define PSSTS1 ECREG(EC_REG_BASE_ADDR + 0x1708) |
| #define PSSTS2 ECREG(EC_REG_BASE_ADDR + 0x1709) |
| #define PSSTS3 ECREG(EC_REG_BASE_ADDR + 0x170A) |
| #define PSDAT1 ECREG(EC_REG_BASE_ADDR + 0x170C) |
| #define PSDAT2 ECREG(EC_REG_BASE_ADDR + 0x170D) |
| #define PSDAT3 ECREG(EC_REG_BASE_ADDR + 0x170E) |
| |
| /* PS/2 Control Register */ |
| #define DCEN BIT(4) |
| #define TRMS BIT(3) |
| #define PSHE BIT(2) |
| #define CCLK BIT(1) |
| #define CDAT BIT(0) |
| |
| /* PS/2 Interrupt Control Register */ |
| #define TDIE BIT(2) |
| #define SIE BIT(1) |
| #define SMIE BIT(0) |
| |
| /* PS/2 Status Register */ |
| #define FER BIT(5) |
| #define PER BIT(4) |
| #define TDS BIT(3) |
| #define SS BIT(2) |
| #define CLS BIT(1) |
| #define DLS BIT(0) |
| |
| /** |
| * |
| * (18xxh) PWM & SmartAuto Fan Control (PWM) |
| * |
| */ |
| #define C0CPRS ECREG(EC_REG_BASE_ADDR + 0x1800) |
| #define CTR ECREG(EC_REG_BASE_ADDR + 0x1801) |
| #define DCR0 ECREG(EC_REG_BASE_ADDR + 0x1802) |
| #define DCR1 ECREG(EC_REG_BASE_ADDR + 0x1803) |
| #define DCR2 ECREG(EC_REG_BASE_ADDR + 0x1804) |
| #define DCR3 ECREG(EC_REG_BASE_ADDR + 0x1805) |
| #define DCR4 ECREG(EC_REG_BASE_ADDR + 0x1806) |
| #define DCR5 ECREG(EC_REG_BASE_ADDR + 0x1807) |
| #define DCR6 ECREG(EC_REG_BASE_ADDR + 0x1808) |
| #define DCR7 ECREG(EC_REG_BASE_ADDR + 0x1809) |
| #define PWMPOL ECREG(EC_REG_BASE_ADDR + 0x180A) |
| #define PCFSR ECREG(EC_REG_BASE_ADDR + 0x180B) |
| #define PCSSGL ECREG(EC_REG_BASE_ADDR + 0x180C) |
| #define PCSSGH ECREG(EC_REG_BASE_ADDR + 0x180D) |
| #define CR256PCSSG ECREG(EC_REG_BASE_ADDR + 0x180E) |
| #define PCSGR ECREG(EC_REG_BASE_ADDR + 0x180F) |
| #define F1TLRR ECREG(EC_REG_BASE_ADDR + 0x181E) |
| #define F1TMRR ECREG(EC_REG_BASE_ADDR + 0x181F) |
| #define F2TLRR ECREG(EC_REG_BASE_ADDR + 0x1820) |
| #define F2TMRR ECREG(EC_REG_BASE_ADDR + 0x1821) |
| #define ZINTSCR ECREG(EC_REG_BASE_ADDR + 0x1822) |
| #define ZTIER ECREG(EC_REG_BASE_ADDR + 0x1823) |
| #define TSWCTLR ECREG(EC_REG_BASE_ADDR + 0x1824) |
| #define C4CPRS ECREG(EC_REG_BASE_ADDR + 0x1827) |
| #define C4MCPRS ECREG(EC_REG_BASE_ADDR + 0x1828) |
| #define C6CPRS ECREG(EC_REG_BASE_ADDR + 0x182B) |
| #define C6MCPRS ECREG(EC_REG_BASE_ADDR + 0x182C) |
| #define C7CPRS ECREG(EC_REG_BASE_ADDR + 0x182D) |
| #define C7MCPRS ECREG(EC_REG_BASE_ADDR + 0x182E) |
| #define CLK6MSEL ECREG(EC_REG_BASE_ADDR + 0x1840) |
| #define CTR1 ECREG(EC_REG_BASE_ADDR + 0x1841) |
| #define CTR2 ECREG(EC_REG_BASE_ADDR + 0x1842) |
| #define CTR3 ECREG(EC_REG_BASE_ADDR + 0x1843) |
| #define PWM5TOCTRL ECREG(EC_REG_BASE_ADDR + 0x1844) |
| #define CFLRR ECREG(EC_REG_BASE_ADDR + 0x1845) |
| #define CFMRR ECREG(EC_REG_BASE_ADDR + 0x1846) |
| #define CFINTCTRL ECREG(EC_REG_BASE_ADDR + 0x1847) |
| #define TSWCTRL ECREG(EC_REG_BASE_ADDR + 0x1848) |
| #define PWMODENR ECREG(EC_REG_BASE_ADDR + 0x1849) |
| #define PWM0LHE ECREG(EC_REG_BASE_ADDR + 0x1850) |
| #define PWM0LCR1 ECREG(EC_REG_BASE_ADDR + 0x1851) |
| #define PWM0LCR2 ECREG(EC_REG_BASE_ADDR + 0x1852) |
| #define PWM1LHE ECREG(EC_REG_BASE_ADDR + 0x1853) |
| #define PWM1LCR1 ECREG(EC_REG_BASE_ADDR + 0x1854) |
| #define PWM1LCR2 ECREG(EC_REG_BASE_ADDR + 0x1855) |
| |
| /** |
| * |
| * (19xxh) Analog to Digital converter (ADC) |
| * |
| */ |
| #define ADCECR ECREG(EC_REG_BASE_ADDR + 0x1901) |
| #define ADCCSR ECREG(EC_REG_BASE_ADDR + 0x1902) |
| #define ADCGC0R ECREG(EC_REG_BASE_ADDR + 0x1903) |
| #define ADCGC1R ECREG(EC_REG_BASE_ADDR + 0x1904) |
| #define ADCCXC_BASE (EC_REG_BASE_ADDR + 0x1905) |
| #define ADCCXC0R(ch) ECREG(ADCCxC_BASE + ((ch) * 2)) |
| #define ADCCXC1R(ch) ECREG(ADCCxC_BASE + 1 + ((ch) * 2)) |
| #define ADCDMALBAR ECREG(EC_REG_BASE_ADDR + 0x190D) |
| #define ADCDMAHBAR ECREG(EC_REG_BASE_ADDR + 0x190E) |
| #define ADCDMABLR ECREG(EC_REG_BASE_ADDR + 0x190F) |
| #define ADCDLR ECREG(EC_REG_BASE_ADDR + 0x1910) |
| #define ADCIMR ECREG(EC_REG_BASE_ADDR + 0x1911) |
| #define ADCISR ECREG(EC_REG_BASE_ADDR + 0x1912) |
| #define ADCCxS_BASE (EC_REG_BASE_ADDR + 0x1950) |
| #define ADCCXD0R(ch) ECREG(ADCCxS_BASE0 + ((ch) * 2)) |
| #define ADCCXD1R(ch) ECREG(ADCCxS_BASE + 1 + ((ch) * 2)) |
| |
| /* ADC Status Register */ |
| #define FIRHIACC BIT(7) |
| #define AINITB BIT(3) |
| #define ADCPS BIT(2) |
| #define DOVE BIT(1) |
| #define EOCE BIT(0) |
| |
| /* ADC Configuration Register */ |
| #define DFILEN BIT(5) |
| #define INTECEN BIT(2) |
| #define ADCEN BIT(0) |
| |
| /* Voltage Channel Control Register */ |
| #define DATVAL BIT(7) |
| #define INTDVEN BIT(5) |
| |
| /* Calibration Data Control Register */ |
| #define AHCE BIT(7) |
| #define HCDATVAL BIT(5) |
| #define GCDATVAL BIT(4) |
| #define VHSCKE BIT(1) |
| #define GECKE BIT(0) |
| |
| /** |
| * |
| * (1Axxh) Real Time Clock (RTC) |
| * |
| */ |
| #define SECREG ECREG(EC_REG_BASE_ADDR + 0x1A00) |
| #define SECA1REG ECREG(EC_REG_BASE_ADDR + 0x1A01) |
| #define MINREG ECREG(EC_REG_BASE_ADDR + 0x1A02) |
| #define MINA1REG ECREG(EC_REG_BASE_ADDR + 0x1A03) |
| #define HRREG ECREG(EC_REG_BASE_ADDR + 0x1A04) |
| #define HRA1REG ECREG(EC_REG_BASE_ADDR + 0x1A05) |
| #define DOWREG ECREG(EC_REG_BASE_ADDR + 0x1A06) |
| #define DOMREG ECREG(EC_REG_BASE_ADDR + 0x1A07) |
| #define MONREG ECREG(EC_REG_BASE_ADDR + 0x1A08) |
| #define YRREG ECREG(EC_REG_BASE_ADDR + 0x1A09) |
| #define CTLREGA ECREG(EC_REG_BASE_ADDR + 0x1A0A) |
| #define CTLREGB ECREG(EC_REG_BASE_ADDR + 0x1A0B) |
| #define CTLREGC ECREG(EC_REG_BASE_ADDR + 0x1A0C) |
| #define DOMA1REG ECREG(EC_REG_BASE_ADDR + 0x1A0D) |
| #define MONA1REG ECREG(EC_REG_BASE_ADDR + 0x1A0E) |
| #define SECA2REG ECREG(EC_REG_BASE_ADDR + 0x1A0F) |
| #define MINA2REG ECREG(EC_REG_BASE_ADDR + 0x1A10) |
| #define HRA2REG ECREG(EC_REG_BASE_ADDR + 0x1A11) |
| #define DOMA2REG ECREG(EC_REG_BASE_ADDR + 0x1A12) |
| #define MONA2REG ECREG(EC_REG_BASE_ADDR + 0x1A13) |
| #define PORSREGA ECREG(EC_REG_BASE_ADDR + 0x1A14) |
| #define PORSREGB ECREG(EC_REG_BASE_ADDR + 0x1A15) |
| |
| /** |
| * |
| * (1Bxxh) Wack-Up control (WUC) |
| * |
| */ |
| #define WUEMR1 ECREG(EC_REG_BASE_ADDR + 0x1B00) |
| #define WUEMR2 ECREG(EC_REG_BASE_ADDR + 0x1B01) |
| #define WUEMR3 ECREG(EC_REG_BASE_ADDR + 0x1B02) |
| #define WUEMR4 ECREG(EC_REG_BASE_ADDR + 0x1B03) |
| #define WUEMR6 ECREG(EC_REG_BASE_ADDR + 0x1B10) |
| #define WUEMR7 ECREG(EC_REG_BASE_ADDR + 0x1B14) |
| #define WUEMR8 ECREG(EC_REG_BASE_ADDR + 0x1B18) |
| #define WUEMR9 ECREG(EC_REG_BASE_ADDR + 0x1B1C) |
| #define WUEMR10 ECREG(EC_REG_BASE_ADDR + 0x1B20) |
| #define WUEMR11 ECREG(EC_REG_BASE_ADDR + 0x1B24) |
| #define WUEMR12 ECREG(EC_REG_BASE_ADDR + 0x1B28) |
| #define WUEMR13 ECREG(EC_REG_BASE_ADDR + 0x1B2C) |
| #define WUEMR14 ECREG(EC_REG_BASE_ADDR + 0x1B30) |
| #define WUESR1 ECREG(EC_REG_BASE_ADDR + 0x1B04) |
| #define WUESR2 ECREG(EC_REG_BASE_ADDR + 0x1B05) |
| #define WUESR3 ECREG(EC_REG_BASE_ADDR + 0x1B06) |
| #define WUESR4 ECREG(EC_REG_BASE_ADDR + 0x1B07) |
| #define WUESR6 ECREG(EC_REG_BASE_ADDR + 0x1B11) |
| #define WUESR7 ECREG(EC_REG_BASE_ADDR + 0x1B15) |
| #define WUESR8 ECREG(EC_REG_BASE_ADDR + 0x1B19) |
| #define WUESR9 ECREG(EC_REG_BASE_ADDR + 0x1B1D) |
| #define WUESR10 ECREG(EC_REG_BASE_ADDR + 0x1B21) |
| #define WUESR11 ECREG(EC_REG_BASE_ADDR + 0x1B25) |
| #define WUESR12 ECREG(EC_REG_BASE_ADDR + 0x1B29) |
| #define WUESR13 ECREG(EC_REG_BASE_ADDR + 0x1B2D) |
| #define WUESR14 ECREG(EC_REG_BASE_ADDR + 0x1B31) |
| #define WUENR1 ECREG(EC_REG_BASE_ADDR + 0x1B08) |
| #define WUENR2 ECREG(EC_REG_BASE_ADDR + 0x1B09) |
| #define WUENR3 ECREG(EC_REG_BASE_ADDR + 0x1B0A) |
| #define WUENR4 ECREG(EC_REG_BASE_ADDR + 0x1B0B) |
| #define WUENR6 ECREG(EC_REG_BASE_ADDR + 0x1B12) |
| #define WUENR7 ECREG(EC_REG_BASE_ADDR + 0x1B16) |
| #define WUENR8 ECREG(EC_REG_BASE_ADDR + 0x1B1A) |
| #define WUENR9 ECREG(EC_REG_BASE_ADDR + 0x1B1E) |
| |
| #define WUEMR6_BASE (EC_REG_BASE_ADDR + 0x1B10) |
| #define WUESR6_BASE (EC_REG_BASE_ADDR + 0x1B11) |
| #define WUBEMR6 ECREG(EC_REG_BASE_ADDR + 0x1B13) |
| #define WUEMR8_BASE (EC_REG_BASE_ADDR + 0x1B18) |
| #define WUESR8_BASE (EC_REG_BASE_ADDR + 0x1B19) |
| #define WUBEMR8 ECREG(EC_REG_BASE_ADDR + 0x1B1B) |
| #define WUEMR9_BASE (EC_REG_BASE_ADDR + 0x1B1C) |
| #define WUESR9_BASE (EC_REG_BASE_ADDR + 0x1B1D) |
| #define WUBEMR9 ECREG(EC_REG_BASE_ADDR + 0x1B1F) |
| #define WUEMR10_BASE (EC_REG_BASE_ADDR + 0x1B20) |
| #define WUESR10_BASE (EC_REG_BASE_ADDR + 0x1B21) |
| #define WUBEMR10 ECREG(EC_REG_BASE_ADDR + 0x1B23) |
| #define WUEMR11_BASE (EC_REG_BASE_ADDR + 0x1B24) |
| #define WUESR11_BASE (EC_REG_BASE_ADDR + 0x1B25) |
| #define WUBEMR11 ECREG(EC_REG_BASE_ADDR + 0x1B27) |
| |
| /** |
| * |
| * (1Cxxh) SMBus Interface (SMB) |
| * |
| */ |
| #define HOSTA_A ECREG(EC_REG_BASE_ADDR + 0x1C40) |
| #define HOSTA_B ECREG(EC_REG_BASE_ADDR + 0x1C80) |
| #define HOSTA_C ECREG(EC_REG_BASE_ADDR + 0x1CC0) |
| #define HOSTA_BDS BIT(7) |
| #define HOSTA_TMOE BIT(6) |
| #define HOSTA_NACK BIT(5) |
| #define HOSTA_FAIL BIT(4) |
| #define HOSTA_BSER BIT(3) |
| #define HOSTA_DVER BIT(2) |
| #define HOSTA_FINTR BIT(1) |
| #define HOSTA_HOBY BIT(0) |
| #define HOSTA_ANY_ERROR (HOSTA_DVER | HOSTA_BSER | \ |
| HOSTA_FAIL | HOSTA_NACK | HOSTA_TMOE) |
| #define HOSTA_NEXT_BYTE HOSTA_BDS |
| #define HOSTA_ALL_WC_BIT (HOSTA_FINTR | \ |
| HOSTA_ANY_ERROR | HOSTA_BDS) |
| |
| #define HOCTL_A ECREG(EC_REG_BASE_ADDR + 0x1C41) |
| #define HOCTL_B ECREG(EC_REG_BASE_ADDR + 0x1C81) |
| #define HOCTL_C ECREG(EC_REG_BASE_ADDR + 0x1CC1) |
| #define HOCTL_PEC_EN BIT(7) |
| #define HOCTL_SRT BIT(6) |
| #define HOCTL_LABY BIT(5) |
| #define HOCTL_SMCD2 BIT(4) |
| #define HOCTL_SMCD1 BIT(3) |
| #define HOCTL_SMCD0 BIT(2) |
| #define HOCTL_KILL BIT(1) |
| #define HOCTL_INTREN BIT(0) |
| |
| #define HOCMD_A ECREG(EC_REG_BASE_ADDR + 0x1C42) |
| #define HOCMD_B ECREG(EC_REG_BASE_ADDR + 0x1C82) |
| #define HOCMD_C ECREG(EC_REG_BASE_ADDR + 0x1CC2) |
| #define TRASLA_A ECREG(EC_REG_BASE_ADDR + 0x1C43) |
| #define TRASLA_B ECREG(EC_REG_BASE_ADDR + 0x1C83) |
| #define TRASLA_C ECREG(EC_REG_BASE_ADDR + 0x1CC3) |
| #define D0REG_A ECREG(EC_REG_BASE_ADDR + 0x1C44) |
| #define D0REG_B ECREG(EC_REG_BASE_ADDR + 0x1C84) |
| #define D0REG_C ECREG(EC_REG_BASE_ADDR + 0x1CC4) |
| #define D1REG_A ECREG(EC_REG_BASE_ADDR + 0x1C45) |
| #define D1REG_B ECREG(EC_REG_BASE_ADDR + 0x1C85) |
| #define D1REG_C ECREG(EC_REG_BASE_ADDR + 0x1CC5) |
| #define HOBDB_A ECREG(EC_REG_BASE_ADDR + 0x1C46) |
| #define HOBDB_B ECREG(EC_REG_BASE_ADDR + 0x1C86) |
| #define HOBDB_C ECREG(EC_REG_BASE_ADDR + 0x1CC6) |
| #define PECERC_A ECREG(EC_REG_BASE_ADDR + 0x1C47) |
| #define PECERC_B ECREG(EC_REG_BASE_ADDR + 0x1C87) |
| #define PECERC_C ECREG(EC_REG_BASE_ADDR + 0x1CC7) |
| #define RESLADR_A ECREG(EC_REG_BASE_ADDR + 0x1C48) |
| #define RESLADR_B ECREG(EC_REG_BASE_ADDR + 0x1C88) |
| #define RESLADR_2_A ECREG(EC_REG_BASE_ADDR + 0x1C51) |
| #define RESLADR_2_B ECREG(EC_REG_BASE_ADDR + 0x1C91) |
| #define SLDA_A ECREG(EC_REG_BASE_ADDR + 0x1C49) |
| #define SLDA_B ECREG(EC_REG_BASE_ADDR + 0x1C89) |
| #define SMBPCTL_A ECREG(EC_REG_BASE_ADDR + 0x1C4A) |
| #define SMBPCTL_B ECREG(EC_REG_BASE_ADDR + 0x1C8A) |
| #define SMBPCTL_C ECREG(EC_REG_BASE_ADDR + 0x1CCA) |
| #define SLSTA_A ECREG(EC_REG_BASE_ADDR + 0x1C4B) |
| #define SLSTA_B ECREG(EC_REG_BASE_ADDR + 0x1C8B) |
| #define INT81 BIT(7) |
| #define BIS BIT(6) |
| #define SPDS BIT(5) |
| #define MSLA2 BIT(4) |
| #define RCS BIT(3) |
| #define STS BIT(2) |
| #define SDS BIT(1) |
| #define HONOST BIT(0) |
| |
| #define SICR_A ECREG(EC_REG_BASE_ADDR + 0x1C4C) |
| #define SICR_B ECREG(EC_REG_BASE_ADDR + 0x1C8C) |
| #define NDADR_A ECREG(EC_REG_BASE_ADDR + 0x1C4D) |
| #define NDADR_B ECREG(EC_REG_BASE_ADDR + 0x1C8D) |
| #define NDLB_A ECREG(EC_REG_BASE_ADDR + 0x1C4E) |
| #define NDLB_B ECREG(EC_REG_BASE_ADDR + 0x1C8E) |
| #define NDHB_A ECREG(EC_REG_BASE_ADDR + 0x1C4F) |
| #define NDHB_B ECREG(EC_REG_BASE_ADDR + 0x1C8F) |
| #define HOCTL2_A ECREG(EC_REG_BASE_ADDR + 0x1C50) |
| #define HOCTL2_B ECREG(EC_REG_BASE_ADDR + 0x1C90) |
| #define HOCTL2_C ECREG(EC_REG_BASE_ADDR + 0x1CD0) |
| #define SMB4P7USL ECREG(EC_REG_BASE_ADDR + 0x1C00) |
| #define SMB4P0USH ECREG(EC_REG_BASE_ADDR + 0x1C01) |
| #define SMB300NS ECREG(EC_REG_BASE_ADDR + 0x1C02) |
| #define SMB250NS ECREG(EC_REG_BASE_ADDR + 0x1C03) |
| #define SMB25MS ECREG(EC_REG_BASE_ADDR + 0x1C04) |
| #define SMB45P3USL ECREG(EC_REG_BASE_ADDR + 0x1C05) |
| #define SMB45P3USH ECREG(EC_REG_BASE_ADDR + 0x1C06) |
| #define SMB4P7A4P0H ECREG(EC_REG_BASE_ADDR + 0x1C07) |
| #define SLVISEL ECREG(EC_REG_BASE_ADDR + 0x1C08) |
| #define SCLKTS_A ECREG(EC_REG_BASE_ADDR + 0x1C09) |
| #define SCLKTS_B ECREG(EC_REG_BASE_ADDR + 0x1C0A) |
| #define SCLKTS_C ECREG(EC_REG_BASE_ADDR + 0x1C0B) |
| #define SMBFFCTRL1 ECREG(EC_REG_BASE_ADDR + 0x1C0D) |
| #define SMBFFSTS1 ECREG(EC_REG_BASE_ADDR + 0x1C0E) |
| #define SMBFFCTRL2 ECREG(EC_REG_BASE_ADDR + 0x1C0F) |
| #define SMBFFSTS2 ECREG(EC_REG_BASE_ADDR + 0x1C10) |
| #define CHSEF ECREG(EC_REG_BASE_ADDR + 0x1C11) |
| #define HOCTL3_A ECREG(EC_REG_BASE_ADDR + 0x1C52) |
| #define HOCTL3_B ECREG(EC_REG_BASE_ADDR + 0x1C92) |
| #define HOCTL3_C ECREG(EC_REG_BASE_ADDR + 0x1CD2) |
| #define MCODE_A ECREG(EC_REG_BASE_ADDR + 0x1C53) |
| #define MCODE_B ECREG(EC_REG_BASE_ADDR + 0x1C93) |
| #define MCODE_C ECREG(EC_REG_BASE_ADDR + 0x1CD3) |
| |
| /** |
| * |
| * (1Dxxh) Keyboard Matrix Scan control (KBS) |
| * |
| */ |
| #define KSOL ECREG(EC_REG_BASE_ADDR + 0x1D00) |
| #define KSOH1 ECREG(EC_REG_BASE_ADDR + 0x1D01) |
| #define KSOCTRL ECREG(EC_REG_BASE_ADDR + 0x1D02) |
| #define KSOH2 ECREG(EC_REG_BASE_ADDR + 0x1D03) |
| #define KSI ECREG(EC_REG_BASE_ADDR + 0x1D04) |
| #define KSICTRL ECREG(EC_REG_BASE_ADDR + 0x1D05) |
| #define KSIGCTRL ECREG(EC_REG_BASE_ADDR + 0x1D06) |
| #define KSIGOEN ECREG(EC_REG_BASE_ADDR + 0x1D07) |
| #define KSIGDAT ECREG(EC_REG_BASE_ADDR + 0x1D08) |
| #define KSIGDMRR ECREG(EC_REG_BASE_ADDR + 0x1D09) |
| #define KSOHGCTRL ECREG(EC_REG_BASE_ADDR + 0x1D0A) |
| #define KSOHGOEN ECREG(EC_REG_BASE_ADDR + 0x1D0B) |
| #define KSOHGDMRR ECREG(EC_REG_BASE_ADDR + 0x1D0C) |
| #define KSOLGCTRL ECREG(EC_REG_BASE_ADDR + 0x1D0D) |
| #define KSOLGOEN ECREG(EC_REG_BASE_ADDR + 0x1D0E) |
| #define KSOLGDMRR ECREG(EC_REG_BASE_ADDR + 0x1D0F) |
| #define KSO0LSDR ECREG(EC_REG_BASE_ADDR + 0x1D10) |
| #define KSO1LSDR ECREG(EC_REG_BASE_ADDR + 0x1D11) |
| #define KSO2LSDR ECREG(EC_REG_BASE_ADDR + 0x1D12) |
| #define KSO3LSDR ECREG(EC_REG_BASE_ADDR + 0x1D13) |
| #define KSO4LSDR ECREG(EC_REG_BASE_ADDR + 0x1D14) |
| #define KSO5LSDR ECREG(EC_REG_BASE_ADDR + 0x1D15) |
| #define KSO6LSDR ECREG(EC_REG_BASE_ADDR + 0x1D16) |
| #define KSO7LSDR ECREG(EC_REG_BASE_ADDR + 0x1D17) |
| #define KSO8LSDR ECREG(EC_REG_BASE_ADDR + 0x1D18) |
| #define KSO9LSDR ECREG(EC_REG_BASE_ADDR + 0x1D19) |
| #define KSO10LSDR ECREG(EC_REG_BASE_ADDR + 0x1D1A) |
| #define KSO11LSDR ECREG(EC_REG_BASE_ADDR + 0x1D1B) |
| #define KSO12LSDR ECREG(EC_REG_BASE_ADDR + 0x1D1C) |
| #define KSO13LSDR ECREG(EC_REG_BASE_ADDR + 0x1D1D) |
| #define KSO14LSDR ECREG(EC_REG_BASE_ADDR + 0x1D1E) |
| #define KSO15LSDR ECREG(EC_REG_BASE_ADDR + 0x1D1F) |
| #define KSO16LSDR ECREG(EC_REG_BASE_ADDR + 0x1D20) |
| #define KSO17LSDR ECREG(EC_REG_BASE_ADDR + 0x1D21) |
| #define SDC1R ECREG(EC_REG_BASE_ADDR + 0x1D22) |
| #define SDEN BIT(7) |
| #define INTSDVEN BIT(5) |
| |
| /* BIT2 ~ BIT0 Scan loop select */ |
| #define SLS_00_ROUND 0x00 |
| #define SLS_02_ROUND 0x01 |
| #define SLS_03_ROUND 0x02 |
| #define SLS_04_ROUND 0x03 |
| #define SLS_05_ROUND 0x04 |
| #define SLS_06_ROUND 0x05 |
| #define SLS_07_ROUND 0x06 |
| #define SLS_08_ROUND 0x07 |
| |
| #define SDC2R ECREG(EC_REG_BASE_ADDR + 0x1D23) |
| #define KSOPCS1 BIT(7) |
| #define KSOPCS0 BIT(6) |
| |
| /* BIT3 ~ BIT0 Wait KSO high delay */ |
| #define WKSOHDLY_23US 0x00 |
| #define WKSOHDLY_31US 0x01 |
| #define WKSOHDLY_39US 0x02 |
| #define WKSOHDLY_47US 0x03 |
| #define WKSOHDLY_55US 0x04 |
| #define WKSOHDLY_63US 0x05 |
| #define WKSOHDLY_71US 0x06 |
| #define WKSOHDLY_79US 0x07 |
| #define WKSOHDLY_87US 0x08 |
| #define WKSOHDLY_95US 0x09 |
| |
| #define SDC3R ECREG(EC_REG_BASE_ADDR + 0x1D24) |
| |
| /* BIT7 ~ BIT4 Wait KSO low delay */ |
| #define WKSOLDLY_11US (0x00 << 4) |
| #define WKSOLDLY_13US (0x01 << 4) |
| #define WKSOLDLY_15US (0x02 << 4) |
| #define WKSOLDLY_17US (0x03 << 4) |
| #define WKSOLDLY_19US (0x04 << 4) |
| #define WKSOLDLY_21US (0x05 << 4) |
| #define WKSOLDLY_23US (0x06 << 4) |
| #define WKSOLDLY_25US (0x07 << 4) |
| #define WKSOLDLY_27US (0x08 << 4) |
| #define WKSOLDLY_29US (0x09 << 4) |
| |
| /* BIT3 ~ BIT0 Spacing delay between rounds */ |
| #define SDLYBR_00MS 0x00 |
| #define SDLYBR_01MS 0x01 |
| #define SDLYBR_02MS 0x02 |
| #define SDLYBR_03MS 0x03 |
| #define SDLYBR_04MS 0x04 |
| #define SDLYBR_05MS 0x05 |
| #define SDLYBR_06MS 0x06 |
| #define SDLYBR_07MS 0x07 |
| #define SDLYBR_08MS 0x08 |
| #define SDLYBR_09MS 0x09 |
| #define SDLYBR_10MS 0x0A |
| #define SDLYBR_11MS 0x0B |
| #define SDLYBR_12MS 0x0C |
| #define SDLYBR_13MS 0x0D |
| #define SDLYBR_14MS 0x0E |
| #define SDLYBR_15MS 0x0F |
| |
| #define SDSR ECREG(EC_REG_BASE_ADDR + 0x1D25) |
| #define SDV BIT(0) |
| |
| /* Keyboard Scan Out Control Register */ |
| #define KSOPU BIT(2) |
| #define KSOOD BIT(0) |
| |
| /* Keyboard Scan In Control Register */ |
| #define KSIPU BIT(2) |
| |
| /** |
| * |
| * (1Exxh) EC Clock and Power Management controller (ECPM) |
| * |
| */ |
| #define CGCTRL1R ECREG(EC_REG_BASE_ADDR + 0x1E01) |
| #define CGCTRL2R ECREG(EC_REG_BASE_ADDR + 0x1E02) |
| #define CGCTRL3R ECREG(EC_REG_BASE_ADDR + 0x1E05) |
| #define PLLCTRL ECREG(EC_REG_BASE_ADDR + 0x1E03) |
| #define AUTOCG ECREG(EC_REG_BASE_ADDR + 0x1E04) |
| #define PLLFREQR ECREG(EC_REG_BASE_ADDR + 0x1E06) |
| #define PLLSSCR ECREG(EC_REG_BASE_ADDR + 0x1E07) |
| #define PLLCSS ECREG(EC_REG_BASE_ADDR + 0x1E08) |
| #define CGCTRL4R ECREG(EC_REG_BASE_ADDR + 0x1E09) |
| #define EC_1E00 ECREG(EC_REG_BASE_ADDR + 0x1E00) |
| #define ECPM_PDCTRL1R ECREG(EC_REG_BASE_ADDR + 0x1E01) |
| #define EC_1E03 ECREG(EC_REG_BASE_ADDR + 0x1E03) |
| #define EC_1E06 ECREG(EC_REG_BASE_ADDR + 0x1E06) |
| #define LDOCTR ECREG(EC_REG_BASE_ADDR + 0x1E0A) |
| #define PLLSTCR ECREG(EC_REG_BASE_ADDR + 0x1E0B) |
| #define SCDCR0 ECREG(EC_REG_BASE_ADDR + 0x1E0C) |
| #define SCDCR1 ECREG(EC_REG_BASE_ADDR + 0x1E0D) |
| #define SCDCR2 ECREG(EC_REG_BASE_ADDR + 0x1E0E) |
| #define SCDCR3 ECREG(EC_REG_BASE_ADDR + 0x1E0F) |
| #define CGCTRL5R ECREG(EC_REG_BASE_ADDR + 0x1E13) |
| #define LOWFREQ ECREG(EC_REG_BASE_ADDR + 0x1E19) |
| |
| /** |
| * |
| * (1Fxxh) External Timer & External Watchdog (ETWD) |
| * |
| */ |
| #define ETWCFG ECREG(EC_REG_BASE_ADDR + 0x1F01) |
| #define EWDKEYEN BIT(5) |
| #define EWDSRC BIT(4) |
| #define LEWDCNTL BIT(3) |
| #define LET1CNTL BIT(2) |
| #define LET1PS BIT(1) |
| #define LETWCFG BIT(0) |
| #define ET1PSR ECREG(EC_REG_BASE_ADDR + 0x1F02) |
| #define ET1CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F03) |
| #define ET1CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F04) |
| #define ETWCTRL ECREG(EC_REG_BASE_ADDR + 0x1F05) |
| #define EWDSCEN BIT(5) |
| #define EWDSCMS BIT(4) |
| #define ET2TC BIT(3) |
| #define ET2RST BIT(2) |
| #define ET1TC BIT(1) |
| #define ET1RST BIT(0) |
| #define EWDCNTLR ECREG(EC_REG_BASE_ADDR + 0x1F06) |
| #define EWDKEYR ECREG(EC_REG_BASE_ADDR + 0x1F07) |
| #define EWDCNTHR ECREG(EC_REG_BASE_ADDR + 0x1F09) |
| #define ET2PSR ECREG(EC_REG_BASE_ADDR + 0x1F0A) |
| #define ET2CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F0B) |
| #define ET2CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F0C) |
| #define ET2CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F0E) |
| #define ET3CTRL ECREG(EC_REG_BASE_ADDR + 0x1F10) |
| #define ET3PSR ECREG(EC_REG_BASE_ADDR + 0x1F11) |
| #define ET3CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F14) |
| #define ET3CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F15) |
| #define ET3CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F16) |
| #define ET4CTRL ECREG(EC_REG_BASE_ADDR + 0x1F18) |
| #define ET4PSR ECREG(EC_REG_BASE_ADDR + 0x1F19) |
| #define ET4CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F1C) |
| #define ET4CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F1D) |
| #define ET4CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F1E) |
| #define ET4CNTLH3R ECREG(EC_REG_BASE_ADDR + 0x1F1F) |
| #define ET5CTRL ECREG(EC_REG_BASE_ADDR + 0x1F20) |
| #define ET5PSR ECREG(EC_REG_BASE_ADDR + 0x1F21) |
| #define ET5CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F24) |
| #define ET5CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F25) |
| #define ET5CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F26) |
| #define ET6CTRL ECREG(EC_REG_BASE_ADDR + 0x1F28) |
| #define ET6PSR ECREG(EC_REG_BASE_ADDR + 0x1F29) |
| #define ET6CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F2C) |
| #define ET6CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F2D) |
| #define ET6CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F2E) |
| #define ET6CNTLH3R ECREG(EC_REG_BASE_ADDR + 0x1F2F) |
| #define ET7CTRL ECREG(EC_REG_BASE_ADDR + 0x1F30) |
| #define ET7PSR ECREG(EC_REG_BASE_ADDR + 0x1F31) |
| #define ET7CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F34) |
| #define ET7CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F35) |
| #define ET7CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F36) |
| #define ET8CTRL ECREG(EC_REG_BASE_ADDR + 0x1F38) |
| #define ET8PSR ECREG(EC_REG_BASE_ADDR + 0x1F39) |
| #define ET8CNTLLR ECREG(EC_REG_BASE_ADDR + 0x1F3C) |
| #define ET8CNTLHR ECREG(EC_REG_BASE_ADDR + 0x1F3D) |
| #define ET8CNTLH2R ECREG(EC_REG_BASE_ADDR + 0x1F3E) |
| #define ET8CNTLH3R ECREG(EC_REG_BASE_ADDR + 0x1F3F) |
| |
| /** |
| * |
| * Observation external timer |
| * |
| */ |
| #define ET3CNTOLR ECREG(EC_REG_BASE_ADDR + 0x1F48) |
| #define ET3CNTOHR ECREG(EC_REG_BASE_ADDR + 0x1F49) |
| #define ET3CNTOH2R ECREG(EC_REG_BASE_ADDR + 0x1F4A) |
| #define ET4CNTOLR ECREG(EC_REG_BASE_ADDR + 0x1F4C) |
| #define ET4CNTOHR ECREG(EC_REG_BASE_ADDR + 0x1F4D) |
| #define ET4CNTOH2R ECREG(EC_REG_BASE_ADDR + 0x1F4E) |
| #define ET4CNTOH3R ECREG(EC_REG_BASE_ADDR + 0x1F4F) |
| #define ET5CNTOLR ECREG(EC_REG_BASE_ADDR + 0x1F50) |
| #define ET5CNTOHR ECREG(EC_REG_BASE_ADDR + 0x1F51) |
| #define ET5CNTOH2R ECREG(EC_REG_BASE_ADDR + 0x1F52) |
| #define ET6CNTOLR ECREG(EC_REG_BASE_ADDR + 0x1F54) |
| #define ET6CNTOHR ECREG(EC_REG_BASE_ADDR + 0x1F55) |
| #define ET6CNTOH2R ECREG(EC_REG_BASE_ADDR + 0x1F56) |
| #define ET6CNTOH3R ECREG(EC_REG_BASE_ADDR + 0x1F57) |
| #define ET7CNTOLR ECREG(EC_REG_BASE_ADDR + 0x1F58) |
| #define ET7CNTOHR ECREG(EC_REG_BASE_ADDR + 0x1F59) |
| #define ET7CNTOH2R ECREG(EC_REG_BASE_ADDR + 0x1F5A) |
| #define ET8CNTOLR ECREG(EC_REG_BASE_ADDR + 0x1F5C) |
| #define ET8CNTOHR ECREG(EC_REG_BASE_ADDR + 0x1F5D) |
| #define ET8CNTOH2R ECREG(EC_REG_BASE_ADDR + 0x1F5E) |
| #define ET8CNTOH3R ECREG(EC_REG_BASE_ADDR + 0x1F5F) |
| |
| #define ETXCNTOR(x) (ECREG_u32(EC_REG_BASE_ADDR\ |
| + 0x1F40 + (x - 1) * 4)) |
| |
| #define ETPS_32_768_KHZ 0x00 |
| #define ETPS_1_024_KHZ 0x01 |
| #define ETPS_32_HZ 0x02 |
| #define ETPS_8_MHZ 0x03 |
| #define ET_3_8_TC BIT(2) |
| #define ET_3_8_RST BIT(1) |
| #define ET_3_8_EN BIT(0) |
| |
| /** |
| * |
| * (20xxh) General Control (GCTRL) |
| * |
| */ |
| #define ECHIPID1 ECREG(EC_REG_BASE_ADDR + 0x2000) |
| #define ECHIPID2 ECREG(EC_REG_BASE_ADDR + 0x2001) |
| #define ECHIPVER ECREG(EC_REG_BASE_ADDR + 0x2002) |
| #define IDR ECREG(EC_REG_BASE_ADDR + 0x2004) |
| #define RSTS ECREG(EC_REG_BASE_ADDR + 0x2006) |
| #define RSTC1 ECREG(EC_REG_BASE_ADDR + 0x2007) |
| #define RSMFI BIT(7) |
| #define RINTC BIT(6) |
| #define REC2I BIT(5) |
| #define RKBC BIT(4) |
| #define RSWUC BIT(3) |
| #define RPMC BIT(2) |
| #define RGPIO BIT(1) |
| #define RPWM BIT(0) |
| #define RSTC2 ECREG(EC_REG_BASE_ADDR + 0x2008) |
| #define RADC BIT(7) |
| #define RDAC BIT(6) |
| #define RWUC BIT(5) |
| #define RKBS BIT(4) |
| #define REGPC BIT(2) |
| #define RCIR BIT(1) |
| #define RSTC3 ECREG(EC_REG_BASE_ADDR + 0x2009) |
| #define RPS23 BIT(6) |
| #define RPS22 BIT(5) |
| #define RPS21 BIT(4) |
| #define RSMBD BIT(3) |
| #define RSMBC BIT(2) |
| #define RSMBB BIT(1) |
| #define RSMBA BIT(0) |
| /*the same time and writing 0111b is reserved.*/ |
| #define RSTC4 ECREG(EC_REG_BASE_ADDR + 0x2011) |
| #define RPECI BIT(4) |
| #define RTMR BIT(3) |
| #define RUART2 BIT(2) |
| #define RUART1 BIT(1) |
| #define RSPI BIT(0) |
| |
| #define BADRSEL ECREG(EC_REG_BASE_ADDR + 0x200A) |
| #define WNCKR ECREG(EC_REG_BASE_ADDR + 0x200B) |
| #define OSCTRL ECREG(EC_REG_BASE_ADDR + 0x200C) |
| #define SPCTRL1 ECREG(EC_REG_BASE_ADDR + 0x200D) |
| #define RSTCH ECREG(EC_REG_BASE_ADDR + 0x200E) |
| #define GENIRQ ECREG(EC_REG_BASE_ADDR + 0x200F) |
| #define RSTDMMC ECREG(EC_REG_BASE_ADDR + 0x2010) |
| #define SPECTRL2 ECREG(EC_REG_BASE_ADDR + 0x2012) |
| #define SPECTRL3 ECREG(EC_REG_BASE_ADDR + 0x2016) |
| #define PI2ECH ECREG(EC_REG_BASE_ADDR + 0x2014) |
| #define PI2ECL ECREG(EC_REG_BASE_ADDR + 0x2015) |
| #define BINTADDR0R ECREG(EC_REG_BASE_ADDR + 0x2019) |
| #define BINTADDR1R ECREG(EC_REG_BASE_ADDR + 0x201A) |
| #define BINTCTRLR ECREG(EC_REG_BASE_ADDR + 0x201B) |
| #define SPCTRL4 ECREG(EC_REG_BASE_ADDR + 0x201C) |
| #define SHA1HASHCTRLR ECREG(EC_REG_BASE_ADDR + 0x202D) |
| #define SHA1HBADDR ECREG(EC_REG_BASE_ADDR + 0x202E) |
| #define MCCR ECREG(EC_REG_BASE_ADDR + 0x2030) |
| #define EIDSR ECREG(EC_REG_BASE_ADDR + 0x2031) |
| #define PMER1 ECREG(EC_REG_BASE_ADDR + 0x2032) |
| #define PMER2 ECREG(EC_REG_BASE_ADDR + 0x2033) |
| #define FRR0 ECREG(EC_REG_BASE_ADDR + 0x2034) |
| #define FRR1 ECREG(EC_REG_BASE_ADDR + 0x2035) |
| #define FRR2 ECREG(EC_REG_BASE_ADDR + 0x2036) |
| #define MCCR1 ECREG(EC_REG_BASE_ADDR + 0x203E) |
| #define IVTBAR ECREG(EC_REG_BASE_ADDR + 0x2041) |
| #define DMMYR ECREG(EC_REG_BASE_ADDR + 0x2045) |
| #define PWMENR ECREG(EC_REG_BASE_ADDR + 0x204A) |
| #define PDSCR1 ECREG(EC_REG_BASE_ADDR + 0x204C) |
| #define PDSCR2 ECREG(EC_REG_BASE_ADDR + 0x204D) |
| #define PDSCR3 ECREG(EC_REG_BASE_ADDR + 0x204E) |
| #define PDSCR4 ECREG(EC_REG_BASE_ADDR + 0x204F) |
| #define PDSCR5 ECREG(EC_REG_BASE_ADDR + 0x2050) |
| #define PDSCR6 ECREG(EC_REG_BASE_ADDR + 0x2051) |
| #define PDSCR7 ECREG(EC_REG_BASE_ADDR + 0x2052) |
| #define DRI_6_25 (0x00) |
| #define DRI_7_50 (0x01) |
| #define DRI_8_75 (0x02) |
| #define DRI_10_00 (0x03) |
| #define DRI_GPIOB0(x) ((x) << 6) |
| #define DRI_GPIOA6(x) ((x) << 4) |
| #define DRI_GPIOA5(x) ((x) << 2) |
| #define DRI_GPIOA4(x) ((x) << 0) |
| #define DRI_GPIOB4(x) ((x) << 6) |
| #define DRI_GPIOB3(x) ((x) << 4) |
| #define DRI_GPIOB2(x) ((x) << 2) |
| #define DRI_GPIOB1(x) ((x) << 0) |
| #define DRI_GPIOB5(x) ((x) << 0) |
| #define DRI_GPIOC3(x) ((x) << 4) |
| #define DRI_GPIOC2(x) ((x) << 2) |
| #define DRI_GPIOC1(x) ((x) << 0) |
| #define DRI_GPIOC7(x) ((x) << 4) |
| #define DRI_GPIOC6(x) ((x) << 2) |
| #define DRI_GPIOC5(x) ((x) << 0) |
| #define DRI_GPIOD5(x) ((x) << 6) |
| #define DRI_GPIOD4(x) ((x) << 4) |
| #define DRI_GPIOD3(x) ((x) << 2) |
| #define DRI_GPIOD2(x) ((x) << 0) |
| #define DRI_GPIOD7(x) ((x) << 2) |
| #define PMER5 ECREG(EC_REG_BASE_ADDR + 0x2057) |
| #define PIECR0 ECREG(EC_REG_BASE_ADDR + 0x205A) |
| #define PIECR1 ECREG(EC_REG_BASE_ADDR + 0x205B) |
| #define PIECR2 ECREG(EC_REG_BASE_ADDR + 0x205C) |
| #define PIECR3 ECREG(EC_REG_BASE_ADDR + 0x205D) |
| #define INTOSC ECREG(EC_REG_BASE_ADDR + 0x205E) |
| |
| /** |
| * |
| * (21xxh) External GPIO Controller (EGPC) |
| * |
| */ |
| #define EADDR ECREG(EC_REG_BASE_ADDR + 0x2100) |
| #define EDAT ECREG(EC_REG_BASE_ADDR + 0x2101) |
| #define ECNT ECREG(EC_REG_BASE_ADDR + 0x2102) |
| #define ESTS ECREG(EC_REG_BASE_ADDR + 0x2103) |
| |
| /** |
| * |
| * (23xxh) Consumer IR (CIR) |
| * |
| */ |
| #define C0DR ECREG(EC_REG_BASE_ADDR + 0x2300) |
| #define C0MSTCR ECREG(EC_REG_BASE_ADDR + 0x2301) |
| #define CIR_CTXSEL BIT(7) |
| #define CIR_CRXSEL BIT(6) |
| #define CIR_ILSEL BIT(5) |
| #define CIR_ILE BIT(4) |
| #define CIR_FIFOTL1 BIT(3) |
| #define CIR_FIFOTL0 BIT(2) |
| #define CIR_FIFOCLR BIT(1) |
| #define CIR_RESET BIT(0) |
| #define C0IER ECREG(EC_REG_BASE_ADDR + 0x2302) |
| #define C0IIR ECREG(EC_REG_BASE_ADDR + 0x2303) |
| #define C0CFR ECREG(EC_REG_BASE_ADDR + 0x2304) |
| #define C0RCR ECREG(EC_REG_BASE_ADDR + 0x2305) |
| #define CIR_RXEN BIT(7) |
| #define CIR_RDWOS BIT(5) |
| #define CIR_RXEND BIT(4) |
| #define CIR_RXACT BIT(3) |
| #define CIR_RXDCR2 BIT(2) |
| #define CIR_RXDCR1 BIT(1) |
| #define CIR_RXDCR0 BIT(0) |
| #define C0TCR ECREG(EC_REG_BASE_ADDR + 0x2306) |
| #define C0SCK ECREG(EC_REG_BASE_ADDR + 0x2307) |
| #define DLLOCK BIT(7) |
| #define BRCM2 BIT(6) |
| #define BRCM1 BIT(5) |
| #define BRCM0 BIT(4) |
| #define DLLTE BIT(3) |
| #define DLL1P8E BIT(2) |
| #define TXDCKG BIT(1) |
| #define SCKS BIT(0) |
| #define C0BDLR ECREG(EC_REG_BASE_ADDR + 0x2308) |
| #define C0BDHR ECREG(EC_REG_BASE_ADDR + 0x2309) |
| #define C0TFSR ECREG(EC_REG_BASE_ADDR + 0x230A) |
| #define C0RFSR ECREG(EC_REG_BASE_ADDR + 0x230B) |
| #define C0WCSSR ECREG(EC_REG_BASE_ADDR + 0x230C) |
| #define C0WCL ECREG(EC_REG_BASE_ADDR + 0x230D) |
| #define C0WCR ECREG(EC_REG_BASE_ADDR + 0x230E) |
| #define C0WPS ECREG(EC_REG_BASE_ADDR + 0x230F) |
| #define CSCRR ECREG(EC_REG_BASE_ADDR + 0x2310) |
| |
| /** |
| * |
| * (25xxh) Debugger (DBGR) |
| * |
| */ |
| #define BKA1L ECREG(EC_REG_BASE_ADDR + 0x2510) |
| #define BKA1M ECREG(EC_REG_BASE_ADDR + 0x2511) |
| #define BKA1H ECREG(EC_REG_BASE_ADDR + 0x2512) |
| #define BKA2L ECREG(EC_REG_BASE_ADDR + 0x2513) |
| #define BKA2M ECREG(EC_REG_BASE_ADDR + 0x2514) |
| #define BKA2H ECREG(EC_REG_BASE_ADDR + 0x2515) |
| #define BKA3L ECREG(EC_REG_BASE_ADDR + 0x2516) |
| #define BKA3M ECREG(EC_REG_BASE_ADDR + 0x2517) |
| #define BKA3H ECREG(EC_REG_BASE_ADDR + 0x2518) |
| |
| /** |
| * |
| * (26xxh) Serial Peripheral Interface (SSPI) |
| * |
| */ |
| #define SPI_BASE_ADDR (EC_REG_BASE_ADDR + 0x2600) |
| #define SPIDATA ECREG(EC_REG_BASE_ADDR + 0x2600) |
| #define SPICTRL1 ECREG(EC_REG_BASE_ADDR + 0x2601) |
| #define CHPOL BIT(7) |
| #define CLPOL BIT(6) |
| #define CLPHS BIT(5) |
| #define SCKFREQ2 BIT(4) |
| #define SCKFREQ1 BIT(3) |
| #define SCKFREQ0 BIT(2) |
| #define NTREN BIT(1) |
| #define WIRECH0 BIT(0) |
| #define SPICTRL2 ECREG(EC_REG_BASE_ADDR + 0x2602) |
| #define HBANK BIT(7) |
| #define DEVBUSYPOL BIT(6) |
| #define BYTEWIDTH2 BIT(5) |
| #define BYTEWIDTH1 BIT(4) |
| #define BYTEWIDTH0 BIT(3) |
| #define CHRW BIT(2) |
| #define BLKSEL BIT(1) |
| #define WIRECH1 BIT(0) |
| #define SPISTS ECREG(EC_REG_BASE_ADDR + 0x2603) |
| #define WAITBUSYSTART BIT(7) |
| #define DEVBUSY BIT(6) |
| #define TRANEND BIT(5) |
| #define CH0START BIT(4) |
| #define CH1START BIT(3) |
| #define TRANIP BIT(2) |
| #define TRANENDIF BIT(1) |
| #define SPIBUSY BIT(0) |
| #define SPICTRL3 ECREG(EC_REG_BASE_ADDR + 0x2604) |
| #define CMDQAUTOMODE BIT(5) |
| #define DEVBUSYMODE BIT(3) |
| #define CSPOLSEL BIT(2) |
| #define CHPOL1 BIT(1) |
| #define BUSYNOCLK BIT(0) |
| #define CH0CMDADDRLB ECREG(EC_REG_BASE_ADDR + 0x2605) |
| #define CH0CMDADDRHB ECREG(EC_REG_BASE_ADDR + 0x2606) |
| #define CH0CMDADDRHB2 ECREG(EC_REG_BASE_ADDR + 0x2621) |
| #define DMATCNTLB ECREG(EC_REG_BASE_ADDR + 0x2607) |
| #define DMATCNTHB ECREG(EC_REG_BASE_ADDR + 0x2608) |
| #define SPIWRCMDL ECREG(EC_REG_BASE_ADDR + 0x2609) |
| #define CH0DMARDLB ECREG(EC_REG_BASE_ADDR + 0x260A) |
| #define CH0DMARDHB ECREG(EC_REG_BASE_ADDR + 0x260B) |
| #define INTSTS ECREG(EC_REG_BASE_ADDR + 0x260C) |
| #define CH2CMDQEND (BIT(5) | BIT(6)) |
| #define CH1CMDQEND BIT(6) |
| #define CH0CMDQEND BIT(5) |
| #define SPICMDQENDMASK BIT(4) |
| #define SPIRING1FI BIT(2) |
| #define SPIRING0FI BIT(1) |
| #define SPICMDQEND BIT(0) |
| #define SPICTRL5 ECREG(EC_REG_BASE_ADDR + 0x260D) |
| #define CH2SELCMDQ BIT(6) |
| #define CH1SELCMDQ BIT(5) |
| #define CH0SELCMDQ BIT(4) |
| #define CMDQMODE BIT(0) |
| #define CH0WRMEMADDRLB ECREG(EC_REG_BASE_ADDR + 0x260E) |
| #define CH0WRMEMADDRHB ECREG(EC_REG_BASE_ADDR + 0x260F) |
| #define CH0WRMEMADDRHB2 ECREG(EC_REG_BASE_ADDR + 0x2623) |
| #define CMDQINVPR ECREG(EC_REG_BASE_ADDR + 0x2610) |
| #define CH0WTSR ECREG(EC_REG_BASE_ADDR + 0x2611) |
| #define CH1CMDADDRLB ECREG(EC_REG_BASE_ADDR + 0x2612) |
| #define CH1CMDADDRHB ECREG(EC_REG_BASE_ADDR + 0x2613) |
| #define CH1WRMEMADDRLB ECREG(EC_REG_BASE_ADDR + 0x2614) |
| #define CH1WRMEMADDRHB ECREG(EC_REG_BASE_ADDR + 0x2615) |
| #define CH1WTSR ECREG(EC_REG_BASE_ADDR + 0x2616) |
| #define CH1DMARDLB ECREG(EC_REG_BASE_ADDR + 0x2617) |
| #define CH1DMARDHB ECREG(EC_REG_BASE_ADDR + 0x2618) |
| #define CH2CMDADDRLB ECREG(EC_REG_BASE_ADDR + 0x2619) |
| #define CH2CMDADDRHB ECREG(EC_REG_BASE_ADDR + 0x261A) |
| #define CH2WRMEMADDRLB ECREG(EC_REG_BASE_ADDR + 0x261B) |
| #define CH2WRMEMADDRHB ECREG(EC_REG_BASE_ADDR + 0x261C) |
| #define CH2WTSR ECREG(EC_REG_BASE_ADDR + 0x261D) |
| #define CH2DMARDLB ECREG(EC_REG_BASE_ADDR + 0x261E) |
| #define CH2DMARDHB ECREG(EC_REG_BASE_ADDR + 0x261F) |
| #define SPICTRL6 ECREG(EC_REG_BASE_ADDR + 0x2620) |
| #define CH2START BIT(3) |
| #define WIRECH2 BIT(0) |
| |
| /** |
| * |
| * (27xxh) Extern Serial Port (UART1) |
| * |
| */ |
| #define REG_UART1_BASE (EC_REG_BASE_ADDR + 0x2700) |
| #define UART1_RBR ECREG(REG_UART1_BASE + 0x00) |
| #define UART1_IER ECREG(REG_UART1_BASE + 0x01) |
| #define UART1_IIR ECREG(REG_UART1_BASE + 0x02) |
| #define UART1_LCR ECREG(REG_UART1_BASE + 0x03) |
| #define UART1_MCR ECREG(REG_UART1_BASE + 0x04) |
| #define UART1_LSR ECREG(REG_UART1_BASE + 0x05) |
| #define UART1_MSR ECREG(REG_UART1_BASE + 0x06) |
| #define UART1_SCR ECREG(REG_UART1_BASE + 0x07) |
| #define UART1_ECSPMR ECREG(REG_UART1_BASE + 0x08) |
| #define UART1_SPPR ECREG(REG_UART1_BASE + 0x09) |
| #define UART1_UTBR ECREG(REG_UART1_BASE + 0x00) |
| #define UART1_UFCR ECREG(REG_UART1_BASE + 0x02) |
| #define UART1_UMSR ECREG(REG_UART1_BASE + 0x06) |
| #define UART1_USCR ECREG(REG_UART1_BASE + 0x07) |
| |
| /** |
| * |
| * (28xxh) Extern Serial Port (UART2) |
| * |
| */ |
| #define REG_UART2_BASE (EC_REG_BASE_ADDR + 0x2800) |
| #define UART2_RBR ECREG(REG_UART2_BASE + 0x00) |
| #define UART2_IER ECREG(REG_UART2_BASE + 0x01) |
| #define UART2_IIR ECREG(REG_UART2_BASE + 0x02) |
| #define UART2_LCR ECREG(REG_UART2_BASE + 0x03) |
| #define UART2_MCR ECREG(REG_UART2_BASE + 0x04) |
| #define UART2_LSR ECREG(REG_UART2_BASE + 0x05) |
| #define UART2_MSR ECREG(REG_UART2_BASE + 0x06) |
| #define UART2_SCR ECREG(REG_UART2_BASE + 0x07) |
| #define UART2_ECSPMR ECREG(REG_UART2_BASE + 0x08) |
| #define UART2_UTBR ECREG(REG_UART2_BASE + 0x00) |
| #define UART2_UFCR ECREG(REG_UART2_BASE + 0x02) |
| #define UART2_UMSR ECREG(REG_UART2_BASE + 0x06) |
| #define UART2_USCR ECREG(REG_UART2_BASE + 0x07) |
| |
| /** |
| * |
| * (29xxh) 8 Bit Timer (TMR) |
| * |
| */ |
| #define PRSC ECREG(EC_REG_BASE_ADDR + 0x2900) |
| #define GCSMS ECREG(EC_REG_BASE_ADDR + 0x2901) |
| #define CTR_A0 ECREG(EC_REG_BASE_ADDR + 0x2902) |
| #define CTR_A1 ECREG(EC_REG_BASE_ADDR + 0x2903) |
| #define CTR_B0 ECREG(EC_REG_BASE_ADDR + 0x2904) |
| #define CTR_B1 ECREG(EC_REG_BASE_ADDR + 0x2905) |
| #define DCR_A0 ECREG(EC_REG_BASE_ADDR + 0x2906) |
| #define DCR_A1 ECREG(EC_REG_BASE_ADDR + 0x2907) |
| #define DCR_B0 ECREG(EC_REG_BASE_ADDR + 0x2908) |
| #define DCR_B1 ECREG(EC_REG_BASE_ADDR + 0x2909) |
| #define CCGSR ECREG(EC_REG_BASE_ADDR + 0x290A) |
| #define TMRCE ECREG(EC_REG_BASE_ADDR + 0x290B) |
| #define TMEIE ECREG(EC_REG_BASE_ADDR + 0x290C) |
| |
| /** |
| * |
| * (2Cxxh) Platform Environment Control Interface (PECI) |
| * |
| */ |
| #define HOSTAR ECREG(EC_REG_BASE_ADDR + 0x2C00) |
| #define TEMPERR BIT(7) |
| #define BUSERR BIT(6) |
| #define EXTERR BIT(5) |
| #define WR_FCS_ERR BIT(3) |
| #define RD_FCS_ERR BIT(2) |
| #define FINISH BIT(1) |
| #define HOBY BIT(0) |
| #define HOCTLR ECREG(EC_REG_BASE_ADDR + 0x2C01) |
| #define FIFOCLR BIT(5) |
| #define FCSERR_ABT BIT(4) |
| #define PECIHEN BIT(3) |
| #define CONCTRL BIT(2) |
| #define AWFCS_EN BIT(1) |
| #define START BIT(0) |
| #define HOCMDR ECREG(EC_REG_BASE_ADDR + 0x2C02) |
| #define HOTRADDR ECREG(EC_REG_BASE_ADDR + 0x2C03) |
| #define HOWRLR ECREG(EC_REG_BASE_ADDR + 0x2C04) |
| #define HORDLR ECREG(EC_REG_BASE_ADDR + 0x2C05) |
| #define HOWRDR ECREG(EC_REG_BASE_ADDR + 0x2C06) |
| #define HORDDR ECREG(EC_REG_BASE_ADDR + 0x2C07) |
| #define HOCTL2R ECREG(EC_REG_BASE_ADDR + 0x2C08) |
| #define RWFCSV ECREG(EC_REG_BASE_ADDR + 0x2C09) |
| #define RRFCSV ECREG(EC_REG_BASE_ADDR + 0x2C0A) |
| #define WFCSV ECREG(EC_REG_BASE_ADDR + 0x2C0B) |
| #define RFCSV ECREG(EC_REG_BASE_ADDR + 0x2C0C) |
| #define AWFCSV ECREG(EC_REG_BASE_ADDR + 0x2C0D) |
| #define PADCTLR ECREG(EC_REG_BASE_ADDR + 0x2C0E) |
| |
| /** |
| * |
| * (2Dxxh) I2C/JTAG |
| * |
| */ |
| #define CLOCK_CGCTRL5R (REG_BASE_ADDR + 0x1E13) |
| #define CLK_C_MEMS_MIC 0x40 |
| #define CLK_C_ADC 0x20 |
| #define CLK_C_SPI_SLAVE 0x10 |
| #define CLK_C_HF 0x08 |
| #define CLK_C_USB 0x04 |
| #define CLK_C_UART 0x02 |
| #define CLK_C_SSPI 0x01 |
| #define CLK_C_ALL 0x7F |
| #define GCTRL_BASE_ADDR (REG_BASE_ADDR + 0x2000) |
| #define GCTRL_PMER1 (GCTRL_BASE_ADDR + 0x32) |
| #define GCTRL_PMER2 (GCTRL_BASE_ADDR + 0x33) |
| #define PADIE0 (GCTRL_BASE_ADDR + 0x5A) |
| #define PADIE1 (GCTRL_BASE_ADDR + 0x5B) |
| #define PADIE2 (GCTRL_BASE_ADDR + 0x5C) |
| #define PADIE3 (GCTRL_BASE_ADDR + 0x5D) |
| |
| /** |
| * |
| * (2Exxh) Consumer Electronics Control (CEC) |
| * |
| */ |
| #define CECDR ECREG(EC_REG_BASE_ADDR + 0x2E00) |
| #define CECFSTS ECREG(EC_REG_BASE_ADDR + 0x2E01) |
| #define CECDLA ECREG(EC_REG_BASE_ADDR + 0x2E02) |
| #define CECCTRL ECREG(EC_REG_BASE_ADDR + 0x2E03) |
| #define CECSTS ECREG(EC_REG_BASE_ADDR + 0x2E04) |
| #define CECIE ECREG(EC_REG_BASE_ADDR + 0x2E05) |
| #define CECOPSTS ECREG(EC_REG_BASE_ADDR + 0x2E06) |
| #define CECCRH ECREG(EC_REG_BASE_ADDR + 0x2E07) |
| |
| /** |
| * |
| * (3Cxxh) Crypto Engine |
| * |
| */ |
| |
| #define CE_CTRL_1ST ECREG(EC_REG_BASE_ADDR + 0x3C00) |
| #define CE_RNG ECREG(EC_REG_BASE_ADDR + 0x3C20) |
| |
| |
| |
| /* |
| * Clock and Power Management (ECPM) |
| */ |
| #define IT83XX_ECPM_BASE 0x00F01E00 |
| |
| #define IT83XX_ECPM_CGCTRL4R_OFF 0x09 |
| |
| #define CGC_OFFSET_SMBF ((IT83XX_ECPM_CGCTRL4R_OFF << 8) | 0x80) |
| #define CGC_OFFSET_SMBE ((IT83XX_ECPM_CGCTRL4R_OFF << 8) | 0x40) |
| #define CGC_OFFSET_SMBD ((IT83XX_ECPM_CGCTRL4R_OFF << 8) | 0x20) |
| #define CGC_OFFSET_SMBC ((IT83XX_ECPM_CGCTRL4R_OFF << 8) | 0x10) |
| #define CGC_OFFSET_SMBB ((IT83XX_ECPM_CGCTRL4R_OFF << 8) | 0x08) |
| #define CGC_OFFSET_SMBA ((IT83XX_ECPM_CGCTRL4R_OFF << 8) | 0x04) |
| |
| /* |
| * The count number of the counter for 25 ms register. |
| * The 25 ms register is calculated by (count number *1.024 kHz). |
| */ |
| |
| #define I2C_CLK_LOW_TIMEOUT 255 /* ~=249 ms */ |
| |
| /* SMBus/I2C Interface (SMB/I2C) */ |
| #define IT83XX_SMB_BASE 0x00F01C00 |
| #define IT83XX_SMB_4P7USL ECREG(IT83XX_SMB_BASE+0x00) |
| #define IT83XX_SMB_4P0USL ECREG(IT83XX_SMB_BASE+0x01) |
| #define IT83XX_SMB_300NS ECREG(IT83XX_SMB_BASE+0x02) |
| #define IT83XX_SMB_250NS ECREG(IT83XX_SMB_BASE+0x03) |
| #define IT83XX_SMB_25MS ECREG(IT83XX_SMB_BASE+0x04) |
| #define IT83XX_SMB_45P3USL ECREG(IT83XX_SMB_BASE+0x05) |
| #define IT83XX_SMB_45P3USH ECREG(IT83XX_SMB_BASE+0x06) |
| #define IT83XX_SMB_4P7A4P0H ECREG(IT83XX_SMB_BASE+0x07) |
| #define IT83XX_SMB_SLVISELR ECREG(IT83XX_SMB_BASE+0x08) |
| #define IT83XX_SMB_SCLKTS(ch) ECREG(IT83XX_SMB_BASE+0x09+ch) |
| #define IT83XX_SMB_CHSEF ECREG(IT83XX_SMB_BASE+0x11) |
| #define IT83XX_SMB_CHSAB ECREG(IT83XX_SMB_BASE+0x20) |
| #define IT83XX_SMB_CHSCD ECREG(IT83XX_SMB_BASE+0x21) |
| #define IT83XX_SMB_HOSTA(base) ECREG(base+0x00) |
| #define IT83XX_SMB_HOCTL(base) ECREG(base+0x01) |
| #define IT83XX_SMB_HOCMD(base) ECREG(base+0x02) |
| #define IT83XX_SMB_TRASLA(base) ECREG(base+0x03) |
| #define IT83XX_SMB_D0REG(base) ECREG(base+0x04) |
| #define IT83XX_SMB_D1REG(base) ECREG(base+0x05) |
| #define IT83XX_SMB_HOBDB(base) ECREG(base+0x06) |
| #define IT83XX_SMB_PECERC(base) ECREG(base+0x07) |
| #define IT83XX_SMB_SMBPCTL(base) ECREG(base+0x0A) |
| #define IT83XX_SMB_HOCTL2(base) ECREG(base+0x10) |
| |
| /** |
| * Enhanced SMBus/I2C Interface |
| * Ch_D: 0x00F03680, Ch_E: 0x00F03500, Ch_F: 0x00F03580 |
| * Ch_D: ch = 0x03, Ch_E: ch = 0x00, Ch_F: ch = 0x01 |
| */ |
| #define IT83XX_I2C_DRR(base) ECREG(base+0x00) |
| #define IT83XX_I2C_PSR(base) ECREG(base+0x01) |
| #define IT83XX_I2C_HSPR(base) ECREG(base+0x02) |
| #define IT83XX_I2C_STR(base) ECREG(base+0x03) |
| #define IT83XX_I2C_DHTR(base) ECREG(base+0x04) |
| #define IT83XX_I2C_TOR(base) ECREG(base+0x05) |
| #define IT83XX_I2C_DTR(base) ECREG(base+0x08) |
| #define IT83XX_I2C_CTR(base) ECREG(base+0x09) |
| #define IT83XX_I2C_CTR1(base) ECREG(base+0x0A) |
| #define IT83XX_I2C_BYTE_CNT_L(base) ECREG(base+0x0C) |
| #define IT83XX_I2C_IRQ_ST(base) ECREG(base+0x0D) |
| #define IT83XX_I2C_IDR(base) ECREG(base+0x06) |
| #define IT83XX_I2C_TOS(base) ECREG(base+0x07) |
| #define IT83XX_I2C_IDR2(base) ECREG(base+0x1F) |
| #define IT83XX_I2C_RAMHA(base) ECREG(base+0x23) |
| #define IT83XX_I2C_RAMLA(base) ECREG(base+0x24) |
| #define IT83XX_I2C_RAMHA2(base) ECREG(base+0x2B) |
| #define IT83XX_I2C_RAMLA2(base) ECREG(base+0x2C) |
| #define IT83XX_I2C_CMD_ADDH(base) ECREG(base+0x25) |
| #define IT83XX_I2C_CMD_ADDL(base) ECREG(base+0x26) |
| #define IT83XX_I2C_RAMH2A(base) ECREG(base+0x50) |
| #define IT83XX_I2C_CMD_ADDH2(base) ECREG(base+0x52) |
| |
| #endif /* CHIP_CHIPREGS_H */ |