diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-09-21 14:10:01 -0700 |
---|---|---|
committer | Tom Hughes <tomhughes@chromium.org> | 2022-09-22 12:49:33 -0700 |
commit | 2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch) | |
tree | fcf6ce5810f9ff9e3c8cce434812dd75492269ed /chip/mchp/registers.h | |
parent | e5fb0b9ba488614b5684e640530f00821ab7b943 (diff) | |
parent | 28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff) | |
download | chrome-ec-2bcf863b492fe7ed8105c853814dba6ed32ba719.tar.gz |
Merge remote-tracking branch cros/main into firmware-fpmcu-bloonchipper-releasefirmware-fpmcu-bloonchipper-release
Generated by: ./util/update_release_branch.py --board bloonchipper
--relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware-
fpmcu-bloonchipper-release
Relevant changes:
git log --oneline e5fb0b9ba4..28712dae9d -- board/hatch_fp
board/bloonchipper common/fpsensor docs/fingerprint driver/fingerprint
util/getversion.sh
ded9307b79 util/getversion.sh: Fix version when not in a git repo
956055e692 board: change Google USB vendor info
71b2ef709d Update license boilerplate text in source code files
33e11afda0 Revert "fpsensor: Build fpsensor source file with C++"
c8d0360723 fpsensor: Build fpsensor source file with C++
bc113abd53 fpsensor: Fix g++ compiler error
150a58a0dc fpsensor: Fix fp_set_sensor_mode return type
b33b5ce85b fpsensor: Remove nested designators for C++ compatibility
2e864b2539 tree-wide: const-ify argv for console commands
56d8b360f9 test: Add test for get ikm failure when seed not set
3a3d6c3690 test: Add test for fpsensor trivial key failure
233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256
0a041b285b docs/fingerprint: Typo correction
c03fab67e2 docs/fingerprint: Fix the path of fputils.py
0b5d4baf5a util/getversion.sh: Fix empty file list handling
6e128fe760 FPMCU dev board environment with Satlab
3eb29b6aa5 builtin: Move ssize_t to sys/types.h
345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release
c25ffdb316 common: Conditionally support printf %l and %i modifiers
9a3c514b45 test: Add a test to check if the debugger is connected
54e603413f Move standard library tests to their own file
43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release
25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format
4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format
738de2b575 trng: Rename rand to trng_rand
14b8270edd docs/fingerprint: Update dragonclaw power numbers
0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format
f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format
5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format
c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format
eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format
6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format
e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format
7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format
21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format
98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format
a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format
73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format
0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format
1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format
dc3e9008b8 board/hatch_fp/board.h: Format with clang-format
dca9d74321 Revert "trng: Rename rand to trng_rand"
a6b0b3554f trng: Rename rand to trng_rand
28d0b75b70 third_party/boringssl: Remove unused header
BRANCH=None
BUG=b:246424843 b:234181908 b:244781166 b:234181908 b:244387210
BUG=b:242720240 chromium:1098010 b:180945056 b:236025198 b:234181908
BUG=b:234181908 b:237344361 b:131913998 b:236386294 b:234143158
BUG=b:234781655 b:215613183 b:242720910
TEST=`make -j buildall`
TEST=./test/run_device_tests.py --board bloonchipper
Test "aes": PASSED
Test "cec": PASSED
Test "cortexm_fpu": PASSED
Test "crc": PASSED
Test "flash_physical": PASSED
Test "flash_write_protect": PASSED
Test "fpsensor_hw": PASSED
Test "fpsensor_spi_ro": PASSED
Test "fpsensor_spi_rw": PASSED
Test "fpsensor_uart_ro": PASSED
Test "fpsensor_uart_rw": PASSED
Test "mpu_ro": PASSED
Test "mpu_rw": PASSED
Test "mutex": PASSED
Test "pingpong": PASSED
Test "printf": PASSED
Test "queue": PASSED
Test "rollback_region0": PASSED
Test "rollback_region1": PASSED
Test "rollback_entropy": PASSED
Test "rtc": PASSED
Test "sha256": PASSED
Test "sha256_unrolled": PASSED
Test "static_if": PASSED
Test "stdlib": PASSED
Test "system_is_locked_wp_on": PASSED
Test "system_is_locked_wp_off": PASSED
Test "timer_dos": PASSED
Test "utils": PASSED
Test "utils_str": PASSED
Test "stm32f_rtc": PASSED
Test "panic_data_bloonchipper_v2.0.4277": PASSED
Test "panic_data_bloonchipper_v2.0.5938": PASSED
Force-Relevant-Builds: all
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I264ad0ffe7afcd507a1e483c6e934a9c4fea47c3
Diffstat (limited to 'chip/mchp/registers.h')
-rw-r--r-- | chip/mchp/registers.h | 1137 |
1 files changed, 550 insertions, 587 deletions
diff --git a/chip/mchp/registers.h b/chip/mchp/registers.h index 65936caa2d..7b541b18da 100644 --- a/chip/mchp/registers.h +++ b/chip/mchp/registers.h @@ -1,4 +1,4 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. +/* Copyright 2018 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -10,7 +10,6 @@ #include "common.h" #include "compile_time_macros.h" - #if defined(CHIP_FAMILY_MEC152X) #include "registers-mec152x.h" #elif defined(CHIP_FAMILY_MEC170X) @@ -23,530 +22,526 @@ /* Common registers */ /* EC Interrupt aggregator (ECIA) */ -#define MCHP_INT_SOURCE(x) REG32(MCHP_INTx_BASE(x) + 0x0) -#define MCHP_INT_ENABLE(x) REG32(MCHP_INTx_BASE(x) + 0x4) -#define MCHP_INT_RESULT(x) REG32(MCHP_INTx_BASE(x) + 0x8) -#define MCHP_INT_DISABLE(x) REG32(MCHP_INTx_BASE(x) + 0xc) -#define MCHP_INT_BLK_EN REG32(MCHP_INT_BASE + 0x200) -#define MCHP_INT_BLK_DIS REG32(MCHP_INT_BASE + 0x204) -#define MCHP_INT_BLK_IRQ REG32(MCHP_INT_BASE + 0x208) +#define MCHP_INT_SOURCE(x) REG32(MCHP_INTx_BASE(x) + 0x0) +#define MCHP_INT_ENABLE(x) REG32(MCHP_INTx_BASE(x) + 0x4) +#define MCHP_INT_RESULT(x) REG32(MCHP_INTx_BASE(x) + 0x8) +#define MCHP_INT_DISABLE(x) REG32(MCHP_INTx_BASE(x) + 0xc) +#define MCHP_INT_BLK_EN REG32(MCHP_INT_BASE + 0x200) +#define MCHP_INT_BLK_DIS REG32(MCHP_INT_BASE + 0x204) +#define MCHP_INT_BLK_IRQ REG32(MCHP_INT_BASE + 0x208) /* EC Chip Configuration */ -#define MCHP_CHIP_LEGACY_DEV_ID REG8(MCHP_CHIP_BASE + 0x20) -#define MCHP_CHIP_LEGACY_DEV_REV REG8(MCHP_CHIP_BASE + 0x21) +#define MCHP_CHIP_LEGACY_DEV_ID REG8(MCHP_CHIP_BASE + 0x20) +#define MCHP_CHIP_LEGACY_DEV_REV REG8(MCHP_CHIP_BASE + 0x21) /* Power/Clocks/Resets */ -#define MCHP_PCR_SYS_SLP_CTL REG32(MCHP_PCR_BASE + 0x00) -#define MCHP_PCR_PROC_CLK_CTL REG32(MCHP_PCR_BASE + 0x04) -#define MCHP_PCR_SLOW_CLK_CTL REG32(MCHP_PCR_BASE + 0x08) -#define MCHP_PCR_CHIP_OSC_ID REG32(MCHP_PCR_BASE + 0x0C) -#define MCHP_PCR_PWR_RST_STS REG32(MCHP_PCR_BASE + 0x10) -#define MCHP_PCR_PWR_RST_CTL REG32(MCHP_PCR_BASE + 0x14) -#define MCHP_PCR_SYS_RST REG32(MCHP_PCR_BASE + 0x18) -#define MCHP_PCR_SLP_EN0 REG32(MCHP_PCR_BASE + 0x30) -#define MCHP_PCR_SLP_EN1 REG32(MCHP_PCR_BASE + 0x34) -#define MCHP_PCR_SLP_EN2 REG32(MCHP_PCR_BASE + 0x38) -#define MCHP_PCR_SLP_EN3 REG32(MCHP_PCR_BASE + 0x3C) -#define MCHP_PCR_SLP_EN4 REG32(MCHP_PCR_BASE + 0x40) -#define MCHP_PCR_CLK_REQ0 REG32(MCHP_PCR_BASE + 0x50) -#define MCHP_PCR_CLK_REQ1 REG32(MCHP_PCR_BASE + 0x54) -#define MCHP_PCR_CLK_REQ2 REG32(MCHP_PCR_BASE + 0x58) -#define MCHP_PCR_CLK_REQ3 REG32(MCHP_PCR_BASE + 0x5C) -#define MCHP_PCR_CLK_REQ4 REG32(MCHP_PCR_BASE + 0x60) -#define MCHP_PCR_RST_EN0 REG32(MCHP_PCR_BASE + 0x70) -#define MCHP_PCR_RST_EN1 REG32(MCHP_PCR_BASE + 0x74) -#define MCHP_PCR_RST_EN2 REG32(MCHP_PCR_BASE + 0x78) -#define MCHP_PCR_RST_EN3 REG32(MCHP_PCR_BASE + 0x7C) -#define MCHP_PCR_RST_EN4 REG32(MCHP_PCR_BASE + 0x80) -#define MCHP_PCR_SLP_EN(x) REG32(MCHP_PCR_BASE + 0x30 + ((x)<<2)) -#define MCHP_PCR_CLK_REQ(x) REG32(MCHP_PCR_BASE + 0x50 + ((x)<<2)) -#define MCHP_PCR_RST_EN(x) REG32(MCHP_PCR_BASE + 0x70 + ((x)<<2)) +#define MCHP_PCR_SYS_SLP_CTL REG32(MCHP_PCR_BASE + 0x00) +#define MCHP_PCR_PROC_CLK_CTL REG32(MCHP_PCR_BASE + 0x04) +#define MCHP_PCR_SLOW_CLK_CTL REG32(MCHP_PCR_BASE + 0x08) +#define MCHP_PCR_CHIP_OSC_ID REG32(MCHP_PCR_BASE + 0x0C) +#define MCHP_PCR_PWR_RST_STS REG32(MCHP_PCR_BASE + 0x10) +#define MCHP_PCR_PWR_RST_CTL REG32(MCHP_PCR_BASE + 0x14) +#define MCHP_PCR_SYS_RST REG32(MCHP_PCR_BASE + 0x18) +#define MCHP_PCR_SLP_EN0 REG32(MCHP_PCR_BASE + 0x30) +#define MCHP_PCR_SLP_EN1 REG32(MCHP_PCR_BASE + 0x34) +#define MCHP_PCR_SLP_EN2 REG32(MCHP_PCR_BASE + 0x38) +#define MCHP_PCR_SLP_EN3 REG32(MCHP_PCR_BASE + 0x3C) +#define MCHP_PCR_SLP_EN4 REG32(MCHP_PCR_BASE + 0x40) +#define MCHP_PCR_CLK_REQ0 REG32(MCHP_PCR_BASE + 0x50) +#define MCHP_PCR_CLK_REQ1 REG32(MCHP_PCR_BASE + 0x54) +#define MCHP_PCR_CLK_REQ2 REG32(MCHP_PCR_BASE + 0x58) +#define MCHP_PCR_CLK_REQ3 REG32(MCHP_PCR_BASE + 0x5C) +#define MCHP_PCR_CLK_REQ4 REG32(MCHP_PCR_BASE + 0x60) +#define MCHP_PCR_RST_EN0 REG32(MCHP_PCR_BASE + 0x70) +#define MCHP_PCR_RST_EN1 REG32(MCHP_PCR_BASE + 0x74) +#define MCHP_PCR_RST_EN2 REG32(MCHP_PCR_BASE + 0x78) +#define MCHP_PCR_RST_EN3 REG32(MCHP_PCR_BASE + 0x7C) +#define MCHP_PCR_RST_EN4 REG32(MCHP_PCR_BASE + 0x80) +#define MCHP_PCR_SLP_EN(x) REG32(MCHP_PCR_BASE + 0x30 + ((x) << 2)) +#define MCHP_PCR_CLK_REQ(x) REG32(MCHP_PCR_BASE + 0x50 + ((x) << 2)) +#define MCHP_PCR_RST_EN(x) REG32(MCHP_PCR_BASE + 0x70 + ((x) << 2)) /* Bit definitions for MCHP_PCR_SYS_SLP_CTL */ -#define MCHP_PCR_SYS_SLP_LIGHT (0ul << 0) -#define MCHP_PCR_SYS_SLP_HEAVY (1ul << 0) -#define MCHP_PCR_SYS_SLP_ALL (1ul << 3) +#define MCHP_PCR_SYS_SLP_LIGHT (0ul << 0) +#define MCHP_PCR_SYS_SLP_HEAVY (1ul << 0) +#define MCHP_PCR_SYS_SLP_ALL (1ul << 3) /* * Set/clear PCR sleep enable bit for single device * d bits[10:8] = register 0 - 4 * d bits[4:0] = register bit position */ #define MCHP_PCR_SLP_EN_DEV(d) \ - (MCHP_PCR_SLP_EN(((d) >> 8) & 0x07) |= (1ul << ((d) & 0x1f))) + (MCHP_PCR_SLP_EN(((d) >> 8) & 0x07) |= (1ul << ((d)&0x1f))) #define MCHP_PCR_SLP_DIS_DEV(d) \ - (MCHP_PCR_SLP_EN(((d) >> 8) & 0x07) &= ~(1ul << ((d) & 0x1f))) + (MCHP_PCR_SLP_EN(((d) >> 8) & 0x07) &= ~(1ul << ((d)&0x1f))) /* * Set/clear bit pattern specified by mask in a single PCR sleep enable * register. * id = zero based ID of sleep enable register (0-4) * m = bit mask of bits to change */ -#define MCHP_PCR_SLP_EN_DEV_MASK(id, m) (MCHP_PCR_SLP_EN((id)) |= (m)) -#define MCHP_PCR_SLP_DIS_DEV_MASK(id, m) (MCHP_PCR_SLP_EN((id)) &= ~(m)) +#define MCHP_PCR_SLP_EN_DEV_MASK(id, m) (MCHP_PCR_SLP_EN((id)) |= (m)) +#define MCHP_PCR_SLP_DIS_DEV_MASK(id, m) (MCHP_PCR_SLP_EN((id)) &= ~(m)) /* Slow Clock Control Mask */ -#define MCHP_PCR_SLOW_CLK_CTL_MASK 0x03FFul +#define MCHP_PCR_SLOW_CLK_CTL_MASK 0x03FFul /* TFDP */ -#define MCHP_TFDP_DATA REG8(MCHP_TFDP_BASE + 0x00) -#define MCHP_TFDP_CTRL REG8(MCHP_TFDP_BASE + 0x04) +#define MCHP_TFDP_DATA REG8(MCHP_TFDP_BASE + 0x00) +#define MCHP_TFDP_CTRL REG8(MCHP_TFDP_BASE + 0x04) /* UART */ -#define MCHP_UART_ACT(x) REG8(MCHP_UART_CONFIG_BASE(x) + 0x30) -#define MCHP_UART_CFG(x) REG8(MCHP_UART_CONFIG_BASE(x) + 0xf0) +#define MCHP_UART_ACT(x) REG8(MCHP_UART_CONFIG_BASE(x) + 0x30) +#define MCHP_UART_CFG(x) REG8(MCHP_UART_CONFIG_BASE(x) + 0xf0) /* DLAB=0 */ -#define MCHP_UART_RB(x) /*R*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x0) -#define MCHP_UART_TB(x) /*W*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x0) -#define MCHP_UART_IER(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x1) +#define MCHP_UART_RB(x) /*R*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x0) +#define MCHP_UART_TB(x) /*W*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x0) +#define MCHP_UART_IER(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x1) /* DLAB=1 */ -#define MCHP_UART_PBRG0(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x0) -#define MCHP_UART_PBRG1(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x1) -#define MCHP_UART_FCR(x) /*W*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x2) -#define MCHP_UART_IIR(x) /*R*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x2) -#define MCHP_UART_LCR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x3) -#define MCHP_UART_MCR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x4) -#define MCHP_UART_LSR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x5) -#define MCHP_UART_MSR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x6) -#define MCHP_UART_SCR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x7) +#define MCHP_UART_PBRG0(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x0) +#define MCHP_UART_PBRG1(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x1) +#define MCHP_UART_FCR(x) /*W*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x2) +#define MCHP_UART_IIR(x) /*R*/ REG8(MCHP_UART_RUNTIME_BASE(x) + 0x2) +#define MCHP_UART_LCR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x3) +#define MCHP_UART_MCR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x4) +#define MCHP_UART_LSR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x5) +#define MCHP_UART_MSR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x6) +#define MCHP_UART_SCR(x) REG8(MCHP_UART_RUNTIME_BASE(x) + 0x7) /* Bit defines for MCHP_UARTx_LSR */ -#define MCHP_LSR_TX_EMPTY BIT(5) +#define MCHP_LSR_TX_EMPTY BIT(5) /* Timer */ -#define MCHP_TMR16_CNT(x) REG32(MCHP_TMR16_BASE(x) + 0x0) -#define MCHP_TMR16_PRE(x) REG32(MCHP_TMR16_BASE(x) + 0x4) -#define MCHP_TMR16_STS(x) REG32(MCHP_TMR16_BASE(x) + 0x8) -#define MCHP_TMR16_IEN(x) REG32(MCHP_TMR16_BASE(x) + 0xc) -#define MCHP_TMR16_CTL(x) REG32(MCHP_TMR16_BASE(x) + 0x10) -#define MCHP_TMR32_CNT(x) REG32(MCHP_TMR32_BASE(x) + 0x0) -#define MCHP_TMR32_PRE(x) REG32(MCHP_TMR32_BASE(x) + 0x4) -#define MCHP_TMR32_STS(x) REG32(MCHP_TMR32_BASE(x) + 0x8) -#define MCHP_TMR32_IEN(x) REG32(MCHP_TMR32_BASE(x) + 0xc) -#define MCHP_TMR32_CTL(x) REG32(MCHP_TMR32_BASE(x) + 0x10) +#define MCHP_TMR16_CNT(x) REG32(MCHP_TMR16_BASE(x) + 0x0) +#define MCHP_TMR16_PRE(x) REG32(MCHP_TMR16_BASE(x) + 0x4) +#define MCHP_TMR16_STS(x) REG32(MCHP_TMR16_BASE(x) + 0x8) +#define MCHP_TMR16_IEN(x) REG32(MCHP_TMR16_BASE(x) + 0xc) +#define MCHP_TMR16_CTL(x) REG32(MCHP_TMR16_BASE(x) + 0x10) +#define MCHP_TMR32_CNT(x) REG32(MCHP_TMR32_BASE(x) + 0x0) +#define MCHP_TMR32_PRE(x) REG32(MCHP_TMR32_BASE(x) + 0x4) +#define MCHP_TMR32_STS(x) REG32(MCHP_TMR32_BASE(x) + 0x8) +#define MCHP_TMR32_IEN(x) REG32(MCHP_TMR32_BASE(x) + 0xc) +#define MCHP_TMR32_CTL(x) REG32(MCHP_TMR32_BASE(x) + 0x10) /* RTimer */ -#define MCHP_RTMR_COUNTER REG32(MCHP_RTMR_BASE + 0x00) -#define MCHP_RTMR_PRELOAD REG32(MCHP_RTMR_BASE + 0x04) -#define MCHP_RTMR_CONTROL REG8(MCHP_RTMR_BASE + 0x08) -#define MCHP_RTMR_SOFT_INTR REG8(MCHP_RTMR_BASE + 0x0c) +#define MCHP_RTMR_COUNTER REG32(MCHP_RTMR_BASE + 0x00) +#define MCHP_RTMR_PRELOAD REG32(MCHP_RTMR_BASE + 0x04) +#define MCHP_RTMR_CONTROL REG8(MCHP_RTMR_BASE + 0x08) +#define MCHP_RTMR_SOFT_INTR REG8(MCHP_RTMR_BASE + 0x0c) /* Watch dog timer */ -#define MCHP_WDG_LOAD REG16(MCHP_WDG_BASE + 0x0) -#define MCHP_WDG_CTL REG16(MCHP_WDG_BASE + 0x4) -#define MCHP_WDG_KICK REG8(MCHP_WDG_BASE + 0x8) -#define MCHP_WDG_CNT REG16(MCHP_WDG_BASE + 0xc) -#define MCHP_WDT_CTL_ENABLE BIT(0) -#define MCHP_WDT_CTL_HTMR_STALL_EN BIT(2) -#define MCHP_WDT_CTL_WKTMR_STALL_EN BIT(3) -#define MCHP_WDT_CTL_JTAG_STALL_EN BIT(4) +#define MCHP_WDG_LOAD REG16(MCHP_WDG_BASE + 0x0) +#define MCHP_WDG_CTL REG16(MCHP_WDG_BASE + 0x4) +#define MCHP_WDG_KICK REG8(MCHP_WDG_BASE + 0x8) +#define MCHP_WDG_CNT REG16(MCHP_WDG_BASE + 0xc) +#define MCHP_WDT_CTL_ENABLE BIT(0) +#define MCHP_WDT_CTL_HTMR_STALL_EN BIT(2) +#define MCHP_WDT_CTL_WKTMR_STALL_EN BIT(3) +#define MCHP_WDT_CTL_JTAG_STALL_EN BIT(4) /* Blinking-Breathing LED */ -#define MCHP_BBLED_CONFIG(x) REG32(MCHP_BBLED_BASE(x) + 0x00) -#define MCHP_BBLED_LIMITS(x) REG32(MCHP_BBLED_BASE(x) + 0x04) -#define MCHP_BBLED_LIMIT_MIN(x) REG8(MCHP_BBLED_BASE(x) + 0x04) -#define MCHP_BBLED_LIMIT_MAX(x) REG8(MCHP_BBLED_BASE(x) + 0x06) -#define MCHP_BBLED_DELAY(x) REG32(MCHP_BBLED_BASE(x) + 0x08) -#define MCHP_BBLED_UPDATE_STEP(x) REG32(MCHP_BBLED_BASE(x) + 0x0C) -#define MCHP_BBLED_UPDATE_INTV(x) REG32(MCHP_BBLED_BASE(x) + 0x10) -#define MCHP_BBLED_OUTPUT_DLY(x) REG8(MCHP_BBLED_BASE(x) + 0x14) +#define MCHP_BBLED_CONFIG(x) REG32(MCHP_BBLED_BASE(x) + 0x00) +#define MCHP_BBLED_LIMITS(x) REG32(MCHP_BBLED_BASE(x) + 0x04) +#define MCHP_BBLED_LIMIT_MIN(x) REG8(MCHP_BBLED_BASE(x) + 0x04) +#define MCHP_BBLED_LIMIT_MAX(x) REG8(MCHP_BBLED_BASE(x) + 0x06) +#define MCHP_BBLED_DELAY(x) REG32(MCHP_BBLED_BASE(x) + 0x08) +#define MCHP_BBLED_UPDATE_STEP(x) REG32(MCHP_BBLED_BASE(x) + 0x0C) +#define MCHP_BBLED_UPDATE_INTV(x) REG32(MCHP_BBLED_BASE(x) + 0x10) +#define MCHP_BBLED_OUTPUT_DLY(x) REG8(MCHP_BBLED_BASE(x) + 0x14) /* BBLED Configuration Register */ -#define MCHP_BBLED_ASYMMETRIC BIT(16) -#define MCHP_BBLED_WDT_RELOAD_BITPOS 8 -#define MCHP_BBLED_WDT_RELOAD_MASK0 0xFFul -#define MCHP_BBLED_WDT_RELOAD_MASK (0xFFul << 8) -#define MCHP_BBLED_RESET BIT(7) -#define MCHP_BBLED_EN_UPDATE BIT(6) -#define MCHP_BBLED_PWM_SIZE_BITPOS 4 -#define MCHP_BBLED_PWM_SIZE_MASK0 0x03ul -#define MCHP_BBLED_PWM_SIZE_MASK (0x03ul << 4) -#define MCHP_BBLED_PWM_SIZE_6BIT (0x02ul << 4) -#define MCHP_BBLED_PWM_SIZE_7BIT (0x01ul << 4) -#define MCHP_BBLED_PWM_SIZE_8BIT (0x00ul << 4) -#define MCHP_BBLED_SYNC BIT(3) -#define MCHP_BBLED_CLK_48M BIT(2) -#define MCHP_BBLED_CLK_32K 0 -#define MCHP_BBLED_CTRL_MASK 0x03ul -#define MCHP_BBLED_CTRL_ALWAYS_ON 0x03ul -#define MCHP_BBLED_CTRL_BLINK 0x02ul -#define MCHP_BBLED_CTRL_BREATHE 0x01ul -#define MCHP_BBLED_CTRL_OFF 0x00ul +#define MCHP_BBLED_ASYMMETRIC BIT(16) +#define MCHP_BBLED_WDT_RELOAD_BITPOS 8 +#define MCHP_BBLED_WDT_RELOAD_MASK0 0xFFul +#define MCHP_BBLED_WDT_RELOAD_MASK (0xFFul << 8) +#define MCHP_BBLED_RESET BIT(7) +#define MCHP_BBLED_EN_UPDATE BIT(6) +#define MCHP_BBLED_PWM_SIZE_BITPOS 4 +#define MCHP_BBLED_PWM_SIZE_MASK0 0x03ul +#define MCHP_BBLED_PWM_SIZE_MASK (0x03ul << 4) +#define MCHP_BBLED_PWM_SIZE_6BIT (0x02ul << 4) +#define MCHP_BBLED_PWM_SIZE_7BIT (0x01ul << 4) +#define MCHP_BBLED_PWM_SIZE_8BIT (0x00ul << 4) +#define MCHP_BBLED_SYNC BIT(3) +#define MCHP_BBLED_CLK_48M BIT(2) +#define MCHP_BBLED_CLK_32K 0 +#define MCHP_BBLED_CTRL_MASK 0x03ul +#define MCHP_BBLED_CTRL_ALWAYS_ON 0x03ul +#define MCHP_BBLED_CTRL_BLINK 0x02ul +#define MCHP_BBLED_CTRL_BREATHE 0x01ul +#define MCHP_BBLED_CTRL_OFF 0x00ul /* BBLED Delay Register */ -#define MCHP_BBLED_DLY_MASK 0x0FFFul -#define MCHP_BBLED_DLY_LO_BITPOS 0 -#define MCHP_BBLED_DLY_LO_MASK 0x0FFFul -#define MCHP_BBLED_DLY_HI_BITPOS 12 -#define MCHP_BBLED_DLY_HI_MASK (0x0FFFul << 12) +#define MCHP_BBLED_DLY_MASK 0x0FFFul +#define MCHP_BBLED_DLY_LO_BITPOS 0 +#define MCHP_BBLED_DLY_LO_MASK 0x0FFFul +#define MCHP_BBLED_DLY_HI_BITPOS 12 +#define MCHP_BBLED_DLY_HI_MASK (0x0FFFul << 12) /* * BBLED Update Step Register * 8 update fields numbered 0 - 7 */ -#define MCHP_BBLED_UPD_STEP_MASK0 0x0Ful -#define MCHP_BBLED_UPD_STEP_MASK(u) (0x0Ful << (((u) & 0x07) + 4)) +#define MCHP_BBLED_UPD_STEP_MASK0 0x0Ful +#define MCHP_BBLED_UPD_STEP_MASK(u) (0x0Ful << (((u)&0x07) + 4)) /* * BBLED Update Interval Register * 8 interval fields numbered 0 - 7 */ -#define MCHP_BBLED_UPD_INTV_MASK0 0x0Ful -#define MCHP_BBLED_UPD_INTV_MASK(i) (0x0Ful << (((i) & 0x07) + 4)) +#define MCHP_BBLED_UPD_INTV_MASK0 0x0Ful +#define MCHP_BBLED_UPD_INTV_MASK(i) (0x0Ful << (((i)&0x07) + 4)) /* EMI */ -#define MCHP_EMI_H2E_MBX(n) REG8(MCHP_EMI_BASE(n) + 0x0) -#define MCHP_EMI_E2H_MBX(n) REG8(MCHP_EMI_BASE(n) + 0x1) -#define MCHP_EMI_MBA0(n) REG32(MCHP_EMI_BASE(n) + 0x4) -#define MCHP_EMI_MRL0(n) REG16(MCHP_EMI_BASE(n) + 0x8) -#define MCHP_EMI_MWL0(n) REG16(MCHP_EMI_BASE(n) + 0xa) -#define MCHP_EMI_MBA1(n) REG32(MCHP_EMI_BASE(n) + 0xc) -#define MCHP_EMI_MRL1(n) REG16(MCHP_EMI_BASE(n) + 0x10) -#define MCHP_EMI_MWL1(n) REG16(MCHP_EMI_BASE(n) + 0x12) -#define MCHP_EMI_ISR(n) REG16(MCHP_EMI_BASE(n) + 0x14) -#define MCHP_EMI_HCE(n) REG16(MCHP_EMI_BASE(n) + 0x16) -#define MCHP_EMI_ISR_B0(n) REG8(MCHP_EMI_RT_BASE(n) + 0x8) -#define MCHP_EMI_ISR_B1(n) REG8(MCHP_EMI_RT_BASE(n) + 0x9) -#define MCHP_EMI_IMR_B0(n) REG8(MCHP_EMI_RT_BASE(n) + 0xa) -#define MCHP_EMI_IMR_B1(n) REG8(MCHP_EMI_RT_BASE(n) + 0xb) +#define MCHP_EMI_H2E_MBX(n) REG8(MCHP_EMI_BASE(n) + 0x0) +#define MCHP_EMI_E2H_MBX(n) REG8(MCHP_EMI_BASE(n) + 0x1) +#define MCHP_EMI_MBA0(n) REG32(MCHP_EMI_BASE(n) + 0x4) +#define MCHP_EMI_MRL0(n) REG16(MCHP_EMI_BASE(n) + 0x8) +#define MCHP_EMI_MWL0(n) REG16(MCHP_EMI_BASE(n) + 0xa) +#define MCHP_EMI_MBA1(n) REG32(MCHP_EMI_BASE(n) + 0xc) +#define MCHP_EMI_MRL1(n) REG16(MCHP_EMI_BASE(n) + 0x10) +#define MCHP_EMI_MWL1(n) REG16(MCHP_EMI_BASE(n) + 0x12) +#define MCHP_EMI_ISR(n) REG16(MCHP_EMI_BASE(n) + 0x14) +#define MCHP_EMI_HCE(n) REG16(MCHP_EMI_BASE(n) + 0x16) +#define MCHP_EMI_ISR_B0(n) REG8(MCHP_EMI_RT_BASE(n) + 0x8) +#define MCHP_EMI_ISR_B1(n) REG8(MCHP_EMI_RT_BASE(n) + 0x9) +#define MCHP_EMI_IMR_B0(n) REG8(MCHP_EMI_RT_BASE(n) + 0xa) +#define MCHP_EMI_IMR_B1(n) REG8(MCHP_EMI_RT_BASE(n) + 0xb) /* Mailbox */ -#define MCHP_MBX_INDEX REG8(MCHP_MBX_RT_BASE + 0x0) -#define MCHP_MBX_DATA REG8(MCHP_MBX_RT_BASE + 0x1) -#define MCHP_MBX_H2E_MBX REG8(MCHP_MBX_BASE + 0x0) -#define MCHP_MBX_E2H_MBX REG8(MCHP_MBX_BASE + 0x4) -#define MCHP_MBX_ISR REG8(MCHP_MBX_BASE + 0x8) -#define MCHP_MBX_IMR REG8(MCHP_MBX_BASE + 0xc) -#define MCHP_MBX_REG(x) REG8(MCHP_MBX_BASE + 0x10 + (x)) +#define MCHP_MBX_INDEX REG8(MCHP_MBX_RT_BASE + 0x0) +#define MCHP_MBX_DATA REG8(MCHP_MBX_RT_BASE + 0x1) +#define MCHP_MBX_H2E_MBX REG8(MCHP_MBX_BASE + 0x0) +#define MCHP_MBX_E2H_MBX REG8(MCHP_MBX_BASE + 0x4) +#define MCHP_MBX_ISR REG8(MCHP_MBX_BASE + 0x8) +#define MCHP_MBX_IMR REG8(MCHP_MBX_BASE + 0xc) +#define MCHP_MBX_REG(x) REG8(MCHP_MBX_BASE + 0x10 + (x)) /* PWM */ -#define MCHP_PWM_ON(x) REG32(MCHP_PWM_BASE(x) + 0x00) -#define MCHP_PWM_OFF(x) REG32(MCHP_PWM_BASE(x) + 0x04) -#define MCHP_PWM_CFG(x) REG32(MCHP_PWM_BASE(x) + 0x08) +#define MCHP_PWM_ON(x) REG32(MCHP_PWM_BASE(x) + 0x00) +#define MCHP_PWM_OFF(x) REG32(MCHP_PWM_BASE(x) + 0x04) +#define MCHP_PWM_CFG(x) REG32(MCHP_PWM_BASE(x) + 0x08) /* TACH */ -#define MCHP_TACH_CTRL(x) REG32(MCHP_TACH_BASE(x)) -#define MCHP_TACH_CTRL_LO(x) REG16(MCHP_TACH_BASE(x) + 0x00) -#define MCHP_TACH_CTRL_CNT(x) REG16(MCHP_TACH_BASE(x) + 0x02) -#define MCHP_TACH_STATUS(x) REG8(MCHP_TACH_BASE(x) + 0x04) -#define MCHP_TACH_LIMIT_HI(x) REG16(MCHP_TACH_BASE(x) + 0x08) -#define MCHP_TACH_LIMIT_LO(x) REG16(MCHP_TACH_BASE(x) + 0x0C) +#define MCHP_TACH_CTRL(x) REG32(MCHP_TACH_BASE(x)) +#define MCHP_TACH_CTRL_LO(x) REG16(MCHP_TACH_BASE(x) + 0x00) +#define MCHP_TACH_CTRL_CNT(x) REG16(MCHP_TACH_BASE(x) + 0x02) +#define MCHP_TACH_STATUS(x) REG8(MCHP_TACH_BASE(x) + 0x04) +#define MCHP_TACH_LIMIT_HI(x) REG16(MCHP_TACH_BASE(x) + 0x08) +#define MCHP_TACH_LIMIT_LO(x) REG16(MCHP_TACH_BASE(x) + 0x0C) /* ACPI */ -#define MCHP_ACPI_EC_EC2OS(x, y) REG8(MCHP_ACPI_EC_BASE(x) + 0x100 + (y)) -#define MCHP_ACPI_EC_STATUS(x) REG8(MCHP_ACPI_EC_BASE(x) + 0x104) -#define MCHP_ACPI_EC_BYTE_CTL(x) REG8(MCHP_ACPI_EC_BASE(x) + 0x105) -#define MCHP_ACPI_EC_OS2EC(x, y) REG8(MCHP_ACPI_EC_BASE(x) + 0x108 + (y)) -#define MCHP_ACPI_PM1_STS1 REG8(MCHP_ACPI_PM_RT_BASE + 0x0) -#define MCHP_ACPI_PM1_STS2 REG8(MCHP_ACPI_PM_RT_BASE + 0x1) -#define MCHP_ACPI_PM1_EN1 REG8(MCHP_ACPI_PM_RT_BASE + 0x2) -#define MCHP_ACPI_PM1_EN2 REG8(MCHP_ACPI_PM_RT_BASE + 0x3) -#define MCHP_ACPI_PM1_CTL1 REG8(MCHP_ACPI_PM_RT_BASE + 0x4) -#define MCHP_ACPI_PM1_CTL2 REG8(MCHP_ACPI_PM_RT_BASE + 0x5) -#define MCHP_ACPI_PM2_CTL1 REG8(MCHP_ACPI_PM_RT_BASE + 0x6) -#define MCHP_ACPI_PM2_CTL2 REG8(MCHP_ACPI_PM_RT_BASE + 0x7) -#define MCHP_ACPI_PM_STS REG8(MCHP_ACPI_PM_EC_BASE + 0x10) +#define MCHP_ACPI_EC_EC2OS(x, y) REG8(MCHP_ACPI_EC_BASE(x) + 0x100 + (y)) +#define MCHP_ACPI_EC_STATUS(x) REG8(MCHP_ACPI_EC_BASE(x) + 0x104) +#define MCHP_ACPI_EC_BYTE_CTL(x) REG8(MCHP_ACPI_EC_BASE(x) + 0x105) +#define MCHP_ACPI_EC_OS2EC(x, y) REG8(MCHP_ACPI_EC_BASE(x) + 0x108 + (y)) +#define MCHP_ACPI_PM1_STS1 REG8(MCHP_ACPI_PM_RT_BASE + 0x0) +#define MCHP_ACPI_PM1_STS2 REG8(MCHP_ACPI_PM_RT_BASE + 0x1) +#define MCHP_ACPI_PM1_EN1 REG8(MCHP_ACPI_PM_RT_BASE + 0x2) +#define MCHP_ACPI_PM1_EN2 REG8(MCHP_ACPI_PM_RT_BASE + 0x3) +#define MCHP_ACPI_PM1_CTL1 REG8(MCHP_ACPI_PM_RT_BASE + 0x4) +#define MCHP_ACPI_PM1_CTL2 REG8(MCHP_ACPI_PM_RT_BASE + 0x5) +#define MCHP_ACPI_PM2_CTL1 REG8(MCHP_ACPI_PM_RT_BASE + 0x6) +#define MCHP_ACPI_PM2_CTL2 REG8(MCHP_ACPI_PM_RT_BASE + 0x7) +#define MCHP_ACPI_PM_STS REG8(MCHP_ACPI_PM_EC_BASE + 0x10) /* 8042 */ -#define MCHP_8042_OBF_CLR REG8(MCHP_8042_BASE + 0x0) -#define MCHP_8042_H2E REG8(MCHP_8042_BASE + 0x100) -#define MCHP_8042_E2H REG8(MCHP_8042_BASE + 0x100) -#define MCHP_8042_STS REG8(MCHP_8042_BASE + 0x104) -#define MCHP_8042_KB_CTRL REG8(MCHP_8042_BASE + 0x108) -#define MCHP_8042_PCOBF REG8(MCHP_8042_BASE + 0x114) -#define MCHP_8042_ACT REG8(MCHP_8042_BASE + 0x330) +#define MCHP_8042_OBF_CLR REG8(MCHP_8042_BASE + 0x0) +#define MCHP_8042_H2E REG8(MCHP_8042_BASE + 0x100) +#define MCHP_8042_E2H REG8(MCHP_8042_BASE + 0x100) +#define MCHP_8042_STS REG8(MCHP_8042_BASE + 0x104) +#define MCHP_8042_KB_CTRL REG8(MCHP_8042_BASE + 0x108) +#define MCHP_8042_PCOBF REG8(MCHP_8042_BASE + 0x114) +#define MCHP_8042_ACT REG8(MCHP_8042_BASE + 0x330) /* PROCHOT */ -#define MCHP_PCHOT_CUM_CNT REG32(MCHP_PROCHOT_BASE + 0x00) -#define MCHP_PCHOT_DTY_CYC_CNT REG32(MCHP_PROCHOT_BASE + 0x04) -#define MCHP_PCHOT_DTY_PRD_CNT REG32(MCHP_PROCHOT_BASE + 0x08) -#define MCHP_PCHOT_STS_CTRL REG32(MCHP_PROCHOT_BASE + 0x0C) -#define MCHP_PCHOT_ASERT_CNT REG32(MCHP_PROCHOT_BASE + 0x10) -#define MCHP_PCHOT_ASERT_CNT_LMT REG32(MCHP_PROCHOT_BASE + 0x14) -#define MCHP_PCHOT_TEST REG32(MCHP_PROCHOT_BASE + 0x18) +#define MCHP_PCHOT_CUM_CNT REG32(MCHP_PROCHOT_BASE + 0x00) +#define MCHP_PCHOT_DTY_CYC_CNT REG32(MCHP_PROCHOT_BASE + 0x04) +#define MCHP_PCHOT_DTY_PRD_CNT REG32(MCHP_PROCHOT_BASE + 0x08) +#define MCHP_PCHOT_STS_CTRL REG32(MCHP_PROCHOT_BASE + 0x0C) +#define MCHP_PCHOT_ASERT_CNT REG32(MCHP_PROCHOT_BASE + 0x10) +#define MCHP_PCHOT_ASERT_CNT_LMT REG32(MCHP_PROCHOT_BASE + 0x14) +#define MCHP_PCHOT_TEST REG32(MCHP_PROCHOT_BASE + 0x18) /* I2C registers access given controller base address */ -#define MCHP_I2C_CTRL(addr) REG8(addr) -#define MCHP_I2C_STATUS(addr) REG8(addr) -#define MCHP_I2C_OWN_ADDR(addr) REG16(addr + 0x4) -#define MCHP_I2C_DATA(addr) REG8(addr + 0x8) -#define MCHP_I2C_MASTER_CMD(addr) REG32(addr + 0xc) -#define MCHP_I2C_SLAVE_CMD(addr) REG32(addr + 0x10) -#define MCHP_I2C_PEC(addr) REG8(addr + 0x14) -#define MCHP_I2C_DATA_TIM_2(addr) REG8(addr + 0x18) -#define MCHP_I2C_COMPLETE(addr) REG32(addr + 0x20) -#define MCHP_I2C_IDLE_SCALE(addr) REG32(addr + 0x24) -#define MCHP_I2C_CONFIG(addr) REG32(addr + 0x28) -#define MCHP_I2C_BUS_CLK(addr) REG16(addr + 0x2c) -#define MCHP_I2C_BLK_ID(addr) REG8(addr + 0x30) -#define MCHP_I2C_REV(addr) REG8(addr + 0x34) -#define MCHP_I2C_BB_CTRL(addr) REG8(addr + 0x38) -#define MCHP_I2C_TST_DATA_TIM(addr) REG32(addr + 0x3c) -#define MCHP_I2C_DATA_TIM(addr) REG32(addr + 0x40) -#define MCHP_I2C_TOUT_SCALE(addr) REG32(addr + 0x44) -#define MCHP_I2C_SLAVE_TX_BUF(addr) REG8(addr + 0x48) -#define MCHP_I2C_SLAVE_RX_BUF(addr) REG8(addr + 0x4c) -#define MCHP_I2C_MASTER_TX_BUF(addr) REG8(addr + 0x50) -#define MCHP_I2C_MASTER_RX_BUF(addr) REG8(addr + 0x54) -#define MCHP_I2C_TEST_1(addr) REG32(addr + 0x58) -#define MCHP_I2C_TEST_2(addr) REG32(addr + 0x5c) -#define MCHP_I2C_WAKE_STS(addr) REG8(addr + 0x60) -#define MCHP_I2C_WAKE_EN(addr) REG8(addr + 0x64) -#define MCHP_I2C_TEST_3(addr) REG32(addr + 0x68) +#define MCHP_I2C_CTRL(addr) REG8(addr) +#define MCHP_I2C_STATUS(addr) REG8(addr) +#define MCHP_I2C_OWN_ADDR(addr) REG16(addr + 0x4) +#define MCHP_I2C_DATA(addr) REG8(addr + 0x8) +#define MCHP_I2C_MASTER_CMD(addr) REG32(addr + 0xc) +#define MCHP_I2C_SLAVE_CMD(addr) REG32(addr + 0x10) +#define MCHP_I2C_PEC(addr) REG8(addr + 0x14) +#define MCHP_I2C_DATA_TIM_2(addr) REG8(addr + 0x18) +#define MCHP_I2C_COMPLETE(addr) REG32(addr + 0x20) +#define MCHP_I2C_IDLE_SCALE(addr) REG32(addr + 0x24) +#define MCHP_I2C_CONFIG(addr) REG32(addr + 0x28) +#define MCHP_I2C_BUS_CLK(addr) REG16(addr + 0x2c) +#define MCHP_I2C_BLK_ID(addr) REG8(addr + 0x30) +#define MCHP_I2C_REV(addr) REG8(addr + 0x34) +#define MCHP_I2C_BB_CTRL(addr) REG8(addr + 0x38) +#define MCHP_I2C_TST_DATA_TIM(addr) REG32(addr + 0x3c) +#define MCHP_I2C_DATA_TIM(addr) REG32(addr + 0x40) +#define MCHP_I2C_TOUT_SCALE(addr) REG32(addr + 0x44) +#define MCHP_I2C_SLAVE_TX_BUF(addr) REG8(addr + 0x48) +#define MCHP_I2C_SLAVE_RX_BUF(addr) REG8(addr + 0x4c) +#define MCHP_I2C_MASTER_TX_BUF(addr) REG8(addr + 0x50) +#define MCHP_I2C_MASTER_RX_BUF(addr) REG8(addr + 0x54) +#define MCHP_I2C_TEST_1(addr) REG32(addr + 0x58) +#define MCHP_I2C_TEST_2(addr) REG32(addr + 0x5c) +#define MCHP_I2C_WAKE_STS(addr) REG8(addr + 0x60) +#define MCHP_I2C_WAKE_EN(addr) REG8(addr + 0x64) +#define MCHP_I2C_TEST_3(addr) REG32(addr + 0x68) /* Keyboard scan matrix */ -#define MCHP_KS_KSO_SEL REG32(MCHP_KEYSCAN_BASE + 0x4) -#define MCHP_KS_KSI_INPUT REG32(MCHP_KEYSCAN_BASE + 0x8) -#define MCHP_KS_KSI_STATUS REG32(MCHP_KEYSCAN_BASE + 0xc) -#define MCHP_KS_KSI_INT_EN REG32(MCHP_KEYSCAN_BASE + 0x10) -#define MCHP_KS_EXT_CTRL REG32(MCHP_KEYSCAN_BASE + 0x14) +#define MCHP_KS_KSO_SEL REG32(MCHP_KEYSCAN_BASE + 0x4) +#define MCHP_KS_KSI_INPUT REG32(MCHP_KEYSCAN_BASE + 0x8) +#define MCHP_KS_KSI_STATUS REG32(MCHP_KEYSCAN_BASE + 0xc) +#define MCHP_KS_KSI_INT_EN REG32(MCHP_KEYSCAN_BASE + 0x10) +#define MCHP_KS_EXT_CTRL REG32(MCHP_KEYSCAN_BASE + 0x14) /* ADC */ -#define MCHP_ADC_CTRL REG32(MCHP_ADC_BASE + 0x0) -#define MCHP_ADC_DELAY REG32(MCHP_ADC_BASE + 0x4) -#define MCHP_ADC_STS REG32(MCHP_ADC_BASE + 0x8) -#define MCHP_ADC_SINGLE REG32(MCHP_ADC_BASE + 0xc) -#define MCHP_ADC_REPEAT REG32(MCHP_ADC_BASE + 0x10) -#define MCHP_ADC_READ(x) REG32(MCHP_ADC_BASE + 0x14 + ((x) * 0x4)) +#define MCHP_ADC_CTRL REG32(MCHP_ADC_BASE + 0x0) +#define MCHP_ADC_DELAY REG32(MCHP_ADC_BASE + 0x4) +#define MCHP_ADC_STS REG32(MCHP_ADC_BASE + 0x8) +#define MCHP_ADC_SINGLE REG32(MCHP_ADC_BASE + 0xc) +#define MCHP_ADC_REPEAT REG32(MCHP_ADC_BASE + 0x10) +#define MCHP_ADC_READ(x) REG32(MCHP_ADC_BASE + 0x14 + ((x)*0x4)) /* Hibernation timer */ -#define MCHP_HTIMER_PRELOAD(x) REG16(MCHP_HTIMER_ADDR(x) + 0x0) -#define MCHP_HTIMER_CONTROL(x) REG16(MCHP_HTIMER_ADDR(x) + 0x4) -#define MCHP_HTIMER_COUNT(x) REG16(MCHP_HTIMER_ADDR(x) + 0x8) +#define MCHP_HTIMER_PRELOAD(x) REG16(MCHP_HTIMER_ADDR(x) + 0x0) +#define MCHP_HTIMER_CONTROL(x) REG16(MCHP_HTIMER_ADDR(x) + 0x4) +#define MCHP_HTIMER_COUNT(x) REG16(MCHP_HTIMER_ADDR(x) + 0x8) /* Week timer and BGPO control */ -#define MCHP_WKTIMER_CTRL REG32(MCHP_WKTIMER_BASE + 0) -#define MCHP_WKTIMER_ALARM_CNT REG32(MCHP_WKTIMER_BASE + 0x04) -#define MCHP_WKTIMER_COMPARE REG32(MCHP_WKTIMER_BASE + 0x08) -#define MCHP_WKTIMER_CLK_DIV REG32(MCHP_WKTIMER_BASE + 0x0c) -#define MCHP_WKTIMER_SUBSEC_ISEL REG32(MCHP_WKTIMER_BASE + 0x10) -#define MCHP_WKTIMER_SUBWK_CTRL REG32(MCHP_WKTIMER_BASE + 0x14) -#define MCHP_WKTIMER_SUBWK_ALARM REG32(MCHP_WKTIMER_BASE + 0x18) -#define MCHP_WKTIMER_BGPO_DATA REG32(MCHP_WKTIMER_BASE + 0x1c) -#define MCHP_WKTIMER_BGPO_POWER REG32(MCHP_WKTIMER_BASE + 0x20) -#define MCHP_WKTIMER_BGPO_RESET REG32(MCHP_WKTIMER_BASE + 0x24) +#define MCHP_WKTIMER_CTRL REG32(MCHP_WKTIMER_BASE + 0) +#define MCHP_WKTIMER_ALARM_CNT REG32(MCHP_WKTIMER_BASE + 0x04) +#define MCHP_WKTIMER_COMPARE REG32(MCHP_WKTIMER_BASE + 0x08) +#define MCHP_WKTIMER_CLK_DIV REG32(MCHP_WKTIMER_BASE + 0x0c) +#define MCHP_WKTIMER_SUBSEC_ISEL REG32(MCHP_WKTIMER_BASE + 0x10) +#define MCHP_WKTIMER_SUBWK_CTRL REG32(MCHP_WKTIMER_BASE + 0x14) +#define MCHP_WKTIMER_SUBWK_ALARM REG32(MCHP_WKTIMER_BASE + 0x18) +#define MCHP_WKTIMER_BGPO_DATA REG32(MCHP_WKTIMER_BASE + 0x1c) +#define MCHP_WKTIMER_BGPO_POWER REG32(MCHP_WKTIMER_BASE + 0x20) +#define MCHP_WKTIMER_BGPO_RESET REG32(MCHP_WKTIMER_BASE + 0x24) /* Quad Master SPI (QMSPI) */ -#define MCHP_QMSPI0_MODE REG32(MCHP_QMSPI0_BASE + 0x00) -#define MCHP_QMSPI0_MODE_ACT_SRST REG8(MCHP_QMSPI0_BASE + 0x00) -#define MCHP_QMSPI0_MODE_SPI_MODE REG8(MCHP_QMSPI0_BASE + 0x01) -#define MCHP_QMSPI0_MODE_FDIV REG8(MCHP_QMSPI0_BASE + 0x02) -#define MCHP_QMSPI0_CTRL REG32(MCHP_QMSPI0_BASE + 0x04) -#define MCHP_QMSPI0_EXE REG8(MCHP_QMSPI0_BASE + 0x08) -#define MCHP_QMSPI0_IFCTRL REG8(MCHP_QMSPI0_BASE + 0x0C) -#define MCHP_QMSPI0_STS REG32(MCHP_QMSPI0_BASE + 0x10) -#define MCHP_QMSPI0_BUFCNT_STS REG32(MCHP_QMSPI0_BASE + 0x14) -#define MCHP_QMSPI0_IEN REG32(MCHP_QMSPI0_BASE + 0x18) -#define MCHP_QMSPI0_BUFCNT_TRIG REG32(MCHP_QMSPI0_BASE + 0x1C) -#define MCHP_QMSPI0_TX_FIFO_ADDR (MCHP_QMSPI0_BASE + 0x20) -#define MCHP_QMSPI0_TX_FIFO8 REG8(MCHP_QMSPI0_BASE + 0x20) -#define MCHP_QMSPI0_TX_FIFO16 REG16(MCHP_QMSPI0_BASE + 0x20) -#define MCHP_QMSPI0_TX_FIFO32 REG32(MCHP_QMSPI0_BASE + 0x20) -#define MCHP_QMSPI0_RX_FIFO_ADDR (MCHP_QMSPI0_BASE + 0x24) -#define MCHP_QMSPI0_RX_FIFO8 REG8(MCHP_QMSPI0_BASE + 0x24) -#define MCHP_QMSPI0_RX_FIFO16 REG16(MCHP_QMSPI0_BASE + 0x24) -#define MCHP_QMSPI0_RX_FIFO32 REG32(MCHP_QMSPI0_BASE + 0x24) -#define MCHP_QMSPI0_DESCR(x) \ - REG32(MCHP_QMSPI0_BASE + 0x30 + ((x) * 4)) +#define MCHP_QMSPI0_MODE REG32(MCHP_QMSPI0_BASE + 0x00) +#define MCHP_QMSPI0_MODE_ACT_SRST REG8(MCHP_QMSPI0_BASE + 0x00) +#define MCHP_QMSPI0_MODE_SPI_MODE REG8(MCHP_QMSPI0_BASE + 0x01) +#define MCHP_QMSPI0_MODE_FDIV REG8(MCHP_QMSPI0_BASE + 0x02) +#define MCHP_QMSPI0_CTRL REG32(MCHP_QMSPI0_BASE + 0x04) +#define MCHP_QMSPI0_EXE REG8(MCHP_QMSPI0_BASE + 0x08) +#define MCHP_QMSPI0_IFCTRL REG8(MCHP_QMSPI0_BASE + 0x0C) +#define MCHP_QMSPI0_STS REG32(MCHP_QMSPI0_BASE + 0x10) +#define MCHP_QMSPI0_BUFCNT_STS REG32(MCHP_QMSPI0_BASE + 0x14) +#define MCHP_QMSPI0_IEN REG32(MCHP_QMSPI0_BASE + 0x18) +#define MCHP_QMSPI0_BUFCNT_TRIG REG32(MCHP_QMSPI0_BASE + 0x1C) +#define MCHP_QMSPI0_TX_FIFO_ADDR (MCHP_QMSPI0_BASE + 0x20) +#define MCHP_QMSPI0_TX_FIFO8 REG8(MCHP_QMSPI0_BASE + 0x20) +#define MCHP_QMSPI0_TX_FIFO16 REG16(MCHP_QMSPI0_BASE + 0x20) +#define MCHP_QMSPI0_TX_FIFO32 REG32(MCHP_QMSPI0_BASE + 0x20) +#define MCHP_QMSPI0_RX_FIFO_ADDR (MCHP_QMSPI0_BASE + 0x24) +#define MCHP_QMSPI0_RX_FIFO8 REG8(MCHP_QMSPI0_BASE + 0x24) +#define MCHP_QMSPI0_RX_FIFO16 REG16(MCHP_QMSPI0_BASE + 0x24) +#define MCHP_QMSPI0_RX_FIFO32 REG32(MCHP_QMSPI0_BASE + 0x24) +#define MCHP_QMSPI0_DESCR(x) REG32(MCHP_QMSPI0_BASE + 0x30 + ((x)*4)) /* Bits in MCHP_QMSPI0_MODE */ -#define MCHP_QMSPI_M_ACTIVATE BIT(0) -#define MCHP_QMSPI_M_SOFT_RESET BIT(1) -#define MCHP_QMSPI_M_SPI_MODE_MASK (0x7ul << 8) -#define MCHP_QMSPI_M_SPI_MODE0 (0x0ul << 8) -#define MCHP_QMSPI_M_SPI_MODE3 (0x3ul << 8) -#define MCHP_QMSPI_M_SPI_MODE0_48M (0x4ul << 8) -#define MCHP_QMSPI_M_SPI_MODE3_48M (0x7ul << 8) +#define MCHP_QMSPI_M_ACTIVATE BIT(0) +#define MCHP_QMSPI_M_SOFT_RESET BIT(1) +#define MCHP_QMSPI_M_SPI_MODE_MASK (0x7ul << 8) +#define MCHP_QMSPI_M_SPI_MODE0 (0x0ul << 8) +#define MCHP_QMSPI_M_SPI_MODE3 (0x3ul << 8) +#define MCHP_QMSPI_M_SPI_MODE0_48M (0x4ul << 8) +#define MCHP_QMSPI_M_SPI_MODE3_48M (0x7ul << 8) /* * clock divider is 8-bit field in bits[23:16] * [1, 255] -> 48MHz / [1, 255], 0 -> 48MHz / 256 */ -#define MCHP_QMSPI_M_CLKDIV_BITPOS 16 -#define MCHP_QMSPI_M_CLKDIV_48M (1ul << 16) -#define MCHP_QMSPI_M_CLKDIV_24M (2ul << 16) -#define MCHP_QMSPI_M_CLKDIV_16M (3ul << 16) -#define MCHP_QMSPI_M_CLKDIV_12M (4ul << 16) -#define MCHP_QMSPI_M_CLKDIV_8M (6ul << 16) -#define MCHP_QMSPI_M_CLKDIV_6M (8ul << 16) -#define MCHP_QMSPI_M_CLKDIV_1M (48ul << 16) -#define MCHP_QMSPI_M_CLKDIV_188K (0x100ul << 16) +#define MCHP_QMSPI_M_CLKDIV_BITPOS 16 +#define MCHP_QMSPI_M_CLKDIV_48M (1ul << 16) +#define MCHP_QMSPI_M_CLKDIV_24M (2ul << 16) +#define MCHP_QMSPI_M_CLKDIV_16M (3ul << 16) +#define MCHP_QMSPI_M_CLKDIV_12M (4ul << 16) +#define MCHP_QMSPI_M_CLKDIV_8M (6ul << 16) +#define MCHP_QMSPI_M_CLKDIV_6M (8ul << 16) +#define MCHP_QMSPI_M_CLKDIV_1M (48ul << 16) +#define MCHP_QMSPI_M_CLKDIV_188K (0x100ul << 16) /* Bits in MCHP_QMSPI0_CTRL and MCHP_QMSPI_DESCR(x) */ -#define MCHP_QMSPI_C_1X (0ul << 0) /* Full Duplex */ -#define MCHP_QMSPI_C_2X (1ul << 0) /* Dual IO */ -#define MCHP_QMSPI_C_4X (2ul << 0) /* Quad IO */ -#define MCHP_QMSPI_C_TX_DIS (0ul << 2) -#define MCHP_QMSPI_C_TX_DATA (1ul << 2) -#define MCHP_QMSPI_C_TX_ZEROS (2ul << 2) -#define MCHP_QMSPI_C_TX_ONES (3ul << 2) -#define MCHP_QMSPI_C_TX_DMA_DIS (0ul << 4) -#define MCHP_QMSPI_C_TX_DMA_1B (1ul << 4) -#define MCHP_QMSPI_C_TX_DMA_2B (2ul << 4) -#define MCHP_QMSPI_C_TX_DMA_4B (3ul << 4) -#define MCHP_QMSPI_C_TX_DMA_MASK (3ul << 4) -#define MCHP_QMSPI_C_RX_DIS 0 -#define MCHP_QMSPI_C_RX_EN BIT(6) -#define MCHP_QMSPI_C_RX_DMA_DIS (0ul << 7) -#define MCHP_QMSPI_C_RX_DMA_1B (1ul << 7) -#define MCHP_QMSPI_C_RX_DMA_2B (2ul << 7) -#define MCHP_QMSPI_C_RX_DMA_4B (3ul << 7) -#define MCHP_QMSPI_C_RX_DMA_MASK (3ul << 7) -#define MCHP_QMSPI_C_NO_CLOSE 0 -#define MCHP_QMSPI_C_CLOSE BIT(9) -#define MCHP_QMSPI_C_XFRU_BITS (0ul << 10) -#define MCHP_QMSPI_C_XFRU_1B (1ul << 10) -#define MCHP_QMSPI_C_XFRU_4B (2ul << 10) -#define MCHP_QMSPI_C_XFRU_16B (3ul << 10) -#define MCHP_QMSPI_C_XFRU_MASK (3ul << 10) +#define MCHP_QMSPI_C_1X (0ul << 0) /* Full Duplex */ +#define MCHP_QMSPI_C_2X (1ul << 0) /* Dual IO */ +#define MCHP_QMSPI_C_4X (2ul << 0) /* Quad IO */ +#define MCHP_QMSPI_C_TX_DIS (0ul << 2) +#define MCHP_QMSPI_C_TX_DATA (1ul << 2) +#define MCHP_QMSPI_C_TX_ZEROS (2ul << 2) +#define MCHP_QMSPI_C_TX_ONES (3ul << 2) +#define MCHP_QMSPI_C_TX_DMA_DIS (0ul << 4) +#define MCHP_QMSPI_C_TX_DMA_1B (1ul << 4) +#define MCHP_QMSPI_C_TX_DMA_2B (2ul << 4) +#define MCHP_QMSPI_C_TX_DMA_4B (3ul << 4) +#define MCHP_QMSPI_C_TX_DMA_MASK (3ul << 4) +#define MCHP_QMSPI_C_RX_DIS 0 +#define MCHP_QMSPI_C_RX_EN BIT(6) +#define MCHP_QMSPI_C_RX_DMA_DIS (0ul << 7) +#define MCHP_QMSPI_C_RX_DMA_1B (1ul << 7) +#define MCHP_QMSPI_C_RX_DMA_2B (2ul << 7) +#define MCHP_QMSPI_C_RX_DMA_4B (3ul << 7) +#define MCHP_QMSPI_C_RX_DMA_MASK (3ul << 7) +#define MCHP_QMSPI_C_NO_CLOSE 0 +#define MCHP_QMSPI_C_CLOSE BIT(9) +#define MCHP_QMSPI_C_XFRU_BITS (0ul << 10) +#define MCHP_QMSPI_C_XFRU_1B (1ul << 10) +#define MCHP_QMSPI_C_XFRU_4B (2ul << 10) +#define MCHP_QMSPI_C_XFRU_16B (3ul << 10) +#define MCHP_QMSPI_C_XFRU_MASK (3ul << 10) /* Control */ -#define MCHP_QMSPI_C_START_DESCR_BITPOS 12 -#define MCHP_QMSPI_C_START_DESCR_MASK (0xFul << 12) -#define MCHP_QMSPI_C_DESCR_MODE_EN BIT(16) +#define MCHP_QMSPI_C_START_DESCR_BITPOS 12 +#define MCHP_QMSPI_C_START_DESCR_MASK (0xFul << 12) +#define MCHP_QMSPI_C_DESCR_MODE_EN BIT(16) /* Descriptors, indicates the current descriptor is the last */ -#define MCHP_QMSPI_C_NEXT_DESCR_BITPOS 12 -#define MCHP_QMSPI_C_NEXT_DESCR_MASK0 0xFul -#define MCHP_QMSPI_C_NEXT_DESCR_MASK \ - ((MCHP_QMSPI_C_NEXT_DESCR_MASK0) << 12) +#define MCHP_QMSPI_C_NEXT_DESCR_BITPOS 12 +#define MCHP_QMSPI_C_NEXT_DESCR_MASK0 0xFul +#define MCHP_QMSPI_C_NEXT_DESCR_MASK ((MCHP_QMSPI_C_NEXT_DESCR_MASK0) << 12) #define MCHP_QMSPI_C_NXTD(n) ((n) << 12) -#define MCHP_QMSPI_C_DESCR_LAST BIT(16) +#define MCHP_QMSPI_C_DESCR_LAST BIT(16) /* * Total transfer length is the count in this field * scaled by units in MCHP_QMSPI_CTRL_XFRU_xxxx */ -#define MCHP_QMSPI_C_NUM_UNITS_BITPOS 17 -#define MCHP_QMSPI_C_MAX_UNITS 0x7ffful -#define MCHP_QMSPI_C_NUM_UNITS_MASK0 0x7ffful -#define MCHP_QMSPI_C_NUM_UNITS_MASK \ - ((MCHP_QMSPI_C_NUM_UNITS_MASK0) << 17) +#define MCHP_QMSPI_C_NUM_UNITS_BITPOS 17 +#define MCHP_QMSPI_C_MAX_UNITS 0x7ffful +#define MCHP_QMSPI_C_NUM_UNITS_MASK0 0x7ffful +#define MCHP_QMSPI_C_NUM_UNITS_MASK ((MCHP_QMSPI_C_NUM_UNITS_MASK0) << 17) /* Bits in MCHP_QMSPI0_EXE */ -#define MCHP_QMSPI_EXE_START BIT(0) -#define MCHP_QMSPI_EXE_STOP BIT(1) -#define MCHP_QMSPI_EXE_CLR_FIFOS BIT(2) +#define MCHP_QMSPI_EXE_START BIT(0) +#define MCHP_QMSPI_EXE_STOP BIT(1) +#define MCHP_QMSPI_EXE_CLR_FIFOS BIT(2) /* MCHP QMSPI FIFO Sizes */ -#define MCHP_QMSPI_TX_FIFO_LEN 8 -#define MCHP_QMSPI_RX_FIFO_LEN 8 +#define MCHP_QMSPI_TX_FIFO_LEN 8 +#define MCHP_QMSPI_RX_FIFO_LEN 8 /* Bits in MCHP_QMSPI0_STS and MCHP_QMSPI0_IEN */ -#define MCHP_QMSPI_STS_DONE BIT(0) -#define MCHP_QMSPI_STS_DMA_DONE BIT(1) -#define MCHP_QMSPI_STS_TX_BUFF_ERR BIT(2) -#define MCHP_QMSPI_STS_RX_BUFF_ERR BIT(3) -#define MCHP_QMSPI_STS_PROG_ERR BIT(4) -#define MCHP_QMSPI_STS_TX_BUFF_FULL BIT(8) -#define MCHP_QMSPI_STS_TX_BUFF_EMPTY BIT(9) -#define MCHP_QMSPI_STS_TX_BUFF_REQ BIT(10) -#define MCHP_QMSPI_STS_TX_BUFF_STALL BIT(11) /* status only */ -#define MCHP_QMSPI_STS_RX_BUFF_FULL BIT(12) -#define MCHP_QMSPI_STS_RX_BUFF_EMPTY BIT(13) -#define MCHP_QMSPI_STS_RX_BUFF_REQ BIT(14) -#define MCHP_QMSPI_STS_RX_BUFF_STALL BIT(15) /* status only */ -#define MCHP_QMSPI_STS_ACTIVE BIT(16) /* status only */ +#define MCHP_QMSPI_STS_DONE BIT(0) +#define MCHP_QMSPI_STS_DMA_DONE BIT(1) +#define MCHP_QMSPI_STS_TX_BUFF_ERR BIT(2) +#define MCHP_QMSPI_STS_RX_BUFF_ERR BIT(3) +#define MCHP_QMSPI_STS_PROG_ERR BIT(4) +#define MCHP_QMSPI_STS_TX_BUFF_FULL BIT(8) +#define MCHP_QMSPI_STS_TX_BUFF_EMPTY BIT(9) +#define MCHP_QMSPI_STS_TX_BUFF_REQ BIT(10) +#define MCHP_QMSPI_STS_TX_BUFF_STALL BIT(11) /* status only */ +#define MCHP_QMSPI_STS_RX_BUFF_FULL BIT(12) +#define MCHP_QMSPI_STS_RX_BUFF_EMPTY BIT(13) +#define MCHP_QMSPI_STS_RX_BUFF_REQ BIT(14) +#define MCHP_QMSPI_STS_RX_BUFF_STALL BIT(15) /* status only */ +#define MCHP_QMSPI_STS_ACTIVE BIT(16) /* status only */ /* Bits in MCHP_QMSPI0_BUFCNT (read-only) */ -#define MCHP_QMSPI_BUFCNT_TX_BITPOS 0 -#define MCHP_QMSPI_BUFCNT_TX_MASK 0xFFFFul -#define MCHP_QMSPI_BUFCNT_RX_BITPOS 16 -#define MCHP_QMSPI_BUFCNT_RX_MASK (0xFFFFul << 16) -#define MCHP_QMSPI0_ID 0 +#define MCHP_QMSPI_BUFCNT_TX_BITPOS 0 +#define MCHP_QMSPI_BUFCNT_TX_MASK 0xFFFFul +#define MCHP_QMSPI_BUFCNT_RX_BITPOS 16 +#define MCHP_QMSPI_BUFCNT_RX_MASK (0xFFFFul << 16) +#define MCHP_QMSPI0_ID 0 /* eSPI */ /* eSPI IO Component */ /* Peripheral Channel Registers */ -#define MCHP_ESPI_PC_STATUS REG32(MCHP_ESPI_IO_BASE + 0x114) -#define MCHP_ESPI_PC_IEN REG32(MCHP_ESPI_IO_BASE + 0x118) -#define MCHP_ESPI_PC_BAR_INHIBIT_LO REG32(MCHP_ESPI_IO_BASE + 0x120) -#define MCHP_ESPI_PC_BAR_INHIBIT_HI REG32(MCHP_ESPI_IO_BASE + 0x124) -#define MCHP_ESPI_PC_BAR_INIT_LD_0C REG16(MCHP_ESPI_IO_BASE + 0x128) -#define MCHP_ESPI_PC_EC_IRQ REG8(MCHP_ESPI_IO_BASE + 0x12C) +#define MCHP_ESPI_PC_STATUS REG32(MCHP_ESPI_IO_BASE + 0x114) +#define MCHP_ESPI_PC_IEN REG32(MCHP_ESPI_IO_BASE + 0x118) +#define MCHP_ESPI_PC_BAR_INHIBIT_LO REG32(MCHP_ESPI_IO_BASE + 0x120) +#define MCHP_ESPI_PC_BAR_INHIBIT_HI REG32(MCHP_ESPI_IO_BASE + 0x124) +#define MCHP_ESPI_PC_BAR_INIT_LD_0C REG16(MCHP_ESPI_IO_BASE + 0x128) +#define MCHP_ESPI_PC_EC_IRQ REG8(MCHP_ESPI_IO_BASE + 0x12C) /* LTR Registers */ -#define MCHP_ESPI_IO_LTR_STATUS REG16(MCHP_ESPI_IO_BASE + 0x220) -#define MCHP_ESPI_IO_LTR_IEN REG8(MCHP_ESPI_IO_BASE + 0x224) -#define MCHP_ESPI_IO_LTR_CTRL REG16(MCHP_ESPI_IO_BASE + 0x228) -#define MCHP_ESPI_IO_LTR_MSG REG16(MCHP_ESPI_IO_BASE + 0x22C) +#define MCHP_ESPI_IO_LTR_STATUS REG16(MCHP_ESPI_IO_BASE + 0x220) +#define MCHP_ESPI_IO_LTR_IEN REG8(MCHP_ESPI_IO_BASE + 0x224) +#define MCHP_ESPI_IO_LTR_CTRL REG16(MCHP_ESPI_IO_BASE + 0x228) +#define MCHP_ESPI_IO_LTR_MSG REG16(MCHP_ESPI_IO_BASE + 0x22C) /* OOB Channel Registers */ -#define MCHP_ESPI_OOB_RX_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x240) -#define MCHP_ESPI_OOB_RX_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x244) -#define MCHP_ESPI_OOB_TX_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x248) -#define MCHP_ESPI_OOB_TX_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x24C) -#define MCHP_ESPI_OOB_RX_LEN REG32(MCHP_ESPI_IO_BASE + 0x250) -#define MCHP_ESPI_OOB_TX_LEN REG32(MCHP_ESPI_IO_BASE + 0x254) -#define MCHP_ESPI_OOB_RX_CTL REG32(MCHP_ESPI_IO_BASE + 0x258) -#define MCHP_ESPI_OOB_RX_IEN REG8(MCHP_ESPI_IO_BASE + 0x25C) -#define MCHP_ESPI_OOB_RX_STATUS REG32(MCHP_ESPI_IO_BASE + 0x260) -#define MCHP_ESPI_OOB_TX_CTL REG32(MCHP_ESPI_IO_BASE + 0x264) -#define MCHP_ESPI_OOB_TX_IEN REG8(MCHP_ESPI_IO_BASE + 0x268) -#define MCHP_ESPI_OOB_TX_STATUS REG32(MCHP_ESPI_IO_BASE + 0x26C) +#define MCHP_ESPI_OOB_RX_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x240) +#define MCHP_ESPI_OOB_RX_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x244) +#define MCHP_ESPI_OOB_TX_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x248) +#define MCHP_ESPI_OOB_TX_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x24C) +#define MCHP_ESPI_OOB_RX_LEN REG32(MCHP_ESPI_IO_BASE + 0x250) +#define MCHP_ESPI_OOB_TX_LEN REG32(MCHP_ESPI_IO_BASE + 0x254) +#define MCHP_ESPI_OOB_RX_CTL REG32(MCHP_ESPI_IO_BASE + 0x258) +#define MCHP_ESPI_OOB_RX_IEN REG8(MCHP_ESPI_IO_BASE + 0x25C) +#define MCHP_ESPI_OOB_RX_STATUS REG32(MCHP_ESPI_IO_BASE + 0x260) +#define MCHP_ESPI_OOB_TX_CTL REG32(MCHP_ESPI_IO_BASE + 0x264) +#define MCHP_ESPI_OOB_TX_IEN REG8(MCHP_ESPI_IO_BASE + 0x268) +#define MCHP_ESPI_OOB_TX_STATUS REG32(MCHP_ESPI_IO_BASE + 0x26C) /* Flash Channel Registers */ -#define MCHP_ESPI_FC_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x280) -#define MCHP_ESPI_FC_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x284) -#define MCHP_ESPI_FC_BUF_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x288) -#define MCHP_ESPI_FC_BUF_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x28C) -#define MCHP_ESPI_FC_XFR_LEN REG32(MCHP_ESPI_IO_BASE + 0x290) -#define MCHP_ESPI_FC_CTL REG32(MCHP_ESPI_IO_BASE + 0x294) -#define MCHP_ESPI_FC_IEN REG8(MCHP_ESPI_IO_BASE + 0x298) -#define MCHP_ESPI_FC_CONFIG REG32(MCHP_ESPI_IO_BASE + 0x29C) -#define MCHP_ESPI_FC_STATUS REG32(MCHP_ESPI_IO_BASE + 0x2A0) +#define MCHP_ESPI_FC_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x280) +#define MCHP_ESPI_FC_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x284) +#define MCHP_ESPI_FC_BUF_ADDR_LO REG32(MCHP_ESPI_IO_BASE + 0x288) +#define MCHP_ESPI_FC_BUF_ADDR_HI REG32(MCHP_ESPI_IO_BASE + 0x28C) +#define MCHP_ESPI_FC_XFR_LEN REG32(MCHP_ESPI_IO_BASE + 0x290) +#define MCHP_ESPI_FC_CTL REG32(MCHP_ESPI_IO_BASE + 0x294) +#define MCHP_ESPI_FC_IEN REG8(MCHP_ESPI_IO_BASE + 0x298) +#define MCHP_ESPI_FC_CONFIG REG32(MCHP_ESPI_IO_BASE + 0x29C) +#define MCHP_ESPI_FC_STATUS REG32(MCHP_ESPI_IO_BASE + 0x2A0) /* VWire Channel Registers */ -#define MCHP_ESPI_VW_STATUS REG8(MCHP_ESPI_IO_BASE + 0x2B0) +#define MCHP_ESPI_VW_STATUS REG8(MCHP_ESPI_IO_BASE + 0x2B0) /* Global Registers */ /* 32-bit register containing CAP_ID/CAP0/CAP1/PC_CAP */ -#define MCHP_ESPI_IO_REG32_A REG32(MCHP_ESPI_IO_BASE + 0x2E0) -#define MCHP_ESPI_IO_CAP_ID REG8(MCHP_ESPI_IO_BASE + 0x2E0) -#define MCHP_ESPI_IO_CAP0 REG8(MCHP_ESPI_IO_BASE + 0x2E1) -#define MCHP_ESPI_IO_CAP1 REG8(MCHP_ESPI_IO_BASE + 0x2E2) -#define MCHP_ESPI_IO_PC_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E3) +#define MCHP_ESPI_IO_REG32_A REG32(MCHP_ESPI_IO_BASE + 0x2E0) +#define MCHP_ESPI_IO_CAP_ID REG8(MCHP_ESPI_IO_BASE + 0x2E0) +#define MCHP_ESPI_IO_CAP0 REG8(MCHP_ESPI_IO_BASE + 0x2E1) +#define MCHP_ESPI_IO_CAP1 REG8(MCHP_ESPI_IO_BASE + 0x2E2) +#define MCHP_ESPI_IO_PC_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E3) /* 32-bit register containing VW_CAP/OOB_CAP/FC_CAP/PC_READY */ -#define MCHP_ESPI_IO_REG32_B REG32(MCHP_ESPI_IO_BASE + 0x2E4) -#define MCHP_ESPI_IO_VW_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E4) -#define MCHP_ESPI_IO_OOB_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E5) -#define MCHP_ESPI_IO_FC_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E6) -#define MCHP_ESPI_IO_PC_READY REG8(MCHP_ESPI_IO_BASE + 0x2E7) +#define MCHP_ESPI_IO_REG32_B REG32(MCHP_ESPI_IO_BASE + 0x2E4) +#define MCHP_ESPI_IO_VW_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E4) +#define MCHP_ESPI_IO_OOB_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E5) +#define MCHP_ESPI_IO_FC_CAP REG8(MCHP_ESPI_IO_BASE + 0x2E6) +#define MCHP_ESPI_IO_PC_READY REG8(MCHP_ESPI_IO_BASE + 0x2E7) /* 32-bit register containing OOB_READY/FC_READY/RESET_STATUS/RESET_IEN */ -#define MCHP_ESPI_IO_REG32_C REG32(MCHP_ESPI_IO_BASE + 0x2E8) -#define MCHP_ESPI_IO_OOB_READY REG8(MCHP_ESPI_IO_BASE + 0x2E8) -#define MCHP_ESPI_IO_FC_READY REG8(MCHP_ESPI_IO_BASE + 0x2E9) -#define MCHP_ESPI_IO_RESET_STATUS REG8(MCHP_ESPI_IO_BASE + 0x2EA) -#define MCHP_ESPI_IO_RESET_IEN REG8(MCHP_ESPI_IO_BASE + 0x2EB) +#define MCHP_ESPI_IO_REG32_C REG32(MCHP_ESPI_IO_BASE + 0x2E8) +#define MCHP_ESPI_IO_OOB_READY REG8(MCHP_ESPI_IO_BASE + 0x2E8) +#define MCHP_ESPI_IO_FC_READY REG8(MCHP_ESPI_IO_BASE + 0x2E9) +#define MCHP_ESPI_IO_RESET_STATUS REG8(MCHP_ESPI_IO_BASE + 0x2EA) +#define MCHP_ESPI_IO_RESET_IEN REG8(MCHP_ESPI_IO_BASE + 0x2EB) /* 32-bit register containing PLTRST_SRC/VW_READY */ -#define MCHP_ESPI_IO_REG32_D REG32(MCHP_ESPI_IO_BASE + 0x2EC) -#define MCHP_ESPI_IO_PLTRST_SRC REG8(MCHP_ESPI_IO_BASE + 0x2EC) -#define MCHP_ESPI_IO_VW_READY REG8(MCHP_ESPI_IO_BASE + 0x2ED) +#define MCHP_ESPI_IO_REG32_D REG32(MCHP_ESPI_IO_BASE + 0x2EC) +#define MCHP_ESPI_IO_PLTRST_SRC REG8(MCHP_ESPI_IO_BASE + 0x2EC) +#define MCHP_ESPI_IO_VW_READY REG8(MCHP_ESPI_IO_BASE + 0x2ED) /* Bits in MCHP_ESPI_IO_CAP0 */ -#define MCHP_ESPI_CAP0_PC_SUPP 0x01 -#define MCHP_ESPI_CAP0_VW_SUPP 0x02 -#define MCHP_ESPI_CAP0_OOB_SUPP 0x04 -#define MCHP_ESPI_CAP0_FC_SUPP 0x08 -#define MCHP_ESPI_CAP0_ALL_CHAN_SUPP (MCHP_ESPI_CAP0_PC_SUPP | \ - MCHP_ESPI_CAP0_VW_SUPP | \ - MCHP_ESPI_CAP0_OOB_SUPP | \ - MCHP_ESPI_CAP0_FC_SUPP) +#define MCHP_ESPI_CAP0_PC_SUPP 0x01 +#define MCHP_ESPI_CAP0_VW_SUPP 0x02 +#define MCHP_ESPI_CAP0_OOB_SUPP 0x04 +#define MCHP_ESPI_CAP0_FC_SUPP 0x08 +#define MCHP_ESPI_CAP0_ALL_CHAN_SUPP \ + (MCHP_ESPI_CAP0_PC_SUPP | MCHP_ESPI_CAP0_VW_SUPP | \ + MCHP_ESPI_CAP0_OOB_SUPP | MCHP_ESPI_CAP0_FC_SUPP) /* Bits in MCHP_ESPI_IO_CAP1 */ -#define MCHP_ESPI_CAP1_RW_MASK 0x37 -#define MCHP_ESPI_CAP1_MAX_FREQ_MASK 0x07 -#define MCHP_ESPI_CAP1_MAX_FREQ_20M 0 -#define MCHP_ESPI_CAP1_MAX_FREQ_25M 1 -#define MCHP_ESPI_CAP1_MAX_FREQ_33M 2 -#define MCHP_ESPI_CAP1_MAX_FREQ_50M 3 -#define MCHP_ESPI_CAP1_MAX_FREQ_66M 4 -#define MCHP_ESPI_CAP1_SINGLE_MODE 0 -#define MCHP_ESPI_CAP1_SINGLE_DUAL_MODE BIT(0) -#define MCHP_ESPI_CAP1_SINGLE_QUAD_MODE BIT(1) -#define MCHP_ESPI_CAP1_ALL_MODE (MCHP_ESPI_CAP1_SINGLE_MODE | \ - MCHP_ESPI_CAP1_SINGLE_DUAL_MODE | \ - MCHP_ESPI_CAP1_SINGLE_QUAD_MODE) -#define MCHP_ESPI_CAP1_IO_BITPOS 4 -#define MCHP_ESPI_CAP1_IO_MASK0 0x03 -#define MCHP_ESPI_CAP1_IO_MASK (0x03ul << MCHP_ESPI_CAP1_IO_BITPOS) -#define MCHP_ESPI_CAP1_IO1_VAL 0x00 -#define MCHP_ESPI_CAP1_IO12_VAL 0x01 -#define MCHP_ESPI_CAP1_IO24_VAL 0x02 -#define MCHP_ESPI_CAP1_IO124_VAL 0x03 -#define MCHP_ESPI_CAP1_IO1 (0x00 << 4) -#define MCHP_ESPI_CAP1_IO12 (0x01 << 4) -#define MCHP_ESPI_CAP1_IO24 (0x02 << 4) -#define MCHP_ESPI_CAP1_IO124 (0x03 << 4) +#define MCHP_ESPI_CAP1_RW_MASK 0x37 +#define MCHP_ESPI_CAP1_MAX_FREQ_MASK 0x07 +#define MCHP_ESPI_CAP1_MAX_FREQ_20M 0 +#define MCHP_ESPI_CAP1_MAX_FREQ_25M 1 +#define MCHP_ESPI_CAP1_MAX_FREQ_33M 2 +#define MCHP_ESPI_CAP1_MAX_FREQ_50M 3 +#define MCHP_ESPI_CAP1_MAX_FREQ_66M 4 +#define MCHP_ESPI_CAP1_SINGLE_MODE 0 +#define MCHP_ESPI_CAP1_SINGLE_DUAL_MODE BIT(0) +#define MCHP_ESPI_CAP1_SINGLE_QUAD_MODE BIT(1) +#define MCHP_ESPI_CAP1_ALL_MODE \ + (MCHP_ESPI_CAP1_SINGLE_MODE | MCHP_ESPI_CAP1_SINGLE_DUAL_MODE | \ + MCHP_ESPI_CAP1_SINGLE_QUAD_MODE) +#define MCHP_ESPI_CAP1_IO_BITPOS 4 +#define MCHP_ESPI_CAP1_IO_MASK0 0x03 +#define MCHP_ESPI_CAP1_IO_MASK (0x03ul << MCHP_ESPI_CAP1_IO_BITPOS) +#define MCHP_ESPI_CAP1_IO1_VAL 0x00 +#define MCHP_ESPI_CAP1_IO12_VAL 0x01 +#define MCHP_ESPI_CAP1_IO24_VAL 0x02 +#define MCHP_ESPI_CAP1_IO124_VAL 0x03 +#define MCHP_ESPI_CAP1_IO1 (0x00 << 4) +#define MCHP_ESPI_CAP1_IO12 (0x01 << 4) +#define MCHP_ESPI_CAP1_IO24 (0x02 << 4) +#define MCHP_ESPI_CAP1_IO124 (0x03 << 4) /* Bits in MCHP_ESPI_IO_RESET_STATUS and MCHP_ESPI_IO_RESET_IEN */ -#define MCHP_ESPI_RST_PIN_MASK BIT(1) -#define MCHP_ESPI_RST_CHG_STS BIT(0) -#define MCHP_ESPI_RST_IEN BIT(0) +#define MCHP_ESPI_RST_PIN_MASK BIT(1) +#define MCHP_ESPI_RST_CHG_STS BIT(0) +#define MCHP_ESPI_RST_IEN BIT(0) /* Bits in MCHP_ESPI_IO_PLTRST_SRC */ -#define MCHP_ESPI_PLTRST_SRC_VW 0 -#define MCHP_ESPI_PLTRST_SRC_PIN 1 +#define MCHP_ESPI_PLTRST_SRC_VW 0 +#define MCHP_ESPI_PLTRST_SRC_PIN 1 /* * eSPI Slave Activate Register * bit[0] = 0 de-active block is clock-gates * bit[0] = 1 block is powered and functional */ -#define MCHP_ESPI_ACTIVATE REG8(MCHP_ESPI_IO_BASE + 0x330) +#define MCHP_ESPI_ACTIVATE REG8(MCHP_ESPI_IO_BASE + 0x330) /* * IO BAR's starting at offset 0x134 * b[16]=virtualized R/W @@ -554,30 +549,24 @@ * b[13:8]=Logical Device Number RO * b[7:0]=mask */ -#define MCHP_ESPI_IO_BAR_CTL(x) \ - REG32(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x134) +#define MCHP_ESPI_IO_BAR_CTL(x) REG32(MCHP_ESPI_IO_BASE + ((x)*4) + 0x134) /* access mask field of eSPI IO BAR Control register */ -#define MCHP_ESPI_IO_BAR_CTL_MASK(x) \ - REG8(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x134) +#define MCHP_ESPI_IO_BAR_CTL_MASK(x) REG8(MCHP_ESPI_IO_BASE + ((x)*4) + 0x134) /* * IO BAR's starting at offset 0x334 * b[31:16] = I/O address * b[15:1]=0 reserved * b[0] = valid */ -#define MCHP_ESPI_IO_BAR(x) REG32(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x334) -#define MCHP_ESPI_IO_BAR_VALID(x) \ - REG8(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x334) -#define MCHP_ESPI_IO_BAR_ADDR_LSB(x) \ - REG8(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x336) -#define MCHP_ESPI_IO_BAR_ADDR_MSB(x) \ - REG8(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x337) -#define MCHP_ESPI_IO_BAR_ADDR(x) \ - REG16(MCHP_ESPI_IO_BASE + ((x) * 4) + 0x336) +#define MCHP_ESPI_IO_BAR(x) REG32(MCHP_ESPI_IO_BASE + ((x)*4) + 0x334) +#define MCHP_ESPI_IO_BAR_VALID(x) REG8(MCHP_ESPI_IO_BASE + ((x)*4) + 0x334) +#define MCHP_ESPI_IO_BAR_ADDR_LSB(x) REG8(MCHP_ESPI_IO_BASE + ((x)*4) + 0x336) +#define MCHP_ESPI_IO_BAR_ADDR_MSB(x) REG8(MCHP_ESPI_IO_BASE + ((x)*4) + 0x337) +#define MCHP_ESPI_IO_BAR_ADDR(x) REG16(MCHP_ESPI_IO_BASE + ((x)*4) + 0x336) /* eSPI Serial IRQ registers */ -#define MCHP_ESPI_IO_SERIRQ_REG(x) REG8(MCHP_ESPI_IO_BASE + 0x3ac + (x)) +#define MCHP_ESPI_IO_SERIRQ_REG(x) REG8(MCHP_ESPI_IO_BASE + 0x3ac + (x)) /* eSPI Virtual Wire Error Register */ -#define MCHP_ESPI_IO_VW_ERROR REG8(MCHP_ESPI_IO_BASE + 0x3f0) +#define MCHP_ESPI_IO_VW_ERROR REG8(MCHP_ESPI_IO_BASE + 0x3f0) /* * eSPI Logical Device Memory Host BAR's to specify Host memory * base address and valid bit. @@ -586,16 +575,15 @@ * b[15:1]=0(reserved) * b[79:16]=eSPI bus memory address(Host address space) */ -#define MCHP_ESPI_MBAR_VALID(x) \ - REG8(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x130) +#define MCHP_ESPI_MBAR_VALID(x) REG8(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x130) #define MCHP_ESPI_MBAR_HOST_ADDR_0_15(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x132) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x132) #define MCHP_ESPI_MBAR_HOST_ADDR_16_31(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x134) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x134) #define MCHP_ESPI_MBAR_HOST_ADDR_32_47(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x136) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x136) #define MCHP_ESPI_MBAR_HOST_ADDR_48_63(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x138) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x138) /* * eSPI SRAM BAR's * b[0,3,8:15] = 0 reserved @@ -603,28 +591,27 @@ * b[7:4] = size * b[79:16] = Host address */ -#define MCHP_ESPI_SRAM_BAR_CFG(x) \ - REG8(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x1ac) +#define MCHP_ESPI_SRAM_BAR_CFG(x) REG8(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x1ac) #define MCHP_ESPI_SRAM_BAR_ADDR_0_15(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x1ae) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x1ae) #define MCHP_ESPI_SRAM_BAR_ADDR_16_31(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x1b0) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x1b0) #define MCHP_ESPI_SRAM_BAR_ADDR_32_47(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x1b2) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x1b2) #define MCHP_ESPI_SRAM_BAR_ADDR_48_63(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x1b4) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x1b4) /* eSPI Memory Bus Master Registers */ -#define MCHP_ESPI_BM_STATUS REG32(MCHP_ESPI_MEM_BASE + 0x200) -#define MCHP_ESPI_BM_IEN REG32(MCHP_ESPI_MEM_BASE + 0x204) -#define MCHP_ESPI_BM_CONFIG REG32(MCHP_ESPI_MEM_BASE + 0x208) -#define MCHP_ESPI_BM1_CTL REG32(MCHP_ESPI_MEM_BASE + 0x210) -#define MCHP_ESPI_BM1_HOST_ADDR_LO REG32(MCHP_ESPI_MEM_BASE + 0x214) -#define MCHP_ESPI_BM1_HOST_ADDR_HI REG32(MCHP_ESPI_MEM_BASE + 0x218) -#define MCHP_ESPI_BM1_EC_ADDR REG32(MCHP_ESPI_MEM_BASE + 0x21c) -#define MCHP_ESPI_BM2_CTL REG32(MCHP_ESPI_MEM_BASE + 0x224) -#define MCHP_ESPI_BM2_HOST_ADDR_LO REG32(MCHP_ESPI_MEM_BASE + 0x228) -#define MCHP_ESPI_BM2_HOST_ADDR_HI REG32(MCHP_ESPI_MEM_BASE + 0x22c) -#define MCHP_ESPI_BM2_EC_ADDR REG32(MCHP_ESPI_MEM_BASE + 0x230) +#define MCHP_ESPI_BM_STATUS REG32(MCHP_ESPI_MEM_BASE + 0x200) +#define MCHP_ESPI_BM_IEN REG32(MCHP_ESPI_MEM_BASE + 0x204) +#define MCHP_ESPI_BM_CONFIG REG32(MCHP_ESPI_MEM_BASE + 0x208) +#define MCHP_ESPI_BM1_CTL REG32(MCHP_ESPI_MEM_BASE + 0x210) +#define MCHP_ESPI_BM1_HOST_ADDR_LO REG32(MCHP_ESPI_MEM_BASE + 0x214) +#define MCHP_ESPI_BM1_HOST_ADDR_HI REG32(MCHP_ESPI_MEM_BASE + 0x218) +#define MCHP_ESPI_BM1_EC_ADDR REG32(MCHP_ESPI_MEM_BASE + 0x21c) +#define MCHP_ESPI_BM2_CTL REG32(MCHP_ESPI_MEM_BASE + 0x224) +#define MCHP_ESPI_BM2_HOST_ADDR_LO REG32(MCHP_ESPI_MEM_BASE + 0x228) +#define MCHP_ESPI_BM2_HOST_ADDR_HI REG32(MCHP_ESPI_MEM_BASE + 0x22c) +#define MCHP_ESPI_BM2_EC_ADDR REG32(MCHP_ESPI_MEM_BASE + 0x230) /* * eSPI Memory BAR's for Logical Devices * b[0] = Valid @@ -637,30 +624,29 @@ * * BAR's start at offset 0x330 */ -#define MCHP_ESPI_MBAR_EC_VSIZE(x) \ - REG32(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x330) +#define MCHP_ESPI_MBAR_EC_VSIZE(x) REG32(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x330) #define MCHP_ESPI_MBAR_EC_ADDR_0_15(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x332) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x332) #define MCHP_ESPI_MBAR_EC_ADDR_16_31(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x334) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x334) #define MCHP_ESPI_MBAR_EC_ADDR_32_47(x) \ - REG16(MCHP_ESPI_MEM_BASE + ((x) * 10) + 0x336) + REG16(MCHP_ESPI_MEM_BASE + ((x)*10) + 0x336) /* eSPI Virtual Wire registers */ -#define MCHP_ESPI_MSVW_LEN 12 -#define MCHP_ESPI_SMVW_LEN 8 +#define MCHP_ESPI_MSVW_LEN 12 +#define MCHP_ESPI_SMVW_LEN 8 #define MCHP_ESPI_MSVW_ADDR(n) \ ((MCHP_ESPI_MSVW_BASE) + ((n) * (MCHP_ESPI_MSVW_LEN))) #define MCHP_ESPI_MSVW_MTOS_BITPOS 4 -#define MCHP_ESPI_MSVW_IRQSEL_LEVEL_LO 0 -#define MCHP_ESPI_MSVW_IRQSEL_LEVEL_HI 1 -#define MCHP_ESPI_MSVW_IRQSEL_DISABLED 4 -#define MCHP_ESPI_MSVW_IRQSEL_RISING 0x0d -#define MCHP_ESPI_MSVW_IRQSEL_FALLING 0x0e -#define MCHP_ESPI_MSVW_IRQSEL_BOTH_EDGES 0x0f +#define MCHP_ESPI_MSVW_IRQSEL_LEVEL_LO 0 +#define MCHP_ESPI_MSVW_IRQSEL_LEVEL_HI 1 +#define MCHP_ESPI_MSVW_IRQSEL_DISABLED 4 +#define MCHP_ESPI_MSVW_IRQSEL_RISING 0x0d +#define MCHP_ESPI_MSVW_IRQSEL_FALLING 0x0e +#define MCHP_ESPI_MSVW_IRQSEL_BOTH_EDGES 0x0f /* * Mapping of eSPI Master Host VWire group indices to @@ -668,73 +654,60 @@ * MSVW_xy where xy = PCH VWire number. * Each PCH VWire number controls 4 virtual wires. */ -#define MSVW_H02 0 -#define MSVW_H03 1 -#define MSVW_H07 2 -#define MSVW_H41 3 -#define MSVW_H42 4 -#define MSVW_H43 5 -#define MSVW_H44 6 -#define MSVW_H47 7 -#define MSVW_H4A 8 -#define MSVW_HSPARE0 9 -#define MSVW_HSPARE1 10 -#define MSVW_MAX 11 +#define MSVW_H02 0 +#define MSVW_H03 1 +#define MSVW_H07 2 +#define MSVW_H41 3 +#define MSVW_H42 4 +#define MSVW_H43 5 +#define MSVW_H44 6 +#define MSVW_H47 7 +#define MSVW_H4A 8 +#define MSVW_HSPARE0 9 +#define MSVW_HSPARE1 10 +#define MSVW_MAX 11 /* Access 32-bit word in 96-bit MSVW register. 0 <= w <= 2 */ -#define MSVW(id, w) \ - REG32(MCHP_ESPI_MSVW_BASE + ((id) * 12) + (((w) & 0x03) * 4)) +#define MSVW(id, w) REG32(MCHP_ESPI_MSVW_BASE + ((id)*12) + (((w)&0x03) * 4)) /* Access index value in byte 0 */ -#define MCHP_ESPI_VW_M2S_INDEX(id) REG8(MCHP_ESPI_VW_BASE + ((id) * 12)) +#define MCHP_ESPI_VW_M2S_INDEX(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12)) /* * Access MTOS_SOURCE and MTOS_STATE in byte 1 * MTOS_SOURCE = b[1:0] specifies reset source * MTOS_STATE = b[7:4] are states loaded into SRC[0:3] on reset event */ -#define MCHP_ESPI_VW_M2S_MTOS(id) \ - REG8(MCHP_ESPI_VW_BASE + 1 + ((id) * 12)) +#define MCHP_ESPI_VW_M2S_MTOS(id) REG8(MCHP_ESPI_VW_BASE + 1 + ((id)*12)) /* * Access Index, MTOS Source, and MTOS State as 16-bit quantity. * Index in b[7:0] * MTOS Source in b[9:8] * MTOS State in b[15:12] */ -#define MCHP_ESPI_VW_M2S_INDEX_MTOS(id) \ - REG16(MCHP_ESPI_VW_BASE + ((id) * 12)) +#define MCHP_ESPI_VW_M2S_INDEX_MTOS(id) REG16(MCHP_ESPI_VW_BASE + ((id)*12)) /* Access SRCn IRQ Select bit fields */ -#define MCHP_ESPI_VW_M2S_IRQSEL0(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 4) -#define MCHP_ESPI_VW_M2S_IRQSEL1(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 5) -#define MCHP_ESPI_VW_M2S_IRQSEL2(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 6) -#define MCHP_ESPI_VW_M2S_IRQSEL3(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 7) +#define MCHP_ESPI_VW_M2S_IRQSEL0(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 4) +#define MCHP_ESPI_VW_M2S_IRQSEL1(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 5) +#define MCHP_ESPI_VW_M2S_IRQSEL2(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 6) +#define MCHP_ESPI_VW_M2S_IRQSEL3(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 7) #define MCHP_ESPI_VW_M2S_IRQSEL(id, src) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 4 + ((src) & 0x03)) -#define MCHP_ESPI_VW_M2S_IRQSEL_ALL(id) \ - REG32(MCHP_ESPI_VW_BASE + ((id) * 12) + 4) + REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 4 + ((src)&0x03)) +#define MCHP_ESPI_VW_M2S_IRQSEL_ALL(id) REG32(MCHP_ESPI_VW_BASE + ((id)*12) + 4) /* Access individual source bits */ -#define MCHP_ESPI_VW_M2S_SRC0(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 8) -#define MCHP_ESPI_VW_M2S_SRC1(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 9) -#define MCHP_ESPI_VW_M2S_SRC2(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 10) -#define MCHP_ESPI_VW_M2S_SRC3(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 12) + 11) +#define MCHP_ESPI_VW_M2S_SRC0(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 8) +#define MCHP_ESPI_VW_M2S_SRC1(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 9) +#define MCHP_ESPI_VW_M2S_SRC2(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 10) +#define MCHP_ESPI_VW_M2S_SRC3(id) REG8(MCHP_ESPI_VW_BASE + ((id)*12) + 11) /* * Access all four Source bits as 32-bit value, Source bits are located * at bits[0, 8, 16, 24] of 32-bit word. */ -#define MCHP_ESPI_VW_M2S_SRC_ALL(id) \ - REG32(MCHP_ESPI_VW_BASE + 8 + ((id) * 12)) +#define MCHP_ESPI_VW_M2S_SRC_ALL(id) REG32(MCHP_ESPI_VW_BASE + 8 + ((id)*12)) /* * Access an individual Source bit as byte where * bit[0] contains the source bit. */ #define MCHP_ESPI_VW_M2S_SRC(id, src) \ - REG8(MCHP_ESPI_VW_BASE + 8 + ((id) * 8) + ((src) & 0x03)) + REG8(MCHP_ESPI_VW_BASE + 8 + ((id)*8) + ((src)&0x03)) /* * Indices of Slave to Master Virtual Wire registers. @@ -745,124 +718,114 @@ * MCHP maps Host indices into its Slave to Master * 64-bit registers. */ -#define SMVW_H04 0 -#define SMVW_H05 1 -#define SMVW_H06 2 -#define SMVW_H40 3 -#define SMVW_H45 4 -#define SMVW_H46 5 -#define SMVW_HSPARE6 6 -#define SMVW_HSPARE7 7 -#define SMVW_HSPARE8 8 -#define SMVW_HSPARE9 9 -#define SMVW_HSPARE10 10 -#define SMVW_MAX 11 +#define SMVW_H04 0 +#define SMVW_H05 1 +#define SMVW_H06 2 +#define SMVW_H40 3 +#define SMVW_H45 4 +#define SMVW_H46 5 +#define SMVW_HSPARE6 6 +#define SMVW_HSPARE7 7 +#define SMVW_HSPARE8 8 +#define SMVW_HSPARE9 9 +#define SMVW_HSPARE10 10 +#define SMVW_MAX 11 /* Access 32-bit word of 64-bit SMVW register, 0 <= w <= 1 */ #define SMVW(id, w) \ - REG32(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x200 + (((w) & 0x01) * 4)) + REG32(MCHP_ESPI_VW_BASE + ((id)*8) + 0x200 + (((w)&0x01) * 4)) /* Access Index in b[7:0] of byte 0 */ -#define MCHP_ESPI_VW_S2M_INDEX(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x200) +#define MCHP_ESPI_VW_S2M_INDEX(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x200) /* Access STOM_SOURCE and STOM_STATE in byte 1 * STOM_SOURCE = b[1:0] * STOM_STATE = b[7:4] */ -#define MCHP_ESPI_VW_S2M_STOM(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x201) +#define MCHP_ESPI_VW_S2M_STOM(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x201) /* Access Index, STOM_SOURCE, and STOM_STATE in bytes[1:0] * Index = b[7:0] * STOM_SOURCE = b[9:8] * STOM_STATE = [15:12] */ #define MCHP_ESPI_VW_S2M_INDEX_STOM(id) \ - REG16(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x200) + REG16(MCHP_ESPI_VW_BASE + ((id)*8) + 0x200) /* Access Change[0:3] RO bits. Set to 1 if any of SRC[0:3] change */ -#define MCHP_ESPI_VW_S2M_CHANGE(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x202) +#define MCHP_ESPI_VW_S2M_CHANGE(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x202) /* Access individual SRC bits * bit[0] = SRCn */ -#define MCHP_ESPI_VW_S2M_SRC0(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x204) -#define MCHP_ESPI_VW_S2M_SRC1(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x205) -#define MCHP_ESPI_VW_S2M_SRC2(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x206) -#define MCHP_ESPI_VW_S2M_SRC3(id) \ - REG8(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x207) +#define MCHP_ESPI_VW_S2M_SRC0(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x204) +#define MCHP_ESPI_VW_S2M_SRC1(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x205) +#define MCHP_ESPI_VW_S2M_SRC2(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x206) +#define MCHP_ESPI_VW_S2M_SRC3(id) REG8(MCHP_ESPI_VW_BASE + ((id)*8) + 0x207) /* * Access specified source bit as byte read/write. * Source bit is in bit[0] of byte. */ #define MCHP_ESPI_VW_S2M_SRC(id, src) \ - REG8(MCHP_ESPI_VW_BASE + 0x204 + ((id) * 8) + ((src) & 0x03)) + REG8(MCHP_ESPI_VW_BASE + 0x204 + ((id)*8) + ((src)&0x03)) /* Access SRC[0:3] as 32-bit word * SRC0 = b[0] * SRC1 = b[8] * SRC2 = b[16] * SRC3 = b[24] */ -#define MCHP_ESPI_VW_S2M_SRC_ALL(id) \ - REG32(MCHP_ESPI_VW_BASE + ((id) * 8) + 0x204) +#define MCHP_ESPI_VW_S2M_SRC_ALL(id) REG32(MCHP_ESPI_VW_BASE + ((id)*8) + 0x204) /* DMA */ #define MCHP_DMA_MAIN_CTRL REG8(MCHP_DMA_BASE + 0x00) #define MCHP_DMA_MAIN_PKT_RO REG32(MCHP_DMA_BASE + 0x04) #define MCHP_DMA_MAIN_FSM_RO REG8(MCHP_DMA_BASE + 0x08) /* DMA Channel Registers */ -#define MCHP_DMA_CH_ACT(n) REG8(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS)) +#define MCHP_DMA_CH_ACT(n) REG8(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS)) #define MCHP_DMA_CH_MEM_START(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x04) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x04) #define MCHP_DMA_CH_MEM_END(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x08) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x08) #define MCHP_DMA_CH_DEV_ADDR(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x0c) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x0c) #define MCHP_DMA_CH_CTRL(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x10) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x10) #define MCHP_DMA_CH_ISTS(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x14) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x14) #define MCHP_DMA_CH_IEN(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x18) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x18) #define MCHP_DMA_CH_FSM_RO(n) \ - REG32(MCHP_DMA_CH_BASE + ((n) * MCHP_DMA_CH_OFS) + 0x1c) + REG32(MCHP_DMA_CH_BASE + ((n)*MCHP_DMA_CH_OFS) + 0x1c) /* * DMA Channel 0 implements CRC-32 feature */ -#define MCHP_DMA_CH0_CRC32_EN REG8(MCHP_DMA_CH_BASE + 0x20) -#define MCHP_DMA_CH0_CRC32_DATA REG32(MCHP_DMA_CH_BASE + 0x24) -#define MCHP_DMA_CH0_CRC32_POST_STS REG8(MCHP_DMA_CH_BASE + 0x28) +#define MCHP_DMA_CH0_CRC32_EN REG8(MCHP_DMA_CH_BASE + 0x20) +#define MCHP_DMA_CH0_CRC32_DATA REG32(MCHP_DMA_CH_BASE + 0x24) +#define MCHP_DMA_CH0_CRC32_POST_STS REG8(MCHP_DMA_CH_BASE + 0x28) /* * DMA Channel 1 implements memory fill feature */ -#define MCHP_DMA_CH1_FILL_EN \ - REG8(MCHP_DMA_CH_BASE + MCHP_DMA_CH_OFS + 0x20) -#define MCHP_DMA_CH1_FILL_DATA \ - REG32(MCHP_DMA_CH_BASE + MCHP_DMA_CH_OFS + 0x24) +#define MCHP_DMA_CH1_FILL_EN REG8(MCHP_DMA_CH_BASE + MCHP_DMA_CH_OFS + 0x20) +#define MCHP_DMA_CH1_FILL_DATA REG32(MCHP_DMA_CH_BASE + MCHP_DMA_CH_OFS + 0x24) /* Bits for DMA Main Control */ -#define MCHP_DMA_MAIN_CTRL_ACT BIT(0) -#define MCHP_DMA_MAIN_CTRL_SRST BIT(1) +#define MCHP_DMA_MAIN_CTRL_ACT BIT(0) +#define MCHP_DMA_MAIN_CTRL_SRST BIT(1) /* Bits for DMA channel regs */ -#define MCHP_DMA_ACT_EN BIT(0) +#define MCHP_DMA_ACT_EN BIT(0) /* DMA Channel Control */ -#define MCHP_DMA_ABORT BIT(25) -#define MCHP_DMA_SW_GO BIT(24) -#define MCHP_DMA_XFER_SIZE_MASK (7ul << 20) -#define MCHP_DMA_XFER_SIZE(x) ((x) << 20) -#define MCHP_DMA_DIS_HW_FLOW BIT(19) -#define MCHP_DMA_INC_DEV BIT(17) -#define MCHP_DMA_INC_MEM BIT(16) -#define MCHP_DMA_DEV(x) ((x) << 9) -#define MCHP_DMA_DEV_MASK0 (0x7f) -#define MCHP_DMA_DEV_MASK (0x7f << 9) -#define MCHP_DMA_TO_DEV BIT(8) -#define MCHP_DMA_DONE BIT(2) -#define MCHP_DMA_RUN BIT(0) +#define MCHP_DMA_ABORT BIT(25) +#define MCHP_DMA_SW_GO BIT(24) +#define MCHP_DMA_XFER_SIZE_MASK (7ul << 20) +#define MCHP_DMA_XFER_SIZE(x) ((x) << 20) +#define MCHP_DMA_DIS_HW_FLOW BIT(19) +#define MCHP_DMA_INC_DEV BIT(17) +#define MCHP_DMA_INC_MEM BIT(16) +#define MCHP_DMA_DEV(x) ((x) << 9) +#define MCHP_DMA_DEV_MASK0 (0x7f) +#define MCHP_DMA_DEV_MASK (0x7f << 9) +#define MCHP_DMA_TO_DEV BIT(8) +#define MCHP_DMA_DONE BIT(2) +#define MCHP_DMA_RUN BIT(0) /* DMA Channel Status */ -#define MCHP_DMA_STS_ALU_DONE BIT(3) -#define MCHP_DMA_STS_DONE BIT(2) -#define MCHP_DMA_STS_HWFL_ERR BIT(1) -#define MCHP_DMA_STS_BUS_ERR BIT(0) +#define MCHP_DMA_STS_ALU_DONE BIT(3) +#define MCHP_DMA_STS_DONE BIT(2) +#define MCHP_DMA_STS_HWFL_ERR BIT(1) +#define MCHP_DMA_STS_BUS_ERR BIT(0) /* * Required structure typedef for common/dma.h interface @@ -871,19 +834,19 @@ * We can't remove dma_chan_t as its used in DMA API header. */ struct MCHP_dma_chan { - uint32_t act; /* Activate */ - uint32_t mem_start; /* Memory start address */ - uint32_t mem_end; /* Memory end address */ - uint32_t dev; /* Device address */ - uint32_t ctrl; /* Control */ - uint32_t int_status; /* Interrupt status */ - uint32_t int_enabled; /* Interrupt enabled */ - uint32_t chfsm; /* channel fsm read-only */ - uint32_t alu_en; /* channels 0 & 1 only */ - uint32_t alu_data; /* channels 0 & 1 only */ - uint32_t alu_sts; /* channel 0 only */ - uint32_t alu_ro; /* channel 0 only */ - uint32_t rsvd[4]; /* 0x30 - 0x3F */ + uint32_t act; /* Activate */ + uint32_t mem_start; /* Memory start address */ + uint32_t mem_end; /* Memory end address */ + uint32_t dev; /* Device address */ + uint32_t ctrl; /* Control */ + uint32_t int_status; /* Interrupt status */ + uint32_t int_enabled; /* Interrupt enabled */ + uint32_t chfsm; /* channel fsm read-only */ + uint32_t alu_en; /* channels 0 & 1 only */ + uint32_t alu_data; /* channels 0 & 1 only */ + uint32_t alu_sts; /* channel 0 only */ + uint32_t alu_ro; /* channel 0 only */ + uint32_t rsvd[4]; /* 0x30 - 0x3F */ }; /* Common code and header file must use this */ |