blob: 2e5b5197b25b27e48f11f782aa445ed987dc8cab [file] [log] [blame]
/* ieee802154_mcr20a_regs.h - Registers definition for NXP MCR20A */
/*
* Copyright (c) 2017 PHYTEC Messtechnik GmbH
*
* SPDX-License-Identifier: Apache-2.0
*
* This file is based on MCR20reg.h, it was modified to meet the
* coding style and restructured to make it easier to read.
* Additional identifiers was inserted (_MASK and _SHIFT endings),
* which are used in the macros for the bit field manipulation.
*
* This file are derived from material that is
* Copyright (c) 2015, Freescale Semiconductor, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* o Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* o Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* o Neither the name of Freescale Semiconductor, Inc. nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __IEEE802154_MCR20A_REGS_H__
#define __IEEE802154_MCR20A_REGS_H__
#define MCR20A_REG_READ (BIT(7))
#define MCR20A_BUF_READ (BIT(7) | BIT(6))
#define MCR20A_BUF_BYTE_READ (BIT(7) | BIT(6) | BIT(5))
#define MCR20A_REG_WRITE (0)
#define MCR20A_BUF_WRITE (BIT(6))
#define MCR20A_BUF_BYTE_WRITE (BIT(6) | BIT(5))
#define MCR20A_IRQSTS1 (0x0)
#define MCR20A_IRQSTS2 (0x1)
#define MCR20A_IRQSTS3 (0x2)
#define MCR20A_PHY_CTRL1 (0x3)
#define MCR20A_PHY_CTRL2 (0x4)
#define MCR20A_PHY_CTRL3 (0x5)
#define MCR20A_RX_FRM_LEN (0x6)
#define MCR20A_PHY_CTRL4 (0x7)
#define MCR20A_SRC_CTRL (0x8)
#define MCR20A_SRC_ADDRS_SUM_LSB (0x9)
#define MCR20A_SRC_ADDRS_SUM_MSB (0xa)
#define MCR20A_CCA1_ED_FNL (0xb)
#define MCR20A_EVENT_TIMER_LSB (0xc)
#define MCR20A_EVENT_TIMER_MSB (0xd)
#define MCR20A_EVENT_TIMER_USB (0xe)
#define MCR20A_TIMESTAMP_LSB (0xf)
#define MCR20A_TIMESTAMP_MSB (0x10)
#define MCR20A_TIMESTAMP_USB (0x11)
#define MCR20A_T3CMP_LSB (0x12)
#define MCR20A_T3CMP_MSB (0x13)
#define MCR20A_T3CMP_USB (0x14)
#define MCR20A_T2PRIMECMP_LSB (0x15)
#define MCR20A_T2PRIMECMP_MSB (0x16)
#define MCR20A_T1CMP_LSB (0x17)
#define MCR20A_T1CMP_MSB (0x18)
#define MCR20A_T1CMP_USB (0x19)
#define MCR20A_T2CMP_LSB (0x1a)
#define MCR20A_T2CMP_MSB (0x1b)
#define MCR20A_T2CMP_USB (0x1c)
#define MCR20A_T4CMP_LSB (0x1d)
#define MCR20A_T4CMP_MSB (0x1e)
#define MCR20A_T4CMP_USB (0x1f)
#define MCR20A_PLL_INT0 (0x20)
#define MCR20A_PLL_FRAC0_LSB (0x21)
#define MCR20A_PLL_FRAC0_MSB (0x22)
#define MCR20A_PA_PWR (0x23)
#define MCR20A_SEQ_STATE (0x24)
#define MCR20A_LQI_VALUE (0x25)
#define MCR20A_RSSI_CCA_CNT (0x26)
/* ---------------- (0x27) */
#define MCR20A_ASM_CTRL1 (0x28)
#define MCR20A_ASM_CTRL2 (0x29)
#define MCR20A_ASM_DATA_0 (0x2a)
#define MCR20A_ASM_DATA_1 (0x2b)
#define MCR20A_ASM_DATA_2 (0x2c)
#define MCR20A_ASM_DATA_3 (0x2d)
#define MCR20A_ASM_DATA_4 (0x2e)
#define MCR20A_ASM_DATA_5 (0x2f)
#define MCR20A_ASM_DATA_6 (0x30)
#define MCR20A_ASM_DATA_7 (0x31)
#define MCR20A_ASM_DATA_8 (0x32)
#define MCR20A_ASM_DATA_9 (0x33)
#define MCR20A_ASM_DATA_A (0x34)
#define MCR20A_ASM_DATA_B (0x35)
#define MCR20A_ASM_DATA_C (0x36)
#define MCR20A_ASM_DATA_D (0x37)
#define MCR20A_ASM_DATA_E (0x38)
#define MCR20A_ASM_DATA_F (0x39)
/* ---------------- (0x3a) */
#define MCR20A_OVERWRITE_VER (0x3b)
#define MCR20A_CLK_OUT_CTRL (0x3c)
#define MCR20A_PWR_MODES (0x3d)
#define MCR20A_IAR_INDEX (0x3e)
#define MCR20A_IAR_DATA (0x3f)
#define MCR20A_IRQSTS1_RX_FRM_PEND BIT(7)
#define MCR20A_IRQSTS1_PLL_UNLOCK_IRQ BIT(6)
#define MCR20A_IRQSTS1_FILTERFAIL_IRQ BIT(5)
#define MCR20A_IRQSTS1_RXWTRMRKIRQ BIT(4)
#define MCR20A_IRQSTS1_CCAIRQ BIT(3)
#define MCR20A_IRQSTS1_RXIRQ BIT(2)
#define MCR20A_IRQSTS1_TXIRQ BIT(1)
#define MCR20A_IRQSTS1_SEQIRQ BIT(0)
#define MCR20A_IRQSTS1_IRQ_MASK (0x7f)
#define MCR20A_IRQSTS2_CRCVALID BIT(7)
#define MCR20A_IRQSTS2_CCA BIT(6)
#define MCR20A_IRQSTS2_SRCADDR BIT(5)
#define MCR20A_IRQSTS2_PI BIT(4)
#define MCR20A_IRQSTS2_TMRSTATUS BIT(3)
#define MCR20A_IRQSTS2_ASM_IRQ BIT(2)
#define MCR20A_IRQSTS2_PB_ERR_IRQ BIT(1)
#define MCR20A_IRQSTS2_WAKE_IRQ BIT(0)
#define MCR20A_IRQSTS2_IRQ_MASK (0x7)
#define MCR20A_IRQSTS3_TMR4MSK BIT(7)
#define MCR20A_IRQSTS3_TMR3MSK BIT(6)
#define MCR20A_IRQSTS3_TMR2MSK BIT(5)
#define MCR20A_IRQSTS3_TMR1MSK BIT(4)
#define MCR20A_IRQSTS3_TMR_MASK (0xf0)
#define MCR20A_IRQSTS3_TMR4IRQ BIT(3)
#define MCR20A_IRQSTS3_TMR3IRQ BIT(2)
#define MCR20A_IRQSTS3_TMR2IRQ BIT(1)
#define MCR20A_IRQSTS3_TMR1IRQ BIT(0)
#define MCR20A_IRQSTS3_IRQ_MASK (0xf)
#define MCR20A_IRQSTS3_IRQ_SHIFT (0)
#define MCR20A_PHY_CTRL1_TMRTRIGEN BIT(7)
#define MCR20A_PHY_CTRL1_SLOTTED BIT(6)
#define MCR20A_PHY_CTRL1_CCABFRTX BIT(5)
#define MCR20A_PHY_CTRL1_RXACKRQD BIT(4)
#define MCR20A_PHY_CTRL1_AUTOACK BIT(3)
#define MCR20A_PHY_CTRL1_XCVSEQ_MASK (0x7)
#define MCR20A_PHY_CTRL1_XCVSEQ_SHIFT (0)
#define MCR20A_XCVSEQ_IDLE (0)
#define MCR20A_XCVSEQ_RECEIVE (1)
#define MCR20A_XCVSEQ_TX (2)
#define MCR20A_XCVSEQ_CCA (3)
#define MCR20A_XCVSEQ_TX_RX (4)
#define MCR20A_XCVSEQ_CONTINUOUS_CCA (5)
#define MCR20A_PHY_CTRL2_CRC_MSK BIT(7)
#define MCR20A_PHY_CTRL2_PLL_UNLOCK_MSK BIT(6)
#define MCR20A_PHY_CTRL2_FILTERFAIL_MSK BIT(5)
#define MCR20A_PHY_CTRL2_RX_WMRK_MSK BIT(4)
#define MCR20A_PHY_CTRL2_CCAMSK BIT(3)
#define MCR20A_PHY_CTRL2_RXMSK BIT(2)
#define MCR20A_PHY_CTRL2_TXMSK BIT(1)
#define MCR20A_PHY_CTRL2_SEQMSK BIT(0)
#define MCR20A_PHY_CTRL3_TMR4CMP_EN BIT(7)
#define MCR20A_PHY_CTRL3_TMR3CMP_EN BIT(6)
#define MCR20A_PHY_CTRL3_TMR2CMP_EN BIT(5)
#define MCR20A_PHY_CTRL3_TMR1CMP_EN BIT(4)
#define MCR20A_PHY_CTRL3_ASM_MSK BIT(2)
#define MCR20A_PHY_CTRL3_PB_ERR_MSK BIT(1)
#define MCR20A_PHY_CTRL3_WAKE_MSK BIT(0)
#define MCR20A_RX_FRM_LENGTH_MASK (0x7f)
#define MCR20A_PHY_CTRL4_TRCV_MSK BIT(7)
#define MCR20A_PHY_CTRL4_TC3TMOUT BIT(6)
#define MCR20A_PHY_CTRL4_PANCORDNTR0 BIT(5)
#define MCR20A_PHY_CTRL4_CCATYPE_MASK (0x18)
#define MCR20A_PHY_CTRL4_CCATYPE_SHIFT (3)
#define MCR20A_PHY_CTRL4_TMRLOAD BIT(2)
#define MCR20A_PHY_CTRL4_PROMISCUOUS BIT(1)
#define MCR20A_PHY_CTRL4_TC2PRIME_EN BIT(0)
#define MCR20A_SRC_CTRL_INDEX_MASK (0xf0)
#define MCR20A_SRC_CTRL_INDEX_SHIFT (4)
#define MCR20A_SRC_CTRL_ACK_FRM_PND BIT(3)
#define MCR20A_SRC_CTRL_SRCADDR_EN BIT(2)
#define MCR20A_SRC_CTRL_INDEX_EN BIT(1)
#define MCR20A_SRC_CTRL_INDEX_DISABLE BIT(0)
#define MCR20A_PLL_INT0_VAL_MASK (0x1f)
#define MCR20A_PLL_INT0_VAL_SHIFT (0)
#define MCR20A_PA_PWR_VAL_MASK (0x1f)
#define MCR20A_PA_PWR_VAL_SHIFT (0)
#define MCR20A_SEQ_STATE_MASK (0x1f)
#define MCR20A_ASM_CTRL1_CLEAR BIT(7)
#define MCR20A_ASM_CTRL1_START BIT(6)
#define MCR20A_ASM_CTRL1_SELFTST BIT(5)
#define MCR20A_ASM_CTRL1_CTR BIT(4)
#define MCR20A_ASM_CTRL1_CBC BIT(3)
#define MCR20A_ASM_CTRL1_AES BIT(2)
#define MCR20A_ASM_CTRL1_LOAD_MAC BIT(1)
#define MCR20A_ASM_CTRL2_DATA_REG_TYPE_SELECT_MASK (0x7)
#define MCR20A_ASM_CTRL2_DATA_REG_TYPE_SELECT_SHIFT (5)
#define MCR20A_ASM_CTRL2_TSTPAS BIT(1)
#define MCR20A_CLK_OUT_EXTEND BIT(7)
#define MCR20A_CLK_OUT_HIZ BIT(6)
#define MCR20A_CLK_OUT_SR BIT(5)
#define MCR20A_CLK_OUT_DS BIT(4)
#define MCR20A_CLK_OUT_EN BIT(3)
#define MCR20A_CLK_OUT_DIV_MASK (0x07)
#define MCR20A_CLK_OUT_DIV_SHIFT (0)
#define MCR20A_PWR_MODES_XTAL_READY BIT(5)
#define MCR20A_PWR_MODES_XTALEN BIT(4)
#define MCR20A_PWR_MODES_ASM_CLK_EN BIT(3)
#define MCR20A_PWR_MODES_AUTODOZE BIT(1)
#define MCR20A_PWR_MODES_PMC_MODE BIT(0)
#define MCR20A_PART_ID (0x00)
#define MCR20A_XTAL_TRIM (0x01)
#define MCR20A_PMC_LP_TRIM (0x02)
#define MCR20A_MACPANID0_LSB (0x03)
#define MCR20A_MACPANID0_MSB (0x04)
#define MCR20A_MACSHORTADDRS0_LSB (0x05)
#define MCR20A_MACSHORTADDRS0_MSB (0x06)
#define MCR20A_MACLONGADDRS0_0 (0x07)
#define MCR20A_MACLONGADDRS0_1 (0x08)
#define MCR20A_MACLONGADDRS0_2 (0x09)
#define MCR20A_MACLONGADDRS0_3 (0x0a)
#define MCR20A_MACLONGADDRS0_4 (0x0b)
#define MCR20A_MACLONGADDRS0_5 (0x0c)
#define MCR20A_MACLONGADDRS0_6 (0x0d)
#define MCR20A_MACLONGADDRS0_7 (0x0e)
#define MCR20A_RX_FRAME_FILTER (0x0f)
#define MCR20A_PLL_INT1 (0x10)
#define MCR20A_PLL_FRAC1_LSB (0x11)
#define MCR20A_PLL_FRAC1_MSB (0x12)
#define MCR20A_MACPANID1_LSB (0x13)
#define MCR20A_MACPANID1_MSB (0x14)
#define MCR20A_MACSHORTADDRS1_LSB (0x15)
#define MCR20A_MACSHORTADDRS1_MSB (0x16)
#define MCR20A_MACLONGADDRS1_0 (0x17)
#define MCR20A_MACLONGADDRS1_1 (0x18)
#define MCR20A_MACLONGADDRS1_2 (0x19)
#define MCR20A_MACLONGADDRS1_3 (0x1a)
#define MCR20A_MACLONGADDRS1_4 (0x1b)
#define MCR20A_MACLONGADDRS1_5 (0x1c)
#define MCR20A_MACLONGADDRS1_6 (0x1d)
#define MCR20A_MACLONGADDRS1_7 (0x1e)
#define MCR20A_DUAL_PAN_CTRL (0x1f)
#define MCR20A_DUAL_PAN_DWELL (0x20)
#define MCR20A_DUAL_PAN_STS (0x21)
#define MCR20A_CCA1_THRESH (0x22)
#define MCR20A_CCA1_ED_OFFSET_COMP (0x23)
#define MCR20A_LQI_OFFSET_COMP (0x24)
#define MCR20A_CCA_CTRL (0x25)
#define MCR20A_CCA2_CORR_PEAKS (0x26)
#define MCR20A_CCA2_THRESH (0x27)
#define MCR20A_TMR_PRESCALE (0x28)
/* ---------------- (0x29) */
#define MCR20A_GPIO_DATA (0x2a)
#define MCR20A_GPIO_DIR (0x2b)
#define MCR20A_GPIO_PUL_EN (0x2c)
#define MCR20A_GPIO_SEL (0x2d)
#define MCR20A_GPIO_DS (0x2e)
/* ---------------- (0x2f) */
#define MCR20A_ANT_PAD_CTRL (0x30)
#define MCR20A_MISC_PAD_CTRL (0x31)
#define MCR20A_BSM_CTRL (0x32)
/* ---------------- (0x33) */
#define MCR20A_RNG (0x34)
#define MCR20A_RX_BYTE_COUNT (0x35)
#define MCR20A_RX_WTR_MARK (0x36)
#define MCR20A_SOFT_RESET (0x37)
#define MCR20A_TXDELAY (0x38)
#define MCR20A_ACKDELAY (0x39)
#define MCR20A_SEQ_MGR_CTRL (0x3a)
#define MCR20A_SEQ_MGR_STS (0x3b)
#define MCR20A_SEQ_T_STS (0x3c)
#define MCR20A_ABORT_STS (0x3d)
#define MCR20A_CCCA_BUSY_CNT (0x3e)
#define MCR20A_SRC_ADDR_CHECKSUM1 (0x3f)
#define MCR20A_SRC_ADDR_CHECKSUM2 (0x40)
#define MCR20A_SRC_TBL_VALID1 (0x41)
#define MCR20A_SRC_TBL_VALID2 (0x42)
#define MCR20A_FILTERFAIL_CODE1 (0x43)
#define MCR20A_FILTERFAIL_CODE2 (0x44)
#define MCR20A_SLOT_PRELOAD (0x45)
/* ---------------- (0x46) */
#define MCR20A_CORR_VT (0x47)
#define MCR20A_SYNC_CTRL (0x48)
#define MCR20A_PN_LSB_0 (0x49)
#define MCR20A_PN_LSB_1 (0x4a)
#define MCR20A_PN_MSB_0 (0x4b)
#define MCR20A_PN_MSB_1 (0x4c)
#define MCR20A_CORR_NVAL (0x4d)
#define MCR20A_TX_MODE_CTRL (0x4e)
#define MCR20A_SNF_THR (0x4f)
#define MCR20A_FAD_THR (0x50)
#define MCR20A_ANT_AGC_CTRL (0x51)
#define MCR20A_AGC_THR1 (0x52)
#define MCR20A_AGC_THR2 (0x53)
#define MCR20A_AGC_HYS (0x54)
#define MCR20A_AFC (0x55)
#define MCR20A_LPPS_CTRL (0x56)
/* ---------------- (0x57) */
#define MCR20A_PHY_STS (0x58)
#define MCR20A_RX_MAX_CORR (0x59)
#define MCR20A_RX_MAX_PREAMBLE (0x5a)
#define MCR20A_RSSI (0x5b)
/* ---------------- (0x5c) */
/* ---------------- (0x5d) */
#define MCR20A_PLL_DIG_CTRL (0x5e)
#define MCR20A_VCO_CAL (0x5f)
#define MCR20A_VCO_BEST_DIFF (0x60)
#define MCR20A_VCO_BIAS (0x61)
#define MCR20A_KMOD_CTRL (0x62)
#define MCR20A_KMOD_CAL (0x63)
#define MCR20A_PA_CAL (0x64)
#define MCR20A_PA_PWRCAL (0x65)
#define MCR20A_ATT_RSSI1 (0x66)
#define MCR20A_ATT_RSSI2 (0x67)
#define MCR20A_RSSI_OFFSET (0x68)
#define MCR20A_RSSI_SLOPE (0x69)
#define MCR20A_RSSI_CAL1 (0x6a)
#define MCR20A_RSSI_CAL2 (0x6b)
/* ---------------- (0x6c) */
/* ---------------- (0x6d) */
#define MCR20A_XTAL_CTRL (0x6e)
#define MCR20A_XTAL_COMP_MIN (0x6f)
#define MCR20A_XTAL_COMP_MAX (0x70)
#define MCR20A_XTAL_GM (0x71)
/* ---------------- (0x72) */
/* ---------------- (0x73) */
#define MCR20A_LNA_TUNE (0x74)
#define MCR20A_LNA_AGCGAIN (0x75)
/* ---------------- (0x76) */
/* ---------------- (0x77) */
#define MCR20A_CHF_PMA_GAIN (0x78)
#define MCR20A_CHF_IBUF (0x79)
#define MCR20A_CHF_QBUF (0x7a)
#define MCR20A_CHF_IRIN (0x7b)
#define MCR20A_CHF_QRIN (0x7c)
#define MCR20A_CHF_IL (0x7d)
#define MCR20A_CHF_QL (0x7e)
#define MCR20A_CHF_CC1 (0x7f)
#define MCR20A_CHF_CCL (0x80)
#define MCR20A_CHF_CC2 (0x81)
#define MCR20A_CHF_IROUT (0x82)
#define MCR20A_CHF_QROUT (0x83)
/* ---------------- (0x84) */
/* ---------------- (0x85) */
#define MCR20A_RSSI_CTRL (0x86)
/* ---------------- (0x87) */
/* ---------------- (0x88) */
#define MCR20A_PA_BIAS (0x89)
#define MCR20A_PA_TUNING (0x8a)
/* ---------------- (0x8b) */
/* ---------------- (0x8c) */
#define MCR20A_PMC_HP_TRIM (0x8d)
#define MCR20A_VREGA_TRIM (0x8e)
/* ---------------- (0x8f) */
/* ---------------- (0x90) */
#define MCR20A_VCO_CTRL1 (0x91)
#define MCR20A_VCO_CTRL2 (0x92)
/* ---------------- (0x93) */
/* ---------------- (0x94) */
#define MCR20A_ANA_SPARE_OUT1 (0x95)
#define MCR20A_ANA_SPARE_OUT2 (0x96)
#define MCR20A_ANA_SPARE_IN (0x97)
#define MCR20A_MISCELLANEOUS (0x98)
/* ---------------- (0x99) */
#define MCR20A_SEQ_MGR_OVRD0 (0x9a)
#define MCR20A_SEQ_MGR_OVRD1 (0x9b)
#define MCR20A_SEQ_MGR_OVRD2 (0x9c)
#define MCR20A_SEQ_MGR_OVRD3 (0x9d)
#define MCR20A_SEQ_MGR_OVRD4 (0x9e)
#define MCR20A_SEQ_MGR_OVRD5 (0x9f)
#define MCR20A_SEQ_MGR_OVRD6 (0xa0)
#define MCR20A_SEQ_MGR_OVRD7 (0xa1)
/* ---------------- (0xa2) */
#define MCR20A_TESTMODE_CTRL (0xa3)
#define MCR20A_DTM_CTRL1 (0xa4)
#define MCR20A_DTM_CTRL2 (0xa5)
#define MCR20A_ATM_CTRL1 (0xa6)
#define MCR20A_ATM_CTRL2 (0xa7)
#define MCR20A_ATM_CTRL3 (0xa8)
/* ---------------- (0xa9) */
#define MCR20A_LIM_FE_TEST_CTRL (0xaa)
#define MCR20A_CHF_TEST_CTRL (0xab)
#define MCR20A_VCO_TEST_CTRL (0xac)
#define MCR20A_PLL_TEST_CTRL (0xad)
#define MCR20A_PA_TEST_CTRL (0xae)
#define MCR20A_PMC_TEST_CTRL (0xaf)
#define MCR20A_SCAN_DTM_PROTECT_1 (0xfe)
#define MCR20A_SCAN_DTM_PROTECT_0 (0xff)
#define MCR20A_RX_FRAME_FILTER_FRM_VER_MASK (0xc0)
#define MCR20A_RX_FRAME_FILTER_FRM_VER_SHIFT (6)
#define MCR20A_RX_FRAME_FILTER_ACTIVE_PROMISCUOUS BIT(5)
#define MCR20A_RX_FRAME_FILTER_NS_FT BIT(4)
#define MCR20A_RX_FRAME_FILTER_CMD_FT BIT(3)
#define MCR20A_RX_FRAME_FILTER_ACK_FT BIT(2)
#define MCR20A_RX_FRAME_FILTER_DATA_FT BIT(1)
#define MCR20A_RX_FRAME_FILTER_BEACON_FT BIT(0)
#define MCR20A_PLL_INT1_MASK (0x1f)
#define MCR20A_DUAL_PAN_CTRL_DUAL_PAN_SAM_LVL_MASK (0xf0)
#define MCR20A_DUAL_PAN_CTRL_DUAL_PAN_SAM_LVL_SHIFT (4)
#define MCR20A_DUAL_PAN_CTRL_CURRENT_NETWORK BIT(3)
#define MCR20A_DUAL_PAN_CTRL_PANCORDNTR1 BIT(2)
#define MCR20A_DUAL_PAN_CTRL_DUAL_PAN_AUTO BIT(1)
#define MCR20A_DUAL_PAN_CTRL_ACTIVE_NETWORK BIT(0)
#define MCR20A_DUAL_PAN_STS_RECD_ON_PAN1 BIT(7)
#define MCR20A_DUAL_PAN_STS_RECD_ON_PAN0 BIT(6)
#define MCR20A_DUAL_PAN_STS_DUAL_PAN_REMAIN_MASK (0x3f)
#define MCR20A_CCA_CTRL_AGC_FRZ_EN BIT(6)
#define MCR20A_CCA_CTRL_CONT_RSSI_EN BIT(5)
#define MCR20A_CCA_CTRL_QI_RSSI_NOT_CORR BIT(4)
#define MCR20A_CCA_CTRL_CCA3_AND_NOT_OR BIT(3)
#define MCR20A_CCA_CTRL_OWER_COMP_EN_LQI BIT(2)
#define MCR20A_CCA_CTRL_OWER_COMP_EN_ED BIT(1)
#define MCR20A_CCA_CTRL_OWER_COMP_EN_CCA1 BIT(0)
#define MCR20A_CCA2_CORR_PEAKS_CCA2_MIN_NUM_CORR_TH_MASK (0x70)
#define MCR20A_CCA2_CORR_PEAKS_CCA2_MIN_NUM_CORR_TH_SHIFT (4)
#define MCR20A_CCA2_CORR_PEAKS_CCA2_NUM_CORR_PEAKS_MASK (0x0f)
#define MCR20A_TMR_PRESCALE_VAL_MASK (0x7)
#define MCR20A_TMR_PRESCALE_VAL_SHIFT (0)
#define MCR20A_TIMEBASE_500000HZ (2)
#define MCR20A_TIMEBASE_250000HZ (3)
#define MCR20A_TIMEBASE_125000HZ (4)
#define MCR20A_TIMEBASE_62500HZ (5)
#define MCR20A_TIMEBASE_31250HZ (6)
#define MCR20A_TIMEBASE_15625HZ (7)
#define MCR20A_GPIO_DATA8 BIT(7)
#define MCR20A_GPIO_DATA7 BIT(6)
#define MCR20A_GPIO_DATA6 BIT(5)
#define MCR20A_GPIO_DATA5 BIT(4)
#define MCR20A_GPIO_DATA4 BIT(3)
#define MCR20A_GPIO_DATA3 BIT(2)
#define MCR20A_GPIO_DATA2 BIT(1)
#define MCR20A_GPIO_DATA1 BIT(0)
#define MCR20A_GPIO_DIR8 BIT(7)
#define MCR20A_GPIO_DIR7 BIT(6)
#define MCR20A_GPIO_DIR6 BIT(5)
#define MCR20A_GPIO_DIR5 BIT(4)
#define MCR20A_GPIO_DIR4 BIT(3)
#define MCR20A_GPIO_DIR3 BIT(2)
#define MCR20A_GPIO_DIR2 BIT(1)
#define MCR20A_GPIO_DIR1 BIT(0)
#define MCR20A_GPIO_PUL_EN8 BIT(7)
#define MCR20A_GPIO_PUL_EN7 BIT(6)
#define MCR20A_GPIO_PUL_EN6 BIT(5)
#define MCR20A_GPIO_PUL_EN5 BIT(4)
#define MCR20A_GPIO_PUL_EN4 BIT(3)
#define MCR20A_GPIO_PUL_EN3 BIT(2)
#define MCR20A_GPIO_PUL_EN2 BIT(1)
#define MCR20A_GPIO_PUL_EN1 BIT(0)
#define MCR20A_GPIO_PUL_SEL8 BIT(7)
#define MCR20A_GPIO_PUL_SEL7 BIT(6)
#define MCR20A_GPIO_PUL_SEL6 BIT(5)
#define MCR20A_GPIO_PUL_SEL5 BIT(4)
#define MCR20A_GPIO_PUL_SEL4 BIT(3)
#define MCR20A_GPIO_PUL_SEL3 BIT(2)
#define MCR20A_GPIO_PUL_SEL2 BIT(1)
#define MCR20A_GPIO_PUL_SEL1 BIT(0)
#define MCR20A_GPIO_DS8 BIT(7)
#define MCR20A_GPIO_DS7 BIT(6)
#define MCR20A_GPIO_DS6 BIT(5)
#define MCR20A_GPIO_DS5 BIT(4)
#define MCR20A_GPIO_DS4 BIT(3)
#define MCR20A_GPIO_DS3 BIT(2)
#define MCR20A_GPIO_DS2 BIT(1)
#define MCR20A_GPIO_DS1 BIT(0)
#define MCR20A_ANT_PAD_CTRL_ANTX_POL3 BIT(7)
#define MCR20A_ANT_PAD_CTRL_ANTX_POL2 BIT(6)
#define MCR20A_ANT_PAD_CTRL_ANTX_POL1 BIT(5)
#define MCR20A_ANT_PAD_CTRL_ANTX_POL0 BIT(4)
#define MCR20A_ANT_PAD_CTRL_ANTX_CTRLMODE BIT(3)
#define MCR20A_ANT_PAD_CTRL_ANTX_HZ BIT(2)
#define MCR20A_ANT_PAD_CTRL_ANTX_EN_MASK (0x03)
#define MCR20A_ANT_PAD_CTRL_ANTX_EN_SHIFT (0)
#define MCR20A_MISC_PAD_CTRL_MISO_HIZ_EN BIT(3)
#define MCR20A_MISC_PAD_CTRL_IRQ_B_OD BIT(2)
#define MCR20A_MISC_PAD_CTRL_NON_GPIO_DS BIT(1)
#define MCR20A_MISC_PAD_CTRL_ANTX_CURR BIT(0)
#define MCR20A_ANT_AGC_CTRL_SNF_EN BIT(7)
#define MCR20A_ANT_AGC_CTRL_AGC_EN BIT(6)
#define MCR20A_ANT_AGC_CTRL_AGC_LEVEL_MASK (0x30)
#define MCR20A_ANT_AGC_CTRL_AGC_LEVEL_SHIFT (4)
#define MCR20A_ANT_AGC_CTRL_ANTX BIT(1)
#define MCR20A_ANT_AGC_CTRL_AD_EN BIT(0)
#define MCR20A_LPPS_BUFMIX_EN BIT(4)
#define MCR20A_LPPS_LIM_EN BIT(3)
#define MCR20A_LPPS_RSSI_EN BIT(2)
#define MCR20A_LPPS_LNA_EN BIT(1)
#define MCR20A_LPPS_CTRL_LPPS_EN BIT(0)
/* Undocumented part copied from MCR20reg.h */
#define MCR20A_SOFT_RESET_SOG_RST BIT(7)
#define MCR20A_SOFT_RESET_REGS_RST BIT(4)
#define MCR20A_SOFT_RESET_PLL_RST BIT(3)
#define MCR20A_SOFT_RESET_TX_RST BIT(2)
#define MCR20A_SOFT_RESET_RX_RST BIT(1)
#define MCR20A_SOFT_RESET_SEQ_MGR_RST BIT(0)
#define MCR20A_SEQ_MGR_CTRL_SEQ_STATE_CTRL_MASK (0x3)
#define MCR20A_SEQ_MGR_CTRL_SEQ_STATE_CTRL_SHIFT (6)
#define MCR20A_SEQ_MGR_CTRL_NO_RX_RECYCLE BIT(5)
#define MCR20A_SEQ_MGR_CTRL_LATCH_PREAMBLE BIT(4)
#define MCR20A_SEQ_MGR_CTRL_EVENT_TMR_DO_NOT_LATCH BIT(3)
#define MCR20A_SEQ_MGR_CTRL_CLR_NEW_SEQ_INHIBIT BIT(2)
#define MCR20A_SEQ_MGR_CTRL_PSM_LOCK_DIS BIT(1)
#define MCR20A_SEQ_MGR_CTRL_PLL_ABORT_OVRD BIT(0)
#define MCR20A_SEQ_MGR_STS_TMR2_SEQ_TRIG_ARMED BIT(7)
#define MCR20A_SEQ_MGR_STS_RX_MODE BIT(6)
#define MCR20A_SEQ_MGR_STS_RX_TIMEOUT_PENDING BIT(5)
#define MCR20A_SEQ_MGR_STS_NEW_SEQ_INHIBIT BIT(4)
#define MCR20A_SEQ_MGR_STS_SEQ_IDLE BIT(3)
#define MCR20A_SEQ_MGR_STS_XCVSEQ_ACTUAL_MASK (0x7)
#define MCR20A_SEQ_MGR_STS_XCVSEQ_ACTUAL_SHIFT (0)
#define MCR20A_ABORT_STS_PLL_ABORTED BIT(2)
#define MCR20A_ABORT_STS_TC3_ABORTED BIT(1)
#define MCR20A_ABORT_STS_SW_ABORTED BIT(0)
#define MCR20A_PHY_STS_PLL_UNLOCK BIT(7)
#define MCR20A_PHY_STS_PLL_LOCK_ERR BIT(6)
#define MCR20A_PHY_STS_PLL_LOCK BIT(5)
#define MCR20A_PHY_STS_CRCVALID BIT(3)
#define MCR20A_PHY_STS_FILTERFAIL_FLAG_SEL BIT(2)
#define MCR20A_PHY_STS_SFD_DET BIT(1)
#define MCR20A_PHY_STS_PREAMBLE_DET BIT(0)
#define MCR20A_TESTMODE_CTRL_HOT_ANT BIT(4)
#define MCR20A_TESTMODE_CTRL_IDEAL_RSSI_EN BIT(3)
#define MCR20A_TESTMODE_CTRL_IDEAL_PFC_EN BIT(2)
#define MCR20A_TESTMODE_CTRL_CONTINUOUS_EN BIT(1)
#define MCR20A_TESTMODE_CTRL_FPGA_EN BIT(0)
#define MCR20A_DTM_CTRL1_ATM_LOCKED BIT(7)
#define MCR20A_DTM_CTRL1_DTM_EN BIT(6)
#define MCR20A_DTM_CTRL1_PAGE5 BIT(5)
#define MCR20A_DTM_CTRL1_PAGE4 BIT(4)
#define MCR20A_DTM_CTRL1_PAGE3 BIT(3)
#define MCR20A_DTM_CTRL1_PAGE2 BIT(2)
#define MCR20A_DTM_CTRL1_PAGE1 BIT(1)
#define MCR20A_DTM_CTRL1_PAGE0 BIT(0)
#define MCR20A_TX_MODE_CTRL_TX_INV BIT(4)
#define MCR20A_TX_MODE_CTRL_BT_EN BIT(3)
#define MCR20A_TX_MODE_CTRL_DTS2 BIT(2)
#define MCR20A_TX_MODE_CTRL_DTS1 BIT(1)
#define MCR20A_TX_MODE_CTRL_DTS0 BIT(0)
#define MCR20A_TX_MODE_CTRL_DTS_MASK (7)
#endif /* __IEEE802154_MCR20A_REGS_H__ */