/*
 * Copyright (c) 2021-2025 HPMicro
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *
 */


#ifndef ESC_REGISTER_H
#define ESC_REGISTER_H

#define __R volatile const /* Define "read-only" permission */
#define __RW volatile      /* Define "read-write" permission */
#define __W volatile       /* Define "write-only" permission */

typedef struct {
    __R  uint8_t  TYPE;                        /* 0x0: Type of EtherCAT controller */
    __R  uint8_t  REVISION;                    /* 0x1: Revision of EtherCAT controller */
    __R  uint16_t BUILD;                       /* 0x2: Build of EtherCAT controller */
    __R  uint8_t  FMMU_NUM;                    /* 0x4: FMMU supported */
    __R  uint8_t  SYNCM_NUM;                   /* 0x5: SyncManagers supported */
    __R  uint8_t  RAM_SIZE;                    /* 0x6: RAM Size */
    __R  uint8_t  PORT_DESC;                   /* 0x7: Port Descriptor */
    __R  uint16_t FEATURE;                     /* 0x8: ESC Feature supported */
    __R  uint8_t  RESERVED0[6];                /* 0xA - 0xF: Reserved */
    __R  uint16_t STATION_ADDR;                /* 0x10: Configured Station Address */
    __RW uint16_t STATION_ALS;                 /* 0x12: Configured Station Alias */
    __R  uint8_t  RESERVED1[12];               /* 0x14 - 0x1F: Reserved */
    __R  uint8_t  REG_WEN;                     /* 0x20: Register Write Enable */
    __R  uint8_t  REG_WP;                      /* 0x21: Register Write Protection */
    __R  uint8_t  RESERVED2[14];               /* 0x22 - 0x2F: Reserved */
    __R  uint8_t  ESC_WEN;                     /* 0x30: ESC Write Enable */
    __R  uint8_t  ESC_WP;                      /* 0x31: ESC Write Protection */
    __R  uint8_t  RESERVED3[14];               /* 0x32 - 0x3F: Reserved */
    __R  uint8_t  ESC_RST_ECAT;                /* 0x40: ESC Reset ECAT */
    __RW uint8_t  ESC_RST_PDI;                 /* 0x41: ESC Reset PDI */
    __R  uint8_t  RESERVED4[190];              /* 0x42 - 0xFF: Reserved */
    __R  uint32_t ESC_DL_CTRL;                 /* 0x100: ESC DL Control */
    __R  uint8_t  RESERVED5[4];                /* 0x104 - 0x107: Reserved */
    __R  uint16_t PHYSICAL_RW_OFFSET;          /* 0x108: Physical Read/Write Offset */
    __R  uint8_t  RESERVED6[6];                /* 0x10A - 0x10F: Reserved */
    __R  uint16_t ESC_DL_STAT;                 /* 0x110: ESC DL Status */
    __R  uint8_t  RESERVED7[14];               /* 0x112 - 0x11F: Reserved */
    __RW uint16_t AL_CTRL;                     /* 0x120: AL Control */
    __R  uint8_t  RESERVED8[14];               /* 0x122 - 0x12F: Reserved */
    __RW uint16_t AL_STAT;                     /* 0x130: AL Status */
    __R  uint8_t  RESERVED9[2];                /* 0x132 - 0x133: Reserved */
    __RW uint16_t AL_STAT_CODE;                /* 0x134: AL Status Code */
    __R  uint8_t  RESERVED10[2];               /* 0x136 - 0x137: Reserved */
    __RW uint8_t  RUN_LED_OVRD;                /* 0x138: RUN LED Override */
    __RW uint8_t  ERR_LED_OVRD;                /* 0x139: ERR LED Override */
    __R  uint8_t  RESERVED11[6];               /* 0x13A - 0x13F: Reserved */
    __R  uint8_t  PDI_CTRL;                    /* 0x140: PDI Control */
    __R  uint8_t  ESC_CFG;                     /* 0x141: ESC Configuration */
    __R  uint8_t  RESERVED12[12];              /* 0x142 - 0x14D: Reserved */
    __R  uint16_t PDI_INFO;                    /* 0x14E: PDI Information */
    __R  uint8_t  PDI_CFG;                     /* 0x150: PDI Configuration */
    __R  uint8_t  PDI_SL_CFG;                  /* 0x151: PDI Sync/Latch[1:0] Configuration */
    __RW uint16_t PDI_EXT_CFG;                 /* 0x152: PDI Extended Configuration */
    __R  uint8_t  RESERVED13[172];             /* 0x154 - 0x1FF: Reserved */
    __R  uint16_t ECAT_EVT_MSK;                /* 0x200: ECAT Event Mask */
    __R  uint8_t  RESERVED14[2];               /* 0x202 - 0x203: Reserved */
    __RW uint32_t PDI_AL_EVT_MSK;              /* 0x204: PDI AL Event Mask */
    __R  uint8_t  RESERVED15[8];               /* 0x208 - 0x20F: Reserved */
    __R  uint16_t ECAT_EVT_REQ;                /* 0x210: ECAT Event Request */
    __R  uint8_t  RESERVED16[14];              /* 0x212 - 0x21F: Reserved */
    __R  uint32_t AL_EVT_REQ;                  /* 0x220: AL Event Request */
    __R  uint8_t  RESERVED17[220];             /* 0x224 - 0x2FF: Reserved */
    __R  uint16_t RX_ERR_CNT[4];               /* 0x300 - 0x306: RX Error Counter */
    __R  uint8_t  FWD_RX_ERR_CNT[4];           /* 0x308 - 0x30B: Forwarded RX Error Counter */
    __R  uint8_t  ECAT_PU_ERR_CNT;             /* 0x30C: ECAT Processing Unit Error Counter */
    __R  uint8_t  PDI_ERR_CNT;                 /* 0x30D: PDI Error Counter */
    __R  uint8_t  RESERVED18[2];               /* 0x30E - 0x30F: Reserved */
    __R  uint8_t  LOST_LINK_CNT[4];            /* 0x310 - 0x313: Lost Link Counter */
    __R  uint8_t  RESERVED19[236];             /* 0x314 - 0x3FF: Reserved */
    __R  uint16_t WDG_DIV;                     /* 0x400: Watchdog Divider */
    __R  uint8_t  RESERVED20[14];              /* 0x402 - 0x40F: Reserved */
    __R  uint16_t WDG_TIME_PDI;                /* 0x410: Watchdog Time PDI */
    __R  uint8_t  RESERVED21[14];              /* 0x412 - 0x41F: Reserved */
    __R  uint16_t WDG_TIME_PDAT;               /* 0x420: Watchdog Time Process Data */
    __R  uint8_t  RESERVED22[30];              /* 0x422 - 0x43F: Reserved */
    __RW uint16_t WDG_STAT_PDAT;               /* 0x440: Watchdog Status Process Data */
    __R  uint8_t  WDG_CNT_PDAT;                /* 0x442: Watchdog Counter Process Data */
    __R  uint8_t  WDG_CNT_PDI;                 /* 0x443: Watchdog Counter PDI */
    __R  uint8_t  RESERVED23[188];             /* 0x444 - 0x4FF: Reserved */
    __R  uint8_t  EEPROM_CFG;                  /* 0x500: EEPROM Configuration */
    __RW uint8_t  EEPROM_PDI_ACC_STAT;         /* 0x501: EEPROM PDI Access State */
    __RW uint16_t EEPROM_CTRL_STAT;            /* 0x502: EEPROM Control/Status */
    __RW uint32_t EEPROM_ADDR;                 /* 0x504: EEPROM Address */
    __RW uint64_t EEPROM_DATA;                 /* 0x508: EEPROM Data */
    __RW uint16_t MII_MNG_CS;                  /* 0x510: MII Management Control/Status */
    __RW uint8_t  PHY_ADDR;                    /* 0x512: PHY Address */
    __RW uint8_t  PHY_REG_ADDR;                /* 0x513: PHY Register Address */
    __RW uint16_t PHY_DATA;                    /* 0x514: PHY Data */
    __R  uint8_t  MIIM_ECAT_ACC_STAT;          /* 0x516: MII Management ECAT Access State */
    __RW uint8_t  MIIM_PDI_ACC_STAT;           /* 0x517: MII Management PDI Access State */
    __RW uint8_t  PHY_STAT[4];                 /* 0x518 - 0x51B: PHY Port */
    __R  uint8_t  RESERVED24[228];             /* 0x51C - 0x5FF: Reserved */
    struct {
        __R  uint32_t LOGIC_START_ADDR;        /* 0x600: Logical Start Address */
        __R  uint16_t LENGTH;                  /* 0x604: Length */
        __R  uint8_t  LOGIC_START_BIT;         /* 0x606: Logical Start Bit */
        __R  uint8_t  LOGIC_STOP_BIT;          /* 0x607: Logical Stop Bit */
        __R  uint16_t PHYSICAL_START_ADDR;     /* 0x608: Physical Start Address */
        __R  uint8_t  PHYSICAL_START_BIT;      /* 0x60A: Physical Start Bit */
        __R  uint8_t  TYPE;                    /* 0x60B: Type */
        __R  uint8_t  ACTIVATE;                /* 0x60C: Activate */
        __R  uint8_t  RESERVED0[3];            /* 0x60D - 0x60F: Reserved */
    } FMMU[8];
    __R  uint8_t  RESERVED25[384];             /* 0x680 - 0x7FF: Reserved */
    struct {
        __R  uint16_t PHYSICAL_START_ADDR;     /* 0x800: Physical Start Address */
        __R  uint16_t LENGTH;                  /* 0x802: Length */
        __R  uint8_t  CONTROL;                 /* 0x804: Control */
        __R  uint8_t  STATUS;                  /* 0x805: Status */
        __RW uint8_t  ACTIVATE;                /* 0x806: Activate */
        __RW uint8_t  PDI_CTRL;                /* 0x807: PDI Control */
    } SYNCM[8];
    __R  uint8_t  RESERVED26[192];             /* 0x840 - 0x8FF: Reserved */
    __R  uint32_t RCV_TIME[4];                 /* 0x900 - 0x90C: Receive Time */
    __RW uint64_t SYS_TIME;                    /* 0x910: System Time */
    __R  uint64_t RCVT_ECAT_PU;                /* 0x918: Receive Time ECAT Processing Unit */
    __RW uint64_t SYS_TIME_OFFSET;             /* 0x920: System Time Offset */
    __RW uint32_t SYS_TIME_DELAY;              /* 0x928: System Time Delay */
    __R  uint32_t SYS_TIME_DIFF;               /* 0x92C: System Time Difference */
    __RW uint16_t SPD_CNT_START;               /* 0x930: Speed Counter Start */
    __R  uint16_t SPD_CNT_DIFF;                /* 0x932: Speed Counter Diff */
    __RW uint8_t  SYS_TIME_DIFF_FD;            /* 0x934: System Time Difference Filter Depth */
    __RW uint8_t  SPD_CNT_FD;                  /* 0x935: Speed Counter Filter Depth */
    __R  uint8_t  RCV_TIME_LM;                 /* 0x936: Receive Time Latch Mode */
    __R  uint8_t  RESERVED27[73];              /* 0x937 - 0x97F: Reserved */
    __R  uint8_t  CYC_UNIT_CTRL;               /* 0x980: Cyclic Unit Control */
    __RW uint8_t  SYNCO_ACT;                   /* 0x981: SYNC Out Unit Activation */
    __R  uint16_t PULSE_LEN;                   /* 0x982: Pulse Length of SyncSignals */
    __R  uint8_t  ACT_STAT;                    /* 0x984: Activation Status */
    __R  uint8_t  RESERVED28[9];               /* 0x985 - 0x98D: Reserved */
    __RW uint8_t  SYNC0_STAT;                  /* 0x98E: SYNC0 Status */
    __RW uint8_t  SYNC1_STAT;                  /* 0x98F: SYNC1 Status */
    __RW uint64_t START_TIME_CO;               /* 0x990: Start Time Cyclic Operation */
    __R  uint64_t NXT_SYNC1_PULSE;             /* 0x998: Next SYNC1 Pulse */
    __RW uint32_t SYNC0_CYC_TIME;              /* 0x9A0: SYNC0 Cycle Time */
    __RW uint32_t SYNC1_CYC_TIME;              /* 0x9A4: SYNC1 Cycle Time */
    __RW uint8_t  LATCH0_CTRL;                 /* 0x9A8: Latch0 Control */
    __RW uint8_t  LATCH1_CTRL;                 /* 0x9A9: Latch1 Control */
    __R  uint8_t  RESERVED29[4];               /* 0x9AA - 0x9AD: Reserved */
    __R  uint8_t  LATCH0_STAT;                 /* 0x9AE: Latch0 Status */
    __R  uint8_t  LATCH1_STAT;                 /* 0x9AF: Latch1 Status */
    __RW uint64_t LATCH0_TIME_PE;              /* 0x9B0: Latch0 Time Positive Edge */
    __RW uint64_t LATCH0_TIME_NE;              /* 0x9B8: Latch0 Time Negative Edge */
    __RW uint64_t LATCH1_TIME_PE;              /* 0x9C0: Latch1 Time Positive Edge */
    __RW uint64_t LATCH1_TIME_NE;              /* 0x9C8: Latch1 Time Negative Edge */
    __R  uint8_t  RESERVED30[32];              /* 0x9D0 - 0x9EF: Reserved */
    __R  uint32_t ECAT_BUF_CET;                /* 0x9F0: EtherCAT Buffer Change Event Time */
    __R  uint8_t  RESERVED31[4];               /* 0x9F4 - 0x9F7: Reserved */
    __R  uint32_t PDI_BUF_SET;                 /* 0x9F8: PDI Buffer Start Event Time */
    __R  uint32_t PDI_BUF_CET;                 /* 0x9FC: PDI Buffer Change Event Time */
    __R  uint8_t  RESERVED32[1024];            /* 0xA00 - 0xDFF: Reserved */
    __R  uint64_t PID;                         /* 0xE00: Product ID */
    __R  uint64_t VID;                         /* 0xE08: Vendor ID */
    __R  uint8_t  RESERVED33[240];             /* 0xE10 - 0xEFF: Reserved */
    __R  uint32_t DIO_OUT_DATA;                /* 0xF00: Digital I/O Output Data */
    __R  uint8_t  RESERVED34[12];              /* 0xF04 - 0xF0F: Reserved */
    __RW uint64_t GPO;                         /* 0xF10: General Purpose Outputs */
    __R  uint64_t GPI;                         /* 0xF18: General Purpose Inputs */
    __R  uint8_t  RESERVED35[96];              /* 0xF20 - 0xF7F: Reserved */
    __RW uint8_t  USER_RAM_BYTE0;              /* 0xF80: User Ram Byte 0 */
    __RW uint8_t  USER_RAM_BYTE1;              /* 0xF81: User Ram Byte 1 */
    __RW uint8_t  USER_RAM_BYTE2;              /* 0xF82: User Ram Byte 2 */
    __RW uint8_t  USER_RAM_BYTE3;              /* 0xF83: User Ram Byte 3 */
    __RW uint8_t  USER_RAM_BYTE4;              /* 0xF84: User Ram Byte 4 */
    __RW uint8_t  USER_RAM_BYTE5;              /* 0xF85: User Ram Byte 5 */
    __RW uint8_t  USER_RAM_BYTE6;              /* 0xF86: User Ram Byte 6 */
    __RW uint8_t  USER_RAM_BYTE7;              /* 0xF87: User Ram Byte 7 */
    __RW uint8_t  USER_RAM_BYTE8;              /* 0xF88: User Ram Byte 8 */
    __RW uint8_t  USER_RAM_BYTE9;              /* 0xF89: User Ram Byte 9 */
    __RW uint8_t  USER_RAM_BYTE10;             /* 0xF8A: User Ram Byte 10 */
    __RW uint8_t  USER_RAM_BYTE11;             /* 0xF8B: User Ram Byte 11 */
    __R  uint8_t  RESERVED36[2];               /* 0xF8C - 0xF8D: Reserved */
    __RW uint8_t  USER_RAM_BYTE14;             /* 0xF8E: User Ram Byte 14 */
    __RW uint8_t  USER_RAM_BYTE15;             /* 0xF8F: User Ram Byte 15 */
    __R  uint8_t  RESERVED37[3];               /* 0xF90 - 0xF92: Reserved */
    __RW uint8_t  USER_RAM_BYTE19;             /* 0xF93: User Ram Byte 19 */
    __R  uint8_t  RESERVED38[108];             /* 0xF94 - 0xFFF: Reserved */
    __RW uint32_t PDRAM;                       /* 0x1000: Process Data Ram */
    __R  uint8_t  RESERVED39[61436];           /* 0x1004 - 0xFFFF: Reserved */
    __RW uint32_t PDRAM_ALS;                   /* 0x10000: Process Data Ram Alias */
    __R  uint8_t  RESERVED40[61436];           /* 0x10004 - 0x1EFFF: Reserved */
    __RW uint32_t GPR_CFG0;                    /* 0x1F000: General Purpose Configure 0 */
    __RW uint32_t GPR_CFG1;                    /* 0x1F004: General Purpose Configure 1 */
    __RW uint32_t GPR_CFG2;                    /* 0x1F008: General Purpose Configure 2 */
    __R  uint8_t  RESERVED41[4];               /* 0x1F00C - 0x1F00F: Reserved */
    __RW uint32_t PHY_CFG0;                    /* 0x1F010: PHY Configure 0 */
    __RW uint32_t PHY_CFG1;                    /* 0x1F014: PHY Configure 1 */
    __R  uint8_t  RESERVED42[8];               /* 0x1F018 - 0x1F01F: Reserved */
    __RW uint32_t GPIO_CTRL;                   /* 0x1F020: GPIO Output Enable */
    __R  uint8_t  RESERVED43[12];              /* 0x1F024 - 0x1F02F: Reserved */
    __RW uint32_t GPI_OVERRIDE0;               /* 0x1F030: GPI low word Override value */
    __RW uint32_t GPI_OVERRIDE1;               /* 0x1F034: GPI high word Override value */
    __R  uint32_t GPO_REG0;                    /* 0x1F038: GPO low word read value */
    __R  uint32_t GPO_REG1;                    /* 0x1F03C: GPO high word read value */
    __R  uint32_t GPI_REG0;                    /* 0x1F040: GPI low word read value */
    __R  uint32_t GPI_REG1;                    /* 0x1F044: GPI high word read value */
    __R  uint8_t  RESERVED44[24];              /* 0x1F048 - 0x1F05F: Reserved */
    __R  uint32_t GPR_STATUS;                  /* 0x1F060: global status register */
    __R  uint8_t  RESERVED45[28];              /* 0x1F064 - 0x1F07F: Reserved */
    __RW uint32_t IO_CFG[9];                   /* 0x1F080 - 0x1F0A0: CTR IO Configure */
} ESC_t;

#define ESCREG_BASE (0x00000000UL) /* Base address of ESC peripheral */
#define ESCREG      ((ESC_t *) ESCREG_BASE) /* Pointer to ESC peripheral */
#define ESCREG_OF(n) ((size_t)&(n)) /* offset of ESC peripheral */

/* Bitfield definition for register: TYPE */
/*
 * TYPE (RO)
 *
 * Controller type
 */
#define ESC_TYPE_TYPE_MASK (0xFFU)
#define ESC_TYPE_TYPE_SHIFT (0U)
#define ESC_TYPE_TYPE_GET(x) (((uint8_t)(x) & ESC_TYPE_TYPE_MASK) >> ESC_TYPE_TYPE_SHIFT)

/* Bitfield definition for register: REVISION */
/*
 * X (RO)
 *
 * major version X
 */
#define ESC_REVISION_X_MASK (0xFFU)
#define ESC_REVISION_X_SHIFT (0U)
#define ESC_REVISION_X_GET(x) (((uint8_t)(x) & ESC_REVISION_X_MASK) >> ESC_REVISION_X_SHIFT)

/* Bitfield definition for register: BUILD */
/*
 * BUILD (RO)
 *
 */
#define ESC_BUILD_BUILD_MASK (0xFF00U)
#define ESC_BUILD_BUILD_SHIFT (8U)
#define ESC_BUILD_BUILD_GET(x) (((uint16_t)(x) & ESC_BUILD_BUILD_MASK) >> ESC_BUILD_BUILD_SHIFT)

/*
 * Y (RO)
 *
 * minor version Y
 */
#define ESC_BUILD_Y_MASK (0xF0U)
#define ESC_BUILD_Y_SHIFT (4U)
#define ESC_BUILD_Y_GET(x) (((uint16_t)(x) & ESC_BUILD_Y_MASK) >> ESC_BUILD_Y_SHIFT)

/*
 * Z (RO)
 *
 * maintenance version Z
 */
#define ESC_BUILD_Z_MASK (0xFU)
#define ESC_BUILD_Z_SHIFT (0U)
#define ESC_BUILD_Z_GET(x) (((uint16_t)(x) & ESC_BUILD_Z_MASK) >> ESC_BUILD_Z_SHIFT)

/* Bitfield definition for register: FMMU_NUM */
/*
 * NUM (RO)
 *
 * Number of supported FMMU channels (or entities)
 */
#define ESC_FMMU_NUM_NUM_MASK (0xFFU)
#define ESC_FMMU_NUM_NUM_SHIFT (0U)
#define ESC_FMMU_NUM_NUM_GET(x) (((uint8_t)(x) & ESC_FMMU_NUM_NUM_MASK) >> ESC_FMMU_NUM_NUM_SHIFT)

/* Bitfield definition for register: SYNCM_NUM */
/*
 * NUM (RO)
 *
 * Number of supported SyncManager channels (or entities)
 */
#define ESC_SYNCM_NUM_NUM_MASK (0xFFU)
#define ESC_SYNCM_NUM_NUM_SHIFT (0U)
#define ESC_SYNCM_NUM_NUM_GET(x) (((uint8_t)(x) & ESC_SYNCM_NUM_NUM_MASK) >> ESC_SYNCM_NUM_NUM_SHIFT)

/* Bitfield definition for register: RAM_SIZE */
/*
 * SIZE (RO)
 *
 * Process Data RAM size supported in KByte
 */
#define ESC_RAM_SIZE_SIZE_MASK (0xFFU)
#define ESC_RAM_SIZE_SIZE_SHIFT (0U)
#define ESC_RAM_SIZE_SIZE_GET(x) (((uint8_t)(x) & ESC_RAM_SIZE_SIZE_MASK) >> ESC_RAM_SIZE_SIZE_SHIFT)

/* Bitfield definition for register: PORT_DESC */
/*
 * PORT3 (RO)
 *
 * Port configuration:
 * 00:Not implemented
 * 01:Not configured (SII EEPROM)
 * 10:EBUS
 * 11:MII/RMII/RGMII
 */
#define ESC_PORT_DESC_PORT3_MASK (0xC0U)
#define ESC_PORT_DESC_PORT3_SHIFT (6U)
#define ESC_PORT_DESC_PORT3_GET(x) (((uint8_t)(x) & ESC_PORT_DESC_PORT3_MASK) >> ESC_PORT_DESC_PORT3_SHIFT)

/*
 * PORT2 (RO)
 *
 * Port configuration:
 * 00:Not implemented
 * 01:Not configured (SII EEPROM)
 * 10:EBUS
 * 11:MII/RMII/RGMII
 */
#define ESC_PORT_DESC_PORT2_MASK (0x30U)
#define ESC_PORT_DESC_PORT2_SHIFT (4U)
#define ESC_PORT_DESC_PORT2_GET(x) (((uint8_t)(x) & ESC_PORT_DESC_PORT2_MASK) >> ESC_PORT_DESC_PORT2_SHIFT)

/*
 * PORT1 (RO)
 *
 * Port configuration:
 * 00:Not implemented
 * 01:Not configured (SII EEPROM)
 * 10:EBUS
 * 11:MII/RMII/RGMII
 */
#define ESC_PORT_DESC_PORT1_MASK (0xCU)
#define ESC_PORT_DESC_PORT1_SHIFT (2U)
#define ESC_PORT_DESC_PORT1_GET(x) (((uint8_t)(x) & ESC_PORT_DESC_PORT1_MASK) >> ESC_PORT_DESC_PORT1_SHIFT)

/*
 * PORT0 (RO)
 *
 * Port configuration:
 * 00:Not implemented
 * 01:Not configured (SII EEPROM)
 * 10:EBUS
 * 11:MII/RMII/RGMII
 */
#define ESC_PORT_DESC_PORT0_MASK (0x3U)
#define ESC_PORT_DESC_PORT0_SHIFT (0U)
#define ESC_PORT_DESC_PORT0_GET(x) (((uint8_t)(x) & ESC_PORT_DESC_PORT0_MASK) >> ESC_PORT_DESC_PORT0_SHIFT)

/* Bitfield definition for register: FEATURE */
/*
 * FFSC (RO)
 *
 * Fixed FMMU/SyncManager configuration:
 * 0:Variable configuration
 * 1:Fixed configuration (refer to documentation of supporting ESCs)
 */
#define ESC_FEATURE_FFSC_MASK (0x800U)
#define ESC_FEATURE_FFSC_SHIFT (11U)
#define ESC_FEATURE_FFSC_GET(x) (((uint16_t)(x) & ESC_FEATURE_FFSC_MASK) >> ESC_FEATURE_FFSC_SHIFT)

/*
 * RWC (RO)
 *
 * EtherCAT read/write command support(BRW,APRW,FPRW):
 * 0:Supported
 * 1:Not supported
 */
#define ESC_FEATURE_RWC_MASK (0x400U)
#define ESC_FEATURE_RWC_SHIFT (10U)
#define ESC_FEATURE_RWC_GET(x) (((uint16_t)(x) & ESC_FEATURE_RWC_MASK) >> ESC_FEATURE_RWC_SHIFT)

/*
 * LRW (RO)
 *
 * EtherCAT LRW command support:
 * 0:Supported
 * 1:Not supported
 */
#define ESC_FEATURE_LRW_MASK (0x200U)
#define ESC_FEATURE_LRW_SHIFT (9U)
#define ESC_FEATURE_LRW_GET(x) (((uint16_t)(x) & ESC_FEATURE_LRW_MASK) >> ESC_FEATURE_LRW_SHIFT)

/*
 * EDSA (RO)
 *
 * Enhanced DC SYNC Activation:
 * 0:Not available
 * 1:Available
 * Note:This feature refers to registers 0x981[7:3] and 0x0984
 */
#define ESC_FEATURE_EDSA_MASK (0x100U)
#define ESC_FEATURE_EDSA_SHIFT (8U)
#define ESC_FEATURE_EDSA_GET(x) (((uint16_t)(x) & ESC_FEATURE_EDSA_MASK) >> ESC_FEATURE_EDSA_SHIFT)

/*
 * SHFE (RO)
 *
 * Seperate Handling of FCS Errors:
 * 0:Not supported
 * 1:Supported, frames with wrong FCS and additional nibble will be counted separately in Forwarded RX Error Counter
 */
#define ESC_FEATURE_SHFE_MASK (0x80U)
#define ESC_FEATURE_SHFE_SHIFT (7U)
#define ESC_FEATURE_SHFE_GET(x) (((uint16_t)(x) & ESC_FEATURE_SHFE_MASK) >> ESC_FEATURE_SHFE_SHIFT)

/*
 * ELDM (RO)
 *
 * Enhanced Link Detection MII:
 * 0:Not available
 * 1:Available
 */
#define ESC_FEATURE_ELDM_MASK (0x40U)
#define ESC_FEATURE_ELDM_SHIFT (6U)
#define ESC_FEATURE_ELDM_GET(x) (((uint16_t)(x) & ESC_FEATURE_ELDM_MASK) >> ESC_FEATURE_ELDM_SHIFT)

/*
 * DCW (RO)
 *
 * Distributed Clocks width:
 * 0:32 bit
 * 1:64 bit
 */
#define ESC_FEATURE_DCW_MASK (0x8U)
#define ESC_FEATURE_DCW_SHIFT (3U)
#define ESC_FEATURE_DCW_GET(x) (((uint16_t)(x) & ESC_FEATURE_DCW_MASK) >> ESC_FEATURE_DCW_SHIFT)

/*
 * DC (RO)
 *
 * Distributed Clocks:
 * 0:Not available
 * 1:Available
 */
#define ESC_FEATURE_DC_MASK (0x4U)
#define ESC_FEATURE_DC_SHIFT (2U)
#define ESC_FEATURE_DC_GET(x) (((uint16_t)(x) & ESC_FEATURE_DC_MASK) >> ESC_FEATURE_DC_SHIFT)

/*
 * FMMU (RO)
 *
 * FMMU Operation:
 * 0:Bit oriented
 * 1:Byte oriented
 */
#define ESC_FEATURE_FMMU_MASK (0x1U)
#define ESC_FEATURE_FMMU_SHIFT (0U)
#define ESC_FEATURE_FMMU_GET(x) (((uint16_t)(x) & ESC_FEATURE_FMMU_MASK) >> ESC_FEATURE_FMMU_SHIFT)

/* Bitfield definition for register: STATION_ADDR */
/*
 * ADDR (RO)
 *
 * Address used for node addressing
 * (FPRD/FPWR/FPRW/FRMW commands)
 */
#define ESC_STATION_ADDR_ADDR_MASK (0xFFFFU)
#define ESC_STATION_ADDR_ADDR_SHIFT (0U)
#define ESC_STATION_ADDR_ADDR_GET(x) (((uint16_t)(x) & ESC_STATION_ADDR_ADDR_MASK) >> ESC_STATION_ADDR_ADDR_SHIFT)

/* Bitfield definition for register: STATION_ALS */
/*
 * ADDR (RW)
 *
 * Alias Address used for node addressing
 * (FPRD/FPWR/FPRW/FRMW commands).
 * The use of this alias is activated by Register
 * DL Control Bit 0x0100[24].
 * NOTE:EEPROM value is only transferred into this
 * register at first EEPROM load after power-on or
 * reset.
 * ESC20 exception:EEPROM value is transferred
 * into this register after each EEPROM reload
 * command.
 */
#define ESC_STATION_ALS_ADDR_MASK (0xFFFFU)
#define ESC_STATION_ALS_ADDR_SHIFT (0U)
#define ESC_STATION_ALS_ADDR_SET(x) (((uint16_t)(x) << ESC_STATION_ALS_ADDR_SHIFT) & ESC_STATION_ALS_ADDR_MASK)
#define ESC_STATION_ALS_ADDR_GET(x) (((uint16_t)(x) & ESC_STATION_ALS_ADDR_MASK) >> ESC_STATION_ALS_ADDR_SHIFT)

/* Bitfield definition for register: REG_WEN */
/*
 * EN (RO)
 *
 * If register write protection is enabled, this
 * register has to be written in the same
 * Ethernet frame (value does not matter)
 * before other writes to this station are allowed.
 * This bit is self-clearing at the beginning of the
 * next frame (SOF), or if Register Write
 * Protection is disabled.
 */
#define ESC_REG_WEN_EN_MASK (0x1U)
#define ESC_REG_WEN_EN_SHIFT (0U)
#define ESC_REG_WEN_EN_GET(x) (((uint8_t)(x) & ESC_REG_WEN_EN_MASK) >> ESC_REG_WEN_EN_SHIFT)

/* Bitfield definition for register: REG_WP */
/*
 * WP (RO)
 *
 * Register write protection:
 * 0:Protection disabled
 * 1:Protection enabled
 * Registers 0x0000:0x0F7F are write-protected,
 * except for 0x0020 and 0x0030
 */
#define ESC_REG_WP_WP_MASK (0x1U)
#define ESC_REG_WP_WP_SHIFT (0U)
#define ESC_REG_WP_WP_GET(x) (((uint8_t)(x) & ESC_REG_WP_WP_MASK) >> ESC_REG_WP_WP_SHIFT)

/* Bitfield definition for register: ESC_WEN */
/*
 * EN (RO)
 *
 * If ESC write protection is enabled, this
 * register has to be written in the same
 * Ethernet frame (value does not matter)
 * before other writes to this station are allowed.
 * This bit is self-clearing at the beginning of the
 * next frame (SOF), or if ESC Write Protection
 * is disabled.
 */
#define ESC_ESC_WEN_EN_MASK (0x1U)
#define ESC_ESC_WEN_EN_SHIFT (0U)
#define ESC_ESC_WEN_EN_GET(x) (((uint8_t)(x) & ESC_ESC_WEN_EN_MASK) >> ESC_ESC_WEN_EN_SHIFT)

/* Bitfield definition for register: ESC_WP */
/*
 * WP (RO)
 *
 * Write protect:
 * 0:Protection disabled
 * 1:Protection enabled
 * All areas are write-protected, except for 0x0030.
 */
#define ESC_ESC_WP_WP_MASK (0x1U)
#define ESC_ESC_WP_WP_SHIFT (0U)
#define ESC_ESC_WP_WP_GET(x) (((uint8_t)(x) & ESC_ESC_WP_WP_MASK) >> ESC_ESC_WP_WP_SHIFT)

/* Bitfield definition for register: ESC_RST_ECAT */
/*
 * PR (RO)
 *
 * Progress of the reset procedure:
 * 00:initial/reset state
 * 01:after writing 0x52 ('R'), when previous
 * state was 00
 * 10:after writing 0x45 ('E'), when previous
 * state was 01
 * 11:after writing 0x53 ('S'), when previous
 * state was 10.
 * This value must not be observed
 * because the ESC enters reset when this
 * state is reached, resulting in state 00
 */
#define ESC_ESC_RST_ECAT_PR_MASK (0x3U)
#define ESC_ESC_RST_ECAT_PR_SHIFT (0U)
#define ESC_ESC_RST_ECAT_PR_GET(x) (((uint8_t)(x) & ESC_ESC_RST_ECAT_PR_MASK) >> ESC_ESC_RST_ECAT_PR_SHIFT)

/* Bitfield definition for register: ESC_RST_PDI */
/*
 * RST (RW)
 *
 * A reset is asserted after writing the reset
 * sequence 0x52 ('R'), 0x45 ('E') and 0x53 ('S')
 * in this register with 3 consecutive commands.
 * Any other command which does not continue
 * the sequence by writing the next expected
 * value will cancel the reset procedure
 */
#define ESC_ESC_RST_PDI_RST_MASK (0xFFU)
#define ESC_ESC_RST_PDI_RST_SHIFT (0U)
#define ESC_ESC_RST_PDI_RST_SET(x) (((uint8_t)(x) << ESC_ESC_RST_PDI_RST_SHIFT) & ESC_ESC_RST_PDI_RST_MASK)
#define ESC_ESC_RST_PDI_RST_GET(x) (((uint8_t)(x) & ESC_ESC_RST_PDI_RST_MASK) >> ESC_ESC_RST_PDI_RST_SHIFT)

/* Bitfield definition for register: ESC_DL_CTRL */
/*
 * SA (RO)
 *
 * Station alias:
 * 0:Ignore Station Alias
 * 1:Alias can be used for all configured
 * address comm
 */
#define ESC_ESC_DL_CTRL_SA_MASK (0x1000000UL)
#define ESC_ESC_DL_CTRL_SA_SHIFT (24U)
#define ESC_ESC_DL_CTRL_SA_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_SA_MASK) >> ESC_ESC_DL_CTRL_SA_SHIFT)

/*
 * RFS (RO)
 *
 * RX FIFO Size (ESC delays start of
 * forwarding until FIFO is at least half full).
 * RX FIFO Size/RX delay reduction** :
 * Value:EBUS:MII:
 * 0:-50 ns -40 ns (-80 ns***)
 * 1:-40 ns -40 ns (-80 ns***)
 * 2:-30 ns -40 ns
 * 3:-20 ns -40 ns
 * 4:-10 ns no change
 * 5:no change no change
 * 6:no change no change
 * 7:default default
 * NOTE:EEPROM value is only taken over at first
 * EEPROM load after power-on or reset
 */
#define ESC_ESC_DL_CTRL_RFS_MASK (0x70000UL)
#define ESC_ESC_DL_CTRL_RFS_SHIFT (16U)
#define ESC_ESC_DL_CTRL_RFS_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_RFS_MASK) >> ESC_ESC_DL_CTRL_RFS_SHIFT)

/*
 * LP3 (RO)
 *
 * Loop Port 3:
 * 00:Auto
 * 01:Auto Close
 * 10:Open
 * 11:Closed
 */
#define ESC_ESC_DL_CTRL_LP3_MASK (0xC000U)
#define ESC_ESC_DL_CTRL_LP3_SHIFT (14U)
#define ESC_ESC_DL_CTRL_LP3_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_LP3_MASK) >> ESC_ESC_DL_CTRL_LP3_SHIFT)

/*
 * LP2 (RO)
 *
 * Loop Port 2:
 * 00:Auto
 * 01:Auto Close
 * 10:Open
 * 11:Closed
 */
#define ESC_ESC_DL_CTRL_LP2_MASK (0x3000U)
#define ESC_ESC_DL_CTRL_LP2_SHIFT (12U)
#define ESC_ESC_DL_CTRL_LP2_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_LP2_MASK) >> ESC_ESC_DL_CTRL_LP2_SHIFT)

/*
 * LP1 (RO)
 *
 * Loop Port 1:
 * 00:Auto
 * 01:Auto Close
 * 10:Open
 * 11:Closed
 */
#define ESC_ESC_DL_CTRL_LP1_MASK (0xC00U)
#define ESC_ESC_DL_CTRL_LP1_SHIFT (10U)
#define ESC_ESC_DL_CTRL_LP1_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_LP1_MASK) >> ESC_ESC_DL_CTRL_LP1_SHIFT)

/*
 * LP0 (RO)
 *
 * Loop Port 0:
 * 00:Auto
 * 01:Auto Close
 * 10:Open
 * 11:Closed
 * NOTE:
 * Loop open means sending/receiving over this port
 * is enabled, loop closed means sending/receiving
 * is disabled and frames are forwarded to the next
 * open port internally.
 * Auto:loop closed at link down, opened at link up
 * Auto Close:loop closed at link down, opened with
 * writing 01 again after link up (or receiving a valid
 * Ethernet frame at the closed port)
 * Open:loop open regardless of link state
 * Closed:loop closed regardless of link state
 */
#define ESC_ESC_DL_CTRL_LP0_MASK (0x300U)
#define ESC_ESC_DL_CTRL_LP0_SHIFT (8U)
#define ESC_ESC_DL_CTRL_LP0_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_LP0_MASK) >> ESC_ESC_DL_CTRL_LP0_SHIFT)

/*
 * TU (RO)
 *
 * Temporary use of settings in
 * 0x0100:0x0103[8:15]:
 * 0:permanent use
 * 1:use for about 1 second, then revert to
 * previous settings
 */
#define ESC_ESC_DL_CTRL_TU_MASK (0x2U)
#define ESC_ESC_DL_CTRL_TU_SHIFT (1U)
#define ESC_ESC_DL_CTRL_TU_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_TU_MASK) >> ESC_ESC_DL_CTRL_TU_SHIFT)

/*
 * FR (RO)
 *
 * Forwarding rule:
 * 0:Forward non-EtherCAT frames:
 * EtherCAT frames are processed,
 * non-EtherCAT frames are forwarded
 * without processing or modification.
 * The source MAC address is not
 * changed for any frame.
 * 1:Destroy non-EtherCAT frames:
 * EtherCAT frames are processed, non-EtherCAT frames are destroyed.
 * The source MAC address is changed by
 * the Processing Unit for every frame
 * (SOURCE_MAC[1] is set
 */
#define ESC_ESC_DL_CTRL_FR_MASK (0x1U)
#define ESC_ESC_DL_CTRL_FR_SHIFT (0U)
#define ESC_ESC_DL_CTRL_FR_GET(x) (((uint32_t)(x) & ESC_ESC_DL_CTRL_FR_MASK) >> ESC_ESC_DL_CTRL_FR_SHIFT)

/* Bitfield definition for register: PHYSICAL_RW_OFFSET */
/*
 * OFFSET (RO)
 *
 * This register is used for ReadWrite
 * commands in Device Addressing mode
 * (FPRW, APRW, BRW).
 * The internal read address is directly taken
 * from the offset address field of the EtherCAT
 * datagram header, while the internal write
 * address is calculated by adding the Physical
 * Read/Write Offset value to the offset address
 * field.
 * Internal read address = ADR,
 * internal write address = ADR + R/W-Offset
 */
#define ESC_PHYSICAL_RW_OFFSET_OFFSET_MASK (0xFFFFU)
#define ESC_PHYSICAL_RW_OFFSET_OFFSET_SHIFT (0U)
#define ESC_PHYSICAL_RW_OFFSET_OFFSET_GET(x) (((uint16_t)(x) & ESC_PHYSICAL_RW_OFFSET_OFFSET_MASK) >> ESC_PHYSICAL_RW_OFFSET_OFFSET_SHIFT)

/* Bitfield definition for register: ESC_DL_STAT */
/*
 * CP3 (RO)
 *
 * Communication on Port 3:
 * 0:No stable communication
 * 1:Communication established
 */
#define ESC_ESC_DL_STAT_CP3_MASK (0x8000U)
#define ESC_ESC_DL_STAT_CP3_SHIFT (15U)
#define ESC_ESC_DL_STAT_CP3_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_CP3_MASK) >> ESC_ESC_DL_STAT_CP3_SHIFT)

/*
 * LP3 (RO)
 *
 * Loop Port 3:
 * 0:Open
 * 1:Closed
 */
#define ESC_ESC_DL_STAT_LP3_MASK (0x4000U)
#define ESC_ESC_DL_STAT_LP3_SHIFT (14U)
#define ESC_ESC_DL_STAT_LP3_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_LP3_MASK) >> ESC_ESC_DL_STAT_LP3_SHIFT)

/*
 * CP2 (RO)
 *
 * Communication on Port 2:
 * 0:No stable communication
 * 1:Communication established
 */
#define ESC_ESC_DL_STAT_CP2_MASK (0x2000U)
#define ESC_ESC_DL_STAT_CP2_SHIFT (13U)
#define ESC_ESC_DL_STAT_CP2_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_CP2_MASK) >> ESC_ESC_DL_STAT_CP2_SHIFT)

/*
 * LP2 (RO)
 *
 * Loop Port 2:
 * 0:Open
 * 1:Closed
 */
#define ESC_ESC_DL_STAT_LP2_MASK (0x1000U)
#define ESC_ESC_DL_STAT_LP2_SHIFT (12U)
#define ESC_ESC_DL_STAT_LP2_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_LP2_MASK) >> ESC_ESC_DL_STAT_LP2_SHIFT)

/*
 * CP1 (RO)
 *
 * Communication on Port 1:
 * 0:No stable communication
 * 1:Communication established
 */
#define ESC_ESC_DL_STAT_CP1_MASK (0x800U)
#define ESC_ESC_DL_STAT_CP1_SHIFT (11U)
#define ESC_ESC_DL_STAT_CP1_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_CP1_MASK) >> ESC_ESC_DL_STAT_CP1_SHIFT)

/*
 * LP1 (RO)
 *
 * Loop Port 1:
 * 0:Open
 * 1:Closed
 */
#define ESC_ESC_DL_STAT_LP1_MASK (0x400U)
#define ESC_ESC_DL_STAT_LP1_SHIFT (10U)
#define ESC_ESC_DL_STAT_LP1_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_LP1_MASK) >> ESC_ESC_DL_STAT_LP1_SHIFT)

/*
 * CP0 (RO)
 *
 * Communication on Port 0:
 * 0:No stable communication
 * 1:Communication established
 */
#define ESC_ESC_DL_STAT_CP0_MASK (0x200U)
#define ESC_ESC_DL_STAT_CP0_SHIFT (9U)
#define ESC_ESC_DL_STAT_CP0_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_CP0_MASK) >> ESC_ESC_DL_STAT_CP0_SHIFT)

/*
 * LP0 (RO)
 *
 * Loop Port 0:
 * 0:Open
 * 1:Closed
 */
#define ESC_ESC_DL_STAT_LP0_MASK (0x100U)
#define ESC_ESC_DL_STAT_LP0_SHIFT (8U)
#define ESC_ESC_DL_STAT_LP0_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_LP0_MASK) >> ESC_ESC_DL_STAT_LP0_SHIFT)

/*
 * PLP3 (RO)
 *
 * Physical link on Port 3:
 * 0:No link
 * 1:Link detected
 */
#define ESC_ESC_DL_STAT_PLP3_MASK (0x80U)
#define ESC_ESC_DL_STAT_PLP3_SHIFT (7U)
#define ESC_ESC_DL_STAT_PLP3_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_PLP3_MASK) >> ESC_ESC_DL_STAT_PLP3_SHIFT)

/*
 * PLP2 (RO)
 *
 * Physical link on Port 2:
 * 0:No link
 * 1:Link detected
 */
#define ESC_ESC_DL_STAT_PLP2_MASK (0x40U)
#define ESC_ESC_DL_STAT_PLP2_SHIFT (6U)
#define ESC_ESC_DL_STAT_PLP2_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_PLP2_MASK) >> ESC_ESC_DL_STAT_PLP2_SHIFT)

/*
 * PLP1 (RO)
 *
 * Physical link on Port 1:
 * 0:No link
 * 1:Link detected
 */
#define ESC_ESC_DL_STAT_PLP1_MASK (0x20U)
#define ESC_ESC_DL_STAT_PLP1_SHIFT (5U)
#define ESC_ESC_DL_STAT_PLP1_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_PLP1_MASK) >> ESC_ESC_DL_STAT_PLP1_SHIFT)

/*
 * PLP0 (RO)
 *
 * Physical link on Port 0:
 * 0:No link
 * 1:Link detected
 */
#define ESC_ESC_DL_STAT_PLP0_MASK (0x10U)
#define ESC_ESC_DL_STAT_PLP0_SHIFT (4U)
#define ESC_ESC_DL_STAT_PLP0_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_PLP0_MASK) >> ESC_ESC_DL_STAT_PLP0_SHIFT)

/*
 * ELD (RO)
 *
 * Enhanced Link detection:
 * 0:Deactivated for all ports
 * 1:Activated for at least one port
 * NOTE:EEPROM value is only transferred into this
 * register at first EEPROM load after power-on or
 * reset
 */
#define ESC_ESC_DL_STAT_ELD_MASK (0x4U)
#define ESC_ESC_DL_STAT_ELD_SHIFT (2U)
#define ESC_ESC_DL_STAT_ELD_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_ELD_MASK) >> ESC_ESC_DL_STAT_ELD_SHIFT)

/*
 * WDS (RO)
 *
 * PDI Watchdog Status:
 * 0:Watchdog expired
 * 1:Watchdog reloaded
 */
#define ESC_ESC_DL_STAT_WDS_MASK (0x2U)
#define ESC_ESC_DL_STAT_WDS_SHIFT (1U)
#define ESC_ESC_DL_STAT_WDS_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_WDS_MASK) >> ESC_ESC_DL_STAT_WDS_SHIFT)

/*
 * EPLC (RO)
 *
 * PDI operational/EEPROM loaded correctly:
 * 0:EEPROM not loaded, PDI not
 * operational (no access to Process Data
 * RAM)
 * 1:EEPROM loaded correctly, PDI
 * operational (access to Process Data
 * RAM)
 */
#define ESC_ESC_DL_STAT_EPLC_MASK (0x1U)
#define ESC_ESC_DL_STAT_EPLC_SHIFT (0U)
#define ESC_ESC_DL_STAT_EPLC_GET(x) (((uint16_t)(x) & ESC_ESC_DL_STAT_EPLC_MASK) >> ESC_ESC_DL_STAT_EPLC_SHIFT)

/* Bitfield definition for register: AL_CTRL */
/*
 * DI (RW)
 *
 * Device Identification:
 * 0:No request
 * 1:Device Identification request
 */
#define ESC_AL_CTRL_DI_MASK (0x20U)
#define ESC_AL_CTRL_DI_SHIFT (5U)
#define ESC_AL_CTRL_DI_SET(x) (((uint16_t)(x) << ESC_AL_CTRL_DI_SHIFT) & ESC_AL_CTRL_DI_MASK)
#define ESC_AL_CTRL_DI_GET(x) (((uint16_t)(x) & ESC_AL_CTRL_DI_MASK) >> ESC_AL_CTRL_DI_SHIFT)

/*
 * EIA (RW)
 *
 * Error Ind Ack:
 * 0:No Ack of Error Ind in AL status register
 * 1:Ack of Error Ind in AL status register
 */
#define ESC_AL_CTRL_EIA_MASK (0x10U)
#define ESC_AL_CTRL_EIA_SHIFT (4U)
#define ESC_AL_CTRL_EIA_SET(x) (((uint16_t)(x) << ESC_AL_CTRL_EIA_SHIFT) & ESC_AL_CTRL_EIA_MASK)
#define ESC_AL_CTRL_EIA_GET(x) (((uint16_t)(x) & ESC_AL_CTRL_EIA_MASK) >> ESC_AL_CTRL_EIA_SHIFT)

/*
 * IST (RW)
 *
 * Initiate State Transition of the Device State
 * Machine:
 * 1:Request Init State
 * 3:Request Bootstrap State
 * 2:Request Pre-Operational State
 * 4:Request Safe-Operational State
 * 8:Request Operational State
 */
#define ESC_AL_CTRL_IST_MASK (0xFU)
#define ESC_AL_CTRL_IST_SHIFT (0U)
#define ESC_AL_CTRL_IST_SET(x) (((uint16_t)(x) << ESC_AL_CTRL_IST_SHIFT) & ESC_AL_CTRL_IST_MASK)
#define ESC_AL_CTRL_IST_GET(x) (((uint16_t)(x) & ESC_AL_CTRL_IST_MASK) >> ESC_AL_CTRL_IST_SHIFT)

/* Bitfield definition for register: AL_STAT */
/*
 * DI (RW)
 *
 * Device Identification:
 * 0:Device Identification not valid
 * 1:Device Identification loaded
 */
#define ESC_AL_STAT_DI_MASK (0x20U)
#define ESC_AL_STAT_DI_SHIFT (5U)
#define ESC_AL_STAT_DI_SET(x) (((uint16_t)(x) << ESC_AL_STAT_DI_SHIFT) & ESC_AL_STAT_DI_MASK)
#define ESC_AL_STAT_DI_GET(x) (((uint16_t)(x) & ESC_AL_STAT_DI_MASK) >> ESC_AL_STAT_DI_SHIFT)

/*
 * EI (RW)
 *
 * Error Ind:
 * 0:Device is in State as requested or Flag
 * cleared by command
 * 1:Device has not entered requested State
 * or changed State as result of a local
 * action
 */
#define ESC_AL_STAT_EI_MASK (0x10U)
#define ESC_AL_STAT_EI_SHIFT (4U)
#define ESC_AL_STAT_EI_SET(x) (((uint16_t)(x) << ESC_AL_STAT_EI_SHIFT) & ESC_AL_STAT_EI_MASK)
#define ESC_AL_STAT_EI_GET(x) (((uint16_t)(x) & ESC_AL_STAT_EI_MASK) >> ESC_AL_STAT_EI_SHIFT)

/*
 * AS (RW)
 *
 * Actual State of the Device State Machine:
 * 1:Init State
 * 3:Bootstrap State
 * 2:Pre-Operational State
 * 4:Safe-Operational State
 * 8:Operational State
 */
#define ESC_AL_STAT_AS_MASK (0xFU)
#define ESC_AL_STAT_AS_SHIFT (0U)
#define ESC_AL_STAT_AS_SET(x) (((uint16_t)(x) << ESC_AL_STAT_AS_SHIFT) & ESC_AL_STAT_AS_MASK)
#define ESC_AL_STAT_AS_GET(x) (((uint16_t)(x) & ESC_AL_STAT_AS_MASK) >> ESC_AL_STAT_AS_SHIFT)

/* Bitfield definition for register: AL_STAT_CODE */
/*
 * CODE (RW)
 *
 * AL Status Code
 */
#define ESC_AL_STAT_CODE_CODE_MASK (0xFFFFU)
#define ESC_AL_STAT_CODE_CODE_SHIFT (0U)
#define ESC_AL_STAT_CODE_CODE_SET(x) (((uint16_t)(x) << ESC_AL_STAT_CODE_CODE_SHIFT) & ESC_AL_STAT_CODE_CODE_MASK)
#define ESC_AL_STAT_CODE_CODE_GET(x) (((uint16_t)(x) & ESC_AL_STAT_CODE_CODE_MASK) >> ESC_AL_STAT_CODE_CODE_SHIFT)

/* Bitfield definition for register: RUN_LED_OVRD */
/*
 * EN_OVRD (RW)
 *
 * Enable Override:
 * 0:Override disabled
 * 1:Override enabled
 */
#define ESC_RUN_LED_OVRD_EN_OVRD_MASK (0x10U)
#define ESC_RUN_LED_OVRD_EN_OVRD_SHIFT (4U)
#define ESC_RUN_LED_OVRD_EN_OVRD_SET(x) (((uint8_t)(x) << ESC_RUN_LED_OVRD_EN_OVRD_SHIFT) & ESC_RUN_LED_OVRD_EN_OVRD_MASK)
#define ESC_RUN_LED_OVRD_EN_OVRD_GET(x) (((uint8_t)(x) & ESC_RUN_LED_OVRD_EN_OVRD_MASK) >> ESC_RUN_LED_OVRD_EN_OVRD_SHIFT)

/*
 * LED_CODE (RW)
 *
 * LED code:
 * 0x0:Off
 * 0x1:Flash 1x
 * 0x2-0xC:Flash 2x – 12x
 * 0xD:Blinking
 * 0xE:Flickering
 * 0xF:On
 */
#define ESC_RUN_LED_OVRD_LED_CODE_MASK (0xFU)
#define ESC_RUN_LED_OVRD_LED_CODE_SHIFT (0U)
#define ESC_RUN_LED_OVRD_LED_CODE_SET(x) (((uint8_t)(x) << ESC_RUN_LED_OVRD_LED_CODE_SHIFT) & ESC_RUN_LED_OVRD_LED_CODE_MASK)
#define ESC_RUN_LED_OVRD_LED_CODE_GET(x) (((uint8_t)(x) & ESC_RUN_LED_OVRD_LED_CODE_MASK) >> ESC_RUN_LED_OVRD_LED_CODE_SHIFT)

/* Bitfield definition for register: ERR_LED_OVRD */
/*
 * EN_OVRD (RW)
 *
 * Enable Override:
 * 0:Override disabled
 * 1:Override enabled
 */
#define ESC_ERR_LED_OVRD_EN_OVRD_MASK (0x10U)
#define ESC_ERR_LED_OVRD_EN_OVRD_SHIFT (4U)
#define ESC_ERR_LED_OVRD_EN_OVRD_SET(x) (((uint8_t)(x) << ESC_ERR_LED_OVRD_EN_OVRD_SHIFT) & ESC_ERR_LED_OVRD_EN_OVRD_MASK)
#define ESC_ERR_LED_OVRD_EN_OVRD_GET(x) (((uint8_t)(x) & ESC_ERR_LED_OVRD_EN_OVRD_MASK) >> ESC_ERR_LED_OVRD_EN_OVRD_SHIFT)

/*
 * LED_CODE (RW)
 *
 * LED code:
 * 0x0:Off
 * 0x1-0xC:Flash 1x – 12x
 * 0xD:Blinking
 * 0xE:Flickering
 * 0xF:On
 */
#define ESC_ERR_LED_OVRD_LED_CODE_MASK (0xFU)
#define ESC_ERR_LED_OVRD_LED_CODE_SHIFT (0U)
#define ESC_ERR_LED_OVRD_LED_CODE_SET(x) (((uint8_t)(x) << ESC_ERR_LED_OVRD_LED_CODE_SHIFT) & ESC_ERR_LED_OVRD_LED_CODE_MASK)
#define ESC_ERR_LED_OVRD_LED_CODE_GET(x) (((uint8_t)(x) & ESC_ERR_LED_OVRD_LED_CODE_MASK) >> ESC_ERR_LED_OVRD_LED_CODE_SHIFT)

/* Bitfield definition for register: PDI_CTRL */
/*
 * PDI (RO)
 *
 * Process data interface:
 * 0x00:Interface deactivated (no PDI)
 * 0x01:4 Digital Input
 * 0x02:4 Digital Output
 * 0x03:2 Digital Input and 2 Digital Output
 * 0x04:Digital I/O
 * 0x05:SPI Slave
 * 0x06:Oversampling I/O
 * 0x07:EtherCAT Bridge (port 3)
 * 0x08:16 Bit asynchronous Microcontroller
 * interface
 * 0x09:8 Bit asynchronous Microcontroller
 * interface
 * 0x0A:16 Bit synchronous Microcontroller
 * interface
 * 0x0B:8 Bit synchronous Microcontroller
 * interface
 * 0x10:32 Digital Input and 0 Digital Output
 * 0x11:24 Digital Input and 8 Digital Output
 * 0x12:16 Digital Input and 16 Digital Output
 * 0x13:8 Digital Input and 24 Digital Output
 * 0x14:0 Digital Input and 32 Digital Output
 * 0x80:On-chip bus
 * Others:Reserved
 */
#define ESC_PDI_CTRL_PDI_MASK (0xFFU)
#define ESC_PDI_CTRL_PDI_SHIFT (0U)
#define ESC_PDI_CTRL_PDI_GET(x) (((uint8_t)(x) & ESC_PDI_CTRL_PDI_MASK) >> ESC_PDI_CTRL_PDI_SHIFT)

/* Bitfield definition for register: ESC_CFG */
/*
 * ELP3 (RO)
 *
 * Enhanced Link port 3:
 * 0:disabled (if bit 1=0)
 * 1:enabled
 */
#define ESC_ESC_CFG_ELP3_MASK (0x80U)
#define ESC_ESC_CFG_ELP3_SHIFT (7U)
#define ESC_ESC_CFG_ELP3_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_ELP3_MASK) >> ESC_ESC_CFG_ELP3_SHIFT)

/*
 * ELP2 (RO)
 *
 * Enhanced Link port 2:
 * 0:disabled (if bit 1=0)
 * 1:enabled
 */
#define ESC_ESC_CFG_ELP2_MASK (0x40U)
#define ESC_ESC_CFG_ELP2_SHIFT (6U)
#define ESC_ESC_CFG_ELP2_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_ELP2_MASK) >> ESC_ESC_CFG_ELP2_SHIFT)

/*
 * ELP1 (RO)
 *
 * Enhanced Link port 1:
 * 0:disabled (if bit 1=0)
 * 1:enabled
 */
#define ESC_ESC_CFG_ELP1_MASK (0x20U)
#define ESC_ESC_CFG_ELP1_SHIFT (5U)
#define ESC_ESC_CFG_ELP1_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_ELP1_MASK) >> ESC_ESC_CFG_ELP1_SHIFT)

/*
 * ELP0 (RO)
 *
 * Enhanced Link port 0:
 * 0:disabled (if bit 1=0)
 * 1:enabled
 */
#define ESC_ESC_CFG_ELP0_MASK (0x10U)
#define ESC_ESC_CFG_ELP0_SHIFT (4U)
#define ESC_ESC_CFG_ELP0_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_ELP0_MASK) >> ESC_ESC_CFG_ELP0_SHIFT)

/*
 * CDLIU (RO)
 *
 * Distributed Clocks Latch In Unit:
 * 0:disabled (power saving)
 * 1:enabled
 */
#define ESC_ESC_CFG_CDLIU_MASK (0x8U)
#define ESC_ESC_CFG_CDLIU_SHIFT (3U)
#define ESC_ESC_CFG_CDLIU_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_CDLIU_MASK) >> ESC_ESC_CFG_CDLIU_SHIFT)

/*
 * DCSOU (RO)
 *
 * Distributed Clocks SYNC Out Unit:
 * 0:disabled (power saving)
 * 1:enabled
 */
#define ESC_ESC_CFG_DCSOU_MASK (0x4U)
#define ESC_ESC_CFG_DCSOU_SHIFT (2U)
#define ESC_ESC_CFG_DCSOU_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_DCSOU_MASK) >> ESC_ESC_CFG_DCSOU_SHIFT)

/*
 * ELDAP (RO)
 *
 * Enhanced Link detection all ports:
 * 0:disabled (if bits [7:4]=0)
 * 1:enabled at all ports (overrides bits [7:4])
 */
#define ESC_ESC_CFG_ELDAP_MASK (0x2U)
#define ESC_ESC_CFG_ELDAP_SHIFT (1U)
#define ESC_ESC_CFG_ELDAP_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_ELDAP_MASK) >> ESC_ESC_CFG_ELDAP_SHIFT)

/*
 * DEV_EMU (RO)
 *
 * Device emulation (control of AL status):
 * 0:AL status register has to be set by PDI
 * 1:AL status register will be set to value
 * written to AL control register
 */
#define ESC_ESC_CFG_DEV_EMU_MASK (0x1U)
#define ESC_ESC_CFG_DEV_EMU_SHIFT (0U)
#define ESC_ESC_CFG_DEV_EMU_GET(x) (((uint8_t)(x) & ESC_ESC_CFG_DEV_EMU_MASK) >> ESC_ESC_CFG_DEV_EMU_SHIFT)

/* Bitfield definition for register: PDI_INFO */
/*
 * PDICN (RO)
 *
 * PDI configuration invalid:
 * 0:PDI configuration ok
 * 1:PDI configuration invalid
 */
#define ESC_PDI_INFO_PDICN_MASK (0x8U)
#define ESC_PDI_INFO_PDICN_SHIFT (3U)
#define ESC_PDI_INFO_PDICN_GET(x) (((uint16_t)(x) & ESC_PDI_INFO_PDICN_MASK) >> ESC_PDI_INFO_PDICN_SHIFT)

/*
 * PDIA (RO)
 *
 * PDI active:
 * 0:PDI not active
 * 1:PDI active
 */
#define ESC_PDI_INFO_PDIA_MASK (0x4U)
#define ESC_PDI_INFO_PDIA_SHIFT (2U)
#define ESC_PDI_INFO_PDIA_GET(x) (((uint16_t)(x) & ESC_PDI_INFO_PDIA_MASK) >> ESC_PDI_INFO_PDIA_SHIFT)

/*
 * ECLFE (RO)
 *
 * ESC configuration area loaded from
 * EEPROM:
 * 0:not loaded
 * 1:loaded
 */
#define ESC_PDI_INFO_ECLFE_MASK (0x2U)
#define ESC_PDI_INFO_ECLFE_SHIFT (1U)
#define ESC_PDI_INFO_ECLFE_GET(x) (((uint16_t)(x) & ESC_PDI_INFO_ECLFE_MASK) >> ESC_PDI_INFO_ECLFE_SHIFT)

/*
 * PFABW (RO)
 *
 * DI function acknowledge by write:
 * 0:Disabled
 * 1:Enabled
 */
#define ESC_PDI_INFO_PFABW_MASK (0x1U)
#define ESC_PDI_INFO_PFABW_SHIFT (0U)
#define ESC_PDI_INFO_PFABW_GET(x) (((uint16_t)(x) & ESC_PDI_INFO_PFABW_MASK) >> ESC_PDI_INFO_PFABW_SHIFT)

/* Bitfield definition for register: PDI_CFG */
/*
 * BUS (RO)
 *
 * On-chip bus:
 * 000:Intel® Avalon®
 * 001:AXI®
 * 010:Xilinx® PLB v4.6
 * 100:Xilinx OPB
 * others:reserved
 */
#define ESC_PDI_CFG_BUS_MASK (0xE0U)
#define ESC_PDI_CFG_BUS_SHIFT (5U)
#define ESC_PDI_CFG_BUS_GET(x) (((uint8_t)(x) & ESC_PDI_CFG_BUS_MASK) >> ESC_PDI_CFG_BUS_SHIFT)

/*
 * CLK (RO)
 *
 * On-chip bus clock:
 * 0:asynchronous
 * 1-31:synchronous multiplication factor
 * (N * 25 MHz)
 */
#define ESC_PDI_CFG_CLK_MASK (0x1FU)
#define ESC_PDI_CFG_CLK_SHIFT (0U)
#define ESC_PDI_CFG_CLK_GET(x) (((uint8_t)(x) & ESC_PDI_CFG_CLK_MASK) >> ESC_PDI_CFG_CLK_SHIFT)

/* Bitfield definition for register: PDI_SL_CFG */
/*
 * SYNC1_MAER (RO)
 *
 * SYNC1 mapped to AL Event Request
 * register 0x0220[3]:
 * 0:Disabled
 * 1:Enabled
 */
#define ESC_PDI_SL_CFG_SYNC1_MAER_MASK (0x80U)
#define ESC_PDI_SL_CFG_SYNC1_MAER_SHIFT (7U)
#define ESC_PDI_SL_CFG_SYNC1_MAER_GET(x) (((uint8_t)(x) & ESC_PDI_SL_CFG_SYNC1_MAER_MASK) >> ESC_PDI_SL_CFG_SYNC1_MAER_SHIFT)

/*
 * SYNC1_CFG (RO)
 *
 * SYNC1/LATCH1 configuration*:
 * 0:LATCH1 input
 * 1:SYNC1 output
 */
#define ESC_PDI_SL_CFG_SYNC1_CFG_MASK (0x40U)
#define ESC_PDI_SL_CFG_SYNC1_CFG_SHIFT (6U)
#define ESC_PDI_SL_CFG_SYNC1_CFG_GET(x) (((uint8_t)(x) & ESC_PDI_SL_CFG_SYNC1_CFG_MASK) >> ESC_PDI_SL_CFG_SYNC1_CFG_SHIFT)

/*
 * SYNC1_ODP (RO)
 *
 * SYNC1 output driver/polarity:
 * 00:Push-Pull active low
 * 01:Open Drain (active low)
 * 10:Push-Pull active high
 * 11:Open Source (active high)
 */
#define ESC_PDI_SL_CFG_SYNC1_ODP_MASK (0x30U)
#define ESC_PDI_SL_CFG_SYNC1_ODP_SHIFT (4U)
#define ESC_PDI_SL_CFG_SYNC1_ODP_GET(x) (((uint8_t)(x) & ESC_PDI_SL_CFG_SYNC1_ODP_MASK) >> ESC_PDI_SL_CFG_SYNC1_ODP_SHIFT)

/*
 * SYNC0_MAER (RO)
 *
 * SYNC0 mapped to AL Event Request
 * register 0x0220[2]:
 * 0:Disabled
 * 1:Enabled
 */
#define ESC_PDI_SL_CFG_SYNC0_MAER_MASK (0x8U)
#define ESC_PDI_SL_CFG_SYNC0_MAER_SHIFT (3U)
#define ESC_PDI_SL_CFG_SYNC0_MAER_GET(x) (((uint8_t)(x) & ESC_PDI_SL_CFG_SYNC0_MAER_MASK) >> ESC_PDI_SL_CFG_SYNC0_MAER_SHIFT)

/*
 * SYNC0_CFG (RO)
 *
 * SYNC0/LATCH0 configuration*:
 * 0:LATCH0 Input
 * 1:SYNC0 Output
 */
#define ESC_PDI_SL_CFG_SYNC0_CFG_MASK (0x4U)
#define ESC_PDI_SL_CFG_SYNC0_CFG_SHIFT (2U)
#define ESC_PDI_SL_CFG_SYNC0_CFG_GET(x) (((uint8_t)(x) & ESC_PDI_SL_CFG_SYNC0_CFG_MASK) >> ESC_PDI_SL_CFG_SYNC0_CFG_SHIFT)

/*
 * SYNC0_ODP (RO)
 *
 * SYNC0 output driver/polarity:
 * 00:Push-Pull active low
 * 01:Open Drain (active low)
 * 10:Push-Pull active high
 * 11:Open Source (active high)
 */
#define ESC_PDI_SL_CFG_SYNC0_ODP_MASK (0x3U)
#define ESC_PDI_SL_CFG_SYNC0_ODP_SHIFT (0U)
#define ESC_PDI_SL_CFG_SYNC0_ODP_GET(x) (((uint8_t)(x) & ESC_PDI_SL_CFG_SYNC0_ODP_MASK) >> ESC_PDI_SL_CFG_SYNC0_ODP_SHIFT)

/* Bitfield definition for register: PDI_EXT_CFG */
/*
 * OCBST (RW)
 *
 * On-chip bus sub-type for AXI:
 * 000:AXI3
 * 001:AXI4
 * 010:AXI4 LITE
 * others:reserved
 */
#define ESC_PDI_EXT_CFG_OCBST_MASK (0x700U)
#define ESC_PDI_EXT_CFG_OCBST_SHIFT (8U)
#define ESC_PDI_EXT_CFG_OCBST_SET(x) (((uint16_t)(x) << ESC_PDI_EXT_CFG_OCBST_SHIFT) & ESC_PDI_EXT_CFG_OCBST_MASK)
#define ESC_PDI_EXT_CFG_OCBST_GET(x) (((uint16_t)(x) & ESC_PDI_EXT_CFG_OCBST_MASK) >> ESC_PDI_EXT_CFG_OCBST_SHIFT)

/*
 * RPS (RO)
 *
 * Read prefetch size (in cycles of PDI width):
 * 0:4 cycles
 * 1:1 cycle (typical)
 * 2:2 cycles
 * 3:Reserved
 */
#define ESC_PDI_EXT_CFG_RPS_MASK (0x3U)
#define ESC_PDI_EXT_CFG_RPS_SHIFT (0U)
#define ESC_PDI_EXT_CFG_RPS_GET(x) (((uint16_t)(x) & ESC_PDI_EXT_CFG_RPS_MASK) >> ESC_PDI_EXT_CFG_RPS_SHIFT)

/* Bitfield definition for register: ECAT_EVT_MSK */
/*
 * MASK (RO)
 *
 * ECAT Event masking of the ECAT Event
 * Request Events for mapping into ECAT event
 * field of EtherCAT frames:
 * 0:Corresponding ECAT Event Request
 * register bit is not mapped
 * 1:Corresponding ECAT Event Request
 * register bit is mapped
 */
#define ESC_ECAT_EVT_MSK_MASK_MASK (0xFFFFU)
#define ESC_ECAT_EVT_MSK_MASK_SHIFT (0U)
#define ESC_ECAT_EVT_MSK_MASK_GET(x) (((uint16_t)(x) & ESC_ECAT_EVT_MSK_MASK_MASK) >> ESC_ECAT_EVT_MSK_MASK_SHIFT)

/* Bitfield definition for register: PDI_AL_EVT_MSK */
/*
 * MASK (RW)
 *
 * AL Event masking of the AL Event Request
 * register Events for mapping to PDI IRQ
 * signal:
 * 0:Corresponding AL Event Request
 * register bit is not mapped
 * 1:Corresponding AL Event Request
 * register bit is mapped
 */
#define ESC_PDI_AL_EVT_MSK_MASK_MASK (0xFFFFFFFFUL)
#define ESC_PDI_AL_EVT_MSK_MASK_SHIFT (0U)
#define ESC_PDI_AL_EVT_MSK_MASK_SET(x) (((uint32_t)(x) << ESC_PDI_AL_EVT_MSK_MASK_SHIFT) & ESC_PDI_AL_EVT_MSK_MASK_MASK)
#define ESC_PDI_AL_EVT_MSK_MASK_GET(x) (((uint32_t)(x) & ESC_PDI_AL_EVT_MSK_MASK_MASK) >> ESC_PDI_AL_EVT_MSK_MASK_SHIFT)

/* Bitfield definition for register: ECAT_EVT_REQ */
/*
 * MV (RO)
 *
 * Mirrors values of each SyncManager Status:
 * 0:No Sync Channel 0 event
 * 1:Sync Channel 0 event pending
 * 0:No Sync Channel 1 event
 * 1:Sync Channel 1 event pending
 * …
 * 0:No Sync Channel 7 event
 * 1:Sync Channel 7 event pending
 */
#define ESC_ECAT_EVT_REQ_MV_MASK (0xFF0U)
#define ESC_ECAT_EVT_REQ_MV_SHIFT (4U)
#define ESC_ECAT_EVT_REQ_MV_GET(x) (((uint16_t)(x) & ESC_ECAT_EVT_REQ_MV_MASK) >> ESC_ECAT_EVT_REQ_MV_SHIFT)

/*
 * ALS_EVT (RO)
 *
 * AL Status event:
 * 0:No change in AL Status
 * 1:AL Status change
 * (Bit is cleared by reading out AL Status
 * 0x0130:0x0131 from ECAT)
 */
#define ESC_ECAT_EVT_REQ_ALS_EVT_MASK (0x8U)
#define ESC_ECAT_EVT_REQ_ALS_EVT_SHIFT (3U)
#define ESC_ECAT_EVT_REQ_ALS_EVT_GET(x) (((uint16_t)(x) & ESC_ECAT_EVT_REQ_ALS_EVT_MASK) >> ESC_ECAT_EVT_REQ_ALS_EVT_SHIFT)

/*
 * DLS_EVT (RO)
 *
 * DL Status event:
 * 0:No change in DL Status
 * 1:DL Status change
 * (Bit is cleared by reading out DL Status
 * 0x0110:0x0111 from ECAT)
 */
#define ESC_ECAT_EVT_REQ_DLS_EVT_MASK (0x4U)
#define ESC_ECAT_EVT_REQ_DLS_EVT_SHIFT (2U)
#define ESC_ECAT_EVT_REQ_DLS_EVT_GET(x) (((uint16_t)(x) & ESC_ECAT_EVT_REQ_DLS_EVT_MASK) >> ESC_ECAT_EVT_REQ_DLS_EVT_SHIFT)

/*
 * DCL_EVT (RO)
 *
 * DC Latch event:
 * 0:No change on DC Latch Inputs
 * 1:At least one change on DC Latch Inputs
 * (Bit is cleared by reading DC Latch event
 * times from ECAT for ECAT-controlled Latch
 * Units, so that Latch 0/1 Status
 * 0x09AE:0x09AF indicates no event)
 */
#define ESC_ECAT_EVT_REQ_DCL_EVT_MASK (0x1U)
#define ESC_ECAT_EVT_REQ_DCL_EVT_SHIFT (0U)
#define ESC_ECAT_EVT_REQ_DCL_EVT_GET(x) (((uint16_t)(x) & ESC_ECAT_EVT_REQ_DCL_EVT_MASK) >> ESC_ECAT_EVT_REQ_DCL_EVT_SHIFT)

/* Bitfield definition for register: AL_EVT_REQ */
/*
 * SM_INT (RO)
 *
 * SyncManager interrupts (SyncManager
 * register offset 0x5, bit [0] or [1]):
 * 0:No SyncManager 0 interrupt
 * 1:SyncManager 0 interrupt pending
 * 0:No SyncManager 1 interrupt
 * 1:SyncManager 1 interrupt pending
 * …
 * 0:No SyncManager 15 interrupt
 * 1:SyncManager 15 interrupt pending
 */
#define ESC_AL_EVT_REQ_SM_INT_MASK (0xFFFF00UL)
#define ESC_AL_EVT_REQ_SM_INT_SHIFT (8U)
#define ESC_AL_EVT_REQ_SM_INT_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_SM_INT_MASK) >> ESC_AL_EVT_REQ_SM_INT_SHIFT)

/*
 * WDG_PD (RO)
 *
 * Watchdog Process Data:
 * 0:Has not expired
 * 1:Has expired
 * (Bit is cleared by reading Watchdog Status
 * Process Data 0x0440 from PDI)
 */
#define ESC_AL_EVT_REQ_WDG_PD_MASK (0x40U)
#define ESC_AL_EVT_REQ_WDG_PD_SHIFT (6U)
#define ESC_AL_EVT_REQ_WDG_PD_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_WDG_PD_MASK) >> ESC_AL_EVT_REQ_WDG_PD_SHIFT)

/*
 * EE_EMU (RO)
 *
 * EEPROM Emulation:
 * 0:No command pending
 * 1:EEPROM command pending
 * (Bit is cleared by acknowledging the
 * command in EEPROM Control/Status
 * register 0x0502:0x0503[10:8] from PDI)
 */
#define ESC_AL_EVT_REQ_EE_EMU_MASK (0x20U)
#define ESC_AL_EVT_REQ_EE_EMU_SHIFT (5U)
#define ESC_AL_EVT_REQ_EE_EMU_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_EE_EMU_MASK) >> ESC_AL_EVT_REQ_EE_EMU_SHIFT)

/*
 * SM_ACT (RO)
 *
 * SyncManager activation register
 * (SyncManager register offset 0x6) changed:
 * 0:No change in any SyncManager
 * 1:At least one SyncManager changed
 * (Bit is cleared by reading SyncManager
 * Activation registers 0x0806 etc. from PDI)
 */
#define ESC_AL_EVT_REQ_SM_ACT_MASK (0x10U)
#define ESC_AL_EVT_REQ_SM_ACT_SHIFT (4U)
#define ESC_AL_EVT_REQ_SM_ACT_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_SM_ACT_MASK) >> ESC_AL_EVT_REQ_SM_ACT_SHIFT)

/*
 * ST_DC_SYNC1 (RO)
 *
 * State of DC SYNC1 (if register
 * 0x0151[7]=1):
 * (Bit is cleared by reading of SYNC1 status
 * 0x098F from PDI, use only in Acknowledge
 * mode)
 */
#define ESC_AL_EVT_REQ_ST_DC_SYNC1_MASK (0x8U)
#define ESC_AL_EVT_REQ_ST_DC_SYNC1_SHIFT (3U)
#define ESC_AL_EVT_REQ_ST_DC_SYNC1_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_ST_DC_SYNC1_MASK) >> ESC_AL_EVT_REQ_ST_DC_SYNC1_SHIFT)

/*
 * ST_DC_SYNC0 (RO)
 *
 * State of DC SYNC0 (if register
 * 0x0151[3]=1):
 * (Bit is cleared by reading SYNC0 status
 * 0x098E from PDI, use only in Acknowledge
 * mode)
 */
#define ESC_AL_EVT_REQ_ST_DC_SYNC0_MASK (0x4U)
#define ESC_AL_EVT_REQ_ST_DC_SYNC0_SHIFT (2U)
#define ESC_AL_EVT_REQ_ST_DC_SYNC0_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_ST_DC_SYNC0_MASK) >> ESC_AL_EVT_REQ_ST_DC_SYNC0_SHIFT)

/*
 * DCL_EVT (RO)
 *
 * DC Latch event:
 * 0:No change on DC Latch Inputs
 * 1:At least one change on DC Latch Inputs
 * (Bit is cleared by reading DC Latch event
 * times from PDI, so that Latch 0/1 Status
 * 0x09AE:0x09AF indicates no event. Available
 * if Latch Unit is PDI-controlled)
 */
#define ESC_AL_EVT_REQ_DCL_EVT_MASK (0x2U)
#define ESC_AL_EVT_REQ_DCL_EVT_SHIFT (1U)
#define ESC_AL_EVT_REQ_DCL_EVT_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_DCL_EVT_MASK) >> ESC_AL_EVT_REQ_DCL_EVT_SHIFT)

/*
 * ALC_EVT (RO)
 *
 * AL Control event:
 * 0:No AL Control Register change
 * 1:AL Control Register has been written3
 * (Bit is cleared by reading AL Control register
 * 0x0120:0x0121 from PDI)
 */
#define ESC_AL_EVT_REQ_ALC_EVT_MASK (0x1U)
#define ESC_AL_EVT_REQ_ALC_EVT_SHIFT (0U)
#define ESC_AL_EVT_REQ_ALC_EVT_GET(x) (((uint32_t)(x) & ESC_AL_EVT_REQ_ALC_EVT_MASK) >> ESC_AL_EVT_REQ_ALC_EVT_SHIFT)

/* Bitfield definition for register array: RX_ERR_CNT */
/*
 * RX_ERR (RO)
 *
 * RX Error counter of Port y (counting is
 * stopped when 0xFF is reached).
 */
#define ESC_RX_ERR_CNT_RX_ERR_MASK (0xFF00U)
#define ESC_RX_ERR_CNT_RX_ERR_SHIFT (8U)
#define ESC_RX_ERR_CNT_RX_ERR_GET(x) (((uint16_t)(x) & ESC_RX_ERR_CNT_RX_ERR_MASK) >> ESC_RX_ERR_CNT_RX_ERR_SHIFT)

/*
 * IVD_FRM (RO)
 *
 * Invalid frame counter of Port y (counting is
 * stopped when 0xFF is reached).
 */
#define ESC_RX_ERR_CNT_IVD_FRM_MASK (0xFFU)
#define ESC_RX_ERR_CNT_IVD_FRM_SHIFT (0U)
#define ESC_RX_ERR_CNT_IVD_FRM_GET(x) (((uint16_t)(x) & ESC_RX_ERR_CNT_IVD_FRM_MASK) >> ESC_RX_ERR_CNT_IVD_FRM_SHIFT)

/* Bitfield definition for register array: FWD_RX_ERR_CNT */
/*
 * ERR_CNT (RO)
 *
 * Forwarded error counter of Port y (counting is
 * stopped when 0xFF is reached).
 */
#define ESC_FWD_RX_ERR_CNT_ERR_CNT_MASK (0xFFU)
#define ESC_FWD_RX_ERR_CNT_ERR_CNT_SHIFT (0U)
#define ESC_FWD_RX_ERR_CNT_ERR_CNT_GET(x) (((uint8_t)(x) & ESC_FWD_RX_ERR_CNT_ERR_CNT_MASK) >> ESC_FWD_RX_ERR_CNT_ERR_CNT_SHIFT)

/* Bitfield definition for register: ECAT_PU_ERR_CNT */
/*
 * CNT (RO)
 *
 * ECAT Processing Unit error counter
 * (counting is stopped when 0xFF is reached).
 * Counts errors of frames passing the
 * Processing Unit.
 */
#define ESC_ECAT_PU_ERR_CNT_CNT_MASK (0xFFU)
#define ESC_ECAT_PU_ERR_CNT_CNT_SHIFT (0U)
#define ESC_ECAT_PU_ERR_CNT_CNT_GET(x) (((uint8_t)(x) & ESC_ECAT_PU_ERR_CNT_CNT_MASK) >> ESC_ECAT_PU_ERR_CNT_CNT_SHIFT)

/* Bitfield definition for register: PDI_ERR_CNT */
/*
 * CNT (RO)
 *
 * PDI Error counter (counting is stopped when
 * 0xFF is reached). Counts if a PDI access has
 * an interface error.
 */
#define ESC_PDI_ERR_CNT_CNT_MASK (0xFFU)
#define ESC_PDI_ERR_CNT_CNT_SHIFT (0U)
#define ESC_PDI_ERR_CNT_CNT_GET(x) (((uint8_t)(x) & ESC_PDI_ERR_CNT_CNT_MASK) >> ESC_PDI_ERR_CNT_CNT_SHIFT)

/* Bitfield definition for register array: LOST_LINK_CNT */
/*
 * CNT (RO)
 *
 * Lost Link counter of Port y (counting is
 * stopped when 0xff is reached). Counts only if
 * port is open and loop is Auto.
 */
#define ESC_LOST_LINK_CNT_CNT_MASK (0xFFU)
#define ESC_LOST_LINK_CNT_CNT_SHIFT (0U)
#define ESC_LOST_LINK_CNT_CNT_GET(x) (((uint8_t)(x) & ESC_LOST_LINK_CNT_CNT_MASK) >> ESC_LOST_LINK_CNT_CNT_SHIFT)

/* Bitfield definition for register: WDG_DIV */
/*
 * DIV (RO)
 *
 * Watchdog divider:Number of 25 MHz tics
 * (minus 2) that represent the basic watchdog
 * increment. (Default value is 100µs = 2498)
 */
#define ESC_WDG_DIV_DIV_MASK (0xFFFFU)
#define ESC_WDG_DIV_DIV_SHIFT (0U)
#define ESC_WDG_DIV_DIV_GET(x) (((uint16_t)(x) & ESC_WDG_DIV_DIV_MASK) >> ESC_WDG_DIV_DIV_SHIFT)

/* Bitfield definition for register: WDG_TIME_PDI */
/*
 * TIME (RO)
 *
 * Watchdog Time PDI:number of basic
 * watchdog increments
 * (Default value with Watchdog divider 100µs
 * means 100ms Watchdog)
 */
#define ESC_WDG_TIME_PDI_TIME_MASK (0xFFFFU)
#define ESC_WDG_TIME_PDI_TIME_SHIFT (0U)
#define ESC_WDG_TIME_PDI_TIME_GET(x) (((uint16_t)(x) & ESC_WDG_TIME_PDI_TIME_MASK) >> ESC_WDG_TIME_PDI_TIME_SHIFT)

/* Bitfield definition for register: WDG_TIME_PDAT */
/*
 * TIME (RO)
 *
 * Watchdog Time Process Data:number of
 * basic watchdog increments
 * (Default value with Watchdog divider 100µs
 * means 100ms Watchdog)
 */
#define ESC_WDG_TIME_PDAT_TIME_MASK (0xFFFFU)
#define ESC_WDG_TIME_PDAT_TIME_SHIFT (0U)
#define ESC_WDG_TIME_PDAT_TIME_GET(x) (((uint16_t)(x) & ESC_WDG_TIME_PDAT_TIME_MASK) >> ESC_WDG_TIME_PDAT_TIME_SHIFT)

/* Bitfield definition for register: WDG_STAT_PDAT */
/*
 * ST (RW)
 *
 * Watchdog Status of Process Data (triggered
 * by SyncManagers)
 * 0:Watchdog Process Data expired
 * 1:Watchdog Process Data is active or
 * disabled
 */
#define ESC_WDG_STAT_PDAT_ST_MASK (0x1U)
#define ESC_WDG_STAT_PDAT_ST_SHIFT (0U)
#define ESC_WDG_STAT_PDAT_ST_SET(x) (((uint16_t)(x) << ESC_WDG_STAT_PDAT_ST_SHIFT) & ESC_WDG_STAT_PDAT_ST_MASK)
#define ESC_WDG_STAT_PDAT_ST_GET(x) (((uint16_t)(x) & ESC_WDG_STAT_PDAT_ST_MASK) >> ESC_WDG_STAT_PDAT_ST_SHIFT)

/* Bitfield definition for register: WDG_CNT_PDAT */
/*
 * CNT (RO)
 *
 * Watchdog Counter Process Data (counting is
 * stopped when 0xFF is reached). Counts if
 * Process Data Watchdog expires.
 */
#define ESC_WDG_CNT_PDAT_CNT_MASK (0xFFU)
#define ESC_WDG_CNT_PDAT_CNT_SHIFT (0U)
#define ESC_WDG_CNT_PDAT_CNT_GET(x) (((uint8_t)(x) & ESC_WDG_CNT_PDAT_CNT_MASK) >> ESC_WDG_CNT_PDAT_CNT_SHIFT)

/* Bitfield definition for register: WDG_CNT_PDI */
/*
 * CNT (RO)
 *
 * Watchdog PDI counter (counting is stopped
 * when 0xFF is reached). Counts if PDI
 * Watchdog expires.
 */
#define ESC_WDG_CNT_PDI_CNT_MASK (0xFFU)
#define ESC_WDG_CNT_PDI_CNT_SHIFT (0U)
#define ESC_WDG_CNT_PDI_CNT_GET(x) (((uint8_t)(x) & ESC_WDG_CNT_PDI_CNT_MASK) >> ESC_WDG_CNT_PDI_CNT_SHIFT)

/* Bitfield definition for register: EEPROM_CFG */
/*
 * FORCE_ECAT (RO)
 *
 * Force ECAT access:
 * 0:Do not change Bit 0x0501[0]
 * 1:Reset Bit 0x0501[0] to 0
 */
#define ESC_EEPROM_CFG_FORCE_ECAT_MASK (0x2U)
#define ESC_EEPROM_CFG_FORCE_ECAT_SHIFT (1U)
#define ESC_EEPROM_CFG_FORCE_ECAT_GET(x) (((uint8_t)(x) & ESC_EEPROM_CFG_FORCE_ECAT_MASK) >> ESC_EEPROM_CFG_FORCE_ECAT_SHIFT)

/*
 * PDI (RO)
 *
 * EEPROM control is offered to PDI:
 * 0:no
 * 1:yes (PDI has EEPROM control)
 */
#define ESC_EEPROM_CFG_PDI_MASK (0x1U)
#define ESC_EEPROM_CFG_PDI_SHIFT (0U)
#define ESC_EEPROM_CFG_PDI_GET(x) (((uint8_t)(x) & ESC_EEPROM_CFG_PDI_MASK) >> ESC_EEPROM_CFG_PDI_SHIFT)

/* Bitfield definition for register: EEPROM_PDI_ACC_STAT */
/*
 * ACCESS (RW)
 *
 * Access to EEPROM:
 * 0:PDI releases EEPROM access
 * 1:PDI takes EEPROM access (PDI has
 * EEPROM control)
 */
#define ESC_EEPROM_PDI_ACC_STAT_ACCESS_MASK (0x1U)
#define ESC_EEPROM_PDI_ACC_STAT_ACCESS_SHIFT (0U)
#define ESC_EEPROM_PDI_ACC_STAT_ACCESS_SET(x) (((uint8_t)(x) << ESC_EEPROM_PDI_ACC_STAT_ACCESS_SHIFT) & ESC_EEPROM_PDI_ACC_STAT_ACCESS_MASK)
#define ESC_EEPROM_PDI_ACC_STAT_ACCESS_GET(x) (((uint8_t)(x) & ESC_EEPROM_PDI_ACC_STAT_ACCESS_MASK) >> ESC_EEPROM_PDI_ACC_STAT_ACCESS_SHIFT)

/* Bitfield definition for register: EEPROM_CTRL_STAT */
/*
 * BUSY (RO)
 *
 * Busy:
 * 0:EEPROM Interface is idle
 * 1:EEPROM Interface is busy
 */
#define ESC_EEPROM_CTRL_STAT_BUSY_MASK (0x8000U)
#define ESC_EEPROM_CTRL_STAT_BUSY_SHIFT (15U)
#define ESC_EEPROM_CTRL_STAT_BUSY_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_BUSY_MASK) >> ESC_EEPROM_CTRL_STAT_BUSY_SHIFT)

/*
 * ERR_WEN (RO)
 *
 * Error Write Enable*3
 * :
 * 0:No error
 * 1:Write Command without Write enable
 */
#define ESC_EEPROM_CTRL_STAT_ERR_WEN_MASK (0x4000U)
#define ESC_EEPROM_CTRL_STAT_ERR_WEN_SHIFT (14U)
#define ESC_EEPROM_CTRL_STAT_ERR_WEN_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_ERR_WEN_MASK) >> ESC_EEPROM_CTRL_STAT_ERR_WEN_SHIFT)

/*
 * ERR_ACK_CMD (RW)
 *
 * Error Acknowledge/Command*3
 * :
 * 0:No error
 * 1:Missing EEPROM acknowledge or invalid
 * command
 * EEPROM emulation only:PDI writes 1 if a temporary
 * failure has occurred.
 */
#define ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_MASK (0x2000U)
#define ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_SHIFT (13U)
#define ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_SET(x) (((uint16_t)(x) << ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_SHIFT) & ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_MASK)
#define ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_MASK) >> ESC_EEPROM_CTRL_STAT_ERR_ACK_CMD_SHIFT)

/*
 * EE_LDS (RO)
 *
 * EEPROM loading status:
 * 0:EEPROM loaded, device information ok
 * 1:EEPROM not loaded, device information not
 * available (EEPROM loading in progress or
 * finished with a failure)
 */
#define ESC_EEPROM_CTRL_STAT_EE_LDS_MASK (0x1000U)
#define ESC_EEPROM_CTRL_STAT_EE_LDS_SHIFT (12U)
#define ESC_EEPROM_CTRL_STAT_EE_LDS_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_EE_LDS_MASK) >> ESC_EEPROM_CTRL_STAT_EE_LDS_SHIFT)

/*
 * CKSM_ERR (RW)
 *
 * Checksum Error in ESC Configuration Area:
 * 0:Checksum ok
 * 1:Checksum error
 * EEPROM emulation for IP Core only:PDI writes 1 if a
 * CRC failure has occurred for a reload command.
 */
#define ESC_EEPROM_CTRL_STAT_CKSM_ERR_MASK (0x800U)
#define ESC_EEPROM_CTRL_STAT_CKSM_ERR_SHIFT (11U)
#define ESC_EEPROM_CTRL_STAT_CKSM_ERR_SET(x) (((uint16_t)(x) << ESC_EEPROM_CTRL_STAT_CKSM_ERR_SHIFT) & ESC_EEPROM_CTRL_STAT_CKSM_ERR_MASK)
#define ESC_EEPROM_CTRL_STAT_CKSM_ERR_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_CKSM_ERR_MASK) >> ESC_EEPROM_CTRL_STAT_CKSM_ERR_SHIFT)

/*
 * CMD (RW)
 *
 * Command register*2:
 * Write:Initiate command.
 * Read:Currently executed command
 * Commands:
 * 000:No command/EEPROM idle (clear error bits)
 * 001:Read
 * 010:Write
 * 100:Reload
 * Others:Reserved/invalid commands (do not issue)
 * EEPROM emulation only:after execution, PDI writes
 * command value to indicate operation is ready.
 */
#define ESC_EEPROM_CTRL_STAT_CMD_MASK (0x700U)
#define ESC_EEPROM_CTRL_STAT_CMD_SHIFT (8U)
#define ESC_EEPROM_CTRL_STAT_CMD_SET(x) (((uint16_t)(x) << ESC_EEPROM_CTRL_STAT_CMD_SHIFT) & ESC_EEPROM_CTRL_STAT_CMD_MASK)
#define ESC_EEPROM_CTRL_STAT_CMD_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_CMD_MASK) >> ESC_EEPROM_CTRL_STAT_CMD_SHIFT)

/*
 * EE_ALGM (RO)
 *
 * Selected EEPROM Algorithm:
 * 0:1 address byte (1Kbit – 16Kbit EEPROMs)
 * 1:2 address bytes (32Kbit – 4 Mbit EEPROMs)
 */
#define ESC_EEPROM_CTRL_STAT_EE_ALGM_MASK (0x80U)
#define ESC_EEPROM_CTRL_STAT_EE_ALGM_SHIFT (7U)
#define ESC_EEPROM_CTRL_STAT_EE_ALGM_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_EE_ALGM_MASK) >> ESC_EEPROM_CTRL_STAT_EE_ALGM_SHIFT)

/*
 * NUM_RD_BYTE (RO)
 *
 * Supported number of EEPROM read bytes:
 * 0:4 Bytes
 * 1:8 Bytes
 */
#define ESC_EEPROM_CTRL_STAT_NUM_RD_BYTE_MASK (0x40U)
#define ESC_EEPROM_CTRL_STAT_NUM_RD_BYTE_SHIFT (6U)
#define ESC_EEPROM_CTRL_STAT_NUM_RD_BYTE_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_NUM_RD_BYTE_MASK) >> ESC_EEPROM_CTRL_STAT_NUM_RD_BYTE_SHIFT)

/*
 * EE_EMU (RO)
 *
 * EPROM emulation:
 * 0:Normal operation (I²C interface used)
 * 1:PDI emulates EEPROM (I²C not used)
 */
#define ESC_EEPROM_CTRL_STAT_EE_EMU_MASK (0x20U)
#define ESC_EEPROM_CTRL_STAT_EE_EMU_SHIFT (5U)
#define ESC_EEPROM_CTRL_STAT_EE_EMU_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_EE_EMU_MASK) >> ESC_EEPROM_CTRL_STAT_EE_EMU_SHIFT)

/*
 * ECAT_WEN (RO)
 *
 * ECAT write enable*2
 * :
 * 0:Write requests are disabled
 * 1:Write requests are enabled
 * This bit is always 1 if PDI has EEPROM control.
 */
#define ESC_EEPROM_CTRL_STAT_ECAT_WEN_MASK (0x1U)
#define ESC_EEPROM_CTRL_STAT_ECAT_WEN_SHIFT (0U)
#define ESC_EEPROM_CTRL_STAT_ECAT_WEN_GET(x) (((uint16_t)(x) & ESC_EEPROM_CTRL_STAT_ECAT_WEN_MASK) >> ESC_EEPROM_CTRL_STAT_ECAT_WEN_SHIFT)

/* Bitfield definition for register: EEPROM_ADDR */
/*
 * ADDR (RW)
 *
 * EEPROM Address
 * 0:First word (= 16 bit)
 * 1:Second word
 * …
 * Actually used EEPROM Address bits:
 * 9-0: EEPROM size up to 16 Kbit
 * 17-0: EEPROM size 32 Kbit – 4 Mbit
 * 31-0: EEPROM Emulation
 */
#define ESC_EEPROM_ADDR_ADDR_MASK (0xFFFFFFFFUL)
#define ESC_EEPROM_ADDR_ADDR_SHIFT (0U)
#define ESC_EEPROM_ADDR_ADDR_SET(x) (((uint32_t)(x) << ESC_EEPROM_ADDR_ADDR_SHIFT) & ESC_EEPROM_ADDR_ADDR_MASK)
#define ESC_EEPROM_ADDR_ADDR_GET(x) (((uint32_t)(x) & ESC_EEPROM_ADDR_ADDR_MASK) >> ESC_EEPROM_ADDR_ADDR_SHIFT)

/* Bitfield definition for register: EEPROM_DATA */
/*
 * HI (RW)
 *
 * EEPROM Read data (data read from
 * EEPROM, higher bytes)
 */
#define ESC_EEPROM_DATA_HI_MASK (0xFFFFFFFFFFFF0000ULL)
#define ESC_EEPROM_DATA_HI_SHIFT (16U)
#define ESC_EEPROM_DATA_HI_SET(x) (((uint64_t)(x) << ESC_EEPROM_DATA_HI_SHIFT) & ESC_EEPROM_DATA_HI_MASK)
#define ESC_EEPROM_DATA_HI_GET(x) (((uint64_t)(x) & ESC_EEPROM_DATA_HI_MASK) >> ESC_EEPROM_DATA_HI_SHIFT)

/*
 * LO (RW)
 *
 * EEPROM Write data (data to be written to
 * EEPROM) or
 * EEPROM Read data (data read from
 * EEPROM, lower bytes)
 */
#define ESC_EEPROM_DATA_LO_MASK (0xFFFFU)
#define ESC_EEPROM_DATA_LO_SHIFT (0U)
#define ESC_EEPROM_DATA_LO_SET(x) (((uint64_t)(x) << ESC_EEPROM_DATA_LO_SHIFT) & ESC_EEPROM_DATA_LO_MASK)
#define ESC_EEPROM_DATA_LO_GET(x) (((uint64_t)(x) & ESC_EEPROM_DATA_LO_MASK) >> ESC_EEPROM_DATA_LO_SHIFT)

/* Bitfield definition for register: MII_MNG_CS */
/*
 * BUSY (RO)
 *
 * Busy:
 * 0:MII Management Interface is idle
 * 1:MII Management Interface is busy
 */
#define ESC_MII_MNG_CS_BUSY_MASK (0x8000U)
#define ESC_MII_MNG_CS_BUSY_SHIFT (15U)
#define ESC_MII_MNG_CS_BUSY_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_BUSY_MASK) >> ESC_MII_MNG_CS_BUSY_SHIFT)

/*
 * CMD_ERR (RO)
 *
 * Command error:
 * 0:Last Command was successful
 * 1:Invalid command or write command
 * without Write Enable
 * Cleared by executing a valid command or by
 * writing “00” to Command register bits [9:8].
 */
#define ESC_MII_MNG_CS_CMD_ERR_MASK (0x4000U)
#define ESC_MII_MNG_CS_CMD_ERR_SHIFT (14U)
#define ESC_MII_MNG_CS_CMD_ERR_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_CMD_ERR_MASK) >> ESC_MII_MNG_CS_CMD_ERR_SHIFT)

/*
 * RD_ERR (RO)
 *
 * Read error:
 * 0:No read error
 * 1:Read error occurred (PHY or register
 * not available)
 * Cleared by writing to register 0x0511
 */
#define ESC_MII_MNG_CS_RD_ERR_MASK (0x2000U)
#define ESC_MII_MNG_CS_RD_ERR_SHIFT (13U)
#define ESC_MII_MNG_CS_RD_ERR_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_RD_ERR_MASK) >> ESC_MII_MNG_CS_RD_ERR_SHIFT)

/*
 * CMD (RW)
 *
 * Command register*:
 * Write:Initiate command.
 * Read:Currently executed command
 * 00:No command/MI idle (clear error bits)
 * 01:Read
 * 10:Write
 * Others:Reserved/invalid command (do not
 * issue)
 */
#define ESC_MII_MNG_CS_CMD_MASK (0x300U)
#define ESC_MII_MNG_CS_CMD_SHIFT (8U)
#define ESC_MII_MNG_CS_CMD_SET(x) (((uint16_t)(x) << ESC_MII_MNG_CS_CMD_SHIFT) & ESC_MII_MNG_CS_CMD_MASK)
#define ESC_MII_MNG_CS_CMD_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_CMD_MASK) >> ESC_MII_MNG_CS_CMD_SHIFT)

/*
 * PHY_ADDR (RO)
 *
 * PHY address of port 0
 * (this is equal to the PHY address offset, if the
 * PHY addresses are consecutive)
 * IP Core since V3.0.0/3.00c:
 * Translation 0x0512[7]=0:
 * Register 0x0510[7:3] shows PHY address of
 * port 0
 * Translation 0x0512[7]=1:
 * Register 0x0510[7:3] shows the PHY address
 * which will be used for port 0-3 as requested
 * by 0x0512[4:0] (valid values 0-3)
 */
#define ESC_MII_MNG_CS_PHY_ADDR_MASK (0xF8U)
#define ESC_MII_MNG_CS_PHY_ADDR_SHIFT (3U)
#define ESC_MII_MNG_CS_PHY_ADDR_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_PHY_ADDR_MASK) >> ESC_MII_MNG_CS_PHY_ADDR_SHIFT)

/*
 * LINK_DC (RO)
 *
 * MI link detection and configuration:
 * 0:Disabled for all ports
 * 1:Enabled for at least one MII port, refer
 * to PHY Port Status (0x0518 ff.) for
 * details
 */
#define ESC_MII_MNG_CS_LINK_DC_MASK (0x4U)
#define ESC_MII_MNG_CS_LINK_DC_SHIFT (2U)
#define ESC_MII_MNG_CS_LINK_DC_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_LINK_DC_MASK) >> ESC_MII_MNG_CS_LINK_DC_SHIFT)

/*
 * PDI (RO)
 *
 * Management Interface can be controlled by
 * PDI (registers 0x0516-0x0517):
 * 0:Only ECAT control
 * 1:PDI control possible
 */
#define ESC_MII_MNG_CS_PDI_MASK (0x2U)
#define ESC_MII_MNG_CS_PDI_SHIFT (1U)
#define ESC_MII_MNG_CS_PDI_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_PDI_MASK) >> ESC_MII_MNG_CS_PDI_SHIFT)

/*
 * WEN (RO)
 *
 * Write enable*:
 * 0:Write disabled
 * 1:Write enabled
 * This bit is always 1 if PDI has MI control.
 * ET1100-0000/-0001 exception:
 * Bit is not always 1 if PDI has MI control, and
 * bit is writable by PDI.
 */
#define ESC_MII_MNG_CS_WEN_MASK (0x1U)
#define ESC_MII_MNG_CS_WEN_SHIFT (0U)
#define ESC_MII_MNG_CS_WEN_GET(x) (((uint16_t)(x) & ESC_MII_MNG_CS_WEN_MASK) >> ESC_MII_MNG_CS_WEN_SHIFT)

/* Bitfield definition for register: PHY_ADDR */
/*
 * SHOW (RW)
 *
 * Target PHY Address translation:
 * 0:Enabled
 * 1:Disabled
 * Refer to 0x0512[4:0] and 0x0510[7:3] for
 * details.
 */
#define ESC_PHY_ADDR_SHOW_MASK (0x80U)
#define ESC_PHY_ADDR_SHOW_SHIFT (7U)
#define ESC_PHY_ADDR_SHOW_SET(x) (((uint8_t)(x) << ESC_PHY_ADDR_SHOW_SHIFT) & ESC_PHY_ADDR_SHOW_MASK)
#define ESC_PHY_ADDR_SHOW_GET(x) (((uint8_t)(x) & ESC_PHY_ADDR_SHOW_MASK) >> ESC_PHY_ADDR_SHOW_SHIFT)

/*
 * ADDR (RW)
 *
 * Target PHY Address
 * Translation 0x0512[7]=0:
 * 0-3:Target PHY Addresses 0-3 are used
 * to access the PHYs at port 0-3, when
 * the PHY addresses are properly
 * configured
 * 4-31:The configured PHY address of port 0
 * (PHY address offset) is added to the
 * Target PHY Address values 4-31
 * when accessing a PHY
 * Translation 0x0512[7]=1:
 * 0-31:Target PHY Addresses is used when
 * accessing a PHY without translation
 */
#define ESC_PHY_ADDR_ADDR_MASK (0x1FU)
#define ESC_PHY_ADDR_ADDR_SHIFT (0U)
#define ESC_PHY_ADDR_ADDR_SET(x) (((uint8_t)(x) << ESC_PHY_ADDR_ADDR_SHIFT) & ESC_PHY_ADDR_ADDR_MASK)
#define ESC_PHY_ADDR_ADDR_GET(x) (((uint8_t)(x) & ESC_PHY_ADDR_ADDR_MASK) >> ESC_PHY_ADDR_ADDR_SHIFT)

/* Bitfield definition for register: PHY_REG_ADDR */
/*
 * ADDR (RW)
 *
 * Address of PHY Register that shall be
 * read/written
 */
#define ESC_PHY_REG_ADDR_ADDR_MASK (0x1FU)
#define ESC_PHY_REG_ADDR_ADDR_SHIFT (0U)
#define ESC_PHY_REG_ADDR_ADDR_SET(x) (((uint8_t)(x) << ESC_PHY_REG_ADDR_ADDR_SHIFT) & ESC_PHY_REG_ADDR_ADDR_MASK)
#define ESC_PHY_REG_ADDR_ADDR_GET(x) (((uint8_t)(x) & ESC_PHY_REG_ADDR_ADDR_MASK) >> ESC_PHY_REG_ADDR_ADDR_SHIFT)

/* Bitfield definition for register: PHY_DATA */
/*
 * DATA (RW)
 *
 * PHY Read/Write Data
 */
#define ESC_PHY_DATA_DATA_MASK (0xFFFFU)
#define ESC_PHY_DATA_DATA_SHIFT (0U)
#define ESC_PHY_DATA_DATA_SET(x) (((uint16_t)(x) << ESC_PHY_DATA_DATA_SHIFT) & ESC_PHY_DATA_DATA_MASK)
#define ESC_PHY_DATA_DATA_GET(x) (((uint16_t)(x) & ESC_PHY_DATA_DATA_MASK) >> ESC_PHY_DATA_DATA_SHIFT)

/* Bitfield definition for register: MIIM_ECAT_ACC_STAT */
/*
 * ACC (RO)
 *
 * Access to MII management:
 * 0:ECAT enables PDI takeover of MII
 * management interface
 * 1:ECAT claims exclusive access to MII
 * management interface
 */
#define ESC_MIIM_ECAT_ACC_STAT_ACC_MASK (0x1U)
#define ESC_MIIM_ECAT_ACC_STAT_ACC_SHIFT (0U)
#define ESC_MIIM_ECAT_ACC_STAT_ACC_GET(x) (((uint8_t)(x) & ESC_MIIM_ECAT_ACC_STAT_ACC_MASK) >> ESC_MIIM_ECAT_ACC_STAT_ACC_SHIFT)

/* Bitfield definition for register: MIIM_PDI_ACC_STAT */
/*
 * FORCE (RO)
 *
 * Force PDI Access State:
 * 0:Do not change Bit 0x0517[0]
 * 1:Reset Bit 0x0517[0] to 0
 */
#define ESC_MIIM_PDI_ACC_STAT_FORCE_MASK (0x2U)
#define ESC_MIIM_PDI_ACC_STAT_FORCE_SHIFT (1U)
#define ESC_MIIM_PDI_ACC_STAT_FORCE_GET(x) (((uint8_t)(x) & ESC_MIIM_PDI_ACC_STAT_FORCE_MASK) >> ESC_MIIM_PDI_ACC_STAT_FORCE_SHIFT)

/*
 * ACC (RW)
 *
 * Access to MII management:
 * 0:ECAT has access to MII management
 * 1:PDI has access to MII management
 */
#define ESC_MIIM_PDI_ACC_STAT_ACC_MASK (0x1U)
#define ESC_MIIM_PDI_ACC_STAT_ACC_SHIFT (0U)
#define ESC_MIIM_PDI_ACC_STAT_ACC_SET(x) (((uint8_t)(x) << ESC_MIIM_PDI_ACC_STAT_ACC_SHIFT) & ESC_MIIM_PDI_ACC_STAT_ACC_MASK)
#define ESC_MIIM_PDI_ACC_STAT_ACC_GET(x) (((uint8_t)(x) & ESC_MIIM_PDI_ACC_STAT_ACC_MASK) >> ESC_MIIM_PDI_ACC_STAT_ACC_SHIFT)

/* Bitfield definition for register array: PHY_STAT */
/*
 * PCU (RW)
 *
 * PHY configuration updated:
 * 0:No update
 * 1:PHY configuration was updated
 * Cleared by writing any value to at least one
 * of the PHY Port y Status registers.
 */
#define ESC_PHY_STAT_PCU_MASK (0x20U)
#define ESC_PHY_STAT_PCU_SHIFT (5U)
#define ESC_PHY_STAT_PCU_SET(x) (((uint8_t)(x) << ESC_PHY_STAT_PCU_SHIFT) & ESC_PHY_STAT_PCU_MASK)
#define ESC_PHY_STAT_PCU_GET(x) (((uint8_t)(x) & ESC_PHY_STAT_PCU_MASK) >> ESC_PHY_STAT_PCU_SHIFT)

/*
 * LPE (RO)
 *
 * Link partner error:
 * 0:No error detected
 * 1:Link partner error
 */
#define ESC_PHY_STAT_LPE_MASK (0x10U)
#define ESC_PHY_STAT_LPE_SHIFT (4U)
#define ESC_PHY_STAT_LPE_GET(x) (((uint8_t)(x) & ESC_PHY_STAT_LPE_MASK) >> ESC_PHY_STAT_LPE_SHIFT)

/*
 * RE (RW)
 *
 * Read error:
 * 0:No read error occurred
 * 1:A read error has occurred
 * Cleared by writing any value to at least one
 * of the PHY Port y Status registers.
 */
#define ESC_PHY_STAT_RE_MASK (0x8U)
#define ESC_PHY_STAT_RE_SHIFT (3U)
#define ESC_PHY_STAT_RE_SET(x) (((uint8_t)(x) << ESC_PHY_STAT_RE_SHIFT) & ESC_PHY_STAT_RE_MASK)
#define ESC_PHY_STAT_RE_GET(x) (((uint8_t)(x) & ESC_PHY_STAT_RE_MASK) >> ESC_PHY_STAT_RE_SHIFT)

/*
 * LSE (RO)
 *
 * Link status error:
 * 0:No error
 * 1:Link error, link inhibited
 */
#define ESC_PHY_STAT_LSE_MASK (0x4U)
#define ESC_PHY_STAT_LSE_SHIFT (2U)
#define ESC_PHY_STAT_LSE_GET(x) (((uint8_t)(x) & ESC_PHY_STAT_LSE_MASK) >> ESC_PHY_STAT_LSE_SHIFT)

/*
 * LS (RO)
 *
 * Link status (100 Mbit/s, Full Duplex, Auto
 * negotiation):
 * 0:No link
 * 1:Link detected
 */
#define ESC_PHY_STAT_LS_MASK (0x2U)
#define ESC_PHY_STAT_LS_SHIFT (1U)
#define ESC_PHY_STAT_LS_GET(x) (((uint8_t)(x) & ESC_PHY_STAT_LS_MASK) >> ESC_PHY_STAT_LS_SHIFT)

/*
 * PLS (RO)
 *
 * Physical link status (PHY status register 1.2):
 * 0:No physical link
 * 1:Physical link detected
 */
#define ESC_PHY_STAT_PLS_MASK (0x1U)
#define ESC_PHY_STAT_PLS_SHIFT (0U)
#define ESC_PHY_STAT_PLS_GET(x) (((uint8_t)(x) & ESC_PHY_STAT_PLS_MASK) >> ESC_PHY_STAT_PLS_SHIFT)

/* Bitfield definition for register of struct array FMMU: LOGIC_START_ADDR */
/*
 * ADDR (RO)
 *
 * Logical start address within the EtherCAT
 * Address Space.
 */
#define ESC_FMMU_LOGIC_START_ADDR_ADDR_MASK (0xFFFFFFFFUL)
#define ESC_FMMU_LOGIC_START_ADDR_ADDR_SHIFT (0U)
#define ESC_FMMU_LOGIC_START_ADDR_ADDR_GET(x) (((uint32_t)(x) & ESC_FMMU_LOGIC_START_ADDR_ADDR_MASK) >> ESC_FMMU_LOGIC_START_ADDR_ADDR_SHIFT)

/* Bitfield definition for register of struct array FMMU: LENGTH */
/*
 * OFFSET (RO)
 *
 * Offset from the first logical FMMU byte to the
 * last FMMU byte + 1 (e.g., if two bytes are
 * used, then this parameter shall contain 2)
 */
#define ESC_FMMU_LENGTH_OFFSET_MASK (0xFFFFU)
#define ESC_FMMU_LENGTH_OFFSET_SHIFT (0U)
#define ESC_FMMU_LENGTH_OFFSET_GET(x) (((uint16_t)(x) & ESC_FMMU_LENGTH_OFFSET_MASK) >> ESC_FMMU_LENGTH_OFFSET_SHIFT)

/* Bitfield definition for register of struct array FMMU: LOGIC_START_BIT */
/*
 * START (RO)
 *
 * Logical starting bit that shall be mapped (bits
 * are counted from least significant bit 0 to
 * most significant bit 7)
 */
#define ESC_FMMU_LOGIC_START_BIT_START_MASK (0x7U)
#define ESC_FMMU_LOGIC_START_BIT_START_SHIFT (0U)
#define ESC_FMMU_LOGIC_START_BIT_START_GET(x) (((uint8_t)(x) & ESC_FMMU_LOGIC_START_BIT_START_MASK) >> ESC_FMMU_LOGIC_START_BIT_START_SHIFT)

/* Bitfield definition for register of struct array FMMU: LOGIC_STOP_BIT */
/*
 * STOP (RO)
 *
 * Last logical bit that shall be mapped (bits are
 * counted from least significant bit 0 to most
 * significant bit 7)
 */
#define ESC_FMMU_LOGIC_STOP_BIT_STOP_MASK (0x7U)
#define ESC_FMMU_LOGIC_STOP_BIT_STOP_SHIFT (0U)
#define ESC_FMMU_LOGIC_STOP_BIT_STOP_GET(x) (((uint8_t)(x) & ESC_FMMU_LOGIC_STOP_BIT_STOP_MASK) >> ESC_FMMU_LOGIC_STOP_BIT_STOP_SHIFT)

/* Bitfield definition for register of struct array FMMU: PHYSICAL_START_ADDR */
/*
 * ADDR (RO)
 *
 * Physical Start Address (mapped to logical
 * Start address)
 */
#define ESC_FMMU_PHYSICAL_START_ADDR_ADDR_MASK (0xFFFFU)
#define ESC_FMMU_PHYSICAL_START_ADDR_ADDR_SHIFT (0U)
#define ESC_FMMU_PHYSICAL_START_ADDR_ADDR_GET(x) (((uint16_t)(x) & ESC_FMMU_PHYSICAL_START_ADDR_ADDR_MASK) >> ESC_FMMU_PHYSICAL_START_ADDR_ADDR_SHIFT)

/* Bitfield definition for register of struct array FMMU: PHYSICAL_START_BIT */
/*
 * START (RO)
 *
 * Physical starting bit as target of logical start
 * bit mapping (bits are counted from least
 * significant bit 0 to most significant bit 7)
 */
#define ESC_FMMU_PHYSICAL_START_BIT_START_MASK (0x7U)
#define ESC_FMMU_PHYSICAL_START_BIT_START_SHIFT (0U)
#define ESC_FMMU_PHYSICAL_START_BIT_START_GET(x) (((uint8_t)(x) & ESC_FMMU_PHYSICAL_START_BIT_START_MASK) >> ESC_FMMU_PHYSICAL_START_BIT_START_SHIFT)

/* Bitfield definition for register of struct array FMMU: TYPE */
/*
 * MAP_WR (RO)
 *
 * 0:Ignore mapping for write accesses
 * 1:Use mapping for write accesses
 */
#define ESC_FMMU_TYPE_MAP_WR_MASK (0x2U)
#define ESC_FMMU_TYPE_MAP_WR_SHIFT (1U)
#define ESC_FMMU_TYPE_MAP_WR_GET(x) (((uint8_t)(x) & ESC_FMMU_TYPE_MAP_WR_MASK) >> ESC_FMMU_TYPE_MAP_WR_SHIFT)

/*
 * MAP_RD (RO)
 *
 * 0:Ignore mapping for read accesses
 * 1:Use mapping for read accesses
 */
#define ESC_FMMU_TYPE_MAP_RD_MASK (0x1U)
#define ESC_FMMU_TYPE_MAP_RD_SHIFT (0U)
#define ESC_FMMU_TYPE_MAP_RD_GET(x) (((uint8_t)(x) & ESC_FMMU_TYPE_MAP_RD_MASK) >> ESC_FMMU_TYPE_MAP_RD_SHIFT)

/* Bitfield definition for register of struct array FMMU: ACTIVATE */
/*
 * ACT (RO)
 *
 * 0:FMMU deactivated
 * 1:FMMU activated. FMMU checks
 * logically addressed blocks to be
 * mapped according to configured
 * mapping
 */
#define ESC_FMMU_ACTIVATE_ACT_MASK (0x1U)
#define ESC_FMMU_ACTIVATE_ACT_SHIFT (0U)
#define ESC_FMMU_ACTIVATE_ACT_GET(x) (((uint8_t)(x) & ESC_FMMU_ACTIVATE_ACT_MASK) >> ESC_FMMU_ACTIVATE_ACT_SHIFT)

/* Bitfield definition for register of struct array SYNCM: PHYSICAL_START_ADDR */
/*
 * ADDR (RO)
 *
 * First byte that will be handled by
 * SyncManager
 */
#define ESC_SYNCM_PHYSICAL_START_ADDR_ADDR_MASK (0xFFFFU)
#define ESC_SYNCM_PHYSICAL_START_ADDR_ADDR_SHIFT (0U)
#define ESC_SYNCM_PHYSICAL_START_ADDR_ADDR_GET(x) (((uint16_t)(x) & ESC_SYNCM_PHYSICAL_START_ADDR_ADDR_MASK) >> ESC_SYNCM_PHYSICAL_START_ADDR_ADDR_SHIFT)

/* Bitfield definition for register of struct array SYNCM: LENGTH */
/*
 * LEN (RO)
 *
 * Number of bytes assigned to SyncManager
 * (shall be greater than 1, otherwise
 * SyncManager is not activated. If set to 1, only
 * Watchdog Trigger is generated if configured)
 */
#define ESC_SYNCM_LENGTH_LEN_MASK (0xFFFFU)
#define ESC_SYNCM_LENGTH_LEN_SHIFT (0U)
#define ESC_SYNCM_LENGTH_LEN_GET(x) (((uint16_t)(x) & ESC_SYNCM_LENGTH_LEN_MASK) >> ESC_SYNCM_LENGTH_LEN_SHIFT)

/* Bitfield definition for register of struct array SYNCM: CONTROL */
/*
 * WDG_TRG_EN (RO)
 *
 * Watchdog Trigger Enable:
 * 0:Disabled
 * 1:Enabled
 */
#define ESC_SYNCM_CONTROL_WDG_TRG_EN_MASK (0x40U)
#define ESC_SYNCM_CONTROL_WDG_TRG_EN_SHIFT (6U)
#define ESC_SYNCM_CONTROL_WDG_TRG_EN_GET(x) (((uint8_t)(x) & ESC_SYNCM_CONTROL_WDG_TRG_EN_MASK) >> ESC_SYNCM_CONTROL_WDG_TRG_EN_SHIFT)

/*
 * INT_AL (RO)
 *
 * Interrupt in AL Event Request Register:
 * 0:Disabled
 * 1:Enabled
 */
#define ESC_SYNCM_CONTROL_INT_AL_MASK (0x20U)
#define ESC_SYNCM_CONTROL_INT_AL_SHIFT (5U)
#define ESC_SYNCM_CONTROL_INT_AL_GET(x) (((uint8_t)(x) & ESC_SYNCM_CONTROL_INT_AL_MASK) >> ESC_SYNCM_CONTROL_INT_AL_SHIFT)

/*
 * INT_ECAT (RO)
 *
 * Interrupt in ECAT Event Request Register:
 * 0:Disabled
 * 1:Enabled
 */
#define ESC_SYNCM_CONTROL_INT_ECAT_MASK (0x10U)
#define ESC_SYNCM_CONTROL_INT_ECAT_SHIFT (4U)
#define ESC_SYNCM_CONTROL_INT_ECAT_GET(x) (((uint8_t)(x) & ESC_SYNCM_CONTROL_INT_ECAT_MASK) >> ESC_SYNCM_CONTROL_INT_ECAT_SHIFT)

/*
 * DIR (RO)
 *
 * Direction:
 * 00:Read:ECAT read access, PDI write
 * access.
 * 01:Write:ECAT write access, PDI read
 * access.
 * 10:Reserved
 * 11:Reserved
 */
#define ESC_SYNCM_CONTROL_DIR_MASK (0xCU)
#define ESC_SYNCM_CONTROL_DIR_SHIFT (2U)
#define ESC_SYNCM_CONTROL_DIR_GET(x) (((uint8_t)(x) & ESC_SYNCM_CONTROL_DIR_MASK) >> ESC_SYNCM_CONTROL_DIR_SHIFT)

/*
 * OP_MODE (RO)
 *
 * Operation Mode:
 * 00:Buffered (3 buffer mode)
 * 01:Reserved
 * 10:Mailbox (Single buffer mode)
 * 11:Reserved
 */
#define ESC_SYNCM_CONTROL_OP_MODE_MASK (0x3U)
#define ESC_SYNCM_CONTROL_OP_MODE_SHIFT (0U)
#define ESC_SYNCM_CONTROL_OP_MODE_GET(x) (((uint8_t)(x) & ESC_SYNCM_CONTROL_OP_MODE_MASK) >> ESC_SYNCM_CONTROL_OP_MODE_SHIFT)

/* Bitfield definition for register of struct array SYNCM: STATUS */
/*
 * WB_INUSE (RO)
 *
 * Write buffer in use (opened)
 */
#define ESC_SYNCM_STATUS_WB_INUSE_MASK (0x80U)
#define ESC_SYNCM_STATUS_WB_INUSE_SHIFT (7U)
#define ESC_SYNCM_STATUS_WB_INUSE_GET(x) (((uint8_t)(x) & ESC_SYNCM_STATUS_WB_INUSE_MASK) >> ESC_SYNCM_STATUS_WB_INUSE_SHIFT)

/*
 * RB_INUSE (RO)
 *
 * Read buffer in use (opened)
 */
#define ESC_SYNCM_STATUS_RB_INUSE_MASK (0x40U)
#define ESC_SYNCM_STATUS_RB_INUSE_SHIFT (6U)
#define ESC_SYNCM_STATUS_RB_INUSE_GET(x) (((uint8_t)(x) & ESC_SYNCM_STATUS_RB_INUSE_MASK) >> ESC_SYNCM_STATUS_RB_INUSE_SHIFT)

/*
 * BUF_MODE (RO)
 *
 * Buffered mode:buffer status (last written
 * buffer):
 * 00:1
 * st buffer
 * 01:2
 * nd buffer
 * 10:3
 * rd buffer
 * 11:(no buffer written)
 * Mailbox mode:reserved
 */
#define ESC_SYNCM_STATUS_BUF_MODE_MASK (0x30U)
#define ESC_SYNCM_STATUS_BUF_MODE_SHIFT (4U)
#define ESC_SYNCM_STATUS_BUF_MODE_GET(x) (((uint8_t)(x) & ESC_SYNCM_STATUS_BUF_MODE_MASK) >> ESC_SYNCM_STATUS_BUF_MODE_SHIFT)

/*
 * MBX_MODE (RO)
 *
 * Mailbox mode:mailbox status:
 * 0:Mailbox empty
 * 1:Mailbox full
 * Buffered mode:reserved
 */
#define ESC_SYNCM_STATUS_MBX_MODE_MASK (0x8U)
#define ESC_SYNCM_STATUS_MBX_MODE_SHIFT (3U)
#define ESC_SYNCM_STATUS_MBX_MODE_GET(x) (((uint8_t)(x) & ESC_SYNCM_STATUS_MBX_MODE_MASK) >> ESC_SYNCM_STATUS_MBX_MODE_SHIFT)

/*
 * INT_RD (RO)
 *
 * Interrupt Read:
 * 1:Interrupt after buffer was completely and
 * successfully read
 * 0:Interrupt cleared after first byte of buffer
 * was written
 * NOTE:This interrupt is signalled to the writing
 * side if enabled in the SM Control register
 */
#define ESC_SYNCM_STATUS_INT_RD_MASK (0x2U)
#define ESC_SYNCM_STATUS_INT_RD_SHIFT (1U)
#define ESC_SYNCM_STATUS_INT_RD_GET(x) (((uint8_t)(x) & ESC_SYNCM_STATUS_INT_RD_MASK) >> ESC_SYNCM_STATUS_INT_RD_SHIFT)

/*
 * INT_WR (RO)
 *
 * Interrupt Write:
 * 1:Interrupt after buffer was completely and
 * successfully written
 * 0:Interrupt cleared after first byte of buffer
 * was read
 * NOTE:This interrupt is signalled to the reading
 * side if enabled in the SM Control register
 */
#define ESC_SYNCM_STATUS_INT_WR_MASK (0x1U)
#define ESC_SYNCM_STATUS_INT_WR_SHIFT (0U)
#define ESC_SYNCM_STATUS_INT_WR_GET(x) (((uint8_t)(x) & ESC_SYNCM_STATUS_INT_WR_MASK) >> ESC_SYNCM_STATUS_INT_WR_SHIFT)

/* Bitfield definition for register of struct array SYNCM: ACTIVATE */
/*
 * LATCH_PDI (RO)
 *
 * Latch Event PDI:
 * 0:No
 * 1:Generate Latch events when PDI issues
 * a buffer exchange or when PDI
 * accesses buffer start address
 */
#define ESC_SYNCM_ACTIVATE_LATCH_PDI_MASK (0x80U)
#define ESC_SYNCM_ACTIVATE_LATCH_PDI_SHIFT (7U)
#define ESC_SYNCM_ACTIVATE_LATCH_PDI_GET(x) (((uint8_t)(x) & ESC_SYNCM_ACTIVATE_LATCH_PDI_MASK) >> ESC_SYNCM_ACTIVATE_LATCH_PDI_SHIFT)

/*
 * LATCH_ECAT (RO)
 *
 * Latch Event ECAT:
 * 0:No
 * 1:Generate Latch event when EtherCAT
 * master issues a buffer exchange
 */
#define ESC_SYNCM_ACTIVATE_LATCH_ECAT_MASK (0x40U)
#define ESC_SYNCM_ACTIVATE_LATCH_ECAT_SHIFT (6U)
#define ESC_SYNCM_ACTIVATE_LATCH_ECAT_GET(x) (((uint8_t)(x) & ESC_SYNCM_ACTIVATE_LATCH_ECAT_MASK) >> ESC_SYNCM_ACTIVATE_LATCH_ECAT_SHIFT)

/*
 * REPEAT (RO)
 *
 * Repeat Request:
 * A toggle of Repeat Request means that a
 * mailbox retry is needed (primarily used in
 * conjunction with ECAT Read Mailbox)
 */
#define ESC_SYNCM_ACTIVATE_REPEAT_MASK (0x2U)
#define ESC_SYNCM_ACTIVATE_REPEAT_SHIFT (1U)
#define ESC_SYNCM_ACTIVATE_REPEAT_GET(x) (((uint8_t)(x) & ESC_SYNCM_ACTIVATE_REPEAT_MASK) >> ESC_SYNCM_ACTIVATE_REPEAT_SHIFT)

/*
 * EN (RW)
 *
 * SyncManager Enable/Disable:
 * 0:Disable:Access to Memory without
 * SyncManager control
 * 1:Enable:SyncManager is active and
 * controls Memory area set in
 * configuration
 */
#define ESC_SYNCM_ACTIVATE_EN_MASK (0x1U)
#define ESC_SYNCM_ACTIVATE_EN_SHIFT (0U)
#define ESC_SYNCM_ACTIVATE_EN_SET(x) (((uint8_t)(x) << ESC_SYNCM_ACTIVATE_EN_SHIFT) & ESC_SYNCM_ACTIVATE_EN_MASK)
#define ESC_SYNCM_ACTIVATE_EN_GET(x) (((uint8_t)(x) & ESC_SYNCM_ACTIVATE_EN_MASK) >> ESC_SYNCM_ACTIVATE_EN_SHIFT)

/* Bitfield definition for register of struct array SYNCM: PDI_CTRL */
/*
 * REPEAT_ACK (RW)
 *
 * Repeat Ack:
 * If this is set to the same value as that set by
 * Repeat Request, the PDI acknowledges the
 * execution of a previous set Repeat request.
 */
#define ESC_SYNCM_PDI_CTRL_REPEAT_ACK_MASK (0x2U)
#define ESC_SYNCM_PDI_CTRL_REPEAT_ACK_SHIFT (1U)
#define ESC_SYNCM_PDI_CTRL_REPEAT_ACK_SET(x) (((uint8_t)(x) << ESC_SYNCM_PDI_CTRL_REPEAT_ACK_SHIFT) & ESC_SYNCM_PDI_CTRL_REPEAT_ACK_MASK)
#define ESC_SYNCM_PDI_CTRL_REPEAT_ACK_GET(x) (((uint8_t)(x) & ESC_SYNCM_PDI_CTRL_REPEAT_ACK_MASK) >> ESC_SYNCM_PDI_CTRL_REPEAT_ACK_SHIFT)

/*
 * DEACT (RW)
 *
 * Deactivate SyncManager:
 * Read:
 * 0:Normal operation, SyncManager
 * activated.
 * 1:SyncManager deactivated and reset.
 * SyncManager locks access to Memory
 * area.
 * Write:
 * 0:Activate SyncManager
 * 1:Request SyncManager deactivation
 * NOTE:Writing 1 is delayed until the end of the
 * frame, which is currently processed.
 */
#define ESC_SYNCM_PDI_CTRL_DEACT_MASK (0x1U)
#define ESC_SYNCM_PDI_CTRL_DEACT_SHIFT (0U)
#define ESC_SYNCM_PDI_CTRL_DEACT_SET(x) (((uint8_t)(x) << ESC_SYNCM_PDI_CTRL_DEACT_SHIFT) & ESC_SYNCM_PDI_CTRL_DEACT_MASK)
#define ESC_SYNCM_PDI_CTRL_DEACT_GET(x) (((uint8_t)(x) & ESC_SYNCM_PDI_CTRL_DEACT_MASK) >> ESC_SYNCM_PDI_CTRL_DEACT_SHIFT)

/* Bitfield definition for register array: RCV_TIME */
/*
 * LT (RO)
 *
 * Local time at the beginning of the last receive
 * frame containing a write access to register
 * 0x0900.
 */
#define ESC_RCV_TIME_LT_MASK (0xFFFFFF00UL)
#define ESC_RCV_TIME_LT_SHIFT (8U)
#define ESC_RCV_TIME_LT_GET(x) (((uint32_t)(x) & ESC_RCV_TIME_LT_MASK) >> ESC_RCV_TIME_LT_SHIFT)

/*
 * REQ (RO)
 *
 * Write:
 * A write access to register 0x0900 with
 * BWR or FPWR latches the local time at
 * the beginning of the receive frame (start
 * first bit of preamble) at each port.
 * Write (ESC20, ET1200 exception):
 * A write access latches the local time at
 * the beginning of the receive frame at
 * port 0. It enables the time stamping at
 * the other ports.
 * Read:
 * Local time at the beginning of the last
 * receive frame containing a write access
 * to this register.
 * NOTE:FPWR requires an address match for
 * accessing this register like any FPWR command.
 * All write commands with address match will
 * increment the working counter (e.g., APWR), but
 * they will not trigger receive time latching.
 */
#define ESC_RCV_TIME_REQ_MASK (0xFFU)
#define ESC_RCV_TIME_REQ_SHIFT (0U)
#define ESC_RCV_TIME_REQ_GET(x) (((uint32_t)(x) & ESC_RCV_TIME_REQ_MASK) >> ESC_RCV_TIME_REQ_SHIFT)

/* Bitfield definition for register: SYS_TIME */
/*
 * ST (RW)
 *
 */
#define ESC_SYS_TIME_ST_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_SYS_TIME_ST_SHIFT (0U)
#define ESC_SYS_TIME_ST_SET(x) (((uint64_t)(x) << ESC_SYS_TIME_ST_SHIFT) & ESC_SYS_TIME_ST_MASK)
#define ESC_SYS_TIME_ST_GET(x) (((uint64_t)(x) & ESC_SYS_TIME_ST_MASK) >> ESC_SYS_TIME_ST_SHIFT)

/* Bitfield definition for register: RCVT_ECAT_PU */
/*
 * LT (RO)
 *
 * Local time at the beginning of a frame (start
 * first bit of preamble) received at the ECAT
 * Processing Unit containing a write access to
 * register 0x0900
 * NOTE:E.g., if port 0 is open, this register reflects
 * the Receive Time Port 0 as a 64 Bit value.
 * Any valid EtherCAT write access to register
 * 0x0900 triggers latching, not only BWR/FPWR
 * commands as with register 0x0900.
 */
#define ESC_RCVT_ECAT_PU_LT_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_RCVT_ECAT_PU_LT_SHIFT (0U)
#define ESC_RCVT_ECAT_PU_LT_GET(x) (((uint64_t)(x) & ESC_RCVT_ECAT_PU_LT_MASK) >> ESC_RCVT_ECAT_PU_LT_SHIFT)

/* Bitfield definition for register: SYS_TIME_OFFSET */
/*
 * OFFSET (RW)
 *
 * Difference between local time and System
 * Time. Offset is added to the local time.
 */
#define ESC_SYS_TIME_OFFSET_OFFSET_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_SYS_TIME_OFFSET_OFFSET_SHIFT (0U)
#define ESC_SYS_TIME_OFFSET_OFFSET_SET(x) (((uint64_t)(x) << ESC_SYS_TIME_OFFSET_OFFSET_SHIFT) & ESC_SYS_TIME_OFFSET_OFFSET_MASK)
#define ESC_SYS_TIME_OFFSET_OFFSET_GET(x) (((uint64_t)(x) & ESC_SYS_TIME_OFFSET_OFFSET_MASK) >> ESC_SYS_TIME_OFFSET_OFFSET_SHIFT)

/* Bitfield definition for register: SYS_TIME_DELAY */
/*
 * DLY (RW)
 *
 * Delay between Reference Clock and the
 * ESC
 */
#define ESC_SYS_TIME_DELAY_DLY_MASK (0xFFFFFFFFUL)
#define ESC_SYS_TIME_DELAY_DLY_SHIFT (0U)
#define ESC_SYS_TIME_DELAY_DLY_SET(x) (((uint32_t)(x) << ESC_SYS_TIME_DELAY_DLY_SHIFT) & ESC_SYS_TIME_DELAY_DLY_MASK)
#define ESC_SYS_TIME_DELAY_DLY_GET(x) (((uint32_t)(x) & ESC_SYS_TIME_DELAY_DLY_MASK) >> ESC_SYS_TIME_DELAY_DLY_SHIFT)

/* Bitfield definition for register: SYS_TIME_DIFF */
/*
 * DIFF (RO)
 *
 * 0:Local copy of System Time less than
 * received System Time
 * 1:Local copy of System Time greater than
 * or equal to received System Time
 */
#define ESC_SYS_TIME_DIFF_DIFF_MASK (0x80000000UL)
#define ESC_SYS_TIME_DIFF_DIFF_SHIFT (31U)
#define ESC_SYS_TIME_DIFF_DIFF_GET(x) (((uint32_t)(x) & ESC_SYS_TIME_DIFF_DIFF_MASK) >> ESC_SYS_TIME_DIFF_DIFF_SHIFT)

/*
 * NUM (RO)
 *
 * Mean difference between local copy of
 * System Time and received System Time
 * values
 * Difference = Received System Time –
 * local copy of System Time
 */
#define ESC_SYS_TIME_DIFF_NUM_MASK (0x7FFFFFFFUL)
#define ESC_SYS_TIME_DIFF_NUM_SHIFT (0U)
#define ESC_SYS_TIME_DIFF_NUM_GET(x) (((uint32_t)(x) & ESC_SYS_TIME_DIFF_NUM_MASK) >> ESC_SYS_TIME_DIFF_NUM_SHIFT)

/* Bitfield definition for register: SPD_CNT_START */
/*
 * BW (RW)
 *
 * Bandwidth for adjustment of local copy of
 * System Time (larger values → smaller
 * bandwidth and smoother adjustment)
 * A write access resets System Time
 * Difference (0x092C:0x092F) and Speed
 * Counter Diff (0x0932:0x0933).
 * Valid values:0x0080 to 0x3FFF
 */
#define ESC_SPD_CNT_START_BW_MASK (0x7FFFU)
#define ESC_SPD_CNT_START_BW_SHIFT (0U)
#define ESC_SPD_CNT_START_BW_SET(x) (((uint16_t)(x) << ESC_SPD_CNT_START_BW_SHIFT) & ESC_SPD_CNT_START_BW_MASK)
#define ESC_SPD_CNT_START_BW_GET(x) (((uint16_t)(x) & ESC_SPD_CNT_START_BW_MASK) >> ESC_SPD_CNT_START_BW_SHIFT)

/* Bitfield definition for register: SPD_CNT_DIFF */
/*
 * DIFF (RO)
 *
 * Representation of the deviation between
 * local clock period and Reference Clock's
 * clock period (representation:two's
 * complement)
 * Range:±(Speed Counter Start – 0x7F)
 */
#define ESC_SPD_CNT_DIFF_DIFF_MASK (0xFFFFU)
#define ESC_SPD_CNT_DIFF_DIFF_SHIFT (0U)
#define ESC_SPD_CNT_DIFF_DIFF_GET(x) (((uint16_t)(x) & ESC_SPD_CNT_DIFF_DIFF_MASK) >> ESC_SPD_CNT_DIFF_DIFF_SHIFT)

/* Bitfield definition for register: SYS_TIME_DIFF_FD */
/*
 * DEPTH (RW)
 *
 * Filter depth for averaging the received
 * System Time deviation
 * IP Core since V2.2.0/V2.02a:
 * A write access resets System Time
 * Difference (0x092C:0x092F)
 */
#define ESC_SYS_TIME_DIFF_FD_DEPTH_MASK (0xFU)
#define ESC_SYS_TIME_DIFF_FD_DEPTH_SHIFT (0U)
#define ESC_SYS_TIME_DIFF_FD_DEPTH_SET(x) (((uint8_t)(x) << ESC_SYS_TIME_DIFF_FD_DEPTH_SHIFT) & ESC_SYS_TIME_DIFF_FD_DEPTH_MASK)
#define ESC_SYS_TIME_DIFF_FD_DEPTH_GET(x) (((uint8_t)(x) & ESC_SYS_TIME_DIFF_FD_DEPTH_MASK) >> ESC_SYS_TIME_DIFF_FD_DEPTH_SHIFT)

/* Bitfield definition for register: SPD_CNT_FD */
/*
 * DEPTH (RW)
 *
 * Filter depth for averaging the clock period
 * deviation
 * IP Core since V2.2.0/V2.02a:
 * A write access resets the internal speed
 * counter filter
 */
#define ESC_SPD_CNT_FD_DEPTH_MASK (0xFU)
#define ESC_SPD_CNT_FD_DEPTH_SHIFT (0U)
#define ESC_SPD_CNT_FD_DEPTH_SET(x) (((uint8_t)(x) << ESC_SPD_CNT_FD_DEPTH_SHIFT) & ESC_SPD_CNT_FD_DEPTH_MASK)
#define ESC_SPD_CNT_FD_DEPTH_GET(x) (((uint8_t)(x) & ESC_SPD_CNT_FD_DEPTH_MASK) >> ESC_SPD_CNT_FD_DEPTH_SHIFT)

/* Bitfield definition for register: RCV_TIME_LM */
/*
 * LATCH_MODE (RO)
 *
 * Receive Time Latch Mode:
 * 0:Forwarding mode (used if frames are
 * entering the ESC at port 0 first):
 * Receive time stamps of ports 1-3 are
 * enabled after the write access to
 * 0x0900, so the following frame at ports
 * 1-3 will be time stamped (this is typically
 * the write frame to 0x0900 coming back
 * from the network behind the ESC).
 * 1:Reverse mode (used if frames are
 * entering ESC at port 1-3 first):
 * Receive time stamps of ports 1-3 are
 * immediately taken over from the internal
 * hidden time stamp registers, so the
 * previous frame entering the ESC at
 * ports 1-3 will be time stamped when the
 * write frame to 0x0900 enters port 0 (the
 * previous frame at ports 1-3 is typically
 * the write frame to 0x0900 coming from
 * the master, which will enable time
 * stamp
 */
#define ESC_RCV_TIME_LM_LATCH_MODE_MASK (0x1U)
#define ESC_RCV_TIME_LM_LATCH_MODE_SHIFT (0U)
#define ESC_RCV_TIME_LM_LATCH_MODE_GET(x) (((uint8_t)(x) & ESC_RCV_TIME_LM_LATCH_MODE_MASK) >> ESC_RCV_TIME_LM_LATCH_MODE_SHIFT)

/* Bitfield definition for register: CYC_UNIT_CTRL */
/*
 * LATCHI1 (RO)
 *
 * Latch In unit 1:
 * 0:ECAT-controlled
 * 1:PDI-controlled
 * NOTE:Latch interrupt is routed to ECAT/PDI
 * depending on this setting
 */
#define ESC_CYC_UNIT_CTRL_LATCHI1_MASK (0x20U)
#define ESC_CYC_UNIT_CTRL_LATCHI1_SHIFT (5U)
#define ESC_CYC_UNIT_CTRL_LATCHI1_GET(x) (((uint8_t)(x) & ESC_CYC_UNIT_CTRL_LATCHI1_MASK) >> ESC_CYC_UNIT_CTRL_LATCHI1_SHIFT)

/*
 * LATCHI0 (RO)
 *
 * Latch In unit 0:
 * 0:ECAT-controlled
 * 1:PDI-controlled
 * NOTE:Latch interrupt is routed to ECAT/PDI
 * depending on this setting.
 * Always 1 (PDI-controlled) if System Time is PDIcontrolled.
 */
#define ESC_CYC_UNIT_CTRL_LATCHI0_MASK (0x10U)
#define ESC_CYC_UNIT_CTRL_LATCHI0_SHIFT (4U)
#define ESC_CYC_UNIT_CTRL_LATCHI0_GET(x) (((uint8_t)(x) & ESC_CYC_UNIT_CTRL_LATCHI0_MASK) >> ESC_CYC_UNIT_CTRL_LATCHI0_SHIFT)

/*
 * SYNCO (RO)
 *
 * Cyclic Unit and SYNC0 out unit control:
 * 0:ECAT-controlled
 * 1:PDI-controlled
 */
#define ESC_CYC_UNIT_CTRL_SYNCO_MASK (0x1U)
#define ESC_CYC_UNIT_CTRL_SYNCO_SHIFT (0U)
#define ESC_CYC_UNIT_CTRL_SYNCO_GET(x) (((uint8_t)(x) & ESC_CYC_UNIT_CTRL_SYNCO_MASK) >> ESC_CYC_UNIT_CTRL_SYNCO_SHIFT)

/* Bitfield definition for register: SYNCO_ACT */
/*
 * SSDP (RW)
 *
 * SyncSignal debug pulse (Vasily bit):
 * 0:Deactivated
 * 1:Immediately generate one ping only on
 * SYNC0-1 according to 0x0981[2:1 for
 * debugging
 * This bit is self-clearing, always read 0.
 * All pulses are generated at the same time,
 * the cycle time is ignored. The configured
 * pulse length is used.
 */
#define ESC_SYNCO_ACT_SSDP_MASK (0x80U)
#define ESC_SYNCO_ACT_SSDP_SHIFT (7U)
#define ESC_SYNCO_ACT_SSDP_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_SSDP_SHIFT) & ESC_SYNCO_ACT_SSDP_MASK)
#define ESC_SYNCO_ACT_SSDP_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_SSDP_MASK) >> ESC_SYNCO_ACT_SSDP_SHIFT)

/*
 * NFC (RW)
 *
 * Near future configuration (approx.):
 * 0:½ DC width future (231 ns or 263 ns)
 * 1:~2.1 sec. future (231 ns)
 */
#define ESC_SYNCO_ACT_NFC_MASK (0x40U)
#define ESC_SYNCO_ACT_NFC_SHIFT (6U)
#define ESC_SYNCO_ACT_NFC_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_NFC_SHIFT) & ESC_SYNCO_ACT_NFC_MASK)
#define ESC_SYNCO_ACT_NFC_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_NFC_MASK) >> ESC_SYNCO_ACT_NFC_SHIFT)

/*
 * STPC (RW)
 *
 * Start Time plausibility check:
 * 0:Disabled. SyncSignal generation if Start
 * Time is reached.
 * 1:Immediate SyncSignal generation if
 * Start Time is outside near future (see
 * 0x0981[6])
 */
#define ESC_SYNCO_ACT_STPC_MASK (0x20U)
#define ESC_SYNCO_ACT_STPC_SHIFT (5U)
#define ESC_SYNCO_ACT_STPC_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_STPC_SHIFT) & ESC_SYNCO_ACT_STPC_MASK)
#define ESC_SYNCO_ACT_STPC_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_STPC_MASK) >> ESC_SYNCO_ACT_STPC_SHIFT)

/*
 * EXT (RW)
 *
 * Extension of Start Time Cyclic Operation
 * (0x0990:0x0993):
 * 0:No extension
 * 1:Extend 32 bit written Start Time to 64 bit
 */
#define ESC_SYNCO_ACT_EXT_MASK (0x10U)
#define ESC_SYNCO_ACT_EXT_SHIFT (4U)
#define ESC_SYNCO_ACT_EXT_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_EXT_SHIFT) & ESC_SYNCO_ACT_EXT_MASK)
#define ESC_SYNCO_ACT_EXT_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_EXT_MASK) >> ESC_SYNCO_ACT_EXT_SHIFT)

/*
 * AC (RW)
 *
 * Auto-activation by writing Start Time Cyclic
 * Operation (0x0990:0x0997):
 * 0:Disabled
 * 1:Auto-activation enabled. 0x0981[0] is
 * set automatically after Start Time is
 * written.
 */
#define ESC_SYNCO_ACT_AC_MASK (0x8U)
#define ESC_SYNCO_ACT_AC_SHIFT (3U)
#define ESC_SYNCO_ACT_AC_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_AC_SHIFT) & ESC_SYNCO_ACT_AC_MASK)
#define ESC_SYNCO_ACT_AC_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_AC_MASK) >> ESC_SYNCO_ACT_AC_SHIFT)

/*
 * SYNC1_GEN (RW)
 *
 * SYNC1 generation:
 * 0:Deactivated
 * 1:SYNC1 pulse is generated
 */
#define ESC_SYNCO_ACT_SYNC1_GEN_MASK (0x4U)
#define ESC_SYNCO_ACT_SYNC1_GEN_SHIFT (2U)
#define ESC_SYNCO_ACT_SYNC1_GEN_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_SYNC1_GEN_SHIFT) & ESC_SYNCO_ACT_SYNC1_GEN_MASK)
#define ESC_SYNCO_ACT_SYNC1_GEN_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_SYNC1_GEN_MASK) >> ESC_SYNCO_ACT_SYNC1_GEN_SHIFT)

/*
 * SYNC0_GEN (RW)
 *
 * SYNC0 generation:
 * 0:Deactivated
 * 1:SYNC0 pulse is generated
 */
#define ESC_SYNCO_ACT_SYNC0_GEN_MASK (0x2U)
#define ESC_SYNCO_ACT_SYNC0_GEN_SHIFT (1U)
#define ESC_SYNCO_ACT_SYNC0_GEN_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_SYNC0_GEN_SHIFT) & ESC_SYNCO_ACT_SYNC0_GEN_MASK)
#define ESC_SYNCO_ACT_SYNC0_GEN_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_SYNC0_GEN_MASK) >> ESC_SYNCO_ACT_SYNC0_GEN_SHIFT)

/*
 * SOUA (RW)
 *
 * Sync Out Unit activation:
 * 0:Deactivated
 * 1:Activated
 */
#define ESC_SYNCO_ACT_SOUA_MASK (0x1U)
#define ESC_SYNCO_ACT_SOUA_SHIFT (0U)
#define ESC_SYNCO_ACT_SOUA_SET(x) (((uint8_t)(x) << ESC_SYNCO_ACT_SOUA_SHIFT) & ESC_SYNCO_ACT_SOUA_MASK)
#define ESC_SYNCO_ACT_SOUA_GET(x) (((uint8_t)(x) & ESC_SYNCO_ACT_SOUA_MASK) >> ESC_SYNCO_ACT_SOUA_SHIFT)

/* Bitfield definition for register: PULSE_LEN */
/*
 * LEN (RO)
 *
 * Pulse length of SyncSignals (in Units of
 * 10ns)
 * 0:Acknowledge mode:SyncSignal will be
 * cleared by reading SYNC[1:0] Status
 * register
 */
#define ESC_PULSE_LEN_LEN_MASK (0xFFFFU)
#define ESC_PULSE_LEN_LEN_SHIFT (0U)
#define ESC_PULSE_LEN_LEN_GET(x) (((uint16_t)(x) & ESC_PULSE_LEN_LEN_MASK) >> ESC_PULSE_LEN_LEN_SHIFT)

/* Bitfield definition for register: ACT_STAT */
/*
 * CHK_RSLT (RO)
 *
 * Start Time Cyclic Operation (0x0990:0x0997)
 * plausibility check result when Sync Out Unit
 * was activated:
 * 0:Start Time was within near future
 * 1:Start Time was out of near future
 * (0x0981[6])
 */
#define ESC_ACT_STAT_CHK_RSLT_MASK (0x4U)
#define ESC_ACT_STAT_CHK_RSLT_SHIFT (2U)
#define ESC_ACT_STAT_CHK_RSLT_GET(x) (((uint8_t)(x) & ESC_ACT_STAT_CHK_RSLT_MASK) >> ESC_ACT_STAT_CHK_RSLT_SHIFT)

/*
 * SYNC1 (RO)
 *
 * SYNC1 activation state:
 * 0:First SYNC1 pulse is not pending
 * 1:First SYNC1 pulse is pending
 */
#define ESC_ACT_STAT_SYNC1_MASK (0x2U)
#define ESC_ACT_STAT_SYNC1_SHIFT (1U)
#define ESC_ACT_STAT_SYNC1_GET(x) (((uint8_t)(x) & ESC_ACT_STAT_SYNC1_MASK) >> ESC_ACT_STAT_SYNC1_SHIFT)

/*
 * SYNC0 (RO)
 *
 * SYNC0 activation state:
 * 0:First SYNC0 pulse is not pending
 * 1:First SYNC0 pulse is pending
 */
#define ESC_ACT_STAT_SYNC0_MASK (0x1U)
#define ESC_ACT_STAT_SYNC0_SHIFT (0U)
#define ESC_ACT_STAT_SYNC0_GET(x) (((uint8_t)(x) & ESC_ACT_STAT_SYNC0_MASK) >> ESC_ACT_STAT_SYNC0_SHIFT)

/* Bitfield definition for register: SYNC0_STAT */
/*
 * ACK (RW)
 *
 * SYNC0 state for Acknowledge mode.
 * SYNC0 in Acknowledge mode is cleared by
 * reading this register from PDI, use only in
 * Acknowledge mode
 */
#define ESC_SYNC0_STAT_ACK_MASK (0x1U)
#define ESC_SYNC0_STAT_ACK_SHIFT (0U)
#define ESC_SYNC0_STAT_ACK_SET(x) (((uint8_t)(x) << ESC_SYNC0_STAT_ACK_SHIFT) & ESC_SYNC0_STAT_ACK_MASK)
#define ESC_SYNC0_STAT_ACK_GET(x) (((uint8_t)(x) & ESC_SYNC0_STAT_ACK_MASK) >> ESC_SYNC0_STAT_ACK_SHIFT)

/* Bitfield definition for register: SYNC1_STAT */
/*
 * ACK (RW)
 *
 * SYNC1 state for Acknowledge mode.
 * SYNC1 in Acknowledge mode is cleared by
 * reading this register from PDI, use only in
 * Acknowledge mode
 */
#define ESC_SYNC1_STAT_ACK_MASK (0x1U)
#define ESC_SYNC1_STAT_ACK_SHIFT (0U)
#define ESC_SYNC1_STAT_ACK_SET(x) (((uint8_t)(x) << ESC_SYNC1_STAT_ACK_SHIFT) & ESC_SYNC1_STAT_ACK_MASK)
#define ESC_SYNC1_STAT_ACK_GET(x) (((uint8_t)(x) & ESC_SYNC1_STAT_ACK_MASK) >> ESC_SYNC1_STAT_ACK_SHIFT)

/* Bitfield definition for register: START_TIME_CO */
/*
 * ST (RW)
 *
 * Write:Start time (System time) of cyclic
 * operation in ns
 * Read:System time of next SYNC0 pulse in
 * ns
 */
#define ESC_START_TIME_CO_ST_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_START_TIME_CO_ST_SHIFT (0U)
#define ESC_START_TIME_CO_ST_SET(x) (((uint64_t)(x) << ESC_START_TIME_CO_ST_SHIFT) & ESC_START_TIME_CO_ST_MASK)
#define ESC_START_TIME_CO_ST_GET(x) (((uint64_t)(x) & ESC_START_TIME_CO_ST_MASK) >> ESC_START_TIME_CO_ST_SHIFT)

/* Bitfield definition for register: NXT_SYNC1_PULSE */
/*
 * TIME (RO)
 *
 * System time of next SYNC1 pulse in ns
 */
#define ESC_NXT_SYNC1_PULSE_TIME_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_NXT_SYNC1_PULSE_TIME_SHIFT (0U)
#define ESC_NXT_SYNC1_PULSE_TIME_GET(x) (((uint64_t)(x) & ESC_NXT_SYNC1_PULSE_TIME_MASK) >> ESC_NXT_SYNC1_PULSE_TIME_SHIFT)

/* Bitfield definition for register: SYNC0_CYC_TIME */
/*
 * CYC (RW)
 *
 * Time between two consecutive SYNC0
 * pulses in ns.
 * 0:Single shot mode, generate only one
 * SYNC0 pulse.
 */
#define ESC_SYNC0_CYC_TIME_CYC_MASK (0xFFFFFFFFUL)
#define ESC_SYNC0_CYC_TIME_CYC_SHIFT (0U)
#define ESC_SYNC0_CYC_TIME_CYC_SET(x) (((uint32_t)(x) << ESC_SYNC0_CYC_TIME_CYC_SHIFT) & ESC_SYNC0_CYC_TIME_CYC_MASK)
#define ESC_SYNC0_CYC_TIME_CYC_GET(x) (((uint32_t)(x) & ESC_SYNC0_CYC_TIME_CYC_MASK) >> ESC_SYNC0_CYC_TIME_CYC_SHIFT)

/* Bitfield definition for register: SYNC1_CYC_TIME */
/*
 * CYC (RW)
 *
 * Time between SYNC0 pulse and SYNC1
 * pulse in ns
 */
#define ESC_SYNC1_CYC_TIME_CYC_MASK (0xFFFFFFFFUL)
#define ESC_SYNC1_CYC_TIME_CYC_SHIFT (0U)
#define ESC_SYNC1_CYC_TIME_CYC_SET(x) (((uint32_t)(x) << ESC_SYNC1_CYC_TIME_CYC_SHIFT) & ESC_SYNC1_CYC_TIME_CYC_MASK)
#define ESC_SYNC1_CYC_TIME_CYC_GET(x) (((uint32_t)(x) & ESC_SYNC1_CYC_TIME_CYC_MASK) >> ESC_SYNC1_CYC_TIME_CYC_SHIFT)

/* Bitfield definition for register: LATCH0_CTRL */
/*
 * NEG_EDGE (RW)
 *
 * Latch0 negative edge:
 * 0:Continuous Latch active
 * 1:Single event (only first event active)
 */
#define ESC_LATCH0_CTRL_NEG_EDGE_MASK (0x2U)
#define ESC_LATCH0_CTRL_NEG_EDGE_SHIFT (1U)
#define ESC_LATCH0_CTRL_NEG_EDGE_SET(x) (((uint8_t)(x) << ESC_LATCH0_CTRL_NEG_EDGE_SHIFT) & ESC_LATCH0_CTRL_NEG_EDGE_MASK)
#define ESC_LATCH0_CTRL_NEG_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH0_CTRL_NEG_EDGE_MASK) >> ESC_LATCH0_CTRL_NEG_EDGE_SHIFT)

/*
 * POS_EDGE (RW)
 *
 * Latch0 positive edge:
 * 0:Continuous Latch active
 * 1:Single event (only first event active)
 */
#define ESC_LATCH0_CTRL_POS_EDGE_MASK (0x1U)
#define ESC_LATCH0_CTRL_POS_EDGE_SHIFT (0U)
#define ESC_LATCH0_CTRL_POS_EDGE_SET(x) (((uint8_t)(x) << ESC_LATCH0_CTRL_POS_EDGE_SHIFT) & ESC_LATCH0_CTRL_POS_EDGE_MASK)
#define ESC_LATCH0_CTRL_POS_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH0_CTRL_POS_EDGE_MASK) >> ESC_LATCH0_CTRL_POS_EDGE_SHIFT)

/* Bitfield definition for register: LATCH1_CTRL */
/*
 * NEG_EDGE (RW)
 *
 * Latch1 negative edge:
 * 0:Continuous Latch active
 * 1:Single event (only first event active)
 */
#define ESC_LATCH1_CTRL_NEG_EDGE_MASK (0x2U)
#define ESC_LATCH1_CTRL_NEG_EDGE_SHIFT (1U)
#define ESC_LATCH1_CTRL_NEG_EDGE_SET(x) (((uint8_t)(x) << ESC_LATCH1_CTRL_NEG_EDGE_SHIFT) & ESC_LATCH1_CTRL_NEG_EDGE_MASK)
#define ESC_LATCH1_CTRL_NEG_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH1_CTRL_NEG_EDGE_MASK) >> ESC_LATCH1_CTRL_NEG_EDGE_SHIFT)

/*
 * POS_EDGE (RW)
 *
 * Latch1 positive edge:
 * 0:Continuous Latch active
 * 1:Single event (only first event active)
 */
#define ESC_LATCH1_CTRL_POS_EDGE_MASK (0x1U)
#define ESC_LATCH1_CTRL_POS_EDGE_SHIFT (0U)
#define ESC_LATCH1_CTRL_POS_EDGE_SET(x) (((uint8_t)(x) << ESC_LATCH1_CTRL_POS_EDGE_SHIFT) & ESC_LATCH1_CTRL_POS_EDGE_MASK)
#define ESC_LATCH1_CTRL_POS_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH1_CTRL_POS_EDGE_MASK) >> ESC_LATCH1_CTRL_POS_EDGE_SHIFT)

/* Bitfield definition for register: LATCH0_STAT */
/*
 * PIN_STAT (RO)
 *
 * Latch0 pin state
 */
#define ESC_LATCH0_STAT_PIN_STAT_MASK (0x4U)
#define ESC_LATCH0_STAT_PIN_STAT_SHIFT (2U)
#define ESC_LATCH0_STAT_PIN_STAT_GET(x) (((uint8_t)(x) & ESC_LATCH0_STAT_PIN_STAT_MASK) >> ESC_LATCH0_STAT_PIN_STAT_SHIFT)

/*
 * NEG_EDGE (RO)
 *
 * Event Latch0 negative edge.
 * 0:Negative edge not detected or
 * continuous mode
 * 1:Negative edge detected in single event
 * mode only.
 * Flag cleared by reading out Latch0 Time
 * Negative Edge.
 */
#define ESC_LATCH0_STAT_NEG_EDGE_MASK (0x2U)
#define ESC_LATCH0_STAT_NEG_EDGE_SHIFT (1U)
#define ESC_LATCH0_STAT_NEG_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH0_STAT_NEG_EDGE_MASK) >> ESC_LATCH0_STAT_NEG_EDGE_SHIFT)

/*
 * POS_EDGE (RO)
 *
 * Event Latch0 positive edge.
 * 0:Positive edge not detected or
 * continuous mode
 * 1:Positive edge detected in single event
 * mode only.
 * Flag cleared by reading out Latch0 Time
 * Positive Edge.
 */
#define ESC_LATCH0_STAT_POS_EDGE_MASK (0x1U)
#define ESC_LATCH0_STAT_POS_EDGE_SHIFT (0U)
#define ESC_LATCH0_STAT_POS_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH0_STAT_POS_EDGE_MASK) >> ESC_LATCH0_STAT_POS_EDGE_SHIFT)

/* Bitfield definition for register: LATCH1_STAT */
/*
 * PIN_STAT (RO)
 *
 * Latch1 pin state
 */
#define ESC_LATCH1_STAT_PIN_STAT_MASK (0x4U)
#define ESC_LATCH1_STAT_PIN_STAT_SHIFT (2U)
#define ESC_LATCH1_STAT_PIN_STAT_GET(x) (((uint8_t)(x) & ESC_LATCH1_STAT_PIN_STAT_MASK) >> ESC_LATCH1_STAT_PIN_STAT_SHIFT)

/*
 * NEG_EDGE (RO)
 *
 * Event Latch1 negative edge.
 * 0:Negative edge not detected or
 * continuous mode
 * 1:Negative edge detected in single event
 * mode only.
 * Flag cleared by reading out Latch1 Time
 * Negative Edge.
 */
#define ESC_LATCH1_STAT_NEG_EDGE_MASK (0x2U)
#define ESC_LATCH1_STAT_NEG_EDGE_SHIFT (1U)
#define ESC_LATCH1_STAT_NEG_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH1_STAT_NEG_EDGE_MASK) >> ESC_LATCH1_STAT_NEG_EDGE_SHIFT)

/*
 * POS_EDGE (RO)
 *
 * Event Latch1 positive edge.
 * 0:Positive edge not detected or
 * continuous mode
 * 1:Positive edge detected in single event
 * mode only.
 * Flag cleared by reading out Latch1 Time
 * Positive Edge.
 */
#define ESC_LATCH1_STAT_POS_EDGE_MASK (0x1U)
#define ESC_LATCH1_STAT_POS_EDGE_SHIFT (0U)
#define ESC_LATCH1_STAT_POS_EDGE_GET(x) (((uint8_t)(x) & ESC_LATCH1_STAT_POS_EDGE_MASK) >> ESC_LATCH1_STAT_POS_EDGE_SHIFT)

/* Bitfield definition for register: LATCH0_TIME_PE */
/*
 * TIME (RW)
 *
 * System time at the positive edge of the
 * Latch0 signal.
 */
#define ESC_LATCH0_TIME_PE_TIME_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_LATCH0_TIME_PE_TIME_SHIFT (0U)
#define ESC_LATCH0_TIME_PE_TIME_SET(x) (((uint64_t)(x) << ESC_LATCH0_TIME_PE_TIME_SHIFT) & ESC_LATCH0_TIME_PE_TIME_MASK)
#define ESC_LATCH0_TIME_PE_TIME_GET(x) (((uint64_t)(x) & ESC_LATCH0_TIME_PE_TIME_MASK) >> ESC_LATCH0_TIME_PE_TIME_SHIFT)

/* Bitfield definition for register: LATCH0_TIME_NE */
/*
 * TIME (RW)
 *
 * System time at the negative edge of the
 * Latch0 signal.
 */
#define ESC_LATCH0_TIME_NE_TIME_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_LATCH0_TIME_NE_TIME_SHIFT (0U)
#define ESC_LATCH0_TIME_NE_TIME_SET(x) (((uint64_t)(x) << ESC_LATCH0_TIME_NE_TIME_SHIFT) & ESC_LATCH0_TIME_NE_TIME_MASK)
#define ESC_LATCH0_TIME_NE_TIME_GET(x) (((uint64_t)(x) & ESC_LATCH0_TIME_NE_TIME_MASK) >> ESC_LATCH0_TIME_NE_TIME_SHIFT)

/* Bitfield definition for register: LATCH1_TIME_PE */
/*
 * TIME (RW)
 *
 * System time at the positive edge of the
 * Latch1 signal.
 */
#define ESC_LATCH1_TIME_PE_TIME_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_LATCH1_TIME_PE_TIME_SHIFT (0U)
#define ESC_LATCH1_TIME_PE_TIME_SET(x) (((uint64_t)(x) << ESC_LATCH1_TIME_PE_TIME_SHIFT) & ESC_LATCH1_TIME_PE_TIME_MASK)
#define ESC_LATCH1_TIME_PE_TIME_GET(x) (((uint64_t)(x) & ESC_LATCH1_TIME_PE_TIME_MASK) >> ESC_LATCH1_TIME_PE_TIME_SHIFT)

/* Bitfield definition for register: LATCH1_TIME_NE */
/*
 * TIME (RW)
 *
 * System time at the negative edge of the
 * Latch1 signal.
 */
#define ESC_LATCH1_TIME_NE_TIME_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_LATCH1_TIME_NE_TIME_SHIFT (0U)
#define ESC_LATCH1_TIME_NE_TIME_SET(x) (((uint64_t)(x) << ESC_LATCH1_TIME_NE_TIME_SHIFT) & ESC_LATCH1_TIME_NE_TIME_MASK)
#define ESC_LATCH1_TIME_NE_TIME_GET(x) (((uint64_t)(x) & ESC_LATCH1_TIME_NE_TIME_MASK) >> ESC_LATCH1_TIME_NE_TIME_SHIFT)

/* Bitfield definition for register: ECAT_BUF_CET */
/*
 * TIME (RO)
 *
 * Local time at the beginning of the frame
 * which causes at least one SyncManager to
 * assert an ECAT event
 */
#define ESC_ECAT_BUF_CET_TIME_MASK (0xFFFFFFFFUL)
#define ESC_ECAT_BUF_CET_TIME_SHIFT (0U)
#define ESC_ECAT_BUF_CET_TIME_GET(x) (((uint32_t)(x) & ESC_ECAT_BUF_CET_TIME_MASK) >> ESC_ECAT_BUF_CET_TIME_SHIFT)

/* Bitfield definition for register: PDI_BUF_SET */
/*
 * TIME (RO)
 *
 * Local time when at least one SyncManager
 * asserts a PDI buffer start event
 */
#define ESC_PDI_BUF_SET_TIME_MASK (0xFFFFFFFFUL)
#define ESC_PDI_BUF_SET_TIME_SHIFT (0U)
#define ESC_PDI_BUF_SET_TIME_GET(x) (((uint32_t)(x) & ESC_PDI_BUF_SET_TIME_MASK) >> ESC_PDI_BUF_SET_TIME_SHIFT)

/* Bitfield definition for register: PDI_BUF_CET */
/*
 * TIME (RO)
 *
 * Local time when at least one SyncManager
 * asserts a PDI buffer change event
 */
#define ESC_PDI_BUF_CET_TIME_MASK (0xFFFFFFFFUL)
#define ESC_PDI_BUF_CET_TIME_SHIFT (0U)
#define ESC_PDI_BUF_CET_TIME_GET(x) (((uint32_t)(x) & ESC_PDI_BUF_CET_TIME_MASK) >> ESC_PDI_BUF_CET_TIME_SHIFT)

/* Bitfield definition for register: PID */
/*
 * PID (RO)
 *
 * Product ID
 */
#define ESC_PID_PID_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_PID_PID_SHIFT (0U)
#define ESC_PID_PID_GET(x) (((uint64_t)(x) & ESC_PID_PID_MASK) >> ESC_PID_PID_SHIFT)

/* Bitfield definition for register: VID */
/*
 * VID (RO)
 *
 * Vendor ID:
 * 23-0: Company
 * 31-24: Department
 * NOTE:Test Vendor IDs have [31:28]=0xE
 */
#define ESC_VID_VID_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_VID_VID_SHIFT (0U)
#define ESC_VID_VID_GET(x) (((uint64_t)(x) & ESC_VID_VID_MASK) >> ESC_VID_VID_SHIFT)

/* Bitfield definition for register: DIO_OUT_DATA */
/*
 * OD (RO)
 *
 * Output Data
 */
#define ESC_DIO_OUT_DATA_OD_MASK (0xFFFFFFFFUL)
#define ESC_DIO_OUT_DATA_OD_SHIFT (0U)
#define ESC_DIO_OUT_DATA_OD_GET(x) (((uint32_t)(x) & ESC_DIO_OUT_DATA_OD_MASK) >> ESC_DIO_OUT_DATA_OD_SHIFT)

/* Bitfield definition for register: GPO */
/*
 * GPOD (RW)
 *
 * General Purpose Output Data
 */
#define ESC_GPO_GPOD_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_GPO_GPOD_SHIFT (0U)
#define ESC_GPO_GPOD_SET(x) (((uint64_t)(x) << ESC_GPO_GPOD_SHIFT) & ESC_GPO_GPOD_MASK)
#define ESC_GPO_GPOD_GET(x) (((uint64_t)(x) & ESC_GPO_GPOD_MASK) >> ESC_GPO_GPOD_SHIFT)

/* Bitfield definition for register: GPI */
/*
 * GPID (RO)
 *
 * General Purpose Input Data
 */
#define ESC_GPI_GPID_MASK (0xFFFFFFFFFFFFFFFFULL)
#define ESC_GPI_GPID_SHIFT (0U)
#define ESC_GPI_GPID_GET(x) (((uint64_t)(x) & ESC_GPI_GPID_MASK) >> ESC_GPI_GPID_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE0 */
/*
 * EXTF (RW)
 *
 * Number of extended feature bits
 */
#define ESC_USER_RAM_BYTE0_EXTF_MASK (0xFFU)
#define ESC_USER_RAM_BYTE0_EXTF_SHIFT (0U)
#define ESC_USER_RAM_BYTE0_EXTF_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE0_EXTF_SHIFT) & ESC_USER_RAM_BYTE0_EXTF_MASK)
#define ESC_USER_RAM_BYTE0_EXTF_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE0_EXTF_MASK) >> ESC_USER_RAM_BYTE0_EXTF_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE1 */
/*
 * PRWO (RW)
 *
 * Physical Read/Write Offset (0x0108:0x0109)
 */
#define ESC_USER_RAM_BYTE1_PRWO_MASK (0x80U)
#define ESC_USER_RAM_BYTE1_PRWO_SHIFT (7U)
#define ESC_USER_RAM_BYTE1_PRWO_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_PRWO_SHIFT) & ESC_USER_RAM_BYTE1_PRWO_MASK)
#define ESC_USER_RAM_BYTE1_PRWO_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_PRWO_MASK) >> ESC_USER_RAM_BYTE1_PRWO_SHIFT)

/*
 * AEMW (RW)
 *
 * AL Event Mask writable (0x0204:0x0207)
 */
#define ESC_USER_RAM_BYTE1_AEMW_MASK (0x40U)
#define ESC_USER_RAM_BYTE1_AEMW_SHIFT (6U)
#define ESC_USER_RAM_BYTE1_AEMW_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_AEMW_SHIFT) & ESC_USER_RAM_BYTE1_AEMW_MASK)
#define ESC_USER_RAM_BYTE1_AEMW_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_AEMW_MASK) >> ESC_USER_RAM_BYTE1_AEMW_SHIFT)

/*
 * GPO (RW)
 *
 * General Purpose Outputs (0x0F10:0x0F17)
 */
#define ESC_USER_RAM_BYTE1_GPO_MASK (0x20U)
#define ESC_USER_RAM_BYTE1_GPO_SHIFT (5U)
#define ESC_USER_RAM_BYTE1_GPO_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_GPO_SHIFT) & ESC_USER_RAM_BYTE1_GPO_MASK)
#define ESC_USER_RAM_BYTE1_GPO_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_GPO_MASK) >> ESC_USER_RAM_BYTE1_GPO_SHIFT)

/*
 * GPI (RW)
 *
 * General Purpose Inputs (0x0F18:0x0F1F)
 */
#define ESC_USER_RAM_BYTE1_GPI_MASK (0x10U)
#define ESC_USER_RAM_BYTE1_GPI_SHIFT (4U)
#define ESC_USER_RAM_BYTE1_GPI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_GPI_SHIFT) & ESC_USER_RAM_BYTE1_GPI_MASK)
#define ESC_USER_RAM_BYTE1_GPI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_GPI_MASK) >> ESC_USER_RAM_BYTE1_GPI_SHIFT)

/*
 * CSA (RW)
 *
 * Configured Station Alias (0x0012:0x0013)
 */
#define ESC_USER_RAM_BYTE1_CSA_MASK (0x8U)
#define ESC_USER_RAM_BYTE1_CSA_SHIFT (3U)
#define ESC_USER_RAM_BYTE1_CSA_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_CSA_SHIFT) & ESC_USER_RAM_BYTE1_CSA_MASK)
#define ESC_USER_RAM_BYTE1_CSA_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_CSA_MASK) >> ESC_USER_RAM_BYTE1_CSA_SHIFT)

/*
 * EIM (RW)
 *
 * ECAT Interrupt Mask (0x0200:0x0201)
 */
#define ESC_USER_RAM_BYTE1_EIM_MASK (0x4U)
#define ESC_USER_RAM_BYTE1_EIM_SHIFT (2U)
#define ESC_USER_RAM_BYTE1_EIM_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_EIM_SHIFT) & ESC_USER_RAM_BYTE1_EIM_MASK)
#define ESC_USER_RAM_BYTE1_EIM_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_EIM_MASK) >> ESC_USER_RAM_BYTE1_EIM_SHIFT)

/*
 * ALSCR (RW)
 *
 * AL Status Code Register (0x0134:0x0135)
 */
#define ESC_USER_RAM_BYTE1_ALSCR_MASK (0x2U)
#define ESC_USER_RAM_BYTE1_ALSCR_SHIFT (1U)
#define ESC_USER_RAM_BYTE1_ALSCR_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_ALSCR_SHIFT) & ESC_USER_RAM_BYTE1_ALSCR_MASK)
#define ESC_USER_RAM_BYTE1_ALSCR_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_ALSCR_MASK) >> ESC_USER_RAM_BYTE1_ALSCR_SHIFT)

/*
 * EDLCR (RW)
 *
 * Extended DL Control Register (0x0102:0x0103)
 */
#define ESC_USER_RAM_BYTE1_EDLCR_MASK (0x1U)
#define ESC_USER_RAM_BYTE1_EDLCR_SHIFT (0U)
#define ESC_USER_RAM_BYTE1_EDLCR_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE1_EDLCR_SHIFT) & ESC_USER_RAM_BYTE1_EDLCR_MASK)
#define ESC_USER_RAM_BYTE1_EDLCR_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE1_EDLCR_MASK) >> ESC_USER_RAM_BYTE1_EDLCR_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE2 */
/*
 * ESCFG (RW)
 *
 * EEPROM Size configurable (0x0502[7]):
 * 0:EEPROM Size fixed to sizes up to 16 Kbit
 * 1:EEPROM Size configurable
 */
#define ESC_USER_RAM_BYTE2_ESCFG_MASK (0x80U)
#define ESC_USER_RAM_BYTE2_ESCFG_SHIFT (7U)
#define ESC_USER_RAM_BYTE2_ESCFG_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_ESCFG_SHIFT) & ESC_USER_RAM_BYTE2_ESCFG_MASK)
#define ESC_USER_RAM_BYTE2_ESCFG_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_ESCFG_MASK) >> ESC_USER_RAM_BYTE2_ESCFG_SHIFT)

/*
 * EPUPEC (RW)
 *
 * ECAT Processing Unit/PDI Error Counter
 * (0x030C:0x030D)
 */
#define ESC_USER_RAM_BYTE2_EPUPEC_MASK (0x40U)
#define ESC_USER_RAM_BYTE2_EPUPEC_SHIFT (6U)
#define ESC_USER_RAM_BYTE2_EPUPEC_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_EPUPEC_SHIFT) & ESC_USER_RAM_BYTE2_EPUPEC_MASK)
#define ESC_USER_RAM_BYTE2_EPUPEC_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_EPUPEC_MASK) >> ESC_USER_RAM_BYTE2_EPUPEC_SHIFT)

/*
 * DCSMET (RW)
 *
 * DC SyncManager Event Times (0x09F0:0x09FF)
 */
#define ESC_USER_RAM_BYTE2_DCSMET_MASK (0x20U)
#define ESC_USER_RAM_BYTE2_DCSMET_SHIFT (5U)
#define ESC_USER_RAM_BYTE2_DCSMET_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_DCSMET_SHIFT) & ESC_USER_RAM_BYTE2_DCSMET_MASK)
#define ESC_USER_RAM_BYTE2_DCSMET_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_DCSMET_MASK) >> ESC_USER_RAM_BYTE2_DCSMET_SHIFT)

/*
 * RESET (RW)
 *
 * Reset (0x0040:0x0041)
 */
#define ESC_USER_RAM_BYTE2_RESET_MASK (0x8U)
#define ESC_USER_RAM_BYTE2_RESET_SHIFT (3U)
#define ESC_USER_RAM_BYTE2_RESET_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_RESET_SHIFT) & ESC_USER_RAM_BYTE2_RESET_MASK)
#define ESC_USER_RAM_BYTE2_RESET_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_RESET_MASK) >> ESC_USER_RAM_BYTE2_RESET_SHIFT)

/*
 * WP (RW)
 *
 * Write Protection (0x0020:0x0031)
 */
#define ESC_USER_RAM_BYTE2_WP_MASK (0x4U)
#define ESC_USER_RAM_BYTE2_WP_SHIFT (2U)
#define ESC_USER_RAM_BYTE2_WP_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_WP_SHIFT) & ESC_USER_RAM_BYTE2_WP_MASK)
#define ESC_USER_RAM_BYTE2_WP_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_WP_MASK) >> ESC_USER_RAM_BYTE2_WP_SHIFT)

/*
 * WDGCNT (RW)
 *
 * Watchdog counters (0x0442:0x0443)
 */
#define ESC_USER_RAM_BYTE2_WDGCNT_MASK (0x2U)
#define ESC_USER_RAM_BYTE2_WDGCNT_SHIFT (1U)
#define ESC_USER_RAM_BYTE2_WDGCNT_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_WDGCNT_SHIFT) & ESC_USER_RAM_BYTE2_WDGCNT_MASK)
#define ESC_USER_RAM_BYTE2_WDGCNT_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_WDGCNT_MASK) >> ESC_USER_RAM_BYTE2_WDGCNT_SHIFT)

/*
 * WDW (RW)
 *
 * Watchdog divider writable (0x0400:0x0401) and
 * Watchdog PDI (0x0410:0x0411)
 */
#define ESC_USER_RAM_BYTE2_WDW_MASK (0x1U)
#define ESC_USER_RAM_BYTE2_WDW_SHIFT (0U)
#define ESC_USER_RAM_BYTE2_WDW_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE2_WDW_SHIFT) & ESC_USER_RAM_BYTE2_WDW_MASK)
#define ESC_USER_RAM_BYTE2_WDW_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE2_WDW_MASK) >> ESC_USER_RAM_BYTE2_WDW_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE3 */
/*
 * RLED (RW)
 *
 * Run LED (DEV_STATE LED)
 */
#define ESC_USER_RAM_BYTE3_RLED_MASK (0x80U)
#define ESC_USER_RAM_BYTE3_RLED_SHIFT (7U)
#define ESC_USER_RAM_BYTE3_RLED_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE3_RLED_SHIFT) & ESC_USER_RAM_BYTE3_RLED_MASK)
#define ESC_USER_RAM_BYTE3_RLED_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE3_RLED_MASK) >> ESC_USER_RAM_BYTE3_RLED_SHIFT)

/*
 * ELDE (RW)
 *
 * Enhanced Link Detection EBUS
 */
#define ESC_USER_RAM_BYTE3_ELDE_MASK (0x40U)
#define ESC_USER_RAM_BYTE3_ELDE_SHIFT (6U)
#define ESC_USER_RAM_BYTE3_ELDE_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE3_ELDE_SHIFT) & ESC_USER_RAM_BYTE3_ELDE_MASK)
#define ESC_USER_RAM_BYTE3_ELDE_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE3_ELDE_MASK) >> ESC_USER_RAM_BYTE3_ELDE_SHIFT)

/*
 * ELDM (RW)
 *
 * Enhanced Link Detection MII
 */
#define ESC_USER_RAM_BYTE3_ELDM_MASK (0x20U)
#define ESC_USER_RAM_BYTE3_ELDM_SHIFT (5U)
#define ESC_USER_RAM_BYTE3_ELDM_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE3_ELDM_SHIFT) & ESC_USER_RAM_BYTE3_ELDM_MASK)
#define ESC_USER_RAM_BYTE3_ELDM_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE3_ELDM_MASK) >> ESC_USER_RAM_BYTE3_ELDM_SHIFT)

/*
 * MMI (RW)
 *
 * MII Management Interface (0x0510:0x0515)
 */
#define ESC_USER_RAM_BYTE3_MMI_MASK (0x10U)
#define ESC_USER_RAM_BYTE3_MMI_SHIFT (4U)
#define ESC_USER_RAM_BYTE3_MMI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE3_MMI_SHIFT) & ESC_USER_RAM_BYTE3_MMI_MASK)
#define ESC_USER_RAM_BYTE3_MMI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE3_MMI_MASK) >> ESC_USER_RAM_BYTE3_MMI_SHIFT)

/*
 * LLC (RW)
 *
 * Lost Link Counter (0x0310:0x0313)
 */
#define ESC_USER_RAM_BYTE3_LLC_MASK (0x8U)
#define ESC_USER_RAM_BYTE3_LLC_SHIFT (3U)
#define ESC_USER_RAM_BYTE3_LLC_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE3_LLC_SHIFT) & ESC_USER_RAM_BYTE3_LLC_MASK)
#define ESC_USER_RAM_BYTE3_LLC_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE3_LLC_MASK) >> ESC_USER_RAM_BYTE3_LLC_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE4 */
/*
 * LDCM (RW)
 *
 * Link detection and configuration by MI
 */
#define ESC_USER_RAM_BYTE4_LDCM_MASK (0x80U)
#define ESC_USER_RAM_BYTE4_LDCM_SHIFT (7U)
#define ESC_USER_RAM_BYTE4_LDCM_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE4_LDCM_SHIFT) & ESC_USER_RAM_BYTE4_LDCM_MASK)
#define ESC_USER_RAM_BYTE4_LDCM_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE4_LDCM_MASK) >> ESC_USER_RAM_BYTE4_LDCM_SHIFT)

/*
 * DTLC (RW)
 *
 * DC Time loop control assigned to PDI
 */
#define ESC_USER_RAM_BYTE4_DTLC_MASK (0x40U)
#define ESC_USER_RAM_BYTE4_DTLC_SHIFT (6U)
#define ESC_USER_RAM_BYTE4_DTLC_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE4_DTLC_SHIFT) & ESC_USER_RAM_BYTE4_DTLC_MASK)
#define ESC_USER_RAM_BYTE4_DTLC_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE4_DTLC_MASK) >> ESC_USER_RAM_BYTE4_DTLC_SHIFT)

/*
 * DSOU (RW)
 *
 * DC Sync Out Unit
 */
#define ESC_USER_RAM_BYTE4_DSOU_MASK (0x20U)
#define ESC_USER_RAM_BYTE4_DSOU_SHIFT (5U)
#define ESC_USER_RAM_BYTE4_DSOU_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE4_DSOU_SHIFT) & ESC_USER_RAM_BYTE4_DSOU_MASK)
#define ESC_USER_RAM_BYTE4_DSOU_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE4_DSOU_MASK) >> ESC_USER_RAM_BYTE4_DSOU_SHIFT)

/*
 * DLIU (RW)
 *
 * DC Latch In Unit
 */
#define ESC_USER_RAM_BYTE4_DLIU_MASK (0x8U)
#define ESC_USER_RAM_BYTE4_DLIU_SHIFT (3U)
#define ESC_USER_RAM_BYTE4_DLIU_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE4_DLIU_SHIFT) & ESC_USER_RAM_BYTE4_DLIU_MASK)
#define ESC_USER_RAM_BYTE4_DLIU_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE4_DLIU_MASK) >> ESC_USER_RAM_BYTE4_DLIU_SHIFT)

/*
 * LALED (RW)
 *
 * Link/Activity LED
 */
#define ESC_USER_RAM_BYTE4_LALED_MASK (0x1U)
#define ESC_USER_RAM_BYTE4_LALED_SHIFT (0U)
#define ESC_USER_RAM_BYTE4_LALED_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE4_LALED_SHIFT) & ESC_USER_RAM_BYTE4_LALED_MASK)
#define ESC_USER_RAM_BYTE4_LALED_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE4_LALED_MASK) >> ESC_USER_RAM_BYTE4_LALED_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE5 */
/*
 * DDIOR (RW)
 *
 * Disable Digital I/O register (0x0F00:0x0F03)
 */
#define ESC_USER_RAM_BYTE5_DDIOR_MASK (0x20U)
#define ESC_USER_RAM_BYTE5_DDIOR_SHIFT (5U)
#define ESC_USER_RAM_BYTE5_DDIOR_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE5_DDIOR_SHIFT) & ESC_USER_RAM_BYTE5_DDIOR_MASK)
#define ESC_USER_RAM_BYTE5_DDIOR_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE5_DDIOR_MASK) >> ESC_USER_RAM_BYTE5_DDIOR_SHIFT)

/*
 * EEU (RW)
 *
 * EEPROM emulation by µController
 */
#define ESC_USER_RAM_BYTE5_EEU_MASK (0x4U)
#define ESC_USER_RAM_BYTE5_EEU_SHIFT (2U)
#define ESC_USER_RAM_BYTE5_EEU_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE5_EEU_SHIFT) & ESC_USER_RAM_BYTE5_EEU_MASK)
#define ESC_USER_RAM_BYTE5_EEU_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE5_EEU_MASK) >> ESC_USER_RAM_BYTE5_EEU_SHIFT)

/*
 * ATS (RW)
 *
 * Automatic TX shift
 */
#define ESC_USER_RAM_BYTE5_ATS_MASK (0x2U)
#define ESC_USER_RAM_BYTE5_ATS_SHIFT (1U)
#define ESC_USER_RAM_BYTE5_ATS_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE5_ATS_SHIFT) & ESC_USER_RAM_BYTE5_ATS_MASK)
#define ESC_USER_RAM_BYTE5_ATS_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE5_ATS_MASK) >> ESC_USER_RAM_BYTE5_ATS_SHIFT)

/*
 * MCPP (RW)
 *
 * MI control by PDI possible
 */
#define ESC_USER_RAM_BYTE5_MCPP_MASK (0x1U)
#define ESC_USER_RAM_BYTE5_MCPP_SHIFT (0U)
#define ESC_USER_RAM_BYTE5_MCPP_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE5_MCPP_SHIFT) & ESC_USER_RAM_BYTE5_MCPP_MASK)
#define ESC_USER_RAM_BYTE5_MCPP_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE5_MCPP_MASK) >> ESC_USER_RAM_BYTE5_MCPP_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE6 */
/*
 * RELEDOR (RW)
 *
 * RUN/ERR LED Override (0x0138:0x0139)
 */
#define ESC_USER_RAM_BYTE6_RELEDOR_MASK (0x4U)
#define ESC_USER_RAM_BYTE6_RELEDOR_SHIFT (2U)
#define ESC_USER_RAM_BYTE6_RELEDOR_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE6_RELEDOR_SHIFT) & ESC_USER_RAM_BYTE6_RELEDOR_MASK)
#define ESC_USER_RAM_BYTE6_RELEDOR_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE6_RELEDOR_MASK) >> ESC_USER_RAM_BYTE6_RELEDOR_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE7 */
/*
 * DCST (RW)
 *
 * DC System Time (0x0910:0x0936)
 */
#define ESC_USER_RAM_BYTE7_DCST_MASK (0x80U)
#define ESC_USER_RAM_BYTE7_DCST_SHIFT (7U)
#define ESC_USER_RAM_BYTE7_DCST_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE7_DCST_SHIFT) & ESC_USER_RAM_BYTE7_DCST_MASK)
#define ESC_USER_RAM_BYTE7_DCST_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE7_DCST_MASK) >> ESC_USER_RAM_BYTE7_DCST_SHIFT)

/*
 * DCRT (RW)
 *
 * DC Receive Times (0x0900:0x090F)
 */
#define ESC_USER_RAM_BYTE7_DCRT_MASK (0x40U)
#define ESC_USER_RAM_BYTE7_DCRT_SHIFT (6U)
#define ESC_USER_RAM_BYTE7_DCRT_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE7_DCRT_SHIFT) & ESC_USER_RAM_BYTE7_DCRT_MASK)
#define ESC_USER_RAM_BYTE7_DCRT_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE7_DCRT_MASK) >> ESC_USER_RAM_BYTE7_DCRT_SHIFT)

/*
 * DCS1D (RW)
 *
 * DC Sync1 disable
 */
#define ESC_USER_RAM_BYTE7_DCS1D_MASK (0x8U)
#define ESC_USER_RAM_BYTE7_DCS1D_SHIFT (3U)
#define ESC_USER_RAM_BYTE7_DCS1D_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE7_DCS1D_SHIFT) & ESC_USER_RAM_BYTE7_DCS1D_MASK)
#define ESC_USER_RAM_BYTE7_DCS1D_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE7_DCS1D_MASK) >> ESC_USER_RAM_BYTE7_DCS1D_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE8 */
/*
 * PPDI (RW)
 *
 * PLB PDI
 */
#define ESC_USER_RAM_BYTE8_PPDI_MASK (0x20U)
#define ESC_USER_RAM_BYTE8_PPDI_SHIFT (5U)
#define ESC_USER_RAM_BYTE8_PPDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE8_PPDI_SHIFT) & ESC_USER_RAM_BYTE8_PPDI_MASK)
#define ESC_USER_RAM_BYTE8_PPDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE8_PPDI_MASK) >> ESC_USER_RAM_BYTE8_PPDI_SHIFT)

/*
 * OPDI (RW)
 *
 * OPB PDI
 */
#define ESC_USER_RAM_BYTE8_OPDI_MASK (0x10U)
#define ESC_USER_RAM_BYTE8_OPDI_SHIFT (4U)
#define ESC_USER_RAM_BYTE8_OPDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE8_OPDI_SHIFT) & ESC_USER_RAM_BYTE8_OPDI_MASK)
#define ESC_USER_RAM_BYTE8_OPDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE8_OPDI_MASK) >> ESC_USER_RAM_BYTE8_OPDI_SHIFT)

/*
 * APDI (RW)
 *
 * Avalon PDI
 */
#define ESC_USER_RAM_BYTE8_APDI_MASK (0x8U)
#define ESC_USER_RAM_BYTE8_APDI_SHIFT (3U)
#define ESC_USER_RAM_BYTE8_APDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE8_APDI_SHIFT) & ESC_USER_RAM_BYTE8_APDI_MASK)
#define ESC_USER_RAM_BYTE8_APDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE8_APDI_MASK) >> ESC_USER_RAM_BYTE8_APDI_SHIFT)

/*
 * PDICEC (RW)
 *
 * PDI clears error counter
 */
#define ESC_USER_RAM_BYTE8_PDICEC_MASK (0x4U)
#define ESC_USER_RAM_BYTE8_PDICEC_SHIFT (2U)
#define ESC_USER_RAM_BYTE8_PDICEC_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE8_PDICEC_SHIFT) & ESC_USER_RAM_BYTE8_PDICEC_MASK)
#define ESC_USER_RAM_BYTE8_PDICEC_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE8_PDICEC_MASK) >> ESC_USER_RAM_BYTE8_PDICEC_SHIFT)

/*
 * DC64 (RW)
 *
 * DC 64 bit
 */
#define ESC_USER_RAM_BYTE8_DC64_MASK (0x1U)
#define ESC_USER_RAM_BYTE8_DC64_SHIFT (0U)
#define ESC_USER_RAM_BYTE8_DC64_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE8_DC64_SHIFT) & ESC_USER_RAM_BYTE8_DC64_MASK)
#define ESC_USER_RAM_BYTE8_DC64_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE8_DC64_MASK) >> ESC_USER_RAM_BYTE8_DC64_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE9 */
/*
 * DR (RW)
 *
 * Direct RESET
 */
#define ESC_USER_RAM_BYTE9_DR_MASK (0x80U)
#define ESC_USER_RAM_BYTE9_DR_SHIFT (7U)
#define ESC_USER_RAM_BYTE9_DR_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE9_DR_SHIFT) & ESC_USER_RAM_BYTE9_DR_MASK)
#define ESC_USER_RAM_BYTE9_DR_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE9_DR_MASK) >> ESC_USER_RAM_BYTE9_DR_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE10 */
/*
 * PDIIR (RW)
 *
 * PDI Information register (0x014E:0x014F)
 */
#define ESC_USER_RAM_BYTE10_PDIIR_MASK (0x80U)
#define ESC_USER_RAM_BYTE10_PDIIR_SHIFT (7U)
#define ESC_USER_RAM_BYTE10_PDIIR_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE10_PDIIR_SHIFT) & ESC_USER_RAM_BYTE10_PDIIR_MASK)
#define ESC_USER_RAM_BYTE10_PDIIR_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE10_PDIIR_MASK) >> ESC_USER_RAM_BYTE10_PDIIR_SHIFT)

/*
 * PDIFA (RW)
 *
 * PDI function acknowledge by PDI write
 */
#define ESC_USER_RAM_BYTE10_PDIFA_MASK (0x40U)
#define ESC_USER_RAM_BYTE10_PDIFA_SHIFT (6U)
#define ESC_USER_RAM_BYTE10_PDIFA_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE10_PDIFA_SHIFT) & ESC_USER_RAM_BYTE10_PDIFA_MASK)
#define ESC_USER_RAM_BYTE10_PDIFA_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE10_PDIFA_MASK) >> ESC_USER_RAM_BYTE10_PDIFA_SHIFT)

/*
 * APDI (RW)
 *
 * AXI PDI
 */
#define ESC_USER_RAM_BYTE10_APDI_MASK (0x8U)
#define ESC_USER_RAM_BYTE10_APDI_SHIFT (3U)
#define ESC_USER_RAM_BYTE10_APDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE10_APDI_SHIFT) & ESC_USER_RAM_BYTE10_APDI_MASK)
#define ESC_USER_RAM_BYTE10_APDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE10_APDI_MASK) >> ESC_USER_RAM_BYTE10_APDI_SHIFT)

/*
 * DCL1D (RW)
 *
 * DC Latch1 disable
 */
#define ESC_USER_RAM_BYTE10_DCL1D_MASK (0x4U)
#define ESC_USER_RAM_BYTE10_DCL1D_SHIFT (2U)
#define ESC_USER_RAM_BYTE10_DCL1D_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE10_DCL1D_SHIFT) & ESC_USER_RAM_BYTE10_DCL1D_MASK)
#define ESC_USER_RAM_BYTE10_DCL1D_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE10_DCL1D_MASK) >> ESC_USER_RAM_BYTE10_DCL1D_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE11 */
/*
 * LEDTST (RW)
 *
 * LED test
 */
#define ESC_USER_RAM_BYTE11_LEDTST_MASK (0x8U)
#define ESC_USER_RAM_BYTE11_LEDTST_SHIFT (3U)
#define ESC_USER_RAM_BYTE11_LEDTST_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE11_LEDTST_SHIFT) & ESC_USER_RAM_BYTE11_LEDTST_MASK)
#define ESC_USER_RAM_BYTE11_LEDTST_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE11_LEDTST_MASK) >> ESC_USER_RAM_BYTE11_LEDTST_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE14 */
/*
 * DIOBS (RW)
 *
 * Digital I/O PDI byte size
 */
#define ESC_USER_RAM_BYTE14_DIOBS_MASK (0xC0U)
#define ESC_USER_RAM_BYTE14_DIOBS_SHIFT (6U)
#define ESC_USER_RAM_BYTE14_DIOBS_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE14_DIOBS_SHIFT) & ESC_USER_RAM_BYTE14_DIOBS_MASK)
#define ESC_USER_RAM_BYTE14_DIOBS_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE14_DIOBS_MASK) >> ESC_USER_RAM_BYTE14_DIOBS_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE15 */
/*
 * AUCPDI (RW)
 *
 * Asynchronous µC PDI
 */
#define ESC_USER_RAM_BYTE15_AUCPDI_MASK (0x10U)
#define ESC_USER_RAM_BYTE15_AUCPDI_SHIFT (4U)
#define ESC_USER_RAM_BYTE15_AUCPDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE15_AUCPDI_SHIFT) & ESC_USER_RAM_BYTE15_AUCPDI_MASK)
#define ESC_USER_RAM_BYTE15_AUCPDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE15_AUCPDI_MASK) >> ESC_USER_RAM_BYTE15_AUCPDI_SHIFT)

/*
 * SSPDI (RW)
 *
 * SPI Slave PDI
 */
#define ESC_USER_RAM_BYTE15_SSPDI_MASK (0x8U)
#define ESC_USER_RAM_BYTE15_SSPDI_SHIFT (3U)
#define ESC_USER_RAM_BYTE15_SSPDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE15_SSPDI_SHIFT) & ESC_USER_RAM_BYTE15_SSPDI_MASK)
#define ESC_USER_RAM_BYTE15_SSPDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE15_SSPDI_MASK) >> ESC_USER_RAM_BYTE15_SSPDI_SHIFT)

/*
 * DIOPDI (RW)
 *
 * Digital I/O PDI
 */
#define ESC_USER_RAM_BYTE15_DIOPDI_MASK (0x4U)
#define ESC_USER_RAM_BYTE15_DIOPDI_SHIFT (2U)
#define ESC_USER_RAM_BYTE15_DIOPDI_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE15_DIOPDI_SHIFT) & ESC_USER_RAM_BYTE15_DIOPDI_MASK)
#define ESC_USER_RAM_BYTE15_DIOPDI_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE15_DIOPDI_MASK) >> ESC_USER_RAM_BYTE15_DIOPDI_SHIFT)

/* Bitfield definition for register: USER_RAM_BYTE19 */
/*
 * SCP (RW)
 *
 * Security CPLD protection
 */
#define ESC_USER_RAM_BYTE19_SCP_MASK (0x40U)
#define ESC_USER_RAM_BYTE19_SCP_SHIFT (6U)
#define ESC_USER_RAM_BYTE19_SCP_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE19_SCP_SHIFT) & ESC_USER_RAM_BYTE19_SCP_MASK)
#define ESC_USER_RAM_BYTE19_SCP_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE19_SCP_MASK) >> ESC_USER_RAM_BYTE19_SCP_SHIFT)

/*
 * RMII (RW)
 *
 * RMII
 */
#define ESC_USER_RAM_BYTE19_RMII_MASK (0x20U)
#define ESC_USER_RAM_BYTE19_RMII_SHIFT (5U)
#define ESC_USER_RAM_BYTE19_RMII_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE19_RMII_SHIFT) & ESC_USER_RAM_BYTE19_RMII_MASK)
#define ESC_USER_RAM_BYTE19_RMII_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE19_RMII_MASK) >> ESC_USER_RAM_BYTE19_RMII_SHIFT)

/*
 * URGP (RW)
 *
 * Use RGMII GTX_CLK phase shifted clock input
 */
#define ESC_USER_RAM_BYTE19_URGP_MASK (0x10U)
#define ESC_USER_RAM_BYTE19_URGP_SHIFT (4U)
#define ESC_USER_RAM_BYTE19_URGP_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE19_URGP_SHIFT) & ESC_USER_RAM_BYTE19_URGP_MASK)
#define ESC_USER_RAM_BYTE19_URGP_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE19_URGP_MASK) >> ESC_USER_RAM_BYTE19_URGP_SHIFT)

/*
 * CIA (RW)
 *
 * CLK_PDI_EXT is asynchronous
 */
#define ESC_USER_RAM_BYTE19_CIA_MASK (0x4U)
#define ESC_USER_RAM_BYTE19_CIA_SHIFT (2U)
#define ESC_USER_RAM_BYTE19_CIA_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE19_CIA_SHIFT) & ESC_USER_RAM_BYTE19_CIA_MASK)
#define ESC_USER_RAM_BYTE19_CIA_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE19_CIA_MASK) >> ESC_USER_RAM_BYTE19_CIA_SHIFT)

/*
 * IPARO (RW)
 *
 * Individual PHY address read out (0x0510[7:3])
 */
#define ESC_USER_RAM_BYTE19_IPARO_MASK (0x2U)
#define ESC_USER_RAM_BYTE19_IPARO_SHIFT (1U)
#define ESC_USER_RAM_BYTE19_IPARO_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE19_IPARO_SHIFT) & ESC_USER_RAM_BYTE19_IPARO_MASK)
#define ESC_USER_RAM_BYTE19_IPARO_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE19_IPARO_MASK) >> ESC_USER_RAM_BYTE19_IPARO_SHIFT)

/*
 * RGMII (RW)
 *
 * RGMII
 */
#define ESC_USER_RAM_BYTE19_RGMII_MASK (0x1U)
#define ESC_USER_RAM_BYTE19_RGMII_SHIFT (0U)
#define ESC_USER_RAM_BYTE19_RGMII_SET(x) (((uint8_t)(x) << ESC_USER_RAM_BYTE19_RGMII_SHIFT) & ESC_USER_RAM_BYTE19_RGMII_MASK)
#define ESC_USER_RAM_BYTE19_RGMII_GET(x) (((uint8_t)(x) & ESC_USER_RAM_BYTE19_RGMII_MASK) >> ESC_USER_RAM_BYTE19_RGMII_SHIFT)

/* Bitfield definition for register: PDRAM */
/*
 * DATA (RW)
 *
 * Input Data
 */
#define ESC_PDRAM_DATA_MASK (0xFFFFFFFFUL)
#define ESC_PDRAM_DATA_SHIFT (0U)
#define ESC_PDRAM_DATA_SET(x) (((uint32_t)(x) << ESC_PDRAM_DATA_SHIFT) & ESC_PDRAM_DATA_MASK)
#define ESC_PDRAM_DATA_GET(x) (((uint32_t)(x) & ESC_PDRAM_DATA_MASK) >> ESC_PDRAM_DATA_SHIFT)

/* Bitfield definition for register: PDRAM_ALS */
/*
 * DATA (RW)
 *
 */
#define ESC_PDRAM_ALS_DATA_MASK (0xFFFFFFFFUL)
#define ESC_PDRAM_ALS_DATA_SHIFT (0U)
#define ESC_PDRAM_ALS_DATA_SET(x) (((uint32_t)(x) << ESC_PDRAM_ALS_DATA_SHIFT) & ESC_PDRAM_ALS_DATA_MASK)
#define ESC_PDRAM_ALS_DATA_GET(x) (((uint32_t)(x) & ESC_PDRAM_ALS_DATA_MASK) >> ESC_PDRAM_ALS_DATA_SHIFT)

/* Bitfield definition for register: GPR_CFG0 */
/*
 * CLK100_EN (RW)
 *
 */
#define ESC_GPR_CFG0_CLK100_EN_MASK (0x2000U)
#define ESC_GPR_CFG0_CLK100_EN_SHIFT (13U)
#define ESC_GPR_CFG0_CLK100_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG0_CLK100_EN_SHIFT) & ESC_GPR_CFG0_CLK100_EN_MASK)
#define ESC_GPR_CFG0_CLK100_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG0_CLK100_EN_MASK) >> ESC_GPR_CFG0_CLK100_EN_SHIFT)

/*
 * EEPROM_EMU (RW)
 *
 * 1 is EEPROM emulation mode (default)
 */
#define ESC_GPR_CFG0_EEPROM_EMU_MASK (0x1000U)
#define ESC_GPR_CFG0_EEPROM_EMU_SHIFT (12U)
#define ESC_GPR_CFG0_EEPROM_EMU_SET(x) (((uint32_t)(x) << ESC_GPR_CFG0_EEPROM_EMU_SHIFT) & ESC_GPR_CFG0_EEPROM_EMU_MASK)
#define ESC_GPR_CFG0_EEPROM_EMU_GET(x) (((uint32_t)(x) & ESC_GPR_CFG0_EEPROM_EMU_MASK) >> ESC_GPR_CFG0_EEPROM_EMU_SHIFT)

/*
 * I2C_SCLK_EN (RW)
 *
 */
#define ESC_GPR_CFG0_I2C_SCLK_EN_MASK (0x8U)
#define ESC_GPR_CFG0_I2C_SCLK_EN_SHIFT (3U)
#define ESC_GPR_CFG0_I2C_SCLK_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG0_I2C_SCLK_EN_SHIFT) & ESC_GPR_CFG0_I2C_SCLK_EN_MASK)
#define ESC_GPR_CFG0_I2C_SCLK_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG0_I2C_SCLK_EN_MASK) >> ESC_GPR_CFG0_I2C_SCLK_EN_SHIFT)

/*
 * PROM_SIZE (RW)
 *
 * Sets EEPROM size:
 * 0:up to 16 kbit EEPROM
 * 1:32 kbit-4Mbit EEPROM
 */
#define ESC_GPR_CFG0_PROM_SIZE_MASK (0x1U)
#define ESC_GPR_CFG0_PROM_SIZE_SHIFT (0U)
#define ESC_GPR_CFG0_PROM_SIZE_SET(x) (((uint32_t)(x) << ESC_GPR_CFG0_PROM_SIZE_SHIFT) & ESC_GPR_CFG0_PROM_SIZE_MASK)
#define ESC_GPR_CFG0_PROM_SIZE_GET(x) (((uint32_t)(x) & ESC_GPR_CFG0_PROM_SIZE_MASK) >> ESC_GPR_CFG0_PROM_SIZE_SHIFT)

/* Bitfield definition for register: GPR_CFG1 */
/*
 * SYNC1_IRQ_EN (RW)
 *
 */
#define ESC_GPR_CFG1_SYNC1_IRQ_EN_MASK (0x80000000UL)
#define ESC_GPR_CFG1_SYNC1_IRQ_EN_SHIFT (31U)
#define ESC_GPR_CFG1_SYNC1_IRQ_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_SYNC1_IRQ_EN_SHIFT) & ESC_GPR_CFG1_SYNC1_IRQ_EN_MASK)
#define ESC_GPR_CFG1_SYNC1_IRQ_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_SYNC1_IRQ_EN_MASK) >> ESC_GPR_CFG1_SYNC1_IRQ_EN_SHIFT)

/*
 * SYNC0_IRQ_EN (RW)
 *
 */
#define ESC_GPR_CFG1_SYNC0_IRQ_EN_MASK (0x40000000UL)
#define ESC_GPR_CFG1_SYNC0_IRQ_EN_SHIFT (30U)
#define ESC_GPR_CFG1_SYNC0_IRQ_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_SYNC0_IRQ_EN_SHIFT) & ESC_GPR_CFG1_SYNC0_IRQ_EN_MASK)
#define ESC_GPR_CFG1_SYNC0_IRQ_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_SYNC0_IRQ_EN_MASK) >> ESC_GPR_CFG1_SYNC0_IRQ_EN_SHIFT)

/*
 * RSTO_IRQ_EN (RW)
 *
 */
#define ESC_GPR_CFG1_RSTO_IRQ_EN_MASK (0x20000000UL)
#define ESC_GPR_CFG1_RSTO_IRQ_EN_SHIFT (29U)
#define ESC_GPR_CFG1_RSTO_IRQ_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_RSTO_IRQ_EN_SHIFT) & ESC_GPR_CFG1_RSTO_IRQ_EN_MASK)
#define ESC_GPR_CFG1_RSTO_IRQ_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_RSTO_IRQ_EN_MASK) >> ESC_GPR_CFG1_RSTO_IRQ_EN_SHIFT)

/*
 * SYNC1_DMA_EN (RW)
 *
 */
#define ESC_GPR_CFG1_SYNC1_DMA_EN_MASK (0x2000U)
#define ESC_GPR_CFG1_SYNC1_DMA_EN_SHIFT (13U)
#define ESC_GPR_CFG1_SYNC1_DMA_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_SYNC1_DMA_EN_SHIFT) & ESC_GPR_CFG1_SYNC1_DMA_EN_MASK)
#define ESC_GPR_CFG1_SYNC1_DMA_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_SYNC1_DMA_EN_MASK) >> ESC_GPR_CFG1_SYNC1_DMA_EN_SHIFT)

/*
 * SYNC0_DMA_EN (RW)
 *
 */
#define ESC_GPR_CFG1_SYNC0_DMA_EN_MASK (0x1000U)
#define ESC_GPR_CFG1_SYNC0_DMA_EN_SHIFT (12U)
#define ESC_GPR_CFG1_SYNC0_DMA_EN_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_SYNC0_DMA_EN_SHIFT) & ESC_GPR_CFG1_SYNC0_DMA_EN_MASK)
#define ESC_GPR_CFG1_SYNC0_DMA_EN_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_SYNC0_DMA_EN_MASK) >> ESC_GPR_CFG1_SYNC0_DMA_EN_SHIFT)

/*
 * LATCH1_FROM_IO (RW)
 *
 * 0:from NTM
 */
#define ESC_GPR_CFG1_LATCH1_FROM_IO_MASK (0x200U)
#define ESC_GPR_CFG1_LATCH1_FROM_IO_SHIFT (9U)
#define ESC_GPR_CFG1_LATCH1_FROM_IO_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_LATCH1_FROM_IO_SHIFT) & ESC_GPR_CFG1_LATCH1_FROM_IO_MASK)
#define ESC_GPR_CFG1_LATCH1_FROM_IO_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_LATCH1_FROM_IO_MASK) >> ESC_GPR_CFG1_LATCH1_FROM_IO_SHIFT)

/*
 * LATCH0_FROM_IO (RW)
 *
 * 0:from TRIGGER_MUX
 */
#define ESC_GPR_CFG1_LATCH0_FROM_IO_MASK (0x100U)
#define ESC_GPR_CFG1_LATCH0_FROM_IO_SHIFT (8U)
#define ESC_GPR_CFG1_LATCH0_FROM_IO_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_LATCH0_FROM_IO_SHIFT) & ESC_GPR_CFG1_LATCH0_FROM_IO_MASK)
#define ESC_GPR_CFG1_LATCH0_FROM_IO_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_LATCH0_FROM_IO_MASK) >> ESC_GPR_CFG1_LATCH0_FROM_IO_SHIFT)

/*
 * RSTO_OVRD (RW)
 *
 */
#define ESC_GPR_CFG1_RSTO_OVRD_MASK (0x80U)
#define ESC_GPR_CFG1_RSTO_OVRD_SHIFT (7U)
#define ESC_GPR_CFG1_RSTO_OVRD_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_RSTO_OVRD_SHIFT) & ESC_GPR_CFG1_RSTO_OVRD_MASK)
#define ESC_GPR_CFG1_RSTO_OVRD_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_RSTO_OVRD_MASK) >> ESC_GPR_CFG1_RSTO_OVRD_SHIFT)

/*
 * RSTO_OVRD_ENJ (RW)
 *
 */
#define ESC_GPR_CFG1_RSTO_OVRD_ENJ_MASK (0x40U)
#define ESC_GPR_CFG1_RSTO_OVRD_ENJ_SHIFT (6U)
#define ESC_GPR_CFG1_RSTO_OVRD_ENJ_SET(x) (((uint32_t)(x) << ESC_GPR_CFG1_RSTO_OVRD_ENJ_SHIFT) & ESC_GPR_CFG1_RSTO_OVRD_ENJ_MASK)
#define ESC_GPR_CFG1_RSTO_OVRD_ENJ_GET(x) (((uint32_t)(x) & ESC_GPR_CFG1_RSTO_OVRD_ENJ_MASK) >> ESC_GPR_CFG1_RSTO_OVRD_ENJ_SHIFT)

/* Bitfield definition for register: GPR_CFG2 */
/*
 * NMII_LINK2_FROM_IO (RW)
 *
 */
#define ESC_GPR_CFG2_NMII_LINK2_FROM_IO_MASK (0x20000000UL)
#define ESC_GPR_CFG2_NMII_LINK2_FROM_IO_SHIFT (29U)
#define ESC_GPR_CFG2_NMII_LINK2_FROM_IO_SET(x) (((uint32_t)(x) << ESC_GPR_CFG2_NMII_LINK2_FROM_IO_SHIFT) & ESC_GPR_CFG2_NMII_LINK2_FROM_IO_MASK)
#define ESC_GPR_CFG2_NMII_LINK2_FROM_IO_GET(x) (((uint32_t)(x) & ESC_GPR_CFG2_NMII_LINK2_FROM_IO_MASK) >> ESC_GPR_CFG2_NMII_LINK2_FROM_IO_SHIFT)

/*
 * NMII_LINK2_GPR (RW)
 *
 */
#define ESC_GPR_CFG2_NMII_LINK2_GPR_MASK (0x10000000UL)
#define ESC_GPR_CFG2_NMII_LINK2_GPR_SHIFT (28U)
#define ESC_GPR_CFG2_NMII_LINK2_GPR_SET(x) (((uint32_t)(x) << ESC_GPR_CFG2_NMII_LINK2_GPR_SHIFT) & ESC_GPR_CFG2_NMII_LINK2_GPR_MASK)
#define ESC_GPR_CFG2_NMII_LINK2_GPR_GET(x) (((uint32_t)(x) & ESC_GPR_CFG2_NMII_LINK2_GPR_MASK) >> ESC_GPR_CFG2_NMII_LINK2_GPR_SHIFT)

/*
 * NMII_LINK1_FROM_IO (RW)
 *
 */
#define ESC_GPR_CFG2_NMII_LINK1_FROM_IO_MASK (0x2000000UL)
#define ESC_GPR_CFG2_NMII_LINK1_FROM_IO_SHIFT (25U)
#define ESC_GPR_CFG2_NMII_LINK1_FROM_IO_SET(x) (((uint32_t)(x) << ESC_GPR_CFG2_NMII_LINK1_FROM_IO_SHIFT) & ESC_GPR_CFG2_NMII_LINK1_FROM_IO_MASK)
#define ESC_GPR_CFG2_NMII_LINK1_FROM_IO_GET(x) (((uint32_t)(x) & ESC_GPR_CFG2_NMII_LINK1_FROM_IO_MASK) >> ESC_GPR_CFG2_NMII_LINK1_FROM_IO_SHIFT)

/*
 * NMII_LINK1_GPR (RW)
 *
 */
#define ESC_GPR_CFG2_NMII_LINK1_GPR_MASK (0x1000000UL)
#define ESC_GPR_CFG2_NMII_LINK1_GPR_SHIFT (24U)
#define ESC_GPR_CFG2_NMII_LINK1_GPR_SET(x) (((uint32_t)(x) << ESC_GPR_CFG2_NMII_LINK1_GPR_SHIFT) & ESC_GPR_CFG2_NMII_LINK1_GPR_MASK)
#define ESC_GPR_CFG2_NMII_LINK1_GPR_GET(x) (((uint32_t)(x) & ESC_GPR_CFG2_NMII_LINK1_GPR_MASK) >> ESC_GPR_CFG2_NMII_LINK1_GPR_SHIFT)

/*
 * NMII_LINK0_FROM_IO (RW)
 *
 */
#define ESC_GPR_CFG2_NMII_LINK0_FROM_IO_MASK (0x200000UL)
#define ESC_GPR_CFG2_NMII_LINK0_FROM_IO_SHIFT (21U)
#define ESC_GPR_CFG2_NMII_LINK0_FROM_IO_SET(x) (((uint32_t)(x) << ESC_GPR_CFG2_NMII_LINK0_FROM_IO_SHIFT) & ESC_GPR_CFG2_NMII_LINK0_FROM_IO_MASK)
#define ESC_GPR_CFG2_NMII_LINK0_FROM_IO_GET(x) (((uint32_t)(x) & ESC_GPR_CFG2_NMII_LINK0_FROM_IO_MASK) >> ESC_GPR_CFG2_NMII_LINK0_FROM_IO_SHIFT)

/*
 * NMII_LINK0_GPR (RW)
 *
 */
#define ESC_GPR_CFG2_NMII_LINK0_GPR_MASK (0x100000UL)
#define ESC_GPR_CFG2_NMII_LINK0_GPR_SHIFT (20U)
#define ESC_GPR_CFG2_NMII_LINK0_GPR_SET(x) (((uint32_t)(x) << ESC_GPR_CFG2_NMII_LINK0_GPR_SHIFT) & ESC_GPR_CFG2_NMII_LINK0_GPR_MASK)
#define ESC_GPR_CFG2_NMII_LINK0_GPR_GET(x) (((uint32_t)(x) & ESC_GPR_CFG2_NMII_LINK0_GPR_MASK) >> ESC_GPR_CFG2_NMII_LINK0_GPR_SHIFT)

/* Bitfield definition for register: PHY_CFG0 */
/*
 * MAC_SPEED (RW)
 *
 * 1:100M
 */
#define ESC_PHY_CFG0_MAC_SPEED_MASK (0x40000000UL)
#define ESC_PHY_CFG0_MAC_SPEED_SHIFT (30U)
#define ESC_PHY_CFG0_MAC_SPEED_SET(x) (((uint32_t)(x) << ESC_PHY_CFG0_MAC_SPEED_SHIFT) & ESC_PHY_CFG0_MAC_SPEED_MASK)
#define ESC_PHY_CFG0_MAC_SPEED_GET(x) (((uint32_t)(x) & ESC_PHY_CFG0_MAC_SPEED_MASK) >> ESC_PHY_CFG0_MAC_SPEED_SHIFT)

/*
 * PHY_OFFSET_VAL (RW)
 *
 */
#define ESC_PHY_CFG0_PHY_OFFSET_VAL_MASK (0x1F000000UL)
#define ESC_PHY_CFG0_PHY_OFFSET_VAL_SHIFT (24U)
#define ESC_PHY_CFG0_PHY_OFFSET_VAL_SET(x) (((uint32_t)(x) << ESC_PHY_CFG0_PHY_OFFSET_VAL_SHIFT) & ESC_PHY_CFG0_PHY_OFFSET_VAL_MASK)
#define ESC_PHY_CFG0_PHY_OFFSET_VAL_GET(x) (((uint32_t)(x) & ESC_PHY_CFG0_PHY_OFFSET_VAL_MASK) >> ESC_PHY_CFG0_PHY_OFFSET_VAL_SHIFT)

/*
 * PORT2_RMII_EN (RW)
 *
 */
#define ESC_PHY_CFG0_PORT2_RMII_EN_MASK (0x800000UL)
#define ESC_PHY_CFG0_PORT2_RMII_EN_SHIFT (23U)
#define ESC_PHY_CFG0_PORT2_RMII_EN_SET(x) (((uint32_t)(x) << ESC_PHY_CFG0_PORT2_RMII_EN_SHIFT) & ESC_PHY_CFG0_PORT2_RMII_EN_MASK)
#define ESC_PHY_CFG0_PORT2_RMII_EN_GET(x) (((uint32_t)(x) & ESC_PHY_CFG0_PORT2_RMII_EN_MASK) >> ESC_PHY_CFG0_PORT2_RMII_EN_SHIFT)

/*
 * PORT1_RMII_EN (RW)
 *
 */
#define ESC_PHY_CFG0_PORT1_RMII_EN_MASK (0x8000U)
#define ESC_PHY_CFG0_PORT1_RMII_EN_SHIFT (15U)
#define ESC_PHY_CFG0_PORT1_RMII_EN_SET(x) (((uint32_t)(x) << ESC_PHY_CFG0_PORT1_RMII_EN_SHIFT) & ESC_PHY_CFG0_PORT1_RMII_EN_MASK)
#define ESC_PHY_CFG0_PORT1_RMII_EN_GET(x) (((uint32_t)(x) & ESC_PHY_CFG0_PORT1_RMII_EN_MASK) >> ESC_PHY_CFG0_PORT1_RMII_EN_SHIFT)

/*
 * PORT0_RMII_EN (RW)
 *
 */
#define ESC_PHY_CFG0_PORT0_RMII_EN_MASK (0x80U)
#define ESC_PHY_CFG0_PORT0_RMII_EN_SHIFT (7U)
#define ESC_PHY_CFG0_PORT0_RMII_EN_SET(x) (((uint32_t)(x) << ESC_PHY_CFG0_PORT0_RMII_EN_SHIFT) & ESC_PHY_CFG0_PORT0_RMII_EN_MASK)
#define ESC_PHY_CFG0_PORT0_RMII_EN_GET(x) (((uint32_t)(x) & ESC_PHY_CFG0_PORT0_RMII_EN_MASK) >> ESC_PHY_CFG0_PORT0_RMII_EN_SHIFT)

/* Bitfield definition for register: PHY_CFG1 */
/*
 * RMII_REFCLK_SEL (RW)
 *
 * 0:use RXCK as 50M refclk. 1:use TXCK as 50M refclk
 */
#define ESC_PHY_CFG1_RMII_REFCLK_SEL_MASK (0x700U)
#define ESC_PHY_CFG1_RMII_REFCLK_SEL_SHIFT (8U)
#define ESC_PHY_CFG1_RMII_REFCLK_SEL_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_REFCLK_SEL_SHIFT) & ESC_PHY_CFG1_RMII_REFCLK_SEL_MASK)
#define ESC_PHY_CFG1_RMII_REFCLK_SEL_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_REFCLK_SEL_MASK) >> ESC_PHY_CFG1_RMII_REFCLK_SEL_SHIFT)

/*
 * REFCK_25M_INV (RW)
 *
 */
#define ESC_PHY_CFG1_REFCK_25M_INV_MASK (0x80U)
#define ESC_PHY_CFG1_REFCK_25M_INV_SHIFT (7U)
#define ESC_PHY_CFG1_REFCK_25M_INV_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_REFCK_25M_INV_SHIFT) & ESC_PHY_CFG1_REFCK_25M_INV_MASK)
#define ESC_PHY_CFG1_REFCK_25M_INV_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_REFCK_25M_INV_MASK) >> ESC_PHY_CFG1_REFCK_25M_INV_SHIFT)

/*
 * RMII_P2_TXCK_REFCLK_OE (RW)
 *
 */
#define ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_MASK (0x40U)
#define ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_SHIFT (6U)
#define ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_SHIFT) & ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_MASK)
#define ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_MASK) >> ESC_PHY_CFG1_RMII_P2_TXCK_REFCLK_OE_SHIFT)

/*
 * RMII_P1_TXCK_REFCLK_OE (RW)
 *
 */
#define ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_MASK (0x20U)
#define ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_SHIFT (5U)
#define ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_SHIFT) & ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_MASK)
#define ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_MASK) >> ESC_PHY_CFG1_RMII_P1_TXCK_REFCLK_OE_SHIFT)

/*
 * RMII_P0_TXCK_REFCLK_OE (RW)
 *
 */
#define ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_MASK (0x10U)
#define ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_SHIFT (4U)
#define ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_SHIFT) & ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_MASK)
#define ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_MASK) >> ESC_PHY_CFG1_RMII_P0_TXCK_REFCLK_OE_SHIFT)

/*
 * REFCK_25M_OE (RW)
 *
 */
#define ESC_PHY_CFG1_REFCK_25M_OE_MASK (0x8U)
#define ESC_PHY_CFG1_REFCK_25M_OE_SHIFT (3U)
#define ESC_PHY_CFG1_REFCK_25M_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_REFCK_25M_OE_SHIFT) & ESC_PHY_CFG1_REFCK_25M_OE_MASK)
#define ESC_PHY_CFG1_REFCK_25M_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_REFCK_25M_OE_MASK) >> ESC_PHY_CFG1_REFCK_25M_OE_SHIFT)

/*
 * RMII_P2_RXCK_REFCLK_OE (RW)
 *
 */
#define ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_MASK (0x4U)
#define ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_SHIFT (2U)
#define ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_SHIFT) & ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_MASK)
#define ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_MASK) >> ESC_PHY_CFG1_RMII_P2_RXCK_REFCLK_OE_SHIFT)

/*
 * RMII_P1_RXCK_REFCLK_OE (RW)
 *
 */
#define ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_MASK (0x2U)
#define ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_SHIFT (1U)
#define ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_SHIFT) & ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_MASK)
#define ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_MASK) >> ESC_PHY_CFG1_RMII_P1_RXCK_REFCLK_OE_SHIFT)

/*
 * RMII_P0_RXCK_REFCLK_OE (RW)
 *
 */
#define ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_MASK (0x1U)
#define ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_SHIFT (0U)
#define ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_SET(x) (((uint32_t)(x) << ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_SHIFT) & ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_MASK)
#define ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_GET(x) (((uint32_t)(x) & ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_MASK) >> ESC_PHY_CFG1_RMII_P0_RXCK_REFCLK_OE_SHIFT)

/* Bitfield definition for register: GPIO_CTRL */
/*
 * SW_LATCH_GPI (WO)
 *
 * if gpi_trig_sel is set to 4'b1001, setting this bit will latch GPI to gpi_reg0/1
 */
#define ESC_GPIO_CTRL_SW_LATCH_GPI_MASK (0x80000000UL)
#define ESC_GPIO_CTRL_SW_LATCH_GPI_SHIFT (31U)
#define ESC_GPIO_CTRL_SW_LATCH_GPI_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_SW_LATCH_GPI_SHIFT) & ESC_GPIO_CTRL_SW_LATCH_GPI_MASK)
#define ESC_GPIO_CTRL_SW_LATCH_GPI_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_SW_LATCH_GPI_MASK) >> ESC_GPIO_CTRL_SW_LATCH_GPI_SHIFT)

/*
 * SW_LATCH_GPO (WO)
 *
 * if gpo_trig_sel is set to 4'b1001, setting this bit will latch GPO to gpo_reg0/1
 */
#define ESC_GPIO_CTRL_SW_LATCH_GPO_MASK (0x40000000UL)
#define ESC_GPIO_CTRL_SW_LATCH_GPO_SHIFT (30U)
#define ESC_GPIO_CTRL_SW_LATCH_GPO_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_SW_LATCH_GPO_SHIFT) & ESC_GPIO_CTRL_SW_LATCH_GPO_MASK)
#define ESC_GPIO_CTRL_SW_LATCH_GPO_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_SW_LATCH_GPO_MASK) >> ESC_GPIO_CTRL_SW_LATCH_GPO_SHIFT)

/*
 * GPI_OVERRIDE_EN (RW)
 *
 * set this bit will use GPI from the software register gpi_override0/1
 * clr to use GPI from pad directly
 */
#define ESC_GPIO_CTRL_GPI_OVERRIDE_EN_MASK (0x2000U)
#define ESC_GPIO_CTRL_GPI_OVERRIDE_EN_SHIFT (13U)
#define ESC_GPIO_CTRL_GPI_OVERRIDE_EN_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_GPI_OVERRIDE_EN_SHIFT) & ESC_GPIO_CTRL_GPI_OVERRIDE_EN_MASK)
#define ESC_GPIO_CTRL_GPI_OVERRIDE_EN_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_GPI_OVERRIDE_EN_MASK) >> ESC_GPIO_CTRL_GPI_OVERRIDE_EN_SHIFT)

/*
 * GPI_TRIG_EN (RW)
 *
 * use gpi_trig_sel can select the trigger event to latch GPI signal(from reg or pad)
 * set to use triggered signal;
 * clr to use signals direclty(from reg or pad)
 * assign pdi_gpi = gpi_trig_en ? gpi_reg :
 *                (gpi_override_en ? gpi_override :pad_di_ecat_gpi);
 */
#define ESC_GPIO_CTRL_GPI_TRIG_EN_MASK (0x1000U)
#define ESC_GPIO_CTRL_GPI_TRIG_EN_SHIFT (12U)
#define ESC_GPIO_CTRL_GPI_TRIG_EN_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_GPI_TRIG_EN_SHIFT) & ESC_GPIO_CTRL_GPI_TRIG_EN_MASK)
#define ESC_GPIO_CTRL_GPI_TRIG_EN_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_GPI_TRIG_EN_MASK) >> ESC_GPIO_CTRL_GPI_TRIG_EN_SHIFT)

/*
 * GPI_TRIG_SEL (RW)
 *
 * select the trigger signal to latch GPI.
 * 0000: SOF;  0001: EOF;  0010: pos of  SYNC0;  0011: pos of SYNC1;
 * 0100: pos of LATCH0;   0101: pos of LATCH1;   0110: neg of LATCH0;   0111: neg of LATCH1
 * 1000: wdog trigger;   1001: sw set gpio_ctrl[31];
 * others no trigger
 */
#define ESC_GPIO_CTRL_GPI_TRIG_SEL_MASK (0xF00U)
#define ESC_GPIO_CTRL_GPI_TRIG_SEL_SHIFT (8U)
#define ESC_GPIO_CTRL_GPI_TRIG_SEL_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_GPI_TRIG_SEL_SHIFT) & ESC_GPIO_CTRL_GPI_TRIG_SEL_MASK)
#define ESC_GPIO_CTRL_GPI_TRIG_SEL_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_GPI_TRIG_SEL_MASK) >> ESC_GPIO_CTRL_GPI_TRIG_SEL_SHIFT)

/*
 * GPO_TRIG_EN (RW)
 *
 * use gpo_trig_sel can select the trigger event to latch GPO signal(from core)
 * set to use triggered signal;
 * clr to use GPO signals direclty(from reg or pad)
 */
#define ESC_GPIO_CTRL_GPO_TRIG_EN_MASK (0x10U)
#define ESC_GPIO_CTRL_GPO_TRIG_EN_SHIFT (4U)
#define ESC_GPIO_CTRL_GPO_TRIG_EN_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_GPO_TRIG_EN_SHIFT) & ESC_GPIO_CTRL_GPO_TRIG_EN_MASK)
#define ESC_GPIO_CTRL_GPO_TRIG_EN_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_GPO_TRIG_EN_MASK) >> ESC_GPIO_CTRL_GPO_TRIG_EN_SHIFT)

/*
 * GPO_TRIG_SEL (RW)
 *
 * select the trigger signal to latch GPO.
 * 0000: SOF;  0001: EOF;  0010: pos of  SYNC0;  0011: pos of SYNC1;
 * 0100: pos of LATCH0;   0101: pos of LATCH1;   0110: neg of LATCH0;   0111: neg of LATCH1
 * 1000: wdog trigger;   1001: sw set gpio_ctrl[30];
 * others no trigger
 */
#define ESC_GPIO_CTRL_GPO_TRIG_SEL_MASK (0xFU)
#define ESC_GPIO_CTRL_GPO_TRIG_SEL_SHIFT (0U)
#define ESC_GPIO_CTRL_GPO_TRIG_SEL_SET(x) (((uint32_t)(x) << ESC_GPIO_CTRL_GPO_TRIG_SEL_SHIFT) & ESC_GPIO_CTRL_GPO_TRIG_SEL_MASK)
#define ESC_GPIO_CTRL_GPO_TRIG_SEL_GET(x) (((uint32_t)(x) & ESC_GPIO_CTRL_GPO_TRIG_SEL_MASK) >> ESC_GPIO_CTRL_GPO_TRIG_SEL_SHIFT)

/* Bitfield definition for register: GPI_OVERRIDE0 */
/*
 * GPR_OVERRIDE_LOW (RW)
 *
 */
#define ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_MASK (0xFFFFFFFFUL)
#define ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_SHIFT (0U)
#define ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_SET(x) (((uint32_t)(x) << ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_SHIFT) & ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_MASK)
#define ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_GET(x) (((uint32_t)(x) & ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_MASK) >> ESC_GPI_OVERRIDE0_GPR_OVERRIDE_LOW_SHIFT)

/* Bitfield definition for register: GPI_OVERRIDE1 */
/*
 * GPR_OVERRIDE_HIGH (RW)
 *
 */
#define ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_MASK (0xFFFFFFFFUL)
#define ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_SHIFT (0U)
#define ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_SET(x) (((uint32_t)(x) << ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_SHIFT) & ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_MASK)
#define ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_GET(x) (((uint32_t)(x) & ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_MASK) >> ESC_GPI_OVERRIDE1_GPR_OVERRIDE_HIGH_SHIFT)

/* Bitfield definition for register: GPO_REG0 */
/*
 * VALUE (RO)
 *
 */
#define ESC_GPO_REG0_VALUE_MASK (0xFFFFFFFFUL)
#define ESC_GPO_REG0_VALUE_SHIFT (0U)
#define ESC_GPO_REG0_VALUE_GET(x) (((uint32_t)(x) & ESC_GPO_REG0_VALUE_MASK) >> ESC_GPO_REG0_VALUE_SHIFT)

/* Bitfield definition for register: GPO_REG1 */
/*
 * VALUE (RO)
 *
 */
#define ESC_GPO_REG1_VALUE_MASK (0xFFFFFFFFUL)
#define ESC_GPO_REG1_VALUE_SHIFT (0U)
#define ESC_GPO_REG1_VALUE_GET(x) (((uint32_t)(x) & ESC_GPO_REG1_VALUE_MASK) >> ESC_GPO_REG1_VALUE_SHIFT)

/* Bitfield definition for register: GPI_REG0 */
/*
 * VALUE (RO)
 *
 */
#define ESC_GPI_REG0_VALUE_MASK (0xFFFFFFFFUL)
#define ESC_GPI_REG0_VALUE_SHIFT (0U)
#define ESC_GPI_REG0_VALUE_GET(x) (((uint32_t)(x) & ESC_GPI_REG0_VALUE_MASK) >> ESC_GPI_REG0_VALUE_SHIFT)

/* Bitfield definition for register: GPI_REG1 */
/*
 * VALUE (RO)
 *
 */
#define ESC_GPI_REG1_VALUE_MASK (0xFFFFFFFFUL)
#define ESC_GPI_REG1_VALUE_SHIFT (0U)
#define ESC_GPI_REG1_VALUE_GET(x) (((uint32_t)(x) & ESC_GPI_REG1_VALUE_MASK) >> ESC_GPI_REG1_VALUE_SHIFT)

/* Bitfield definition for register: GPR_STATUS */
/*
 * NLINK2_PADSEL (RO)
 *
 */
#define ESC_GPR_STATUS_NLINK2_PADSEL_MASK (0xF0000000UL)
#define ESC_GPR_STATUS_NLINK2_PADSEL_SHIFT (28U)
#define ESC_GPR_STATUS_NLINK2_PADSEL_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_NLINK2_PADSEL_MASK) >> ESC_GPR_STATUS_NLINK2_PADSEL_SHIFT)

/*
 * NLINK1_PADSEL (RO)
 *
 */
#define ESC_GPR_STATUS_NLINK1_PADSEL_MASK (0xF000000UL)
#define ESC_GPR_STATUS_NLINK1_PADSEL_SHIFT (24U)
#define ESC_GPR_STATUS_NLINK1_PADSEL_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_NLINK1_PADSEL_MASK) >> ESC_GPR_STATUS_NLINK1_PADSEL_SHIFT)

/*
 * NLINK0_PADSEL (RO)
 *
 */
#define ESC_GPR_STATUS_NLINK0_PADSEL_MASK (0xF00000UL)
#define ESC_GPR_STATUS_NLINK0_PADSEL_SHIFT (20U)
#define ESC_GPR_STATUS_NLINK0_PADSEL_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_NLINK0_PADSEL_MASK) >> ESC_GPR_STATUS_NLINK0_PADSEL_SHIFT)

/*
 * PDI_SOF (RO)
 *
 */
#define ESC_GPR_STATUS_PDI_SOF_MASK (0x80000UL)
#define ESC_GPR_STATUS_PDI_SOF_SHIFT (19U)
#define ESC_GPR_STATUS_PDI_SOF_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_PDI_SOF_MASK) >> ESC_GPR_STATUS_PDI_SOF_SHIFT)

/*
 * PDI_EOF (RO)
 *
 */
#define ESC_GPR_STATUS_PDI_EOF_MASK (0x40000UL)
#define ESC_GPR_STATUS_PDI_EOF_SHIFT (18U)
#define ESC_GPR_STATUS_PDI_EOF_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_PDI_EOF_MASK) >> ESC_GPR_STATUS_PDI_EOF_SHIFT)

/*
 * PDI_WD_TRIGGER (RO)
 *
 */
#define ESC_GPR_STATUS_PDI_WD_TRIGGER_MASK (0x20000UL)
#define ESC_GPR_STATUS_PDI_WD_TRIGGER_SHIFT (17U)
#define ESC_GPR_STATUS_PDI_WD_TRIGGER_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_PDI_WD_TRIGGER_MASK) >> ESC_GPR_STATUS_PDI_WD_TRIGGER_SHIFT)

/*
 * PDI_WD_STATE (RO)
 *
 */
#define ESC_GPR_STATUS_PDI_WD_STATE_MASK (0x10000UL)
#define ESC_GPR_STATUS_PDI_WD_STATE_SHIFT (16U)
#define ESC_GPR_STATUS_PDI_WD_STATE_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_PDI_WD_STATE_MASK) >> ESC_GPR_STATUS_PDI_WD_STATE_SHIFT)

/*
 * SYNC_OUT1 (RO)
 *
 */
#define ESC_GPR_STATUS_SYNC_OUT1_MASK (0x200U)
#define ESC_GPR_STATUS_SYNC_OUT1_SHIFT (9U)
#define ESC_GPR_STATUS_SYNC_OUT1_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_SYNC_OUT1_MASK) >> ESC_GPR_STATUS_SYNC_OUT1_SHIFT)

/*
 * SYNC_OUT0 (RO)
 *
 */
#define ESC_GPR_STATUS_SYNC_OUT0_MASK (0x100U)
#define ESC_GPR_STATUS_SYNC_OUT0_SHIFT (8U)
#define ESC_GPR_STATUS_SYNC_OUT0_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_SYNC_OUT0_MASK) >> ESC_GPR_STATUS_SYNC_OUT0_SHIFT)

/*
 * LED_STATE_RUN (RO)
 *
 */
#define ESC_GPR_STATUS_LED_STATE_RUN_MASK (0x40U)
#define ESC_GPR_STATUS_LED_STATE_RUN_SHIFT (6U)
#define ESC_GPR_STATUS_LED_STATE_RUN_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_LED_STATE_RUN_MASK) >> ESC_GPR_STATUS_LED_STATE_RUN_SHIFT)

/*
 * LED_ERR (RO)
 *
 */
#define ESC_GPR_STATUS_LED_ERR_MASK (0x20U)
#define ESC_GPR_STATUS_LED_ERR_SHIFT (5U)
#define ESC_GPR_STATUS_LED_ERR_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_LED_ERR_MASK) >> ESC_GPR_STATUS_LED_ERR_SHIFT)

/*
 * LED_RUN (RO)
 *
 */
#define ESC_GPR_STATUS_LED_RUN_MASK (0x10U)
#define ESC_GPR_STATUS_LED_RUN_SHIFT (4U)
#define ESC_GPR_STATUS_LED_RUN_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_LED_RUN_MASK) >> ESC_GPR_STATUS_LED_RUN_SHIFT)

/*
 * DEV_STATE (RO)
 *
 */
#define ESC_GPR_STATUS_DEV_STATE_MASK (0x8U)
#define ESC_GPR_STATUS_DEV_STATE_SHIFT (3U)
#define ESC_GPR_STATUS_DEV_STATE_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_DEV_STATE_MASK) >> ESC_GPR_STATUS_DEV_STATE_SHIFT)

/*
 * LINK_ACT (RO)
 *
 */
#define ESC_GPR_STATUS_LINK_ACT_MASK (0x7U)
#define ESC_GPR_STATUS_LINK_ACT_SHIFT (0U)
#define ESC_GPR_STATUS_LINK_ACT_GET(x) (((uint32_t)(x) & ESC_GPR_STATUS_LINK_ACT_MASK) >> ESC_GPR_STATUS_LINK_ACT_SHIFT)

/* Bitfield definition for register array: IO_CFG */
/*
 * INVERT (RW)
 *
 * 1:invert the IO
 */
#define ESC_IO_CFG_INVERT_MASK (0x10U)
#define ESC_IO_CFG_INVERT_SHIFT (4U)
#define ESC_IO_CFG_INVERT_SET(x) (((uint32_t)(x) << ESC_IO_CFG_INVERT_SHIFT) & ESC_IO_CFG_INVERT_MASK)
#define ESC_IO_CFG_INVERT_GET(x) (((uint32_t)(x) & ESC_IO_CFG_INVERT_MASK) >> ESC_IO_CFG_INVERT_SHIFT)

/*
 * FUNC_ALT (RW)
 *
 * IO usage:
 * 0:NMII_LINK0
 * 1:NMII_LINK1
 * 2:NMII_LINK2
 * 3:LINK_ACT0
 * 4:LINK_ACT1
 * 5:LINK_ACT2
 * 6:LED_RUN
 * 7:LED_ERR
 * 8:RESET_OUT
 */
#define ESC_IO_CFG_FUNC_ALT_MASK (0xFU)
#define ESC_IO_CFG_FUNC_ALT_SHIFT (0U)
#define ESC_IO_CFG_FUNC_ALT_SET(x) (((uint32_t)(x) << ESC_IO_CFG_FUNC_ALT_SHIFT) & ESC_IO_CFG_FUNC_ALT_MASK)
#define ESC_IO_CFG_FUNC_ALT_GET(x) (((uint32_t)(x) & ESC_IO_CFG_FUNC_ALT_MASK) >> ESC_IO_CFG_FUNC_ALT_SHIFT)



/* RX_ERR_CNT register group index macro definition */
#define ESC_RX_ERR_CNT_PORT0 (0UL)
#define ESC_RX_ERR_CNT_PORT1 (1UL)
#define ESC_RX_ERR_CNT_PORT2 (2UL)
#define ESC_RX_ERR_CNT_PORT3 (3UL)

/* FWD_RX_ERR_CNT register group index macro definition */
#define ESC_FWD_RX_ERR_CNT_PORT0 (0UL)
#define ESC_FWD_RX_ERR_CNT_PORT1 (1UL)
#define ESC_FWD_RX_ERR_CNT_PORT2 (2UL)
#define ESC_FWD_RX_ERR_CNT_PORT3 (3UL)

/* LOST_LINK_CNT register group index macro definition */
#define ESC_LOST_LINK_CNT_PORT0 (0UL)
#define ESC_LOST_LINK_CNT_PORT1 (1UL)
#define ESC_LOST_LINK_CNT_PORT2 (2UL)
#define ESC_LOST_LINK_CNT_PORT3 (3UL)

/* PHY_STAT register group index macro definition */
#define ESC_PHY_STAT_PORT0 (0UL)
#define ESC_PHY_STAT_PORT1 (1UL)
#define ESC_PHY_STAT_PORT2 (2UL)
#define ESC_PHY_STAT_PORT3 (3UL)

/* FMMU register group index macro definition */
#define ESC_FMMU_0 (0UL)
#define ESC_FMMU_1 (1UL)
#define ESC_FMMU_2 (2UL)
#define ESC_FMMU_3 (3UL)
#define ESC_FMMU_4 (4UL)
#define ESC_FMMU_5 (5UL)
#define ESC_FMMU_6 (6UL)
#define ESC_FMMU_7 (7UL)

/* SYNCM register group index macro definition */
#define ESC_SYNCM_0 (0UL)
#define ESC_SYNCM_1 (1UL)
#define ESC_SYNCM_2 (2UL)
#define ESC_SYNCM_3 (3UL)
#define ESC_SYNCM_4 (4UL)
#define ESC_SYNCM_5 (5UL)
#define ESC_SYNCM_6 (6UL)
#define ESC_SYNCM_7 (7UL)

/* RCV_TIME register group index macro definition */
#define ESC_RCV_TIME_PORT0 (0UL)
#define ESC_RCV_TIME_PORT1 (1UL)
#define ESC_RCV_TIME_PORT2 (2UL)
#define ESC_RCV_TIME_PORT3 (3UL)

/* IO_CFG register group index macro definition */
#define ESC_IO_CFG_CTR0 (0UL)
#define ESC_IO_CFG_CTR1 (1UL)
#define ESC_IO_CFG_CTR2 (2UL)
#define ESC_IO_CFG_CTR3 (3UL)
#define ESC_IO_CFG_CTR4 (4UL)
#define ESC_IO_CFG_CTR5 (5UL)
#define ESC_IO_CFG_CTR6 (6UL)
#define ESC_IO_CFG_CTR7 (7UL)
#define ESC_IO_CFG_CTR8 (8UL)


#endif /* HPM_ESC_H */
