Goodix GR551x 2024.10.22 GR551x CM4 r0p0 little 2 false 8 32 AES Advanced Encryption Standard AES 0xA0015400 0x0 0x84 registers n AES AES interrupt 16 CFG CFG AES Configuration Register 0x4 32 read-write n 0x0 0xFFFFFFFF DEC_ENC_SEL Selection for encryption/decryption 0x0: Decryption(default) 0x1: Encryption 4 1 read-write ENDIAN Selection for data endian ctrl 0x0: Reverse to big_endian(default) 0x1: No reverse 7 1 read-write FIRST_BLK This register should be set to 1 before starting the first block in normal CBC and DMA CBC mode, and this register will be cleared by itself. 6 1 write-only FULL_MASK_EN Full mask enable signal 0x0: Disable (default) 0x1: Enable (DPA Resistance) 3 1 read-write KEY_MODE Key mode selection for encryption / decryption 0x0: 128 bits (default) 0x1: 192 bits 0x2: 256 bits 0x3: Reserved 0 2 read-write KEY_TYPE key type selection for encryption / decryption 0x0: Configured by MCU(default) 0x1: Fetched through AHB interface 0x2: Fetched through key port 0x3: Reserved 11 2 read-write LOAD_SEED Load seed for LFSR, seed for LFSR will be reloaded when this register was written with 1. This register can be cleared by itself. 5 1 write-only OPT_MODE Selection for operation mode 0x0: Electronic codebook (ECB) mode 0x1: Cipher block chaining (CBC) mode 0x2 ~ 0x7: Reserved for future application 8 3 read-write CTRL CTRL AES Controller Register 0x0 32 read-write n 0x0 0xFFFFFFFF DMA_MODE_EN DMA mode start enable: DMA mode start N block data encryption or decryption. 2 1 read-write FKEY_EN Enable AES fetch key by itself through AHBAHB master interface or key port. This register can be cleared by itself when key_valid is set to 1. 3 1 write-only MCU_MODE_EN MCU mode start enable: MCU mode start a block data encryption or decryption. This signal should be clear to zero before a new block input data is ready to start. 1 1 read-write DATA_IN0 DATA_IN0 AES Data Input 0 Register 0x70 32 write-only n 0x0 0xFFFFFFFF DATA_IN0 Input data[127:96] for encryption or decryption. This register is valid in MUC mode. 0 32 write-only DATA_IN1 DATA_IN1 AES Data Input 1 Register 0x74 32 write-only n 0x0 0xFFFFFFFF DATA_IN1 Input data[95:64] for encryption or decryption. This register is valid in MUC mode. 0 32 write-only DATA_IN2 DATA_IN2 AES Data Input 2 Register 0x78 32 write-only n 0x0 0xFFFFFFFF DATA_IN2 Input data[63:32] for encryption or decryption. This register is valid in MUC mode. 0 32 write-only DATA_IN3 DATA_IN3 AES Data Input 3 Register 0x7C 32 write-only n 0x0 0xFFFFFFFF DATA_IN3 Input data[31:0] for encryption or decryption. This register is valid in MUC mode. 0 32 write-only DATA_OUT0 DATA_OUT0 AES Data Output 0 Register 0x20 32 read-only n 0x0 0xFFFFFFFF DATA_OUT0 AES result data[127:96] 0 32 read-only DATA_OUT1 DATA_OUT1 AES Data Output 1 Register 0x24 32 read-only n 0x0 0xFFFFFFFF DATA_OUT1 AES result data[95:64] 0 32 read-only DATA_OUT2 DATA_OUT2 AES Data Output 2 Register 0x28 32 read-only n 0x0 0xFFFFFFFF DATA_OUT2 AES result data[63:32] 0 32 read-only DATA_OUT3 DATA_OUT3 AES Data Output 3 Register 0x2C 32 read-only n 0x0 0xFFFFFFFF DATA_OUT3 AES result data[31:0] 0 32 read-only INIT_SSI INIT_SSI AES Sbox Initial Seed Input Register 0x50 32 read-write n 0x0 0xFFFFFFFF SEED Sbox initial seed input 0 32 read-write INIT_SSO INIT_SSO AES Sbox Initial Seed Output Register 0x54 32 read-write n 0x0 0xFFFFFFFF SEED Sbox initial seed onput 0 32 read-write INIT_V0 INIT_V0 AES Initialization Vector 0 Register 0x60 32 write-only n 0x0 0xFFFFFFFF VECTOR Initialization vector[127:96] for CBC mode 0 32 write-only INIT_V1 INIT_V1 AES Initialization Vector 1 Register 0x64 32 write-only n 0x0 0xFFFFFFFF VECTOR Initialization vector[95:64] for CBC mode 0 32 write-only INIT_V2 INIT_V2 AES Initialization Vector 2 Register 0x68 32 write-only n 0x0 0xFFFFFFFF VECTOR Initialization vector[63:32] for CBC mode 0 32 write-only INIT_V3 INIT_V3 AES Initialization Vector 3 Register 0x6C 32 write-only n 0x0 0xFFFFFFFF VECTOR Initialization vector[31:0] for CBC mode 0 32 write-only INT INT AES Interrupt Register 0xC 32 read-write n 0x0 0xFFFFFFFF CPLT_INT_EN AES result data complete interrupt 0x0: Disable 0x1: Enable 1 1 read-write CPLT_INT_FLAG AES result data complete interrupt flag. Write 1 to clear. Read 0x0: Not interrupt 0x1: Interrupt Write 0x0: Not effect 0x1: Clear 0 1 read-write KEY0 KEY0 AES Key 0 Register 0x30 32 write-only n 0x0 0xFFFFFFFF KEY0 AES key[255:224] 0 32 write-only KEY1 KEY1 AES Key 1 Register 0x34 32 write-only n 0x0 0xFFFFFFFF KEY1 AES key[223:192] 0 32 write-only KEY2 KEY2 AES Key 2 Register 0x38 32 write-only n 0x0 0xFFFFFFFF KEY2 AES key[191:160] 0 32 write-only KEY3 KEY3 AES Key 3 Register 0x3C 32 write-only n 0x0 0xFFFFFFFF KEY3 AES key[159:128] 0 32 write-only KEY4 KEY4 AES Key 4 Register 0x40 32 write-only n 0x0 0xFFFFFFFF KEY4 AES key[127:96] 0 32 write-only KEY5 KEY5 AES Key 5 Register 0x44 32 write-only n 0x0 0xFFFFFFFF KEY5 AES key[95:64] 0 32 write-only KEY6 KEY6 AES Key 6 Register 0x48 32 write-only n 0x0 0xFFFFFFFF KEY6 AES key[63:32] 0 32 write-only KEY7 KEY7 AES Key 7 Register 0x4C 32 write-only n 0x0 0xFFFFFFFF KEY7 AES key[31:0] 0 32 write-only KEYPORT_MASK KEYPORT_MASK AES Keyport Mask Register 0x80 32 write-only n 0x0 0xFFFFFFFF MASK Mask for key from keyport 0 32 write-only KEY_ADDR KEY_ADDR AES Key Address Register 0x1C 32 read-write n 0x0 0xFFFFFFFF ADDR AES Key Address Register 0 32 read-write MASK_SSI MASK_SSI AES Sbox Seed Input Mask Register 0x58 32 read-write n 0x0 0xFFFFFFFF MASK Sbox initial seed input mask 0 32 read-write MASK_SSO MASK_SSO AES Sbox Seed Input Mask Register 0x5C 32 read-write n 0x0 0xFFFFFFFF MASK Sbox initial seed output mask 0 32 read-write RD_START_ADDR RD_START_ADDR AES Read Start Address Register 0x14 32 read-write n 0x0 0xFFFFFFFF ADDR DMA mode, read start address of transfer 0 32 read-write STAT STAT AES Status Register 0x8 32 read-only n 0x0 0xFFFFFFFF DMA_XFE_CPLT DMA transfer complete 0x0: Not complete 0x1: Complete 1 1 read-only DMA_XFE_ERR DMA transfer error, Write 1 to clear 0x0: Not ready 0x1: Ready 2 1 read-only KEY_STAT Key status, key is ready to read or not 0x0: Not ready 0x1: Ready 3 1 read-only READY AES result data out ready or not. This signal may be cleared when MCU_MODE_EN(CTRL[1]) is disabled. 0x0: Not ready 0x1 : Ready 0 1 read-only WR_START_ADDR WR_START_ADDR AES Write Start Address Register 0x18 32 read-write n 0x0 0xFFFFFFFF ADDR DMA mode, write start address of transfer 0 32 read-write XFE_SIZE XFE_SIZE AES Transfer Size Register 0x10 32 read-write n 0x0 0xFFFFFFFF SIZE Total transfer size, up to 32KB 0x000f: 1 block 0x001f: 2 block 0x002f: 3 block -- 0x7fff: 2048 block 0 15 read-write AON Always-on Domain AON 0xA000C500 0x0 0x98 registers n RTC_CTRL RTC_CTRL RTC Control Register 0x18 32 read-write n 0x2100 0xFFFFFFFF ALARM_INT_EN Timer alarm interrupt enable. 12 1 read-write ALARM_VAL_LOAD Alarm value load. Write 1 to load the value 2 1 write-only CLK_SEL Timer clock select. 8 3 read-write EN Calendar timer enable 0 1 read-write VAL_LOAD Up-counter value load. Write 1 to load the value 1 1 write-only WRAP_COUNT Wrap-around counter. 4 4 read-only WRAP_INT_EN Wrap-around interrupt enable 13 1 read-write VAL_RD VAL_RD Timer Value Read Register 0x94 32 read-only n 0x0 0xFFFFFFFF VAL_RD This register is shared with multiple timers. To read desired value. 0 32 read-only VAL_SET VAL_SET Timer Value Set Register 0x90 32 read-write n 0x0 0xFFFFFFFF VAL_SET This register is shared with multiple timers. To apply the value, set the value then assert corresponding load registers. 0 32 read-write WDT_CTRL WDT_CTRL AON WDT Control Register 0x58 32 read-write n 0xA0010001 0xFFFFFFFF ALARM_VAL Alarm values 27 5 read-write AON_WDT_EN WDT Enable 24 1 read-write AON_WDT_RELOAD Load the value in timer value to the AONWDT down-counter. 25 1 write-only AON_WDT_RUNNING WDT Runing enable 26 1 read-only EXTERNAL_WAKEUP_TYPE WDT type 16 8 read-write INVERT_EXTERNAL_WAKEUP Invert external wakeup 8 8 read-write SRC_EN External wakeup source enable 0 8 read-write DMA Direct Memory Access DMA 0xA0013000 0x0 0x1E8 registers n DMA DMA Interrupt 3 CFG_CH0_HIGH CFG_CH0_HIGH Configuration Register for Channel 0 High 32 bit 0x44 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows: • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH0_LOW CFG_CH0_LOW Configuration Register for Channel 0 Low 32 bit 0x40 32 read-write n 0xE00 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH1_HIGH CFG_CH1_HIGH Configuration Register for Channel 1 High 32 bit 0x9C 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows: • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH1_LOW CFG_CH1_LOW Configuration Register for Channel 1 Low 32 bit 0x98 32 read-write n 0xE20 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH2_HIGH CFG_CH2_HIGH Configuration Register for Channel 2 High 32 bit 0xF4 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows: • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH2_LOW CFG_CH2_LOW Configuration Register for Channel 2 Low 32 bit 0xF0 32 read-write n 0xE40 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH3_HIGH CFG_CH3_HIGH Configuration Register for Channel 3 High 32 bit 0x14C 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows: • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH3_LOW CFG_CH3_LOW Configuration Register for Channel 3 Low 32 bit 0x148 32 read-write n 0xE60 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH4_HIGH CFG_CH4_HIGH Configuration Register for Channel 4 High 32 bit 0x1A4 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH4_LOW CFG_CH4_LOW Configuration Register for Channel 4 Low 32 bit 0x1A0 32 read-write n 0xE80 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH5_HIGH CFG_CH5_HIGH Configuration Register for Channel 5 High 32 bit 0x1FC 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH5_LOW CFG_CH5_LOW Configuration Register for Channel 5 Low 32 bit 0x1F8 32 read-write n 0xEA0 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH6_HIGH CFG_CH6_HIGH Configuration Register for Channel 6 High 32 bit 0x254 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH6_LOW CFG_CH6_LOW Configuration Register for Channel 6 low 32 bit 0x250 32 read-write n 0xEC0 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_CH7_HIGH CFG_CH7_HIGH Configuration Register for Channel 7 High 32 bit 0x2AC 32 read-write n 0x4 0xFFFFFFFF DEST_PER Destination hardware interface. Assigns a hardware handshaking interface to the destination of channel x if the CFGx.HSG_SEL_DST field is 0 otherwise, this field is ignored. The channel can then communicate with the destination peripheral connected to that interface through the assigned hardware handshaking interface. NOTE: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 11 4 read-write FIFO_MODE FIFO Mode Select. Determines how much space or data needs to be available in the FIFO before a burst transaction request is serviced. 0x0: Space/data available for single AHB transfer of the specified transfer width 0x1: Data available is greater than or equal to half the FIFO depth for destination transfers and space available is greater than half the fifo depth for source transfers. The exceptions are at the end of a burst transaction request or at the end of a block transfer. 1 1 read-write FLOW_CTRL_MODE Flow Control Mode. Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller. 0x0: Source transaction requests are serviced when they occur. Data pre-fetching is enabled 0x1: Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data transferred from the source is limited so that it is guaranteed to be transferred to the destination prior to block termination by the destination. Data pre-fetching is disabled. 0 1 read-write PROT_CTRL Protection Control bits used to drive the AHB HPROT[3:1] bus. The AMBA Specification recommends that the default of HPROT indicates a non-cached, non-buffered, privileged data access. The reset value is used to indicate such an access. HPROT[0] is tied high because all transfers are data accesses, as there are no opcode fetches. There is a one-to-one mapping of these register bits to the HPROT[3:1] master interface signals. Mapping of HPROT bus is as follows • 0x1 to HPROT[0] • CFGx.PROTCTL[1] to HPROT[1] • CFGx.PROTCTL[2] to HPROT[2] • CFGx.PROTCTL[3] to HPROT[3] 2 3 read-write SRC_PER Source Hardware Interface. Assigns a hardware handshaking interface to the source of channel x if the CFG_CHx.HSG_SEL_SRC field is 0 otherwise, this field is ignored. The channel can then communicate with the source peripheral connected to that interface through the assigned hardware handshaking interface. NOTE1: For correct DMA operation, only one peripheral (source or destination) should be assigned to the same handshaking interface. 7 4 read-write CFG_CH7_LOW CFG_CH7_LOW Configuration Register for Channel 7 Low 32 bit 0x2A8 32 read-write n 0xEE0 0xFFFFFFFF CH_PRIOR Channel Priority. A priority of 7 is the highest priority, and 0 is the lowest. This field must be programmed within the range 0 to 3. A programmed value outside this range will cause erroneous behavior. 0x0: Channel priority is 0 0x1: Channel priority is 1 0x2: Channel priority is 2 0x3: Channel priority is 3 5 3 read-write CH_SUSP Channel Suspend. Suspends all DMA data transfers from the source until this bit is cleared. There is no guarantee that the current transaction will complete. Can also be used in conjunction with CFG_CHx.FIFO_EMPTY to cleanly disable a channel without losing any data. 0x0: DMA transfer from the source is not suspended 0x1: Suspend DMA transfer from the source 8 1 read-write DEST_HSG_POL Destination Handshaking Interface Polarity. 0x0: Destination Handshaking Interface Polarity is Active high 0x1: Destination Handshaking Interface Polarity is Active low 18 1 read-write FIFO_EMPTY Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFGx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 9 1 read-only HSG_SEL_DEST Destination Software or Hardware Handshaking Select. This register selects which of the handshaking interfaces - hardware or software - is active for destination requests on this channel. If the destination peripheral is memory, then this bit is ignored. 0x0: Hardware handshaking interface. Software initiated transaction requests are ignored. 0x1: Software handshaking interface. Hardware initiated transaction requests are ignored. 10 1 read-write HSG_SEL_SRC Channel FIFO status. Indicates if there is data left in the channel FIFO. Can be used in conjunction with CFG_CHx.CH_SUSP to cleanly disable a channel. 0x0: Channel FIFO is not empty 0x1: Channel FIFO is empty 11 1 read-write RELOAD_DEST Automatic Destination Reload. The DEST_ADDR_CHx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Destination Reload Disabled. 0x1: Destination Reload Enabled 31 1 read-write RELOAD_SRC Automatic Source Reload. The SARx register can be automatically reloaded from its initial value at the end of every block for multi-block transfers. A new block transfer is then initiated. 0x0: Source Reload Disabled 0x1: Source Reload Enabled 30 1 read-write SRC_HSG_POL Source Handshaking Interface Polarity. 0x0: Source Handshaking Interface Polarity is Active high 0x1: Source Handshaking Interface Polarity is Active low 19 1 read-write CFG_HIGH CFG_HIGH DMA Configuration Register High 32 bit 0x39C 32 read-write n 0x0 0xFFFFFFFF CFG_LOW CFG_LOW DMA Configuration Register Low 32 bit 0x398 32 read-write n 0x0 0xFFFFFFFF DMA_EN DMA Enable bit. 0x0: DMA Disabled 0x1: DMA Enabled Volatile: true 0 1 read-write CH_EN_HIGH CH_EN_HIGH DMA Channel Enable Register High 32 bit 0x3A4 32 read-write n 0x0 0xFFFFFFFF CH_EN_LOW CH_EN_LOW DMA Channel Enable Register Low 32 bit 0x3A0 32 read-write n 0x0 0xFFFFFFFF CH_EN Channel Enable. The CH_EN.CH_EN bit is automatically cleared by hardware to disable the channel after the last AMBA transfer of the DMA transfer to the destination has completed. Software can therefore poll this bit to determine when this channel is free for a new DMA transfer. 0x0: Disable the channel 0x1: Enable the channel Volatile: true 0 4 read-write CH_EN_WE Channel enable register Volatile: true 8 4 write-only CTRL_CH0_HIGH CTRL_CH0_HIGH Control Register for Channel 0 High 32 bit 0x1C 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH0_LOW CTRL_CH0_LOW Control Register for Channel 0 Low 32 bit 0x18 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH1_HIGH CTRL_CH1_HIGH Control Register for Channel 1 High 32 bit 0x74 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH1_LOW CTRL_CH1_LOW Control Register for Channel 1 Low 32 bit 0x70 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH2_HIGH CTRL_CH2_HIGH Control Register for Channel 2 High 32 bit 0xCC 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH2_LOW CTRL_CH2_LOW Control Register for Channel 2 Low 32 bit 0xC8 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH3_HIGH CTRL_CH3_HIGH Control Register for Channel 3 High 32 bit 0x124 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH3_LOW CTRL_CH3_LOW Control Register for Channel 3 Low 32 bit 0x120 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH4_HIGH CTRL_CH4_HIGH Control Register for Channel 4 High 32 bit 0x17C 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH4_LOW CTRL_CH4_LOW Control Register for Channel 4 Low 32 bit 0x178 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH5_HIGH CTRL_CH5_HIGH Control Register for Channel 5 High 32 bit 0x1D4 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH5_LOW CTRL_CH5_LOW Control Register for Channel 5 Low 32 bit 0x1D0 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH6_HIGH CTRL_CH6_HIGH Control Register for Channel 6 High 32 bit 0x22C 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH6_LOW CTRL_CH6_LOW Control Register for Channel 6 Low 32 bit 0x228 32 read-write n 0x4801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write CTRL_CH7_HIGH CTRL_CH7_HIGH Control Register for Channel 7 High 32 bit 0x284 32 read-write n 0x2 0xFFFFFFFF BLOCK_XFE_SIZE Block Transfer Size. When the DMA is the flow controller, the user writes this field before the channel is enabled in order to indicate the block size. The number programmed into BLOCK_TS indicates the total number of single transactions to perform for every block transfer a single transaction is mapped to a single AMBA beat. Width: The width of single transaction is determined by CTRL_CHx.SRC_TR_WIDTH. Once the transfer starts, the read-back value is the total number of data items already read from the source peripheral, regardless of what is the flow controller. When the source or destination peripheral is assigned as the flow controller, then the maximum block size that can be read back saturates at 0xFFF, but the actual block size can be greater. Volatile: true 0 5 read-write DONE Done bit. If status write-back is enabled, the upper word of the control register, CTRL_CHx [63:32], is written to the control register location of the Linked List Item (LLI) in system memory at the end of the block transfer with the done bit set. Software can poll the LLI CTRL_CHx.DONE bit to see when a block transfer is complete. The LLI CTRL_CHx.DONE bit should be cleared when the linked lists are set up in memory prior to enabling the channel. LLI accesses are always 32-bit accesses (Hsize=2) aligned to 32-bit boundaries and cannot be changed or programmed to anything other than 32-bit. For more information, refer to Multi-Block Transfers . Volatile: true 12 1 read-write CTRL_CH7_LOW CTRL_CH7_LOW Control Register for Channel 7 Low 32 bit 0x280 32 read-write n 0x304801 0xFFFFFFFF DEST_ADDR_INC Destination Address Increment. Indicates whether to increment or decrement the destination address on every destination transfer. If your device is writing data to a destination peripheral FIFO with a fixed address, then set this field to No Change . 0x0: Increments the destination address 0x1: Decrements the destination address 0x2: No change in the destination address 0x3: No change in the destination address Volatile: true 7 2 read-write DEST_MSIZE Destination Burst Transaction Length. Number of data items, each of width CTRL_CHx.DEST_TR_WIDTH, to be written to the destination every time a destination burst transaction request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 11 3 read-write DEST_XFE_WIDTH Destination Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (destination) FIFO width. 0x0: Destination transfer width is 8 bits 0x1: Destination transfer width is 16 bits 0x2: Destination transfer width is 32 bits Volatile: true 1 3 read-write INT_EN Interrupt Enable Bit. If set, then all interrupt-generating sources are enabled. Functions as a global mask bit for all interrupts for the channel raw* interrupt registers still assert if CTRLx.INT_EN=0. 0x0: Interrupt is disabled 0x1: Interrupt is enabled Volatile: true 0 1 read-write SRC_ADDR_INC Source Address Increment. Indicates whether to increment or decrement the source address on every source transfer. If the device is fetching data from a source peripheral FIFO with a fixed address, then set this field to No change . 0x0: Increments the source address 0x1: Decrements the source address 0x2: No change in the source address 0x3: No change in the source address Volatile: true 9 2 read-write SRC_MSIZE Source Burst Transaction Length. Number of data items, each of width CTRL_CHx.SRC_TR_WIDTH, to be read from the source every time a burst transferred request is made from either the corresponding hardware or software handshaking interface. NOTE: This value is not related to the AHB bus master HBURST bus. 0x0: Number of data items to be transferred is 1 0x1: Number of data items to be transferred is 4 0x2: Number of data items to be transferred is 8 Volatile: true 14 3 read-write SRC_XFE_WIDTH Source Transfer Width. Mapped to AHB bus hsize. For a non-memory peripheral, typically the peripheral (source) FIFO width. 0x0: Source transfer width is 8 bits 0x1: Source transfer width is 16 bits 0x2: Source transfer width is 32 bits Volatile: true 4 3 read-write XFE_TYPE_FC Transfer Type and Flow Control. Flow control can be assigned to the DMA, the source peripheral, or the destination peripheral. • 0x0: Transfer type is Memory to Memory and Flow Controller is DMA • 0x1: Transfer type is Memory to Peripheral and Flow Controller is DMA • 0x2: Transfer type is Peripheral to Memory and Flow Controller is DMA • 0x3: Transfer type is Peripheral to Peripheral and Flow Controller is DMA Volatile: true 20 3 read-write DEST_ADDR_CH0_HIGH DEST_ADDR_CH0_HIGH Destination Address Register for Channel 0 High 32 bit 0xC 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH0_LOW DEST_ADDR_CH0_LOW Destination Address Register for Channel 0 Low 32 bit 0x8 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH1_HIGH DEST_ADDR_CH1_HIGH Destination Address Register for Channel 1 High 32 bit 0x64 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH1_LOW DEST_ADDR_CH1_LOW Destination Address Register for Channel 1 Low 32 bit 0x60 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH2_HIGH DEST_ADDR_CH2_HIGH Destination Address Register for Channel 2 High 32 bit 0xBC 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH2_LOW DEST_ADDR_CH2_LOW Destination Address Register for Channel 2 Low 32 bit 0xB8 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH3_HIGH DEST_ADDR_CH3_HIGH Destination Address Register for Channel 3 High 32 bit 0x114 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH3_LOW DEST_ADDR_CH3_LOW Destination Address Register for Channel 3 Low 32 bit 0x110 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH4_HIGH DEST_ADDR_CH4_HIGH Destination Address Register for Channel 4 High 32 bit 0x16C 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH4_LOW DEST_ADDR_CH4_LOW Destination Address Register for Channel 4 Low 32 bit 0x168 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH5_HIGH DEST_ADDR_CH5_HIGH Destination Address Register for Channel 5 High 32 bit 0x1C4 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH5_LOW DEST_ADDR_CH5_LOW Destination Address Register for Channel 5 Low 32 bit 0x1C0 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH6_HIGH DEST_ADDR_CH6_HIGH Destination Address Register for Channel 6 High 32bit 0x21C 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH6_LOW DEST_ADDR_CH6_LOW Destination Address Register for Channel 6 Low 32bit 0x218 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write DEST_ADDR_CH7_HIGH DEST_ADDR_CH7_HIGH Destination Address Register for Channel 7 High 32 bit 0x274 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR_CH7_LOW DEST_ADDR_CH7_LOW Destination Address Register for Channel 7 Low 32 bit 0x270 32 read-write n 0x0 0xFFFFFFFF DEST_ADDR Current Destination address of DMA transfer. Updated after each destination transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every destination transfer throughout the block transfer. Volatile: true 0 32 read-write INT_CLR_BTC_HIGH INT_CLR_BTC_HIGH Clear for Block Transfer Complete Interrupt High 32 bit 0x344 32 read-write n 0x0 0xFFFFFFFF INT_CLR_BTC_LOW INT_CLR_BTC_LOW Clear for Block Transfer Complete Interrupt Low 32 bit 0x340 32 write-only n 0x0 0xFFFFFFFF CLR Clear for Block Transfer Complete Interrupt Volatile: true 0 4 write-only INT_CLR_DTC_HIGH INT_CLR_DTC_HIGH Clear for Destination Transaction Complete Interrupt High 32 bit 0x354 32 read-write n 0x0 0xFFFFFFFF INT_CLR_DTC_LOW INT_CLR_DTC_LOW Clear for Destination Transaction Complete Interrupt Low 32 bit 0x350 32 write-only n 0x0 0xFFFFFFFF CLR Clear for Destination Transaction Complete Interrupt 0x0: No effect 0x1: Clears interrupts Volatile: true 0 4 write-only INT_CLR_ERR_HIGH INT_CLR_ERR_HIGH Clear for Error Interrupt High 32 bit 0x35C 32 read-write n 0x0 0xFFFFFFFF INT_CLR_ERR_LOW INT_CLR_ERR_LOW Clear for Error Interrupt Low 32 bit 0x358 32 write-only n 0x0 0xFFFFFFFF CLR Clear for Error Interrupt 0x0: No effect 0x1: Clears interrupts Volatile: true 0 4 write-only INT_CLR_STC_HIGH INT_CLR_STC_HIGH Clear for Source Transaction Complete Interrupt High 32 bit 0x34C 32 read-write n 0x0 0xFFFFFFFF INT_CLR_STC_LOW INT_CLR_STC_LOW Clear for Source Transaction Complete Interrupt Low 32 bit 0x348 32 write-only n 0x0 0xFFFFFFFF CLR Clear for Source Transaction Complete Interrupt 0x0: No effect 0x1: Clears interrupts Volatile: true 0 4 write-only INT_CLR_TC_HIGH INT_CLR_TC_HIGH Clear for Transfer Complete Interrupt High 32 bit 0x33C 32 read-write n 0x0 0xFFFFFFFF INT_CLR_TC_LOW INT_CLR_TC_LOW Clear for Transfer Complete Interrupt Low 32 bit 0x338 32 write-only n 0x0 0xFFFFFFFF CLR Clear for Transfer Complete Interrupt 0x0: No effect 0x1: Clears interrupts Volatile: true 0 4 write-only INT_MASK_BTC_HIGH INT_MASK_BTC_HIGH Mask for Block Transfer Complete Interrupt High 32 bit 0x31C 32 read-write n 0x0 0xFFFFFFFF INT_MASK_BTC_LOW INT_MASK_BTC_LOW Mask for Block Transfer Complete Interrupt Low 32 bit 0x318 32 read-write n 0x0 0xFFFFFFFF INT_MASK Mask for Block Transfer Complete Interrupt 0x0: Mask the interrupts 0x1: Unmask the interrupts 0 4 read-write INT_MASK_WE Interrupt Mask Write Enable 0x0: Interrupt mask write disable 0x1: Interrupt mask write enable 8 4 write-only INT_MASK_DTC_HIGH INT_MASK_DTC_HIGH Mask for Destination Transaction Complete Interrupt High 32 bit 0x32C 32 read-write n 0x0 0xFFFFFFFF INT_MASK_DTC_LOW INT_MASK_DTC_LOW Mask for Destination Transaction Complete Interrupt Low 32 bit 0x328 32 read-write n 0x0 0xFFFFFFFF INT_MASK Mask for Destination Transaction Complete Interrupt 0x0: Mask the interrupts 0x1: Unmask the interrupts 0 4 read-write INT_MASK_WE Interrupt Mask Write Enable 0x0: Interrupt mask write disable 0x1: Interrupt mask write enable 8 4 write-only INT_MASK_ERR_HIGH INT_MASK_ERR_HIGH Mask for Error Interrupt High 32 bit 0x334 32 read-write n 0x0 0xFFFFFFFF INT_MASK_ERR_LOW INT_MASK_ERR_LOW Mask for Error Interrupt Low 32 bit 0x330 32 read-write n 0x0 0xFFFFFFFF INT_MASK Mask for Error Interrupt 0x0: Mask the interrupts 0x1: Unmask the interrupts 0 4 read-write INT_MASK_WE Interrupt Mask Write Enable 0x0: Interrupt mask write disable 0x1: Interrupt mask write enable 8 4 write-only INT_MASK_STC_HIGH INT_MASK_STC_HIGH Mask for Source Transaction Complete Interrupt High 32 bit 0x324 32 read-write n 0x0 0xFFFFFFFF INT_MASK_STC_LOW INT_MASK_STC_LOW Mask for Source Transaction Complete Interrupt Low 32 bit 0x320 32 read-write n 0x0 0xFFFFFFFF INT_MASK Mask for Source Transaction Complete Interrupt 0x0: Mask the interrupts 0x1: Unmask the interrupts 0 4 read-write INT_MASK_WE Interrupt Mask Write Enable 0x0: Interrupt mask write disable 0x1: Interrupt mask write enable 8 4 write-only INT_MASK_TC_HIGH INT_MASK_TC_HIGH Mask for Transfer Complete Interrupt High 32 bit 0x314 32 read-write n 0x0 0xFFFFFFFF INT_MASK_TC_LOW INT_MASK_TC_LOW Mask for Transfer Complete Interrupt Low 32 bit 0x310 32 read-write n 0x0 0xFFFFFFFF INT_MASK Mask for Transfer Complete Interrupt 0x0: Mask the interrupts 0x1: Unmask the interrupts 0 4 read-write INT_MASK_WE Interrupt Mask Write Enable 0x0: Interrupt mask write disable 0x1: Interrupt mask write enable 8 4 write-only INT_RSTAT_BTC_HIGH INT_RSTAT_BTC_HIGH Raw Status for Block Transfer Complete Interrupt High 32 bit 0x2CC 32 read-write n 0x0 0xFFFFFFFF INT_RSTAT_BTC_LOW INT_RSTAT_BTC_LOW Raw Status for Block Transfer Complete Interrupt Low 32 bit 0x2C8 32 read-write n 0x0 0xFFFFFFFF RAW Raw Status for Block Transfer Complete Interrupt 0x0: Inactive Raw Interrupt Status 0x1: Active Raw Interrupt Status Volatile: true 0 4 read-write INT_RSTAT_DTC_HIGH INT_RSTAT_DTC_HIGH Raw Status for Destination Transaction Complete Interrupt High 32 bit 0x2DC 32 read-write n 0x0 0xFFFFFFFF INT_RSTAT_DTC_LOW INT_RSTAT_DTC_LOW Raw Status for Destination Transaction Complete Interrupt Low 32 bit 0x2D8 32 read-write n 0x0 0xFFFFFFFF RAW Raw Status for Destination Transaction Complete Interrupt 0x0: Inactive Raw Interrupt Status 0x1: Active Raw Interrupt Status 0 4 read-write INT_RSTAT_ERR_HIGH INT_RSTAT_ERR_HIGH Raw Status for Error Interrupt High 32 bit 0x2E4 32 read-write n 0x0 0xFFFFFFFF INT_RSTAT_ERR_LOW INT_RSTAT_ERR_LOW Raw Status for Error Interrupt Low 32 bit 0x2E0 32 read-write n 0x0 0xFFFFFFFF RAW Raw Status for Error Interrupt 0x0: Inactive Raw Interrupt Status 0x1: Active Raw Interrupt Status Volatile: true 0 4 read-write INT_RSTAT_STC_HIGH INT_RSTAT_STC_HIGH Raw Status for Source Transaction Complete Interrupt High 32 bit 0x2D4 32 read-write n 0x0 0xFFFFFFFF INT_RSTAT_STC_LOW INT_RSTAT_STC_LOW Raw Status for Source Transaction Complete Interrupt Low 32 bit 0x2D0 32 read-write n 0x0 0xFFFFFFFF RAW Raw Status for Source Transaction Complete Interrupt 0x0: Inactive Raw Interrupt Status 0x1: Active Raw Interrupt Status Volatile: true 0 4 read-write INT_RSTAT_TC_HIGH INT_RSTAT_TC_HIGH Raw Status for Transfer Complete Interrupt High 32 bit 0x2C4 32 read-write n 0x0 0xFFFFFFFF INT_RSTAT_TC_LOW INT_RSTAT_TC_LOW Raw Status for Transfer Complete Interrupt Low 32 bit 0x2C0 32 read-write n 0x0 0xFFFFFFFF RAW Raw Status for Transfer Complete Interrupt 0x0: Inactive Raw Interrupt Status 0x1: Active Raw Interrupt Status Volatile: true 0 4 read-write INT_STAT_BTC_HIGH INT_STAT_BTC_HIGH Status for Block Transfer Complete Interrupt High 32 bit 0x2F4 32 read-write n 0x0 0xFFFFFFFF INT_STAT_BTC_LOW INT_STAT_BTC_LOW Status for Block Transfer Complete Interrupt Low 32 bit 0x2F0 32 read-only n 0x0 0xFFFFFFFF STAT Status for Block Transfer Complete Interrupt 0x0: Inactive Interrupt Status 0x1: Active Interrupt Status Volatile: true 0 4 read-only INT_STAT_DTC_HIGH INT_STAT_DTC_HIGH Status for Destination Transaction Complete Interrupt High 32 bit 0x304 32 read-write n 0x0 0xFFFFFFFF INT_STAT_DTC_LOW INT_STAT_DTC_LOW Status for Destination Transaction Complete Interrupt Low 32 bit 0x300 32 read-only n 0x0 0xFFFFFFFF STAT Status for Destination Transaction Complete Interrupt 0x0: Inactive Interrupt Status 0x1: Active Interrupt Status 0 4 read-only INT_STAT_ERR_HIGH INT_STAT_ERR_HIGH Status for Error Interrupt High 32 bit 0x30C 32 read-write n 0x0 0xFFFFFFFF INT_STAT_ERR_LOW INT_STAT_ERR_LOW Status for Error Interrupt Low 32 bit 0x308 32 read-only n 0x0 0xFFFFFFFF STAT Status for Error Interrupt 0x0: Inactive Interrupt Status 0x1: Active Interrupt Status Volatile: true 0 4 read-only INT_STAT_ET_HIGH INT_STAT_ET_HIGH Status for each Interrupt type High 32 bit 0x364 32 read-write n 0x0 0xFFFFFFFF INT_STAT_ET_LOW INT_STAT_ET_LOW Status for each Interrupt type Low 32 bit 0x360 32 read-only n 0x0 0xFFFFFFFF BLK_XFE_CPLT OR of the contents of INT_STAT_BTC register 0x0: OR of the contents of INT_STAT_BTC register is 0 0x1: OR of the contents of INT_STAT_BTC register is 1 Volatile: true 1 1 read-only DEST_XFE_CPLT OR of the contents of INT_STAT_DTC register 0x0: OR of the contents of INT_STAT_DTC register is 0 0x1: OR of the contents of INT_STAT_DTC register is 1 Volatile: true 3 1 read-only ERR OR of the contents of INT_STAT_ERR register 0x0: OR of the contents of INT_STAT_ERR register is 0 0x1: OR of the contents of INT_STAT_ERR register is 1 Volatile: true 4 1 read-only SRC_XFE_CPLT OR of the contents of INT_STAT_STC register 0x0: OR of the contents of INT_STAT_STC register is 0 0x1: OR of the contents of INT_STAT_STC register is 1 Volatile: true 2 1 read-only XFE_CPLT OR of the contents of INT_STAT_TC register 0x0: OR of the contents of INT_STAT_TC register is 0 0x1: OR of the contents of INT_STAT_TC register is 1 Volatile: true 0 1 read-only INT_STAT_STC_HIGH INT_STAT_STC_HIGH Status for Source Transaction Complete Interrupt High 32 bit 0x2FC 32 read-write n 0x0 0xFFFFFFFF INT_STAT_STC_LOW INT_STAT_STC_LOW Status for Source Transaction Complete Interrupt Low 32 bit 0x2F8 32 read-only n 0x0 0xFFFFFFFF STAT Status for Source Transaction Complete Interrupt 0x0: Inactive Interrupt Status 0x1: Active Interrupt Status Volatile: true 0 4 read-only INT_STAT_TC_HIGH INT_STAT_TC_HIGH Status for Transfer Complete Interrupt High 32 bit 0x2EC 32 read-write n 0x0 0xFFFFFFFF INT_STAT_TC_LOW INT_STAT_TC_LOW Status for Transfer Complete Interrupt Low 32 bit 0x2E8 32 read-only n 0x0 0xFFFFFFFF STAT Status for Transfer Complete Interrupt 0x0: Inactive Interrupt Status 0x1: Active Interrupt Status Volatile:true 0 4 read-only REQ_DST_HIGH REQ_DST_HIGH Destination Software Transaction Request register High 32 bit 0x374 32 read-write n 0x0 0xFFFFFFFF REQ_DST_LOW REQ_DST_LOW Destination Software Transaction Request register Low 32 bit 0x370 32 read-write n 0x0 0xFFFFFFFF DEST_REQ Destination Software Transaction Request 0x0: Destination request is not active 0x1: Destination request is active 0 4 read-write DEST_REQ_WE Destination Software Transaction Request write enable 0x0: Destination request write Disable 0x1: Destination request write Enable 8 4 read-write REQ_LST_DT_HIGH REQ_LST_DT_HIGH Destination Last Transaction Request register High 32 bit 0x394 32 read-write n 0x0 0xFFFFFFFF REQ_LST_DT_LOW REQ_LST_DT_LOW Destination Last Transaction Request register Low 32 bit 0x390 32 read-write n 0x0 0xFFFFFFFF LST_DEST Destination Last Transaction Request 0x0: Not last transaction in current block 0x1: Last transaction in current block 0 4 read-write LST_DEST_WE Source Last Transaction Request write enable 0x0: Destination last transaction request write disable 0x1: Destination last transaction request write enable 8 4 read-write REQ_LST_ST_HIGH REQ_LST_ST_HIGH Source Last Transaction Request register High 32 bit 0x38C 32 read-write n 0x0 0xFFFFFFFF REQ_LST_ST_LOW REQ_LST_ST_LOW Source Last Transaction Request register Low 32 bit 0x388 32 read-write n 0x0 0xFFFFFFFF LST_SRC Source Last Transaction Request register 0x0: Not last transaction in current block 0x1: Last transaction in current block 0 4 read-write LST_SRC_WE Source Last Transaction Request write enable 0x0: Source last transaction request write disable 0x1: Source last transaction request write enable 8 4 read-write REQ_SGL_DT_HIGH REQ_SGL_DT_HIGH Destination Single Transaction Request register High 32 bit 0x384 32 read-write n 0x0 0xFFFFFFFF REQ_SGL_DT_LOW REQ_SGL_DT_LOW Destination Single Transaction Request register Low 32 bit 0x380 32 read-write n 0x0 0xFFFFFFFF DEST_SGL_REQ Destination Single Transaction Request 0x0: Destination Single or burst request is not active 0x1: Destination Single or burst request is active 0 4 read-write DST_SGL_REQ_WE Destination Single Transaction Request write enable 0x0: Destination write Disable 0x1: Destination write Enable 8 4 read-write REQ_SGL_ST_HIGH REQ_SGL_ST_HIGH Source Single Transaction Request register High 32 bit 0x37C 32 read-write n 0x0 0xFFFFFFFF REQ_SGL_ST_LOW REQ_SGL_ST_LOW Source Single Transaction Request register Low 32 bit 0x378 32 read-write n 0x0 0xFFFFFFFF SRC_SGL_REQ Source Single Transaction Request 0x0: Source request is not active 0x1: Source request is active 0 4 read-write SRC_SGL_REQ_WE Source Single Transaction Request write enable 0x0: Single write Disable 0x1: Single write Enable 8 4 read-write REQ_SST_HIGH REQ_SST_HIGH Source Software Transaction Request register High 32 bit 0x36C 32 read-write n 0x0 0xFFFFFFFF REQ_SST_LOW REQ_SST_LOW Source Software Transaction Request register Low 32 bit 0x368 32 read-write n 0x0 0xFFFFFFFF SRC_REQ Source Software Transaction Request 0x0: Source request is not active 0x1: Source request is active 0 4 read-write SRC_REQ_WE Source Software Transaction Request write enable 0x0: Source request write Disable 0x1: Source request write Enable 8 4 read-write SRC_ADDR_CH0_HIGH SRC_ADDR_CH0_HIGH Source Address for Channel 0 High 32 bit 0x4 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH0_LOW SRC_ADDR_CH0_LOW Source Address for Channel 0 LOW 32 bit 0x0 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH1_HIGH SRC_ADDR_CH1_HIGH Source Address for Channel 1 High 32 bit 0x5C 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH1_LOW SRC_ADDR_CH1_LOW Source Address for Channel 1 LOW 32 bit 0x58 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH2_HIGH SRC_ADDR_CH2_HIGH Source Address for Channel 2 High 32 bit 0xB4 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH2_LOW SRC_ADDR_CH2_LOW Source Address for Channel 2 LOW 32 bit 0xB0 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH3_HIGH SRC_ADDR_CH3_HIGH Source Address for Channel 3 High 32 bit 0x10C 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH3_LOW SRC_ADDR_CH3_LOW Source Address for Channel 3 LOW 32 bit 0x108 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH4_HIGH SRC_ADDR_CH4_HIGH Source Address for Channel 4 High 32 bit 0x164 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH4_LOW SRC_ADDR_CH4_LOW Source Address for Channel 4 LOW 32 bit 0x160 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH5_LOW SRC_ADDR_CH5_LOW Source Address for Channel 5 LOW 32 bit 0x1B8 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH5__HIGH SRC_ADDR_CH5__HIGH Source Address for Channel 5 High 32 bit 0x1BC 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH6_HIGH SRC_ADDR_CH6_HIGH Source Address for Channel 6 High 32 bit 0x214 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH6_LOW SRC_ADDR_CH6_LOW Source Address for Channel 6 Low 32 bit 0x210 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write SRC_ADDR_CH7_HIGH SRC_ADDR_CH7_HIGH Source Address for Channel 7 High 32 bit 0x26C 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR_CH7_LOW SRC_ADDR_CH7_LOW Source Address for Channel 7 Low 32 bit 0x268 32 read-write n 0x0 0xFFFFFFFF SRC_ADDR Current Source Address of DMA transfer. Updated after each source transfer. The DEST_ADDR_INC field in the CTRL_CHx register determines whether the address increments, decrements, or is left unchanged on every source transfer through the block transfer. Volatile: true 0 32 read-write DUAL_TIMER0 Dual-Timer DUAL_TIMER 0xA0002000 0x0 0x18 registers n CTRL CTRL Dula-Timer Control Register 0x8 32 read-write n 0x20 0xFFFFFFFF COUNT_MODE Selects one-shot or wrapping counter mode: 0x0: Wrapping mode, default. 0x1: One-shot mode. 0 1 read-write EN Timer Enable 0x0: Timer disabled, default. 0x1: Timer enabled. 7 1 read-write INT_EN Interrupt Enable 0x0: Timer Interrupt disabled. 0x1: Timer Interrupt enabled, default. 5 1 read-write MODE Timer Mode 0x0: Timer is in free-running mode, default. 0x1: Timer is in periodic mode. 6 1 read-write PRE Prescale bits: 0x00: 0 stages of prescale, clock is divided by 1, default. 0x01: 4 stages of prescale, clock is divided by 16. 0x10: 8 stages of prescale, clock is divided by 256. 0x11: Undefined, do not use. 2 2 read-write SIZE Selects 16-bit or 32-bit counter operation: 0x0: 16-bit counter, default. 0x1: 32-bit counter 1 1 read-write INT_CLR INT_CLR Dula-Timer Interrupt Clear Register 0xC 32 write-only n 0x0 0xFFFFFFFF STAT Clear the Dual-Timer interrupt event. 0 32 write-only INT_RSTAT INT_RSTAT Dula-Timer Raw Interrupt Status Register 0x10 32 read-write n 0x0 0xFFFFFFFF STAT Raw interrupt status from the counter. 0 1 read-write INT_STAT INT_STAT Dula-Timer Raw Interrupt Status Register 0x14 32 read-write n 0x0 0xFFFFFFFF STAT Enable interrupt status from the counter. 0 1 read-write LOAD LOAD Dula-Timer Load Register 0x0 32 read-write n 0x0 0xFFFFFFFF COUNT Reload value. Write to this register sets the current value 0 32 read-write VAL VAL Dula-Timer Current Value Register 0x4 32 read-only n 0xFFFFFFFF 0xFFFFFFFF COUNT Current value. 0 32 read-only DUAL_TIMER1 Dual-Timer DUAL_TIMER 0xA0002020 0x0 0x18 registers n CTRL CTRL Dula-Timer Control Register 0x8 32 read-write n 0x20 0xFFFFFFFF COUNT_MODE Selects one-shot or wrapping counter mode: 0x0: Wrapping mode, default. 0x1: One-shot mode. 0 1 read-write EN Timer Enable 0x0: Timer disabled, default. 0x1: Timer enabled. 7 1 read-write INT_EN Interrupt Enable 0x0: Timer Interrupt disabled. 0x1: Timer Interrupt enabled, default. 5 1 read-write MODE Timer Mode 0x0: Timer is in free-running mode, default. 0x1: Timer is in periodic mode. 6 1 read-write PRE Prescale bits: 0x00: 0 stages of prescale, clock is divided by 1, default. 0x01: 4 stages of prescale, clock is divided by 16. 0x10: 8 stages of prescale, clock is divided by 256. 0x11: Undefined, do not use. 2 2 read-write SIZE Selects 16-bit or 32-bit counter operation: 0x0: 16-bit counter, default. 0x1: 32-bit counter 1 1 read-write INT_CLR INT_CLR Dula-Timer Interrupt Clear Register 0xC 32 write-only n 0x0 0xFFFFFFFF STAT Clear the Dual-Timer interrupt event. 0 32 write-only INT_RSTAT INT_RSTAT Dula-Timer Raw Interrupt Status Register 0x10 32 read-write n 0x0 0xFFFFFFFF STAT Raw interrupt status from the counter. 0 1 read-write INT_STAT INT_STAT Dula-Timer Raw Interrupt Status Register 0x14 32 read-write n 0x0 0xFFFFFFFF STAT Enable interrupt status from the counter. 0 1 read-write LOAD LOAD Dula-Timer Load Register 0x0 32 read-write n 0x0 0xFFFFFFFF COUNT Reload value. Write to this register sets the current value 0 32 read-write VAL VAL Dula-Timer Current Value Register 0x4 32 read-only n 0xFFFFFFFF 0xFFFFFFFF COUNT Current value. 0 32 read-only GPIO0 General Purpose Input Output GPIO 0xA0010000 0x0 0x34 registers n EXT0 GPIO_0~GPIO15 interrupts 6 EXT1 GPIO_16~GPIO31 interrupts 7 GPIOx_ALTFUNC_CLR GPIOx_ALTFUNC_CLR GPIO alternative function enable clear register 0x1C 32 read-write n 0x0 0xFFFFFFFF CLR GPIO alternative function enable clear: Write 0x1: Clears the ALTFUNC bit. 0x0: No effect. Read 0x0: For I/O. 0x1: For an alternate function. 0 16 read-write GPIOx_ALTFUNC_EN GPIOx_ALTFUNC_EN GPIO alternative function enable register 0x18 32 read-write n 0x0 0xFFFFFFFF EN GPIO alternative function enable: Write: 0x1: Sets the ALTFUNC bit. 0x0: No effect. Read: 0x0: For I/O. 0x1: For an alternate function. 0 16 read-write GPIOx_DATA GPIOx_DATA GPIO data value register 0x0 32 read-write n 0x0 0xFFFFFFFF DATA GPIO read value: Read: Sampled at pin. Write: To data output register. Read back value goes through double flip-flop synchronization logic with a delay of two cycles. 0 16 read-write GPIOx_DATA_OUT GPIOx_DATA_OUT GPIO data output value register 0x4 32 read-write n 0x0 0xFFFFFFFF DATA_OUT GPIO output value: Read: Current value of data output register. Write: To data output register. 0 16 read-write GPIOx_INT_CLR GPIOx_INT_CLR GPIO interrupt enable clear register 0x24 32 read-write n 0x0 0xFFFFFFFF CLR GPIO interrupt enable clear: Write: 0x1: Clear the enable bit. 0x0: No effect. Read: 0x0: Interrupt disabled. 0x1: Interrupt enabled. 0 16 read-write GPIOx_INT_EN GPIOx_INT_EN GPIO interrupt enable register 0x20 32 read-write n 0x0 0xFFFFFFFF EN GPIO interrupt enable: Write: 0x1: Sets the enable bit. 0x0: No effect. Read: 0x0: Interrupt disabled. 0x1: Interrupt enabled. 0 16 read-write GPIOx_INT_POL_CLR GPIOx_INT_POL_CLR GPIO polarity-level, edge IRQ configuration clear register 0x34 32 read-write n 0x0 0xFFFFFFFF EN GPIO polarity-level, edge IRQ enable clear: Write 0x1: Clears the interrupt polarity bit. 0x0: No effect. Read 0x0: For LOW level or falling edge. 0x1: For HIGH level or rising edge. 0 16 read-write GPIOx_INT_POL_EN GPIOx_INT_POL_EN GPIO polarity-level, edge IRQ configuration register 0x30 32 read-write n 0x0 0xFFFFFFFF EN GPIO polarity-level, edge IRQ enable: Write 0x1: Sets the interrupt polarity bit. 0x0: No effect. Read 0x0: For LOW level or falling edge. 0x1: For HIGH level or rising edge. 0 16 read-write GPIOx_INT_STAT GPIOx_INT_STAT GPIO IRQ status register 0x38 32 read-write n 0x0 0xFFFFFFFF STAT_CLR Write one to clear interrupt. Read one to get interrupt status. Write 0x1: To clear the interrupt request. 0x0: No effect. Read IRQ status Register. 0 16 read-write GPIOx_INT_TYPE_CLR GPIOx_INT_TYPE_CLR GPIO interrupt type enable clear register 0x2C 32 read-write n 0x0 0xFFFFFFFF CLR GPIO interrupt type enable clear: Write: 0x1: Clears the interrupt type bit. 0x0: No effect. Read: 0x0: For LOW or HIGH level. 0x1: For falling edge or rising edge. 0 16 read-write GPIOx_INT_TYPE_EN GPIOx_INT_TYPE_EN GPIO interrupt type enable register 0x28 32 read-write n 0x0 0xFFFFFFFF EN GPIO interrupt type enable: Write 0x1: Sets the interrupt type bit. 0x0: No effect. Read 0x0: For LOW or HIGH level. 0x1: For falling edge or rising edge. 0 16 read-write GPIOx_OUT_CLR GPIOx_OUT_CLR GPIO output enable clear register 0x14 32 read-write n 0x0 0xFFFFFFFF CLR GPIO output enable clear: Write: 0x1: Clears the output enable bit. 0x0: No effect. Read: 0x0: Indicates the signal, direction as input. 0x1: Indicates the signal, direction as output. 0 16 read-write GPIOx_OUT_EN GPIOx_OUT_EN GPIO output enable register 0x10 32 read-write n 0x0 0xFFFFFFFF EN GPIO output enable: Write 0x1: Set the output enable bit. 0x0: No effect. Read 0x0: Indicates the signal, direction as input. 0x1: Indicates the signal, direction as output. 0 16 read-write GPIO1 General Purpose Input Output GPIO 0xA0011000 0x0 0x34 registers n EXT0 GPIO_0~GPIO15 interrupts 6 EXT1 GPIO_16~GPIO31 interrupts 7 GPIOx_ALTFUNC_CLR GPIOx_ALTFUNC_CLR GPIO alternative function enable clear register 0x1C 32 read-write n 0x0 0xFFFFFFFF CLR GPIO alternative function enable clear: Write 0x1: Clears the ALTFUNC bit. 0x0: No effect. Read 0x0: For I/O. 0x1: For an alternate function. 0 16 read-write GPIOx_ALTFUNC_EN GPIOx_ALTFUNC_EN GPIO alternative function enable register 0x18 32 read-write n 0x0 0xFFFFFFFF EN GPIO alternative function enable: Write: 0x1: Sets the ALTFUNC bit. 0x0: No effect. Read: 0x0: For I/O. 0x1: For an alternate function. 0 16 read-write GPIOx_DATA GPIOx_DATA GPIO data value register 0x0 32 read-write n 0x0 0xFFFFFFFF DATA GPIO read value: Read: Sampled at pin. Write: To data output register. Read back value goes through double flip-flop synchronization logic with a delay of two cycles. 0 16 read-write GPIOx_DATA_OUT GPIOx_DATA_OUT GPIO data output value register 0x4 32 read-write n 0x0 0xFFFFFFFF DATA_OUT GPIO output value: Read: Current value of data output register. Write: To data output register. 0 16 read-write GPIOx_INT_CLR GPIOx_INT_CLR GPIO interrupt enable clear register 0x24 32 read-write n 0x0 0xFFFFFFFF CLR GPIO interrupt enable clear: Write: 0x1: Clear the enable bit. 0x0: No effect. Read: 0x0: Interrupt disabled. 0x1: Interrupt enabled. 0 16 read-write GPIOx_INT_EN GPIOx_INT_EN GPIO interrupt enable register 0x20 32 read-write n 0x0 0xFFFFFFFF EN GPIO interrupt enable: Write: 0x1: Sets the enable bit. 0x0: No effect. Read: 0x0: Interrupt disabled. 0x1: Interrupt enabled. 0 16 read-write GPIOx_INT_POL_CLR GPIOx_INT_POL_CLR GPIO polarity-level, edge IRQ configuration clear register 0x34 32 read-write n 0x0 0xFFFFFFFF EN GPIO polarity-level, edge IRQ enable clear: Write 0x1: Clears the interrupt polarity bit. 0x0: No effect. Read 0x0: For LOW level or falling edge. 0x1: For HIGH level or rising edge. 0 16 read-write GPIOx_INT_POL_EN GPIOx_INT_POL_EN GPIO polarity-level, edge IRQ configuration register 0x30 32 read-write n 0x0 0xFFFFFFFF EN GPIO polarity-level, edge IRQ enable: Write 0x1: Sets the interrupt polarity bit. 0x0: No effect. Read 0x0: For LOW level or falling edge. 0x1: For HIGH level or rising edge. 0 16 read-write GPIOx_INT_STAT GPIOx_INT_STAT GPIO IRQ status register 0x38 32 read-write n 0x0 0xFFFFFFFF STAT_CLR Write one to clear interrupt. Read one to get interrupt status. Write 0x1: To clear the interrupt request. 0x0: No effect. Read IRQ status Register. 0 16 read-write GPIOx_INT_TYPE_CLR GPIOx_INT_TYPE_CLR GPIO interrupt type enable clear register 0x2C 32 read-write n 0x0 0xFFFFFFFF CLR GPIO interrupt type enable clear: Write: 0x1: Clears the interrupt type bit. 0x0: No effect. Read: 0x0: For LOW or HIGH level. 0x1: For falling edge or rising edge. 0 16 read-write GPIOx_INT_TYPE_EN GPIOx_INT_TYPE_EN GPIO interrupt type enable register 0x28 32 read-write n 0x0 0xFFFFFFFF EN GPIO interrupt type enable: Write 0x1: Sets the interrupt type bit. 0x0: No effect. Read 0x0: For LOW or HIGH level. 0x1: For falling edge or rising edge. 0 16 read-write GPIOx_OUT_CLR GPIOx_OUT_CLR GPIO output enable clear register 0x14 32 read-write n 0x0 0xFFFFFFFF CLR GPIO output enable clear: Write: 0x1: Clears the output enable bit. 0x0: No effect. Read: 0x0: Indicates the signal, direction as input. 0x1: Indicates the signal, direction as output. 0 16 read-write GPIOx_OUT_EN GPIOx_OUT_EN GPIO output enable register 0x10 32 read-write n 0x0 0xFFFFFFFF EN GPIO output enable: Write 0x1: Set the output enable bit. 0x0: No effect. Read 0x0: Indicates the signal, direction as input. 0x1: Indicates the signal, direction as output. 0 16 read-write HMAC Hash Message Authentication Code HMAC 0xA0015800 0x0 0x6C registers n HMAC HMAC interrupt 17 CFG CFG HMAC Configuration Register 0x4 32 read-write n 0x0 0xFFFFFFFF CALC_TYPE Select calculation type 0x0: HMAC 0x1: SHA 4 1 read-write ENDIAN Selection for endian ctrl 0x0: Reverse to big_endian(default) 0x1: No reverse 1 1 read-write HASH Select enable for user define hash 0x0: initial hash from standard(default) 0x1: user defined initial hash enable 0 1 read-write KEY_TYPE Select key type 0x0: Configured by MCU 0x1: Fetched through AHB interface 0x2: Fetched through key port 0x3: Reserved 2 2 read-write PRIVT_MOD To resist DPA, need to select private mode 0x0: Standard mode 0x1: Private mode 5 1 read-write CTRL CTRL HMAC Control Register 0x0 32 read-write n 0x0 0xFFFFFFFF DMA_START DMA mode start enable. Starting DMA transfer, this signal should be cleared after DMA have finished all transfer 1 1 read-write EN HMAC enable, high valid for whole HMAC processing, user must disable it once all block HMAC completes. This signal should be asserted until all blocks completes 0 1 read-write KEY_EN Enable HMAC fetch key by itself through AHB master interface or key port. This signal may be cleared by itself when aes_key_valid was set 2 1 write-only LST_TX Last block in MCU model or last DMA transfer. This signal may be cleared by itself when hmac_ready was set 3 1 write-only DATA_IN DATA_IN HMAC Data Input Register 0x44 32 write-only n 0x0 0xFFFFFFFF DATA MCU mode, user can configure input data with this register: 32-bit data should be sent 16/17 times. 0 32 write-only DATA_OUT DATA_OUT HMAC Data Output Register 0x40 32 read-only n 0x0 0xFFFFFFFF DATA MCU mode, user can read out result with this register: When all blocks of message were processed, 256 bit HMAC data should be read out 8/9 times. And HMAC data can be read when hmac_ready is valid. 0 32 read-only INT INT HMAC Interrupt Register 0x10 32 read-write n 0x0 0xFFFFFFFF DONE HMAC result data complete interrupt flag. Write 1 to clear. Read 0x0: Not interrupt 0x1: Interrupt Write 0x0: Not effect 0x1: Clear 0 1 read-write EN HMAC result data complete interrupt enable. 0x0: Disable 0x1: Enable 1 1 read-write KEY0 KEY0 HMAC Key 0 Register 0x48 32 write-only n 0x0 0xFFFFFFFF KEY0 Key was set as 256 bits (8 WORDs ), WORD_0 0 32 write-only KEY1 KEY1 HMAC Key 1 Register 0x4C 32 write-only n 0x0 0xFFFFFFFF KEY1 Key was set as 256 bits (8 WORDs ), WORD_1 0 32 write-only KEY2 KEY2 HMAC Key 2 Register 0x50 32 write-only n 0x0 0xFFFFFFFF KEY2 Key was set as 256 bits (8 WORDs ), WORD_2 0 32 write-only KEY3 KEY3 HMAC Key 3 Register 0x54 32 write-only n 0x0 0xFFFFFFFF KEY3 Key was set as 256 bits (8 WORDs ), WORD_3 0 32 write-only KEY4 KEY4 HMAC Key 4 Register 0x58 32 write-only n 0x0 0xFFFFFFFF KEY4 Key was set as 256 bits (8 WORDs ), WORD_4 0 32 write-only KEY5 KEY5 HMAC Key 5 Register 0x5C 32 write-only n 0x0 0xFFFFFFFF KEY5 Key was set as 256 bits (8 WORDs ), WORD_5 0 32 write-only KEY6 KEY6 HMAC Key 6 Register 0x60 32 write-only n 0x0 0xFFFFFFFF KEY6 Key was set as 256 bits (8 WORDs ), WORD_6 0 32 write-only KEY7 KEY7 HMAC Key 7 Register 0x64 32 write-only n 0x0 0xFFFFFFFF KEY7 Key was set as 256 bits (8 WORDs ), WORD_7 0 32 write-only KEYPORT_MASK KEYPORT_MASK HMAC Keyport Mask Register 0x6C 32 write-only n 0x0 0xFFFFFFFF MASK Mask for key from keyport 0 32 write-only KEY_ADDR KEY_ADDR HMAC Key Addr Register 0x68 32 read-write n 0x0 0xFFFFFFFF KEY_ADDR HMAC key address in memory 0 32 read-write RD_START_ADDR RD_START_ADDR HMAC Read Start Address Register 0x14 32 read-write n 0x0 0xFFFFFFFF ADDR DMA mode, read start address of transfer 0 32 read-write STAT STAT HMAC Status Register 0x8 32 read-write n 0x0 0xFFFFFFFF DMA_MSG_DONE If the number of all block message bigger than transfer size, it indicates all block message was sent when this signal was set 1 1 read-only DMA_TX_DONE HMAC dma transfer done or not 5 1 read-write DMA_TX_ERR HMAC DMA transfer error. Write 1 to clear 2 1 read-write HASH_READY Hash process status 0x0: Result data is not ready 0x1: Result data is valid 0 1 read-only HMAC_READY HMAC process status 0x0: Result data is not ready 0x1: Result data is valid 4 1 read-write KEY_VALID Hmac has fetched key or not 3 1 read-only USER_HASH_0 USER_HASH_0 HMAC User Hash 0 Register 0x20 32 read-write n 0x0 0xFFFFFFFF HASH_0 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[255:224] 0 32 read-write USER_HASH_1 USER_HASH_1 HMAC User Hash 1 Register 0x24 32 read-write n 0x0 0xFFFFFFFF HASH_1 If HASH is selected, you can configure user defined hash with USER_HASH_0/1/2/3/4/5/6/7. User defined hash value[223:192] 0 32 read-write USER_HASH_2 USER_HASH_2 HMAC User Hash 2 Register 0x28 32 read-write n 0x0 0xFFFFFFFF HASH_2 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[191:160] 0 32 read-write USER_HASH_3 USER_HASH_3 HMAC User Hash 3 Register 0x2C 32 read-write n 0x0 0xFFFFFFFF HASH_3 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[159:128] 0 32 read-write USER_HASH_4 USER_HASH_4 HMAC User Hash 4 Register 0x30 32 read-write n 0x0 0xFFFFFFFF HASH_4 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[127:96] 0 32 read-write USER_HASH_5 USER_HASH_5 HMAC User Hash 5 Register 0x34 32 read-write n 0x0 0xFFFFFFFF HASH_5 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[95:64] 0 32 read-write USER_HASH_6 USER_HASH_6 HMAC User Hash 6 Register 0x38 32 read-write n 0x0 0xFFFFFFFF HASH_6 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[63:32] 0 32 read-write USER_HASH_7 USER_HASH_7 HMAC User Hash 7 Register 0x3C 32 read-write n 0x0 0xFFFFFFFF HASH_7 If HASH is selected, you can configure user defined hash with USER_HASH_0 /1/2/3/4/5/6/7. User defined hash value[31:0] 0 32 read-write WR_START_ADDR WR_START_ADDR HMAC Write Start Address Register 0x18 32 read-write n 0x0 0xFFFFFFFF ADDR DMA mode, write start address of transfer 0 32 read-write XFE_SIZE XFE_SIZE HMAC Transfer Size Register 0xC 32 read-write n 0x0 0xFFFFFFFF SIZE Total transfer size, up to 32KB 0x003F: 1 block 0x007F: 2 block 0x00BF: 3 block - 0x7FFF: 512 block 0 15 read-write I2C0 The Inter-Integrated Circuit (I2C) bus is a two-wire serial interface I2C 0xA000C300 0x0 0xA4 registers n I2C0 I2C0 interrupt 14 I2C1 I2C1 interrupt 15 ACK_GEN_CALL ACK_GEN_CALL I2C ACK General Call Register 0x98 32 read-write n 0x1 0xFFFFFFFF ACK_GEN_CALL ACK General Call. When set to 1, I2C responds with an ACK (by asserting data_oe) when it receives a General Call. Otherwise, I2C responds with a NACK (by negating data_oe). 0x0: Generate NACK for General Call 0x1: Generate ACK for a General Call 0 1 read-write CLR_ACTIVITY CLR_ACTIVITY Clear ACTIVITY Interrupt Register 0x5C 32 read-only n 0x0 0xFFFFFFFF CLR_ACTIVITY Reading this register clears the ACTIVITY interrupt if the I2C is not active anymore. If the I2C module is still active on the bus, the ACTIVITY interrupt bit continues to be set. It is automatically cleared by hardware if the module is disabled and if there is no further activity on the bus. The value read from this register to get status of the ACTIVITY interrupt (bit 8) of the RAW_INT_STAT register. 0 1 read-only CLR_GEN_CALL CLR_GEN_CALL Clear GEN_CALL Interrupt Register 0x68 32 read-only n 0x0 0xFFFFFFFF CLR_GEN_CALL Read this register to clear the GEN_CALL interrupt (bit 11) of RAW_INT_STAT register. 0 1 read-only CLR_INT CLR_INT Clear Combined and Individual Interrupt Register 0x40 32 read-only n 0x0 0xFFFFFFFF CLR_INT Read this register to clear the combined interrupt, all individual interrupts, and the TX_ABORT_SRC register. This bit does not clear hardware clearable interrupts but software clearable interrupts. 0 1 read-only CLR_RD_REQ CLR_RD_REQ Clear RD_REQ Interrupt Register 0x50 32 read-only n 0x0 0xFFFFFFFF CLR_RD_REQ Read this register to clear the RD_REQ interrupt (bit 5) of the RAW_INT_STAT register. 0 1 read-only CLR_RX_DONE CLR_RX_DONE Clear RX_DONE Interrupt Register 0x58 32 read-only n 0x0 0xFFFFFFFF CLR_RX_DONE Read this register to clear the RX_DONE interrupt (bit 7) of the RAW_INT_STAT register. 0 1 read-only CLR_RX_OVER CLR_RX_OVER Clear RX_OVER Interrupt Register 0x48 32 read-only n 0x0 0xFFFFFFFF CLR_RX_OVER Read this register to clear the RX_OVER interrupt (bit 1) of the RAW_INT_STAT register 0 1 read-only CLR_RX_UNDER CLR_RX_UNDER Clear RX_UNDER Interrupt Register 0x44 32 read-only n 0x0 0xFFFFFFFF CLR_RX_UNDER Read this register to clear the RX_UNDER interrupt (bit 0) of the RAW_INT_STAT register 0 1 read-only CLR_START_DET CLR_START_DET Clear START_DET Interrupt Register 0x64 32 read-only n 0x0 0xFFFFFFFF CLR_START_DET Read this register to clear the START_DET interrupt (bit 10) of the RAW_INT_STAT register. 0 1 read-only CLR_STOP_DET CLR_STOP_DET Clear STOP_DET Interrupt Register 0x60 32 read-only n 0x0 0xFFFFFFFF CLR_STOP_DET Read this register to clear the STOP_DET interrupt (bit 9) of the RAW_INT_STAT register. 0 1 read-only CLR_TX_ABORT CLR_TX_ABORT Clear TX_ABORT Interrupt Register 0x54 32 read-only n 0x0 0xFFFFFFFF CLR_TX_ABORT Read this register to clear the TX_ABORT interrupt (bit 6) of the RAW_INT_STAT register, and the TX_ABORT_SRC register. 0 1 read-only CLR_TX_OVER CLR_TX_OVER Clear TX_OVER Interrupt Register 0x4C 32 read-only n 0x0 0xFFFFFFFF CLR_TX_OVER Read this register to clear the TX_OVER interrupt (bit 2) of the RAW_INT_STAT register 0 1 read-only CTRL CTRL I2C Control Register 0x0 32 read-write n 0x7F 0xFFFFFFFF ADDR_BIT_M When acting as a master, this bit controls whether the I2C starts its transfers in 7-bit or 10-bit addressing mode. 0x0: Master 7Bit addressing mode 0x1: Master 10Bit addressing mode 4 1 read-write ADDR_BIT_S When acting as a slave, this bit controls whether the I2C responds to 7- or 10-bit addresses. 0x0: Slave 7Bit addressing 0x1: Slave 10Bit addressing 3 1 read-write M_MODE This bit controls whether the I2C master is enabled. NOTE: Software should ensure that if this bit is written with '1' then bit 6 should also be written with a '1'. 0x0: Master mode is disabled 0x1: Master mode is enabled 0 1 read-write RESTART_EN Determines whether RESTART conditions may be sent when acting as a master. Some older slaves do not support handling RESTART conditions however, RESTART conditions are used in several I2C operations. When RESTART is disabled, the master is prohibited from performing the following functions: • Sending a START BYTE • Performing any high-speed mode operation • High-speed mode operation • Performing direction changes in combined format mode • Performing a read operation with a 10-bit address By replacing RESTART condition followed by a STOP and a subsequent START condition, split operations are broken down into multiple I2C transfers. If the above operations are performed, it will result in setting bit 6 (TX_ABORT) of the RAW_INTR_STAT register. 0x0: Master restart disabled 0x1: Master restart enabled 5 1 read-write SPEED These bits control at which speed the I2C operates its setting is relevant only if one is operating the I2C in master mode. Hardware protects against illegal values being programmed by software. These bits must be programmed appropriately for slave mode also, as it is used to capture correct value of spike filter as per the speed mode. This register should be programmed only with a value in the range of 1 to 3. 0x1: Standard Speed mode of operation(100 kbit/s) 0x2: Fast( ≤400 kbit/s) or Fast Plus(≤1000Kbit/s) mode of operation 0x3: High Speed mode of operation(3.4 Mbit/s) 1 2 read-write STOP_DET_INT In slave mode 0x0: Issues the STOP_DET irrespective of whether it's addressed or not 0x1: Issues the STOP_DET interrrupt only when it is addressed NOTE: During a general call address, this slave does not issue the STOP_DET interrupt if STOP_DET_INT = 1, even if the slave responds to the general call address by generating ACK. The STOP_DET interrupt is generated only when the transmitted address matches the slave address (S_ADDR). 0x0: Slave issues STOP_DET intr always 0x1: Slave issues STOP_DET intr only if addressed 7 1 read-write STOP_DET_M_ACTIVE In Master mode 0x1: issues the STOP_DET interrupt only when master is active. 0x0: issues the STOP_DET irrespective of whether master is active or not. 0x1: Master issues the STOP_DET interrupt only when master is active 0x0: Master issues the STOP_DET interrupt irrespective of whether master is active or not 10 1 read-write S_DIS This bit controls whether I2C has its slave disabled. By default, the slave is always disabled (in reset state as well). If you need to enable it after reset, set this bit to 0. If this bit is set (slave is disabled), I2C functions only as a master and does not perform any action that requires a slave. NOTE: Software should ensure that if this bit is written with 0, then bit 0 should also be written with a 0. Value: 0x0: Slave mode is enabled 0x1: Slave mode is disabled 6 1 read-write TX_EMPTY_CTRL This bit controls the generation of the TX_EMPTY interrupt, as described in the RAW_INTR_STAT register. 0x0: Default disable behaviour of TX_EMPTY interrupt 0x1: Controlled enable generation of TX_EMPTY interrupt 8 1 read-write DATA_CMD DATA_CMD I2C RX/TX Data Buffer and Command Register 0x10 32 read-write n 0x0 0xFFFFFFFF CMD This bit controls whether a read or a write is performed. This bit does not control the direction when the I2C acts as a slave. It controls only the direction when it acts as a master. 0x0: Master Write command 0x1: Master Read command 8 1 read-write DATA This register contains the data to be transmitted or received on the I2C bus. If you are writing to this register and want to perform a read, bits 7:0 (DATA) are ignored by the I2C. However, when you read this register, these bits return the value of data received on the I2C interface. 0 8 read-write DMA_CTRL DMA_CTRL DMA Control Register 0x88 32 read-write n 0x0 0xFFFFFFFF RX_EN Receive DMA Enable. This bit enables/disables the receive FIFO DMA channel. 0x0: Receive FIFO DMA channel disabled 0x1: Receive FIFO DMA channel enabled 0 1 read-write TX_EN Transmit DMA Enable. This bit enables/disables the transmit FIFO DMA channel. 0x0: Transmit FIFO DMA channel disabled 0x1: Transmit FIFO DMA channel enabled 1 1 read-write DMA_RX_LEVEL DMA_RX_LEVEL DMA Receive Data Level Register 0x90 32 read-write n 0x0 0xFFFFFFFF LEVEL Receive Data Level. This bit field controls the level at which a DMA request is made by the receive logic. 0 3 read-write DMA_TX_LEVEL DMA_TX_LEVEL DMA Transmit Data Level Register 0x8C 32 read-write n 0x0 0xFFFFFFFF LEVEL Transmit Data Level. This bit field controls the level at which a DMA request is made by the transmit logic. 0 3 read-write EN EN I2C ENABLE Register 0x6C 32 read-write n 0x0 0xFFFFFFFF ABORT When set, the controller initiates the transfer abort. The software can abort the I2C transfer in master mode by setting this bit. The software can set this bit only when ENABLE is already set otherwise, the controller ignores any write to ABORT bit. The software cannot clear the ABORT bit once set. In response to an ABORT, the controller issues a STOP and flushes the TX FIFO after completing the current transfer, then sets the TX_ABORT interrupt after the abort operation. The ABORT bit is cleared automatically after the abort operation. 0x0: ABORT operation not in progress 0x1: ABORT operation in progress 1 1 read-write ACTIVITY Controls whether the I2C is enabled. Software can disable I2C while it is active. However, it is important that care be taken to ensure that I2C is disabled properly. A recommended procedure is described in Disabling I2C . When I2C is disabled, the following occurs: The TX FIFO and RX FIFO get flushed. Status bits in the INTR_STAT register are still active until I2C goes into IDLE state. If the module is transmitting, it stops as well as deletes the contents of the transmit buffer after the current transfer is complete. If the module is receiving, the I2C stops the current transfer at the end of the current byte and does not acknowledge the transfer. 0x0: I2C is disabled 0x1: I2C is enabled 0 1 read-only TX_CMD_BLOCK In Master mode 0x0: TX Command execution not blocked 0x1: TX Command execution blocked 2 1 read-write EN_STAT EN_STAT I2C Enable Status Register 0x9C 32 read-only n 0x0 0xFFFFFFFF EN EN Status. This bit always reflects the value driven on the output port en. When read as 1, I2C is deemed to be in an enabled state. When read as 0, I2C is deemed completely inactive. Note:The CPU can safely read this bit anytime. When this bit is read as 0, the CPU can safely read S_RX_DATA_LOST (bit 2) and S_DIS_BUSY (bit 1). 0x0: I2C disabled 0x1: I2C enabled 0 1 read-only S_DIS_BUSY Slave Disabled While Busy (Transmit, Receive). This bit indicates if a potential or active Slave operation has been aborted due to the setting bit 0 of the ENregister from 1 to 0. This bit is set when the CPU writes a 0 to the EN register while • I2C is receiving the address byte of the Slave-Transmitter operation from a remote master or • Address and data bytes of the Slave-Receiver operation from a remote master. When read as 1, I2C is deemed to have forced a NACK during any part of an I2C transfer, irrespective of whether the I2C address matches the slave address set in I2C (S_ADDR register) OR if the transfer is completed before ENABLE is set to 0 but has not taken effect. Note: If the remote I2C master terminates the transfer with a STOP condition before the I2C has a chance to NACK a transfer, and EN[0] has been set to 0, then this bit will also be set to 1. When read as 0, I2C is deemed to have been disabled when there is master activity, or when the I2C bus is idle. Note: The CPU can safely read this bit when EN (bit 0) is read as 0. 0x0: Slave is disabled when it is idle 0x1: Slave is disabled when it is active 1 1 read-only S_RX_DATA_LOST Slave Received Data Lost. This bit indicates if a Slave-Receiver operation has been aborted with at least one data byte received from an I2C transfer due to the setting bit 0 of EN from 1 to 0. When read as 1, I2C is deemed to have been actively engaged in an aborted I2C transfer (with matching address) and the data phase of the I2C transfer has been entered, even though a data byte has been responded with a NACK. Note: If the remote I2C master terminates the transfer with a STOP condition before the I2C has a chance to NACK a transfer, and EN[0] has been set to 0, then this bit is also set to 1. When read as 0, I2C is deemed to have been disabled without being actively involved in the data phase of a Slave-Receiver transfer. Note: The CPU can safely read this bit when EN (bit 0) is read as 0. 0x0: Slave RX Data is not lost 0x1: Slave RX Data is lost 2 1 read-only FS_CLK_HCOUNT FS_CLK_HCOUNT Fast Mode or Fast Mode Plus I2C Clock SCL High Count Register 0x1C 32 read-write n 0x3C 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6 hardware prevents values less than this being written, and if attempted results in 6 being set. 0 16 read-write FS_CLK_LCOUNT FS_CLK_LCOUNT Fast Mode or Fast Mode Plus I2C Clock SCL Low Count Register 0x20 32 read-write n 0x82 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 8 hardware prevents values less than this being written, and if attempted results in 8 being set. 0 16 read-write FS_SPKLEN FS_SPKLEN I2C SS, FS or FM+ spike suppression limit 0xA0 32 read-write n 0x5 0xFFFFFFFF FS_SPKLEN This register must be set before any I2C bus transaction can take place to ensure stable operation. This register sets the duration, measured in clock cycles, of the longest spike in the SCL or SDA lines that will be filtered out by the spike suppression logic. This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 1 hardware prevents values less than this being written, and if attempted results in 1 being set. 0 8 read-write HS_CLK_HCOUNT HS_CLK_HCOUNT High Speed I2C Clock SCL High Count Register 0x24 32 read-write n 0x6 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. The SCL High time depends on the loading of the bus. For 100pF loading, the SCL High time is 60ns for 400pF loading, the SCL High time is 120ns. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6 hardware prevents values less than this being written, and if attempted results in 6 being set. 0 16 read-write HS_CLK_LCOUNT HS_CLK_LCOUNT High Speed I2C Clock SCL Low Count Register 0x28 32 read-write n 0x10 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. The SCL low time depends on the loading of the bus. For 100pF loading, the SCL low time is 160ns for 400pF loading, the SCL low time is 320ns. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. 0 16 read-write HS_SPKLEN HS_SPKLEN I2C HS spike suppression limit register 0xA4 32 read-write n 0x1 0xFFFFFFFF HS_SPKLEN This register must be set before any I2C bus transaction can take place to ensure stable operation. This register sets the duration, measured in clock cycles, of the longest spike in the SCL or SDA lines that will be filtered out by the spike suppression logic for more information, refer to Spike Suppression This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 1 hardware prevents values less than this being written, and if attempted results in 1 being set. 0 8 read-write INT_MASK INT_MASK I2C Interrupt Mask Register 0x30 32 read-write n 0x8FF 0xFFFFFFFF MASK_ACTIVITY This bit masks the RAW_ACTIVITY interrupt in INT_STAT register. 0x0: ACTIVITY interrupt is masked 0x1: ACTIVITY interrupt is unmasked 8 1 read-write MASK_GEN_CALL This bit masks the RAW_GEN_CALL interrupt in INT_STAT register. 0x0: GEN_CALL interrupt is masked 0x1: GEN_CALL interrupt is unmasked 11 1 read-write MASK_RD_REQ This bit masks the RAW_RD_REQ interrupt in INT_STAT register. 0x0: RD_REQ interrupt is masked 0x1: RD_REQ interrupt is unmasked 5 1 read-write MASK_RX_DONE This bit masks the RAW_RX_DONE interrupt in INT_STAT register. 0x0: RX_DONE interrupt is masked 0x1: RX_DONE interrupt is unmasked 7 1 read-write MASK_RX_FULL This bit masks the RAW_RX_FULL interrupt in INT_STAT register. 0x0: RX_FULL interrupt is masked 0x1: RX_FULL interrupt is unmasked 2 1 read-write MASK_RX_OVER This bit masks the RAW_RX_OVER interrupt in INT_STAT register. 0x0: RX_OVER interrupt is masked 0x1: RX_OVER interrupt is unmasked 1 1 read-write MASK_RX_UNDER This bit masks the RAW_RX_UNDER interrupt in INT_STAT register. 0x0: RX_UNDER interrupt is masked 0x1: RX_UNDER interrupt is unmasked 0 1 read-write MASK_START_DET This bit masks the RAW_START_DET interrupt in INT_STAT register. 0x0: START_DET interrupt is masked 0x1: START_DET interrupt is unmasked 10 1 read-write MASK_STOP_DET This bit masks the RAW_STOP_DET interrupt in INT_STAT register. 0x0: STOP_DET interrupt is masked 0x1: STOP_DET interrupt is unmasked 9 1 read-write MASK_TX_ABORT This bit masks the RAW_TX_ABORT interrupt in INT_STAT register. 0x0: TX_ABORT interrupt is masked 0x1: TX_ABORT interrupt is unmasked 6 1 read-write MASK_TX_EMPTY This bit masks the RAW_TX_EMPTY interrupt in INT_STAT register. 0x0: TX_EMPTY interrupt is masked 0x1: TX_EMPTY interrupt is unmasked 4 1 read-write MASK_TX_OVER This bit masks the RAW_TX_OVER interrupt in INT_STAT register. 0x0: TX_OVER interrupt is masked 0x1: TX_OVER interrupt is unmasked 3 1 read-write INT_STAT INT_STAT I2C Interrupt Status Register 0x2C 32 read-only n 0x0 0xFFFFFFFF RAW_ACTIVITY See RAW_INT_STAT for a detailed description of ACTIVITY bit. 0x0: RAW_ACTIVITY interrupt is inactive 0x1: RAW_ACTIVITY interrupt is active 8 1 read-only RAW_GEN_CALL See RAW_INT_STAT for a detailed description of GEN_CALL bit. 0x0: RAW_GEN_CALL interrupt is inactive 0x1: RAW_GEN_CALL interrupt is active 11 1 read-only RAW_M_HOLD See RAW_INT_STAT for a detailed description of M_HOLD bit. 0x0: RAW_M_HOLD interrupt is inactive 0x1: RAW_M_HOLD interrupt is active 13 1 read-only RAW_RD_REQ See RAW_INT_STAT for a detailed description of RD_REQ bit. 0x0: RAW_RD_REQ interrupt is inactive 0x1: RAW_RD_REQ interrupt is active 5 1 read-only RAW_RESTART_DET See RAW_INT_STAT for a detailed description of RESTART_DET bit. 0x0: RAW_RESTART_DET interrupt is inactive 0x1: RAW_RESTART_DET interrupt is active 12 1 read-only RAW_RX_DONE See RAW_INT_STAT for a detailed description of RX_DONE bit. 0x0: RAW_RX_DONE interrupt is inactive 0x1: RAW_RX_DONE interrupt is active 7 1 read-only RAW_RX_FULL See RAW_INT_STAT for a detailed description of RX_FULL bit. 0x0: RAW_RX_FULL interrupt is inactive 0x1: RAW_RX_FULL interrupt is active 2 1 read-only RAW_RX_OVER See RAW_INT_STAT for a detailed description of RX_OVER bit. 0x0: RAW_RX_OVER interrupt is inactive 0x1: RAW_RX_OVER interrupt is active 1 1 read-only RAW_RX_UNDER See RAW_INT_STAT for a detailed description of RX_UNDER bit. 0x0: RAW_RX_UNDER interrupt is inactive 0x1: RAW_RX_UNDER interrupt is active 0 1 read-only RAW_START_DET See RAW_INT_STAT for a detailed description of START_DET bit. 0x0: RAW_START_DET interrupt is inactive 0x1: RAW_START_DET interrupt is active 10 1 read-only RAW_STOP_DET See RAW_INT_STAT for a detailed description of STOP_DET bit. 0x0: RAW_STOP_DET interrupt is inactive 0x1: RAW_STOP_DET interrupt is active 9 1 read-only RAW_TX_ABORT See RAW_INT_STAT for a detailed description of TX_ABORT bit. 0x0: RAW_TX_ABORT interrupt is inactive 0x1: RAW_TX_ABORT interrupt is active 6 1 read-only RAW_TX_EMPTY See RAW_INT_STAT for a detailed description of TX_EMPTY bit. 0x0: RAW_TX_EMPTY interrupt is inactive 0x1: RAW_TX_EMPTY interrupt is active 4 1 read-only RAW_TX_OVER See RAW_INT_STAT for a detailed description of TX_OVER bit. 0x0: RAW_TX_OVER interrupt is inactive 0x1: RAW_TX_OVER interrupt is active 3 1 read-only M_HS_ADDR M_HS_ADDR I2C High-Speed Master Mode Code Address Register 0xC 32 read-write n 0x1 0xFFFFFFFF HS_ADDR This bit field holds the value of the I2C High Speed mode master code. High Speed mode master codes are reserved 8-bit codes (00001xxx) that are not used for slave addressing or other purposes. Each master has its unique master code up to eight high-speed mode masters can be present on the same I2C bus system. Valid values are from 0 to 7. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. 0 3 read-write RAW_INT_STAT RAW_INT_STAT I2C Raw Interrupt Status Register 0x34 32 read-only n 0x0 0xFFFFFFFF ACTIVITY This bit captures I2C activity and stays set until it is cleared. There are four ways to clear it. Disabling the I2C Reading the CLR_ACTIVITY register Reading the CLR_INT register System reset Once this bit is set, it stays set unless one of the four methods is used to clear it. Even if the I2C module is idle, this bit remains set until cleared, indicating that there was activity on the bus. 0x0: RAW_INT_ACTIVITY interrupt is inactive 0x1: RAW_INT_ACTIVITY interrupt is active 8 1 read-only GEN_CALL Set only when a General Call address is received and it is acknowledged. It stays set until it is cleared either by disabling I2C or when the CPU reads bit 0 of the CLR_GEN_CALL register. I2C stores the received data in the RX buffer. 0x0: GEN_CALL interrupt is inactive 0x1: GEN_CALL interrupt is active 11 1 read-only M_HOLD Indicates whether master is holding the bus and TX FIFO is empty. 0x0: MASTER_ON_HOLD interrupt is inactive 0x1: MASTER_ON_HOLD interrupt is active 13 1 read-only RD_REQ This bit is set to 1 when I2C is acting as a slave and another I2C master is attempting to read data from I2C. The I2C holds the I2C bus in a wait state (SCL=0) until this interrupt is serviced, which means that the slave has been addressed by a remote master that is asking for data to be transferred. The processor must respond to this interrupt and then write the requested data to the DATA_CMD register. This bit is set to 0 just after the processor reads the CLR_RD_REQ register. Value: 0x0: RD_REQ interrupt is inactive 0x1: RD_REQ interrupt is active 5 1 read-only RESTART_DET Indicates whether a RESTART condition has occurred on the I2C interface when I2C is operating in Slave mode and the slave is being addressed. Note: However, in high-speed mode or during a START BYTE transfer, the RESTART comes before the address field as per the I2C protocol. In this case, the slave is not the addressed slave when the RESTART is issued, therefore I2C does not generate the RESTART_DET interrupt. 0x0: RESTART_DET interrupt is inactive 0x1: RESTART_DET interrupt is active 12 1 read-only RX_DONE When the I2C is acting as a slave-transmitter, this bit is set to 1 if the master does not acknowledge a transmitted byte. This occurs on the last byte of the transmission, indicating that the transmission is done. 0x0: RX_DONE interrupt is inactive 0x1: RX_DONE interrupt is active 7 1 read-only RX_FULL Set when the receive buffer reaches or goes above the FIFO_THD threshold in the RX_FIFO_THD register. It is automatically cleared by hardware when buffer level goes below the threshold. If the module is disabled (EN[0]=0), the RX FIFO is flushed and held in reset therefore the RX FIFO is not full. So this bit is cleared once the ENABLE bit 0 is programmed with a 0, regardless of the activity that continues. 0x0: RX_FULL interrupt is inactive 0x1: RX_FULL interrupt is active 2 1 read-only RX_OVER Set if the receive buffer is completely filled to 8 and an additional byte is received from an external I2C device. The I2C acknowledges this, but any data bytes received after the FIFO is full are lost. If the module is disabled (EN[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when en goes to 0, this interrupt is cleared. 0x0: RX_OVER interrupt is inactive 0x1: RX_OVER interrupt is active 1 1 read-only RX_UNDER Set if the processor attempts to read the receive buffer when it is empty by reading from the DATA_CMD register. If the module is disabled (EN[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when en goes to 0, this interrupt is cleared. 0x0: RX_UNDER interrupt is inactive 0x1: RX_UNDER interrupt is active 0 1 read-only START_DET Indicates whether a START or RESTART condition has occurred on the I2C interface regardless of whether I2C is operating in slave or master mode. 0x0: START_DET interrupt is inactive 0x1: START_DET interrupt is active 10 1 read-only STOP_DET Indicates whether a STOP condition has occurred on the I2C interface regardless of whether I2C is operating in slave or master mode. In Slave Mode: If CTRL[7] = 0x1 (STOP_DET_INT), the STOP_DET interrupt will be issued only if slave is addressed. Note: During a general call address, this slave does not issue a STOP_DET interrupt if STOP_DET_INT = 0x1, even if the slave responds to the general call address by generating ACK. The STOP_DET interrupt is generated only when the transmitted address matches the slave address (S_ADDR). If CTRL[7] = 0x0 (STOP_DET_INT), the STOP_DET interrupt is issued irrespective of whether it is being addressed. In Master Mode: If CTRL[10] = 0x1 (STOP_DET_M_ACTIVE),the STOP_DET interrupt will be issued only if Master is active. If CTRL[10] = 0x0 (STOP_DET_M_ACTIVE),the STOP_DET interrupt will be issued irrespective of whether master is active or not. 0x0: STOP_DET interrupt is inactive 0x1: STOP_DET interrupt is active 9 1 read-only TX_ABORT This bit indicates if I2C, as an I2C transmitter, is unable to complete the intended actions on the contents of the transmit FIFO. This situation can occur both as an I2C master or an I2C slave, and is referred to as a 'transmit abort'. When this bit is set to 1, the TX_ABORT_SRC register indicates the reason why the transmit abort takes places. Note: The I2C flushes/resets/empties only the TX_FIFO whenever there is a transmit abort caused by any of the events tracked by the TX_ABORT_SRC register. The TX FIFO remains in this flushed state until the register CLR_TX_ABORT is read. Once this read is performed, the TX FIFO is then ready to accept more data bytes from the APB interface. 0x0: TX_ABORT interrupt is inactive 0x1: TX_ABORT interrupt is active 6 1 read-only TX_EMPTY The behavior of the TX_EMPTY interrupt status differs based on the TX_EMPTY_CTRL selection in the CTRL register. When TX_EMPTY_CTRL = 0: This bit is set to 1 when the transmit buffer is at or below the threshold value set in the TX_TL register. When TX_EMPTY_CTRL = 1: This bit is set to 1 when the transmit buffer is at or below the threshold value set in the TX_FIFO_THD register and the transmission of the address/data from the internal shift register for the most recently popped command is completed. It is automatically cleared by hardware when the buffer level goes above the threshold. When EN[0] is set to 0, the TX FIFO is flushed and held in reset. There the TX FIFO looks like it has no data within it, so this bit is set to 1, provided there is activity in the master or slave state machines. When there is no longer any activity, then with en=0, this bit is set to 0. Value: 0x0: TX_EMPTY interrupt is inactive 0x1: TX_EMPTY interrupt is active 4 1 read-only TX_OVER Set during transmit if the transmit buffer is filled to 8 and the processor attempts to issue another I2C command by writing to the DATA_CMD register. When the module is disabled, this bit keeps its level until the master or slave state machines go into idle, and when en goes to 0, this interrupt is cleared. Value: 0x0: TX_OVER interrupt is inactive 0x1: TX_OVER interrupt is active 3 1 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL I2C Receive FIFO Level Register 0x78 32 read-only n 0x0 0xFFFFFFFF LEVEL Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. 0 4 read-only RX_FIFO_THD RX_FIFO_THD I2C Receive FIFO Threshold Register 0x38 32 read-write n 0x0 0xFFFFFFFF THD Receive FIFO Threshold Level. Controls the level of entries (or above) that triggers the RX_FULL interrupt (bit 2 in RAW_INT_STAT register). The valid range is 0-255, with the additional restriction that hardware does not allow this value to be set to a value larger than the depth of the buffer. If an attempt is made to do that the actual value set will be the maximum depth of the buffer. A value of 0 sets the threshold for 1 entry, and a value of 255 sets the threshold for 256 entries. 0 8 read-write SDA_HOLD SDA_HOLD I2C SDA Hold Time Length Register 0x7C 32 read-write n 0x1 0xFFFFFFFF RX_HOLD Sets the required SDA hold time in units of clock period, when I2C acts as a receiver. 16 8 read-write TX_HOLD Sets the required SDA hold time in units of clock period, when I2C acts as a transmitter. 0 16 read-write SDA_SETUP SDA_SETUP I2C SDA Setup Register 0x94 32 read-write n 0x64 0xFFFFFFFF SETUP SDA Setup. It is recommended that if the required delay is 1000ns, then for a clk frequency of 10 MHz, SDA_SETUP should be programmed to a value of 11. SDA_SETUP must be programmed with a minimum value of 2 0 8 read-write SS_CLK_HCOUNT SS_CLK_HCOUNT Standard Speed I2C Clock SCL High Count Register 0x14 32 read-write n 0x190 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6 hardware prevents values less than this being written, and if attempted results in 6 being set. NOTE: This register must not be programmed to a value higher than 65525, because I2C uses a 16-bit counter to flag an I2C bus idle condition when this counter reaches a value of COUNT + 10. 0 16 read-write SS_CLK_LCOUNT SS_CLK_LCOUNT Standard Speed I2C Clock SCL Low Count Register 0x18 32 read-write n 0x1D6 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 8 hardware prevents values less than this being written, and if attempted, results in 8 being set. 0 16 read-write STAT STAT I2C STATUS Register 0x70 32 read-only n 0x6 0xFFFFFFFF ACTIVITY I2C Activity Status. 0x0: I2C is idle 0x1: I2C is active 0 1 read-only M_ACTIVITY Master Activity Status. When the Master is not in the IDLE state, this bit is set. Note: STAS[0], ACTIVITY bit,-is the OR of S_ACTIVITY and M_ACTIVITY bits. 0x0: Master is idle 0x1: Master not idle 5 1 read-only RX_FIFO_CF Receive FIFO Completely Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0x0: RX FIFO not full 0x1: RX FIFO is full 4 1 read-only RX_FIFO_NE Receive FIFO Not Empty. This bit is set when the receive FIFO contains one or more entries it is cleared when the receive FIFO is empty. 0x0: RX FIFO is empty 0x1: RX FIFO not empty 3 1 read-only S_ACTIVITY Slave Activity Status. When the Slaveis not in the IDLE state, this bit is set. 0x0: Slave is idle 0x1: Slave not idle 6 1 read-only TX_FIFO_CE Transmit FIFO Completely Empty. When the transmit FIFO is completely empty, this bit is set. When it contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0x0: TX FIFO not empty 0x1: TX FIFO is empty 2 1 read-only TX_FIFO_NF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0x0: TX FIFO is full 0x1: TX FIFO not full 1 1 read-only S_ADDR S_ADDR I2C Slave Address Register 0x8 32 read-write n 0x55 0xFFFFFFFF S_ADDR The S_ADDR holds the slave address when the I2C is operating as a slave. For 7-bit addressing, only S_ADDR[6:0] is used. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. Note:The default values cannot be any of the reserved address locations: 0x00 to 0x07, or 0x78 to 0x7f. The correct operation of the device is not guaranteed if you program the S_ADDR or TARGET to a reserved value. Refer to Table 10 7 I2C Definition of bits in first byte for a complete list of these reserved values. 0 10 read-write TARGET_ADDR TARGET_ADDR I2C Target Address Register 0x4 32 read-write n 0x55 0xFFFFFFFF SPECIAL This bit indicates whether software performs a Device-ID or General Call or START BYTE command. 0x0: Disables programming of GENERAL_CALL or START_BYTE transmission 0x1: Enables programming of GENERAL_CALL or START_BYTE transmission 11 1 read-write TARGET This is the target address for any master transaction. When transmitting a General Call, these bits are ignored. To generate a START BYTE, the CPU needs to write only once into these bits. If the TARGET and S_ADDR are the same, loopback exists but the FIFOs are shared between master and slave, so full loopback is not feasible. Only one direction loopback mode is supported (simplex), not duplex. A master cannot transmit to itself it can transmit to only a slave 0 10 read-write TX_CTRL If bit 11 (SPECIAL) is set to 1, then this bit indicates whether a General Call or START byte command is to be performed by the I2C. 0x0: GENERAL_CALL byte transmission 0x1: START byte transmission 10 1 read-write TX_ABORT_SRC TX_ABORT_SRC I2C SDA Hold Time Length Register 0x80 32 read-only n 0x0 0xFFFFFFFF ABORT_10B1_NOACK This field indicates that the Master is in 10-bit address mode and the first 10-bit address byte was not acknowledged by any slave. Role of I2C: Master-Transmitter or Master-Receiver 0x0: This abort is not generated 0x1: Byte 1 of 10Bit Address not ACKed by any slave 1 1 read-only ABORT_10B2_NOACK This field indicates that the Master is in 10-bit address mode and that the second address byte of the 10-bit address was not acknowledged by any slave. Role of I2C: Master-Transmitter or Master-Receiver 0x0: This abort is not generated 0x1: Byte 2 of 10Bit Address not ACKed by any slave 2 1 read-only ABORT_10B_RD_NORSTR This field indicates that the restart is disabled (RESTART_EN bit (CON[5]) =0) and the master sends a read command in 10-bit addressing mode. Role of I2C: Master-Receiver Value: 0x0: Master not trying to read in 10Bit addressing mode when RESTART disabled 0x1: Master trying to read in 10Bit addressing mode when RESTART disabled 10 1 read-only ABORT_7B_NOACK his field indicates that the Master is in 7-bit addressing mode and the address sent was not acknowledged by any slave. Role of I2C: Master-Transmitter or Master-Receiver 0x0: This abort is not generated 0x1: This abort is generated because of NACK for 7-bit address 0 1 read-only ABORT_GCALL_NOACK This field indicates that I2C in master mode has sent a General Call and no slave on the bus acknowledged the General Call. Role of I2C: Master-Transmitter 0x0: GCALL not ACKed by any slave-scenario not present 0x1: GCALL not ACKed by any slave 4 1 read-only ABORT_GCALL_RD This field indicates that I2C in the master mode has sent a General Call but the user programmed the byte following the General Call to be a read from the bus (DATA_CMD[9] is set to 1). Role of I2C: Master-Transmitter 0x0: GCALL is followed by read from bus-scenario not present 0x1: GCALL is followed by read from bus 5 1 read-only ABORT_HS_ACKDET This field indicates that the Master is in High Speed mode and the High Speed Master code was acknowledged (wrong behavior). Role of I2C: Master 0x0: HS Master code ACKed in HS Mode- scenario not present 0x1: HS Master code ACKed in HS Mode 6 1 read-only ABORT_HS_NORSTRT This field indicates that the restart is disabled (RESTART_EN bit (CON[5]) =0) and the user is trying to use the master to transfer data in High Speed mode. Role of I2C: Master-Transmitter or Master-Receiver 0x0: User trying to switch Master to HS mode when RESTART disabled- scenario not present 0x1: User trying to switch Master to HS mode when RESTART disabled 8 1 read-only ABORT_LOST This field specifies that the Master has lost arbitration, or if TX_ABORT_SRC[14] is also set, then the slave transmitter has lost arbitration. Role of I2C: Master-Transmitter or Slave-Transmitter 0x0: Master or Slave-Transmitter lost arbitration- scenario not present 0x1: Master or Slave-Transmitter lost arbitration 12 1 read-only ABORT_MASTER_DIS This field indicates that the User tries to initiate a Master operation with the Master mode disabled. Role of I2C: Master-Transmitter or Master-Receiver 0x: User initiating master operation when MASTER disabled- scenario not present 0x1: User intitating master operation when MASTER disabled 11 1 read-only ABORT_SBYTE_ACKDET This field indicates that the Master has sent a START Byte and the START Byte was acknowledged (wrong behavior). Role of I2C: Master 0x0: ACK detected for START byte- scenario not present 0x1: ACK detected for START byte 7 1 read-only ABORT_SBYTE_NORSTRT To clear Bit 9, the source of the ABORT_SBYTE_NORSTRT must be fixed first restart must be enabled (CTRL[5]=1), the SPECIAL bit must be cleared (TARGET[11]), or the GC_OR_START bit must be cleared TARGET[10]). Once the source of the ABORT_SBYTE_NORSTRT is fixed, then this bit can be cleared in the same manner as other bits in this register. If the source of the ABORT_SBYTE_NORSTRT is not fixed before attempting to clear this bit, bit 9 clears for one cycle and then gets reasserted. When this field is set to 1, the restart is disabled (RESTART_EN bit (CTRL[5]) =0) and the user is trying to send a START Byte. Role of I2C: Master 0x0: User trying to send START byte when RESTART disabled- scenario not present 0x1: User trying to send START byte when RESTART disabled 9 1 read-only ABORT_SLVFLUSH_TXFIFO This field specifies that the Slave has received a read command and some data exists in the TX FIFO, so the slave issues a TX_ABORT interrupt to flush old data in TX FIFO. Role of I2C: Slave-Transmitter 0x0: Slave flushes existing data in TX-FIFO upon getting read command- scenario not present 0x1: Slave flushes existing data in TX-FIFO upon getting read command 13 1 read-only ABORT_SLVRD_INTX When the processor side responds to a slave mode request for data to be transmitted to a remote master and user writes a 1 in CMD (bit 8) of DATA_CMD register. Role of I2C: Slave-Transmitter 0x0: Slave trying to transmit to remote master in read mode- scenario not present 0x1: Slave trying to transmit to remote master in read mode 15 1 read-only ABORT_S_ARBLOST This field indicates that a Slave has lost the bus while transmitting data to a remote master. TX_ABORT_SRC[12] is set at the same time. Note: Even though the slave never 'owns' the bus, something could go wrong on the bus. This is a fail safe check. For instance, during a data transmission at the low-to-high transition of SCL, if what is on the data bus is not what is supposed to be transmitted, then I2C no longer own the bus. Role of I2C: Slave-Transmitter 0x0: Slave lost arbitration to remote master- scenario not present 0x1 : Slave lost arbitration to remote master 14 1 read-only ABORT_TX_NOACK This field indicates the master-mode only bit. When the master receives an acknowledgement for the address, but when it sends data byte(s) following the address, it did not receive an acknowledge from the remote slave(s). Role of I2C:Master-Transmitter 0x0: Transmitted data non-ACKed by addressed slave-scenario not present 0x1 : Transmitted data not ACKed by addressed slave 3 1 read-only ABORT_USER_ABORT This is a master-mode-only bit. Master has detected the transfer abort (EN[1]) Role of I2C: Master-Transmitter 0x0: Transfer abort detected by master- scenario not present 0x1: Transfer abort detected by master 16 1 read-only TX_FLUSH_CNT This field indicates the number of TX FIFO Data Commands which are flushed due to TX_ABORT interrupt. It is cleared whenever I2C is disabled. Role of I2C: Master-Transmitter or Slave-Transmitter 23 9 read-only TX_FIFO_LEVEL TX_FIFO_LEVEL I2C Transmit FIFO Level Register 0x74 32 read-only n 0x0 0xFFFFFFFF LEVEL Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. 0 4 read-only TX_FIFO_THD TX_FIFO_THD I2C Transmit FIFO Threshold Register 0x3C 32 read-write n 0x0 0xFFFFFFFF THD Transmit FIFO Threshold Level. Controls the level of entries (or below) that trigger the TX_EMPTY interrupt (bit 4 in RAW_INT_STAT register). The valid range is 0 ~ 255, with the additional restriction that it may not be set to value larger than the depth of the buffer. If an attempt is made to do that, the actual value set will be the maximum depth of the buffer. A value of 0 sets the threshold for 0 entries, and a value of 255 sets the threshold for 255 entries. 0 8 read-write I2C1 The Inter-Integrated Circuit (I2C) bus is a two-wire serial interface I2C 0xA000C400 0x0 0xA4 registers n I2C0 I2C0 interrupt 14 I2C1 I2C1 interrupt 15 ACK_GEN_CALL ACK_GEN_CALL I2C ACK General Call Register 0x98 32 read-write n 0x1 0xFFFFFFFF ACK_GEN_CALL ACK General Call. When set to 1, I2C responds with an ACK (by asserting data_oe) when it receives a General Call. Otherwise, I2C responds with a NACK (by negating data_oe). 0x0: Generate NACK for General Call 0x1: Generate ACK for a General Call 0 1 read-write CLR_ACTIVITY CLR_ACTIVITY Clear ACTIVITY Interrupt Register 0x5C 32 read-only n 0x0 0xFFFFFFFF CLR_ACTIVITY Reading this register clears the ACTIVITY interrupt if the I2C is not active anymore. If the I2C module is still active on the bus, the ACTIVITY interrupt bit continues to be set. It is automatically cleared by hardware if the module is disabled and if there is no further activity on the bus. The value read from this register to get status of the ACTIVITY interrupt (bit 8) of the RAW_INT_STAT register. 0 1 read-only CLR_GEN_CALL CLR_GEN_CALL Clear GEN_CALL Interrupt Register 0x68 32 read-only n 0x0 0xFFFFFFFF CLR_GEN_CALL Read this register to clear the GEN_CALL interrupt (bit 11) of RAW_INT_STAT register. 0 1 read-only CLR_INT CLR_INT Clear Combined and Individual Interrupt Register 0x40 32 read-only n 0x0 0xFFFFFFFF CLR_INT Read this register to clear the combined interrupt, all individual interrupts, and the TX_ABORT_SRC register. This bit does not clear hardware clearable interrupts but software clearable interrupts. 0 1 read-only CLR_RD_REQ CLR_RD_REQ Clear RD_REQ Interrupt Register 0x50 32 read-only n 0x0 0xFFFFFFFF CLR_RD_REQ Read this register to clear the RD_REQ interrupt (bit 5) of the RAW_INT_STAT register. 0 1 read-only CLR_RX_DONE CLR_RX_DONE Clear RX_DONE Interrupt Register 0x58 32 read-only n 0x0 0xFFFFFFFF CLR_RX_DONE Read this register to clear the RX_DONE interrupt (bit 7) of the RAW_INT_STAT register. 0 1 read-only CLR_RX_OVER CLR_RX_OVER Clear RX_OVER Interrupt Register 0x48 32 read-only n 0x0 0xFFFFFFFF CLR_RX_OVER Read this register to clear the RX_OVER interrupt (bit 1) of the RAW_INT_STAT register 0 1 read-only CLR_RX_UNDER CLR_RX_UNDER Clear RX_UNDER Interrupt Register 0x44 32 read-only n 0x0 0xFFFFFFFF CLR_RX_UNDER Read this register to clear the RX_UNDER interrupt (bit 0) of the RAW_INT_STAT register 0 1 read-only CLR_START_DET CLR_START_DET Clear START_DET Interrupt Register 0x64 32 read-only n 0x0 0xFFFFFFFF CLR_START_DET Read this register to clear the START_DET interrupt (bit 10) of the RAW_INT_STAT register. 0 1 read-only CLR_STOP_DET CLR_STOP_DET Clear STOP_DET Interrupt Register 0x60 32 read-only n 0x0 0xFFFFFFFF CLR_STOP_DET Read this register to clear the STOP_DET interrupt (bit 9) of the RAW_INT_STAT register. 0 1 read-only CLR_TX_ABORT CLR_TX_ABORT Clear TX_ABORT Interrupt Register 0x54 32 read-only n 0x0 0xFFFFFFFF CLR_TX_ABORT Read this register to clear the TX_ABORT interrupt (bit 6) of the RAW_INT_STAT register, and the TX_ABORT_SRC register. 0 1 read-only CLR_TX_OVER CLR_TX_OVER Clear TX_OVER Interrupt Register 0x4C 32 read-only n 0x0 0xFFFFFFFF CLR_TX_OVER Read this register to clear the TX_OVER interrupt (bit 2) of the RAW_INT_STAT register 0 1 read-only CTRL CTRL I2C Control Register 0x0 32 read-write n 0x7F 0xFFFFFFFF ADDR_BIT_M When acting as a master, this bit controls whether the I2C starts its transfers in 7-bit or 10-bit addressing mode. 0x0: Master 7Bit addressing mode 0x1: Master 10Bit addressing mode 4 1 read-write ADDR_BIT_S When acting as a slave, this bit controls whether the I2C responds to 7- or 10-bit addresses. 0x0: Slave 7Bit addressing 0x1: Slave 10Bit addressing 3 1 read-write M_MODE This bit controls whether the I2C master is enabled. NOTE: Software should ensure that if this bit is written with '1' then bit 6 should also be written with a '1'. 0x0: Master mode is disabled 0x1: Master mode is enabled 0 1 read-write RESTART_EN Determines whether RESTART conditions may be sent when acting as a master. Some older slaves do not support handling RESTART conditions however, RESTART conditions are used in several I2C operations. When RESTART is disabled, the master is prohibited from performing the following functions: • Sending a START BYTE • Performing any high-speed mode operation • High-speed mode operation • Performing direction changes in combined format mode • Performing a read operation with a 10-bit address By replacing RESTART condition followed by a STOP and a subsequent START condition, split operations are broken down into multiple I2C transfers. If the above operations are performed, it will result in setting bit 6 (TX_ABORT) of the RAW_INTR_STAT register. 0x0: Master restart disabled 0x1: Master restart enabled 5 1 read-write SPEED These bits control at which speed the I2C operates its setting is relevant only if one is operating the I2C in master mode. Hardware protects against illegal values being programmed by software. These bits must be programmed appropriately for slave mode also, as it is used to capture correct value of spike filter as per the speed mode. This register should be programmed only with a value in the range of 1 to 3. 0x1: Standard Speed mode of operation(100 kbit/s) 0x2: Fast( ≤400 kbit/s) or Fast Plus(≤1000Kbit/s) mode of operation 0x3: High Speed mode of operation(3.4 Mbit/s) 1 2 read-write STOP_DET_INT In slave mode 0x0: Issues the STOP_DET irrespective of whether it's addressed or not 0x1: Issues the STOP_DET interrrupt only when it is addressed NOTE: During a general call address, this slave does not issue the STOP_DET interrupt if STOP_DET_INT = 1, even if the slave responds to the general call address by generating ACK. The STOP_DET interrupt is generated only when the transmitted address matches the slave address (S_ADDR). 0x0: Slave issues STOP_DET intr always 0x1: Slave issues STOP_DET intr only if addressed 7 1 read-write STOP_DET_M_ACTIVE In Master mode 0x1: issues the STOP_DET interrupt only when master is active. 0x0: issues the STOP_DET irrespective of whether master is active or not. 0x1: Master issues the STOP_DET interrupt only when master is active 0x0: Master issues the STOP_DET interrupt irrespective of whether master is active or not 10 1 read-write S_DIS This bit controls whether I2C has its slave disabled. By default, the slave is always disabled (in reset state as well). If you need to enable it after reset, set this bit to 0. If this bit is set (slave is disabled), I2C functions only as a master and does not perform any action that requires a slave. NOTE: Software should ensure that if this bit is written with 0, then bit 0 should also be written with a 0. Value: 0x0: Slave mode is enabled 0x1: Slave mode is disabled 6 1 read-write TX_EMPTY_CTRL This bit controls the generation of the TX_EMPTY interrupt, as described in the RAW_INTR_STAT register. 0x0: Default disable behaviour of TX_EMPTY interrupt 0x1: Controlled enable generation of TX_EMPTY interrupt 8 1 read-write DATA_CMD DATA_CMD I2C RX/TX Data Buffer and Command Register 0x10 32 read-write n 0x0 0xFFFFFFFF CMD This bit controls whether a read or a write is performed. This bit does not control the direction when the I2C acts as a slave. It controls only the direction when it acts as a master. 0x0: Master Write command 0x1: Master Read command 8 1 read-write DATA This register contains the data to be transmitted or received on the I2C bus. If you are writing to this register and want to perform a read, bits 7:0 (DATA) are ignored by the I2C. However, when you read this register, these bits return the value of data received on the I2C interface. 0 8 read-write DMA_CTRL DMA_CTRL DMA Control Register 0x88 32 read-write n 0x0 0xFFFFFFFF RX_EN Receive DMA Enable. This bit enables/disables the receive FIFO DMA channel. 0x0: Receive FIFO DMA channel disabled 0x1: Receive FIFO DMA channel enabled 0 1 read-write TX_EN Transmit DMA Enable. This bit enables/disables the transmit FIFO DMA channel. 0x0: Transmit FIFO DMA channel disabled 0x1: Transmit FIFO DMA channel enabled 1 1 read-write DMA_RX_LEVEL DMA_RX_LEVEL DMA Receive Data Level Register 0x90 32 read-write n 0x0 0xFFFFFFFF LEVEL Receive Data Level. This bit field controls the level at which a DMA request is made by the receive logic. 0 3 read-write DMA_TX_LEVEL DMA_TX_LEVEL DMA Transmit Data Level Register 0x8C 32 read-write n 0x0 0xFFFFFFFF LEVEL Transmit Data Level. This bit field controls the level at which a DMA request is made by the transmit logic. 0 3 read-write EN EN I2C ENABLE Register 0x6C 32 read-write n 0x0 0xFFFFFFFF ABORT When set, the controller initiates the transfer abort. The software can abort the I2C transfer in master mode by setting this bit. The software can set this bit only when ENABLE is already set otherwise, the controller ignores any write to ABORT bit. The software cannot clear the ABORT bit once set. In response to an ABORT, the controller issues a STOP and flushes the TX FIFO after completing the current transfer, then sets the TX_ABORT interrupt after the abort operation. The ABORT bit is cleared automatically after the abort operation. 0x0: ABORT operation not in progress 0x1: ABORT operation in progress 1 1 read-write ACTIVITY Controls whether the I2C is enabled. Software can disable I2C while it is active. However, it is important that care be taken to ensure that I2C is disabled properly. A recommended procedure is described in Disabling I2C . When I2C is disabled, the following occurs: The TX FIFO and RX FIFO get flushed. Status bits in the INTR_STAT register are still active until I2C goes into IDLE state. If the module is transmitting, it stops as well as deletes the contents of the transmit buffer after the current transfer is complete. If the module is receiving, the I2C stops the current transfer at the end of the current byte and does not acknowledge the transfer. 0x0: I2C is disabled 0x1: I2C is enabled 0 1 read-only TX_CMD_BLOCK In Master mode 0x0: TX Command execution not blocked 0x1: TX Command execution blocked 2 1 read-write EN_STAT EN_STAT I2C Enable Status Register 0x9C 32 read-only n 0x0 0xFFFFFFFF EN EN Status. This bit always reflects the value driven on the output port en. When read as 1, I2C is deemed to be in an enabled state. When read as 0, I2C is deemed completely inactive. Note:The CPU can safely read this bit anytime. When this bit is read as 0, the CPU can safely read S_RX_DATA_LOST (bit 2) and S_DIS_BUSY (bit 1). 0x0: I2C disabled 0x1: I2C enabled 0 1 read-only S_DIS_BUSY Slave Disabled While Busy (Transmit, Receive). This bit indicates if a potential or active Slave operation has been aborted due to the setting bit 0 of the ENregister from 1 to 0. This bit is set when the CPU writes a 0 to the EN register while • I2C is receiving the address byte of the Slave-Transmitter operation from a remote master or • Address and data bytes of the Slave-Receiver operation from a remote master. When read as 1, I2C is deemed to have forced a NACK during any part of an I2C transfer, irrespective of whether the I2C address matches the slave address set in I2C (S_ADDR register) OR if the transfer is completed before ENABLE is set to 0 but has not taken effect. Note: If the remote I2C master terminates the transfer with a STOP condition before the I2C has a chance to NACK a transfer, and EN[0] has been set to 0, then this bit will also be set to 1. When read as 0, I2C is deemed to have been disabled when there is master activity, or when the I2C bus is idle. Note: The CPU can safely read this bit when EN (bit 0) is read as 0. 0x0: Slave is disabled when it is idle 0x1: Slave is disabled when it is active 1 1 read-only S_RX_DATA_LOST Slave Received Data Lost. This bit indicates if a Slave-Receiver operation has been aborted with at least one data byte received from an I2C transfer due to the setting bit 0 of EN from 1 to 0. When read as 1, I2C is deemed to have been actively engaged in an aborted I2C transfer (with matching address) and the data phase of the I2C transfer has been entered, even though a data byte has been responded with a NACK. Note: If the remote I2C master terminates the transfer with a STOP condition before the I2C has a chance to NACK a transfer, and EN[0] has been set to 0, then this bit is also set to 1. When read as 0, I2C is deemed to have been disabled without being actively involved in the data phase of a Slave-Receiver transfer. Note: The CPU can safely read this bit when EN (bit 0) is read as 0. 0x0: Slave RX Data is not lost 0x1: Slave RX Data is lost 2 1 read-only FS_CLK_HCOUNT FS_CLK_HCOUNT Fast Mode or Fast Mode Plus I2C Clock SCL High Count Register 0x1C 32 read-write n 0x3C 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6 hardware prevents values less than this being written, and if attempted results in 6 being set. 0 16 read-write FS_CLK_LCOUNT FS_CLK_LCOUNT Fast Mode or Fast Mode Plus I2C Clock SCL Low Count Register 0x20 32 read-write n 0x82 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 8 hardware prevents values less than this being written, and if attempted results in 8 being set. 0 16 read-write FS_SPKLEN FS_SPKLEN I2C SS, FS or FM+ spike suppression limit 0xA0 32 read-write n 0x5 0xFFFFFFFF FS_SPKLEN This register must be set before any I2C bus transaction can take place to ensure stable operation. This register sets the duration, measured in clock cycles, of the longest spike in the SCL or SDA lines that will be filtered out by the spike suppression logic. This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 1 hardware prevents values less than this being written, and if attempted results in 1 being set. 0 8 read-write HS_CLK_HCOUNT HS_CLK_HCOUNT High Speed I2C Clock SCL High Count Register 0x24 32 read-write n 0x6 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. The SCL High time depends on the loading of the bus. For 100pF loading, the SCL High time is 60ns for 400pF loading, the SCL High time is 120ns. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6 hardware prevents values less than this being written, and if attempted results in 6 being set. 0 16 read-write HS_CLK_LCOUNT HS_CLK_LCOUNT High Speed I2C Clock SCL Low Count Register 0x28 32 read-write n 0x10 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. The SCL low time depends on the loading of the bus. For 100pF loading, the SCL low time is 160ns for 400pF loading, the SCL low time is 320ns. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. 0 16 read-write HS_SPKLEN HS_SPKLEN I2C HS spike suppression limit register 0xA4 32 read-write n 0x1 0xFFFFFFFF HS_SPKLEN This register must be set before any I2C bus transaction can take place to ensure stable operation. This register sets the duration, measured in clock cycles, of the longest spike in the SCL or SDA lines that will be filtered out by the spike suppression logic for more information, refer to Spike Suppression This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 1 hardware prevents values less than this being written, and if attempted results in 1 being set. 0 8 read-write INT_MASK INT_MASK I2C Interrupt Mask Register 0x30 32 read-write n 0x8FF 0xFFFFFFFF MASK_ACTIVITY This bit masks the RAW_ACTIVITY interrupt in INT_STAT register. 0x0: ACTIVITY interrupt is masked 0x1: ACTIVITY interrupt is unmasked 8 1 read-write MASK_GEN_CALL This bit masks the RAW_GEN_CALL interrupt in INT_STAT register. 0x0: GEN_CALL interrupt is masked 0x1: GEN_CALL interrupt is unmasked 11 1 read-write MASK_RD_REQ This bit masks the RAW_RD_REQ interrupt in INT_STAT register. 0x0: RD_REQ interrupt is masked 0x1: RD_REQ interrupt is unmasked 5 1 read-write MASK_RX_DONE This bit masks the RAW_RX_DONE interrupt in INT_STAT register. 0x0: RX_DONE interrupt is masked 0x1: RX_DONE interrupt is unmasked 7 1 read-write MASK_RX_FULL This bit masks the RAW_RX_FULL interrupt in INT_STAT register. 0x0: RX_FULL interrupt is masked 0x1: RX_FULL interrupt is unmasked 2 1 read-write MASK_RX_OVER This bit masks the RAW_RX_OVER interrupt in INT_STAT register. 0x0: RX_OVER interrupt is masked 0x1: RX_OVER interrupt is unmasked 1 1 read-write MASK_RX_UNDER This bit masks the RAW_RX_UNDER interrupt in INT_STAT register. 0x0: RX_UNDER interrupt is masked 0x1: RX_UNDER interrupt is unmasked 0 1 read-write MASK_START_DET This bit masks the RAW_START_DET interrupt in INT_STAT register. 0x0: START_DET interrupt is masked 0x1: START_DET interrupt is unmasked 10 1 read-write MASK_STOP_DET This bit masks the RAW_STOP_DET interrupt in INT_STAT register. 0x0: STOP_DET interrupt is masked 0x1: STOP_DET interrupt is unmasked 9 1 read-write MASK_TX_ABORT This bit masks the RAW_TX_ABORT interrupt in INT_STAT register. 0x0: TX_ABORT interrupt is masked 0x1: TX_ABORT interrupt is unmasked 6 1 read-write MASK_TX_EMPTY This bit masks the RAW_TX_EMPTY interrupt in INT_STAT register. 0x0: TX_EMPTY interrupt is masked 0x1: TX_EMPTY interrupt is unmasked 4 1 read-write MASK_TX_OVER This bit masks the RAW_TX_OVER interrupt in INT_STAT register. 0x0: TX_OVER interrupt is masked 0x1: TX_OVER interrupt is unmasked 3 1 read-write INT_STAT INT_STAT I2C Interrupt Status Register 0x2C 32 read-only n 0x0 0xFFFFFFFF RAW_ACTIVITY See RAW_INT_STAT for a detailed description of ACTIVITY bit. 0x0: RAW_ACTIVITY interrupt is inactive 0x1: RAW_ACTIVITY interrupt is active 8 1 read-only RAW_GEN_CALL See RAW_INT_STAT for a detailed description of GEN_CALL bit. 0x0: RAW_GEN_CALL interrupt is inactive 0x1: RAW_GEN_CALL interrupt is active 11 1 read-only RAW_M_HOLD See RAW_INT_STAT for a detailed description of M_HOLD bit. 0x0: RAW_M_HOLD interrupt is inactive 0x1: RAW_M_HOLD interrupt is active 13 1 read-only RAW_RD_REQ See RAW_INT_STAT for a detailed description of RD_REQ bit. 0x0: RAW_RD_REQ interrupt is inactive 0x1: RAW_RD_REQ interrupt is active 5 1 read-only RAW_RESTART_DET See RAW_INT_STAT for a detailed description of RESTART_DET bit. 0x0: RAW_RESTART_DET interrupt is inactive 0x1: RAW_RESTART_DET interrupt is active 12 1 read-only RAW_RX_DONE See RAW_INT_STAT for a detailed description of RX_DONE bit. 0x0: RAW_RX_DONE interrupt is inactive 0x1: RAW_RX_DONE interrupt is active 7 1 read-only RAW_RX_FULL See RAW_INT_STAT for a detailed description of RX_FULL bit. 0x0: RAW_RX_FULL interrupt is inactive 0x1: RAW_RX_FULL interrupt is active 2 1 read-only RAW_RX_OVER See RAW_INT_STAT for a detailed description of RX_OVER bit. 0x0: RAW_RX_OVER interrupt is inactive 0x1: RAW_RX_OVER interrupt is active 1 1 read-only RAW_RX_UNDER See RAW_INT_STAT for a detailed description of RX_UNDER bit. 0x0: RAW_RX_UNDER interrupt is inactive 0x1: RAW_RX_UNDER interrupt is active 0 1 read-only RAW_START_DET See RAW_INT_STAT for a detailed description of START_DET bit. 0x0: RAW_START_DET interrupt is inactive 0x1: RAW_START_DET interrupt is active 10 1 read-only RAW_STOP_DET See RAW_INT_STAT for a detailed description of STOP_DET bit. 0x0: RAW_STOP_DET interrupt is inactive 0x1: RAW_STOP_DET interrupt is active 9 1 read-only RAW_TX_ABORT See RAW_INT_STAT for a detailed description of TX_ABORT bit. 0x0: RAW_TX_ABORT interrupt is inactive 0x1: RAW_TX_ABORT interrupt is active 6 1 read-only RAW_TX_EMPTY See RAW_INT_STAT for a detailed description of TX_EMPTY bit. 0x0: RAW_TX_EMPTY interrupt is inactive 0x1: RAW_TX_EMPTY interrupt is active 4 1 read-only RAW_TX_OVER See RAW_INT_STAT for a detailed description of TX_OVER bit. 0x0: RAW_TX_OVER interrupt is inactive 0x1: RAW_TX_OVER interrupt is active 3 1 read-only M_HS_ADDR M_HS_ADDR I2C High-Speed Master Mode Code Address Register 0xC 32 read-write n 0x1 0xFFFFFFFF HS_ADDR This bit field holds the value of the I2C High Speed mode master code. High Speed mode master codes are reserved 8-bit codes (00001xxx) that are not used for slave addressing or other purposes. Each master has its unique master code up to eight high-speed mode masters can be present on the same I2C bus system. Valid values are from 0 to 7. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. 0 3 read-write RAW_INT_STAT RAW_INT_STAT I2C Raw Interrupt Status Register 0x34 32 read-only n 0x0 0xFFFFFFFF ACTIVITY This bit captures I2C activity and stays set until it is cleared. There are four ways to clear it. Disabling the I2C Reading the CLR_ACTIVITY register Reading the CLR_INT register System reset Once this bit is set, it stays set unless one of the four methods is used to clear it. Even if the I2C module is idle, this bit remains set until cleared, indicating that there was activity on the bus. 0x0: RAW_INT_ACTIVITY interrupt is inactive 0x1: RAW_INT_ACTIVITY interrupt is active 8 1 read-only GEN_CALL Set only when a General Call address is received and it is acknowledged. It stays set until it is cleared either by disabling I2C or when the CPU reads bit 0 of the CLR_GEN_CALL register. I2C stores the received data in the RX buffer. 0x0: GEN_CALL interrupt is inactive 0x1: GEN_CALL interrupt is active 11 1 read-only M_HOLD Indicates whether master is holding the bus and TX FIFO is empty. 0x0: MASTER_ON_HOLD interrupt is inactive 0x1: MASTER_ON_HOLD interrupt is active 13 1 read-only RD_REQ This bit is set to 1 when I2C is acting as a slave and another I2C master is attempting to read data from I2C. The I2C holds the I2C bus in a wait state (SCL=0) until this interrupt is serviced, which means that the slave has been addressed by a remote master that is asking for data to be transferred. The processor must respond to this interrupt and then write the requested data to the DATA_CMD register. This bit is set to 0 just after the processor reads the CLR_RD_REQ register. Value: 0x0: RD_REQ interrupt is inactive 0x1: RD_REQ interrupt is active 5 1 read-only RESTART_DET Indicates whether a RESTART condition has occurred on the I2C interface when I2C is operating in Slave mode and the slave is being addressed. Note: However, in high-speed mode or during a START BYTE transfer, the RESTART comes before the address field as per the I2C protocol. In this case, the slave is not the addressed slave when the RESTART is issued, therefore I2C does not generate the RESTART_DET interrupt. 0x0: RESTART_DET interrupt is inactive 0x1: RESTART_DET interrupt is active 12 1 read-only RX_DONE When the I2C is acting as a slave-transmitter, this bit is set to 1 if the master does not acknowledge a transmitted byte. This occurs on the last byte of the transmission, indicating that the transmission is done. 0x0: RX_DONE interrupt is inactive 0x1: RX_DONE interrupt is active 7 1 read-only RX_FULL Set when the receive buffer reaches or goes above the FIFO_THD threshold in the RX_FIFO_THD register. It is automatically cleared by hardware when buffer level goes below the threshold. If the module is disabled (EN[0]=0), the RX FIFO is flushed and held in reset therefore the RX FIFO is not full. So this bit is cleared once the ENABLE bit 0 is programmed with a 0, regardless of the activity that continues. 0x0: RX_FULL interrupt is inactive 0x1: RX_FULL interrupt is active 2 1 read-only RX_OVER Set if the receive buffer is completely filled to 8 and an additional byte is received from an external I2C device. The I2C acknowledges this, but any data bytes received after the FIFO is full are lost. If the module is disabled (EN[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when en goes to 0, this interrupt is cleared. 0x0: RX_OVER interrupt is inactive 0x1: RX_OVER interrupt is active 1 1 read-only RX_UNDER Set if the processor attempts to read the receive buffer when it is empty by reading from the DATA_CMD register. If the module is disabled (EN[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when en goes to 0, this interrupt is cleared. 0x0: RX_UNDER interrupt is inactive 0x1: RX_UNDER interrupt is active 0 1 read-only START_DET Indicates whether a START or RESTART condition has occurred on the I2C interface regardless of whether I2C is operating in slave or master mode. 0x0: START_DET interrupt is inactive 0x1: START_DET interrupt is active 10 1 read-only STOP_DET Indicates whether a STOP condition has occurred on the I2C interface regardless of whether I2C is operating in slave or master mode. In Slave Mode: If CTRL[7] = 0x1 (STOP_DET_INT), the STOP_DET interrupt will be issued only if slave is addressed. Note: During a general call address, this slave does not issue a STOP_DET interrupt if STOP_DET_INT = 0x1, even if the slave responds to the general call address by generating ACK. The STOP_DET interrupt is generated only when the transmitted address matches the slave address (S_ADDR). If CTRL[7] = 0x0 (STOP_DET_INT), the STOP_DET interrupt is issued irrespective of whether it is being addressed. In Master Mode: If CTRL[10] = 0x1 (STOP_DET_M_ACTIVE),the STOP_DET interrupt will be issued only if Master is active. If CTRL[10] = 0x0 (STOP_DET_M_ACTIVE),the STOP_DET interrupt will be issued irrespective of whether master is active or not. 0x0: STOP_DET interrupt is inactive 0x1: STOP_DET interrupt is active 9 1 read-only TX_ABORT This bit indicates if I2C, as an I2C transmitter, is unable to complete the intended actions on the contents of the transmit FIFO. This situation can occur both as an I2C master or an I2C slave, and is referred to as a 'transmit abort'. When this bit is set to 1, the TX_ABORT_SRC register indicates the reason why the transmit abort takes places. Note: The I2C flushes/resets/empties only the TX_FIFO whenever there is a transmit abort caused by any of the events tracked by the TX_ABORT_SRC register. The TX FIFO remains in this flushed state until the register CLR_TX_ABORT is read. Once this read is performed, the TX FIFO is then ready to accept more data bytes from the APB interface. 0x0: TX_ABORT interrupt is inactive 0x1: TX_ABORT interrupt is active 6 1 read-only TX_EMPTY The behavior of the TX_EMPTY interrupt status differs based on the TX_EMPTY_CTRL selection in the CTRL register. When TX_EMPTY_CTRL = 0: This bit is set to 1 when the transmit buffer is at or below the threshold value set in the TX_TL register. When TX_EMPTY_CTRL = 1: This bit is set to 1 when the transmit buffer is at or below the threshold value set in the TX_FIFO_THD register and the transmission of the address/data from the internal shift register for the most recently popped command is completed. It is automatically cleared by hardware when the buffer level goes above the threshold. When EN[0] is set to 0, the TX FIFO is flushed and held in reset. There the TX FIFO looks like it has no data within it, so this bit is set to 1, provided there is activity in the master or slave state machines. When there is no longer any activity, then with en=0, this bit is set to 0. Value: 0x0: TX_EMPTY interrupt is inactive 0x1: TX_EMPTY interrupt is active 4 1 read-only TX_OVER Set during transmit if the transmit buffer is filled to 8 and the processor attempts to issue another I2C command by writing to the DATA_CMD register. When the module is disabled, this bit keeps its level until the master or slave state machines go into idle, and when en goes to 0, this interrupt is cleared. Value: 0x0: TX_OVER interrupt is inactive 0x1: TX_OVER interrupt is active 3 1 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL I2C Receive FIFO Level Register 0x78 32 read-only n 0x0 0xFFFFFFFF LEVEL Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. 0 4 read-only RX_FIFO_THD RX_FIFO_THD I2C Receive FIFO Threshold Register 0x38 32 read-write n 0x0 0xFFFFFFFF THD Receive FIFO Threshold Level. Controls the level of entries (or above) that triggers the RX_FULL interrupt (bit 2 in RAW_INT_STAT register). The valid range is 0-255, with the additional restriction that hardware does not allow this value to be set to a value larger than the depth of the buffer. If an attempt is made to do that the actual value set will be the maximum depth of the buffer. A value of 0 sets the threshold for 1 entry, and a value of 255 sets the threshold for 256 entries. 0 8 read-write SDA_HOLD SDA_HOLD I2C SDA Hold Time Length Register 0x7C 32 read-write n 0x1 0xFFFFFFFF RX_HOLD Sets the required SDA hold time in units of clock period, when I2C acts as a receiver. 16 8 read-write TX_HOLD Sets the required SDA hold time in units of clock period, when I2C acts as a transmitter. 0 16 read-write SDA_SETUP SDA_SETUP I2C SDA Setup Register 0x94 32 read-write n 0x64 0xFFFFFFFF SETUP SDA Setup. It is recommended that if the required delay is 1000ns, then for a clk frequency of 10 MHz, SDA_SETUP should be programmed to a value of 11. SDA_SETUP must be programmed with a minimum value of 2 0 8 read-write SS_CLK_HCOUNT SS_CLK_HCOUNT Standard Speed I2C Clock SCL High Count Register 0x14 32 read-write n 0x190 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6 hardware prevents values less than this being written, and if attempted results in 6 being set. NOTE: This register must not be programmed to a value higher than 65525, because I2C uses a 16-bit counter to flag an I2C bus idle condition when this counter reaches a value of COUNT + 10. 0 16 read-write SS_CLK_LCOUNT SS_CLK_LCOUNT Standard Speed I2C Clock SCL Low Count Register 0x18 32 read-write n 0x1D6 0xFFFFFFFF COUNT This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register can be written only when the I2C interface is disabled which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 8 hardware prevents values less than this being written, and if attempted, results in 8 being set. 0 16 read-write STAT STAT I2C STATUS Register 0x70 32 read-only n 0x6 0xFFFFFFFF ACTIVITY I2C Activity Status. 0x0: I2C is idle 0x1: I2C is active 0 1 read-only M_ACTIVITY Master Activity Status. When the Master is not in the IDLE state, this bit is set. Note: STAS[0], ACTIVITY bit,-is the OR of S_ACTIVITY and M_ACTIVITY bits. 0x0: Master is idle 0x1: Master not idle 5 1 read-only RX_FIFO_CF Receive FIFO Completely Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0x0: RX FIFO not full 0x1: RX FIFO is full 4 1 read-only RX_FIFO_NE Receive FIFO Not Empty. This bit is set when the receive FIFO contains one or more entries it is cleared when the receive FIFO is empty. 0x0: RX FIFO is empty 0x1: RX FIFO not empty 3 1 read-only S_ACTIVITY Slave Activity Status. When the Slaveis not in the IDLE state, this bit is set. 0x0: Slave is idle 0x1: Slave not idle 6 1 read-only TX_FIFO_CE Transmit FIFO Completely Empty. When the transmit FIFO is completely empty, this bit is set. When it contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0x0: TX FIFO not empty 0x1: TX FIFO is empty 2 1 read-only TX_FIFO_NF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0x0: TX FIFO is full 0x1: TX FIFO not full 1 1 read-only S_ADDR S_ADDR I2C Slave Address Register 0x8 32 read-write n 0x55 0xFFFFFFFF S_ADDR The S_ADDR holds the slave address when the I2C is operating as a slave. For 7-bit addressing, only S_ADDR[6:0] is used. This register can be written only when the I2C interface is disabled, which corresponds to the EN[0] register being set to 0. Writes at other times have no effect. Note:The default values cannot be any of the reserved address locations: 0x00 to 0x07, or 0x78 to 0x7f. The correct operation of the device is not guaranteed if you program the S_ADDR or TARGET to a reserved value. Refer to Table 10 7 I2C Definition of bits in first byte for a complete list of these reserved values. 0 10 read-write TARGET_ADDR TARGET_ADDR I2C Target Address Register 0x4 32 read-write n 0x55 0xFFFFFFFF SPECIAL This bit indicates whether software performs a Device-ID or General Call or START BYTE command. 0x0: Disables programming of GENERAL_CALL or START_BYTE transmission 0x1: Enables programming of GENERAL_CALL or START_BYTE transmission 11 1 read-write TARGET This is the target address for any master transaction. When transmitting a General Call, these bits are ignored. To generate a START BYTE, the CPU needs to write only once into these bits. If the TARGET and S_ADDR are the same, loopback exists but the FIFOs are shared between master and slave, so full loopback is not feasible. Only one direction loopback mode is supported (simplex), not duplex. A master cannot transmit to itself it can transmit to only a slave 0 10 read-write TX_CTRL If bit 11 (SPECIAL) is set to 1, then this bit indicates whether a General Call or START byte command is to be performed by the I2C. 0x0: GENERAL_CALL byte transmission 0x1: START byte transmission 10 1 read-write TX_ABORT_SRC TX_ABORT_SRC I2C SDA Hold Time Length Register 0x80 32 read-only n 0x0 0xFFFFFFFF ABORT_10B1_NOACK This field indicates that the Master is in 10-bit address mode and the first 10-bit address byte was not acknowledged by any slave. Role of I2C: Master-Transmitter or Master-Receiver 0x0: This abort is not generated 0x1: Byte 1 of 10Bit Address not ACKed by any slave 1 1 read-only ABORT_10B2_NOACK This field indicates that the Master is in 10-bit address mode and that the second address byte of the 10-bit address was not acknowledged by any slave. Role of I2C: Master-Transmitter or Master-Receiver 0x0: This abort is not generated 0x1: Byte 2 of 10Bit Address not ACKed by any slave 2 1 read-only ABORT_10B_RD_NORSTR This field indicates that the restart is disabled (RESTART_EN bit (CON[5]) =0) and the master sends a read command in 10-bit addressing mode. Role of I2C: Master-Receiver Value: 0x0: Master not trying to read in 10Bit addressing mode when RESTART disabled 0x1: Master trying to read in 10Bit addressing mode when RESTART disabled 10 1 read-only ABORT_7B_NOACK his field indicates that the Master is in 7-bit addressing mode and the address sent was not acknowledged by any slave. Role of I2C: Master-Transmitter or Master-Receiver 0x0: This abort is not generated 0x1: This abort is generated because of NACK for 7-bit address 0 1 read-only ABORT_GCALL_NOACK This field indicates that I2C in master mode has sent a General Call and no slave on the bus acknowledged the General Call. Role of I2C: Master-Transmitter 0x0: GCALL not ACKed by any slave-scenario not present 0x1: GCALL not ACKed by any slave 4 1 read-only ABORT_GCALL_RD This field indicates that I2C in the master mode has sent a General Call but the user programmed the byte following the General Call to be a read from the bus (DATA_CMD[9] is set to 1). Role of I2C: Master-Transmitter 0x0: GCALL is followed by read from bus-scenario not present 0x1: GCALL is followed by read from bus 5 1 read-only ABORT_HS_ACKDET This field indicates that the Master is in High Speed mode and the High Speed Master code was acknowledged (wrong behavior). Role of I2C: Master 0x0: HS Master code ACKed in HS Mode- scenario not present 0x1: HS Master code ACKed in HS Mode 6 1 read-only ABORT_HS_NORSTRT This field indicates that the restart is disabled (RESTART_EN bit (CON[5]) =0) and the user is trying to use the master to transfer data in High Speed mode. Role of I2C: Master-Transmitter or Master-Receiver 0x0: User trying to switch Master to HS mode when RESTART disabled- scenario not present 0x1: User trying to switch Master to HS mode when RESTART disabled 8 1 read-only ABORT_LOST This field specifies that the Master has lost arbitration, or if TX_ABORT_SRC[14] is also set, then the slave transmitter has lost arbitration. Role of I2C: Master-Transmitter or Slave-Transmitter 0x0: Master or Slave-Transmitter lost arbitration- scenario not present 0x1: Master or Slave-Transmitter lost arbitration 12 1 read-only ABORT_MASTER_DIS This field indicates that the User tries to initiate a Master operation with the Master mode disabled. Role of I2C: Master-Transmitter or Master-Receiver 0x: User initiating master operation when MASTER disabled- scenario not present 0x1: User intitating master operation when MASTER disabled 11 1 read-only ABORT_SBYTE_ACKDET This field indicates that the Master has sent a START Byte and the START Byte was acknowledged (wrong behavior). Role of I2C: Master 0x0: ACK detected for START byte- scenario not present 0x1: ACK detected for START byte 7 1 read-only ABORT_SBYTE_NORSTRT To clear Bit 9, the source of the ABORT_SBYTE_NORSTRT must be fixed first restart must be enabled (CTRL[5]=1), the SPECIAL bit must be cleared (TARGET[11]), or the GC_OR_START bit must be cleared TARGET[10]). Once the source of the ABORT_SBYTE_NORSTRT is fixed, then this bit can be cleared in the same manner as other bits in this register. If the source of the ABORT_SBYTE_NORSTRT is not fixed before attempting to clear this bit, bit 9 clears for one cycle and then gets reasserted. When this field is set to 1, the restart is disabled (RESTART_EN bit (CTRL[5]) =0) and the user is trying to send a START Byte. Role of I2C: Master 0x0: User trying to send START byte when RESTART disabled- scenario not present 0x1: User trying to send START byte when RESTART disabled 9 1 read-only ABORT_SLVFLUSH_TXFIFO This field specifies that the Slave has received a read command and some data exists in the TX FIFO, so the slave issues a TX_ABORT interrupt to flush old data in TX FIFO. Role of I2C: Slave-Transmitter 0x0: Slave flushes existing data in TX-FIFO upon getting read command- scenario not present 0x1: Slave flushes existing data in TX-FIFO upon getting read command 13 1 read-only ABORT_SLVRD_INTX When the processor side responds to a slave mode request for data to be transmitted to a remote master and user writes a 1 in CMD (bit 8) of DATA_CMD register. Role of I2C: Slave-Transmitter 0x0: Slave trying to transmit to remote master in read mode- scenario not present 0x1: Slave trying to transmit to remote master in read mode 15 1 read-only ABORT_S_ARBLOST This field indicates that a Slave has lost the bus while transmitting data to a remote master. TX_ABORT_SRC[12] is set at the same time. Note: Even though the slave never 'owns' the bus, something could go wrong on the bus. This is a fail safe check. For instance, during a data transmission at the low-to-high transition of SCL, if what is on the data bus is not what is supposed to be transmitted, then I2C no longer own the bus. Role of I2C: Slave-Transmitter 0x0: Slave lost arbitration to remote master- scenario not present 0x1 : Slave lost arbitration to remote master 14 1 read-only ABORT_TX_NOACK This field indicates the master-mode only bit. When the master receives an acknowledgement for the address, but when it sends data byte(s) following the address, it did not receive an acknowledge from the remote slave(s). Role of I2C:Master-Transmitter 0x0: Transmitted data non-ACKed by addressed slave-scenario not present 0x1 : Transmitted data not ACKed by addressed slave 3 1 read-only ABORT_USER_ABORT This is a master-mode-only bit. Master has detected the transfer abort (EN[1]) Role of I2C: Master-Transmitter 0x0: Transfer abort detected by master- scenario not present 0x1: Transfer abort detected by master 16 1 read-only TX_FLUSH_CNT This field indicates the number of TX FIFO Data Commands which are flushed due to TX_ABORT interrupt. It is cleared whenever I2C is disabled. Role of I2C: Master-Transmitter or Slave-Transmitter 23 9 read-only TX_FIFO_LEVEL TX_FIFO_LEVEL I2C Transmit FIFO Level Register 0x74 32 read-only n 0x0 0xFFFFFFFF LEVEL Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. 0 4 read-only TX_FIFO_THD TX_FIFO_THD I2C Transmit FIFO Threshold Register 0x3C 32 read-write n 0x0 0xFFFFFFFF THD Transmit FIFO Threshold Level. Controls the level of entries (or below) that trigger the TX_EMPTY interrupt (bit 4 in RAW_INT_STAT register). The valid range is 0 ~ 255, with the additional restriction that it may not be set to value larger than the depth of the buffer. If an attempt is made to do that, the actual value set will be the maximum depth of the buffer. A value of 0 sets the threshold for 0 entries, and a value of 255 sets the threshold for 255 entries. 0 8 read-write I2S_M Inter—IC Sound I2S 0xA000CA00 0x0 0x70 registers n I2S_M I2S_M interrupt 29 I2S_S I2S_S interrupt 30 CLK_CFG CLK_CFG I2S Clock Configure Register 0x268 32 read-write n 0x40008 0xFFFFFFFF CLK_SRC_SEL clock divider source select 0: 96M, 1: 32M 18 1 read-write DIV ratio = 1/(div + 2). Duty cycle is not 50 when the number is odd. For example: div = 0, ratio = 1/2 0 12 read-write DIV_EN enable i2s clock divider 16 1 read-write CLK_EN CLK_EN Clock Enable Register 0xC 32 read-write n 0x0 0xFFFFFFFF CLK_EN Clock Generation enable/disable. This bit enables or disables the clock generation signals when I2S is a master. • 0x0: Clock generation disabled • 0x1: Clock generation enabled Note: When the I2S is configured as a slave, this register serves no purpose. 0 1 read-write EN EN I2S Enable Register 0x0 32 read-write n 0x0 0xFFFFFFFF I2S_EN I2S enable. This bit enables or disables I2S. A disable on this bit overrides any other block or channel enables and flushes all FIFOs. Value: 0x0: I2S disabled. 0x1: I2S enabled 0 1 read-write INT_MASK INT_MASK Interrupt Mask Register 0x3C 32 read-write n 0x13 0xFFFFFFFF RX_DAM Mask RX FIFO Data Available interrupt. This bit masks or unmasks an RX FIFO Data Available interrupt. • 0x1: Disable RX FIFO data available interrupt • 0x0: Enable RX FIFO data available interrupt 0 1 read-write RX_FOM Mask RX FIFO Overrun interrupt. This bit masks or unmasks an RX FIFO Overrun interrupt. • 0x1: Disable RX FIFO Overrun interrupt • 0x0: Enable RX FIFO Overrun interrupt 1 1 read-write TX_FEM Mask TX FIFO Empty interrupt. This bit masks or unmasks a TX FIFO Empty interrupt. • 0x1: Disable TX FIFO Empty interrupt • 0x0: Enable TX FIFO Empty interrupt 4 1 read-write TX_FOM Mask TX FIFO Overrun interrupt. This bit masks or unmasks a TX FIFO overrun interrupt. • 0x1: Disable TX FIFO Overrun interrupt • 0x0: Enable TX FIFO Overrun interrupt 5 1 read-write INT_STAT INT_STAT Interrupt status Register 0x38 32 read-only n 0x10 0xFFFFFFFF RX_DATA_AVL Status of Receive Data Available interrupt. This bit denotes the status of the RX FIFO trigger level. • 0x1: RX FIFO trigger level is reached • 0x0: RX FIFO trigger level is not reached 0 1 read-only RX_FIFO_OVER Status of Data Overrun interrupt for the RX channel. Incoming data lost due to a full RX FIFO. • 0x0: RX FIFO write valid • 0x1: RX FIFO write overrun 1 1 read-only TX_FIFO_EMPTY Status of Transmit Empty Trigger interrupt. This bit specifies whether the TX FIFO trigger level has reached or not. TX FIFO is empty. • 0x0: TX FIFO trigger level is reached • 0x1: TX FIFO trigger level is not reached 4 1 read-only TX_FIFO_OVER Status of Data Overrun interrupt for the TX channel. This bit specifies whether the TX FIFO write is valid or an overrun. Attempt to write to full TX FIFO. • 0x0: TX FIFO write valid • 0x1: TX FIFO write overrun 5 1 read-only LEFT_RX_BUF LEFT_RX_BUF Left Receive Buffer Register 0x20 32 read-only n 0x0 0xFFFFFFFF LEFT_RX_BUF The left stereo data received serially from the receive channel input (sdi). If the RX FIFO is full and the two-stage read operation (for instance, a read from LEFT_RX_BUF register followed by a read from RIGHT_RX_BUF register) is not performed before the start of the next stereo pair, then the new data is lost and an overrun interrupt occurs. (data already in the RX FIFO is preserved.) Note: Before reading this register again, the right stereo data must be read from RRBRx or the status/interrupts will not be valid. 0 32 read-only LEFT_TX_HDG LEFT_TX_HDG Left Transmit Holding Register LEFT_RX_BUF 0x20 32 write-only n 0x0 0xFFFFFFFF LEFT_TX_HDG The left stereo data to be transmitted serially through the transmit channel output (sdo) is written through this register. Writing is a two-stage process: 1. A write to this register passes the left stereo sample to the transmitter. 2. This MUST be followed by writing the right stereo sample to the RIGHT_TX_HDG register. Data must only be written to the FIFO when it is not full. Any attempt to write to a full FIFO results in that data being lost and an overrun interrupt being generated. 0 32 write-only RIGHT_RX_BUF RIGHT_RX_BUF Right Receive Buffer Register 0x24 32 read-only n 0x0 0xFFFFFFFF RIGHT_RX_BUF The right stereo data received serially from the receive channel input (sdi) is read through this register. If the RX FIFO is full and the two-stage read operation (for instance, read from LEFT_RX_BUF register followed by a read from RIGHT_RX_BUF register) is not performed before the start of the next stereo pair, then the new data is lost and an overrun interrupt occurs. (Data already in the RX FIFO is preserved.) Note: Prior to reading this register, the left stereo data MUST be read from LEFT_RX_BUF register, or the status/interrupts will not be valid. 0 32 read-only RIGHT_TX_HDG RIGHT_TX_HDG Right Transmit Holding Register RIGHT_RX_BUF 0x24 32 write-only n 0x0 0xFFFFFFFF RIGHT_TX_HDG The right stereo data to be transmitted serially through the transmit channel output (sdo) is written through this register. Writing is a two-stage process: 1. A left stereo sample MUST be written to the LTHR register. 2. A write to this register passes the right stereo sample to the transmitter. Data should only be written to the FIFO when it is not full. Any attempt to write to a full FIFO results in that data being lost and an overrun interrupt being generated. 0 32 write-only RST_RX_DMA RST_RX_DMA Reset Receiver Block DMA Register 0x1C4 32 write-only n 0x0 0xFFFFFFFF RST_RX_DMA Reset Receiver Block DMA Register. Writing a 1 to this self-clearing register resets the RXDMA register mid-cycle to point to the enabled Receive channel. • 0x0: No effect. • 0x1: Reset receiver block DMA register. 0 1 write-only RST_TX_DMA RST_TX_DMA Reset Transmitter Block DMA Register 0x1CC 32 write-only n 0x0 0xFFFFFFFF RST_TX_DMA Reset Transmitter Block DMA Register. Writing a 1 to this self-clearing register resets the TXDMA register mid-cycle to point to the enabled Transmit channel. • 0x0: No effect. • 0x1: Reset transmitter block DMA register. 0 1 write-only RX_CFG RX_CFG Receive Configuration Register 0x30 32 read-write n 0x5 0xFFFFFFFF WORD_LEN These bits are used to program the desired data resolution of the receiver and enables the LSB of the incoming left (or right) word to be placed in the LSB of the LEFT_RX_BUF (or RIGHT_RX_BUF) register. Programmed data resolution must be less than or equal to 0x5. If the selected resolution is greater than the 0x5, the receive channel defaults back to 0x5. The channel must be disabled prior to any changes in this value(RX_EN[0] = 0). • 0x0: Ignore the word length • 0x1: 12-bit data resolution of the receiver. • 0x2: 16-bit data resolution of the receiver. • 0x3: 20-bit data resolution of the receiver. • 0x4: 24-bit data resolution of the receiver. • 0x5: 32-bit data resolution of the receiver. 0 3 read-write RX_CH_EN RX_CH_EN Receive Enable Register 0x28 32 read-write n 0x1 0xFFFFFFFF RX_CH_EN Receive channel enable. This bit enables/disables a receive channel. On enable, the channel begins receiving on the next left stereo cycle. A global disable of I2S (EN[0] = 0) or the Receiver block (RX_EN[0] = 0) overrides this value. • 0x0: Receive Channel Disable • 0x1: Receive Channel Enable 0 1 read-write RX_DMA RX_DMA Receiver Block DMA Register 0x1C0 32 read-write n 0x0 0xFFFFFFFF RX_DMA Receiver Block DMA Register. These bits are used to cycle repeatedly through the enabled receive channel, reading stereo data pairs. 0 1 read-write RX_EN RX_EN I2S Receiver Block Enable Register 0x4 32 read-write n 0x0 0xFFFFFFFF RX_EN Receiver block enable. This bit enables or disables the receiver. A disable on this bit overrides any individual receive channel enables. Value: • 0x0: Receiver disabled • 0x1: Receiver enabled 0 1 read-write RX_FIFO_CFG RX_FIFO_CFG Receive FIFO Configuration Register 0x48 32 read-write n 0x8 0xFFFFFFFF RX_FIFO_TL These bits program the trigger level in the RX FIFO at which the Received Data Available interrupt is generated. Trigger Level = Programmed Value + 1 • 0x0: Interrupt trigger when FIFO level is 1. • 0x1: Interrupt trigger when FIFO level is 2. • 0x2: Interrupt trigger when FIFO level is 3. • 0x3: Interrupt trigger when FIFO level is 4. • 0x4: Interrupt trigger when FIFO level is 5. • 0x5: Interrupt trigger when FIFO level is 6. • 0x6: Interrupt trigger when FIFO level is 7. • 0x7: Interrupt trigger when FIFO level is 8. • 0x8: Interrupt trigger when FIFO level is 9. • 0x9: Interrupt trigger when FIFO level is 10. • 0xA: Interrupt trigger when FIFO level is 11. • 0xB: Interrupt trigger when FIFO level is 12. • 0xC: Interrupt trigger when FIFO level is 13. • 0xD: Interrupt trigger when FIFO level is 14. • 0xE: Interrupt trigger when FIFO level is 15. • 0xF: Interrupt trigger when FIFO level is 16. 0 4 read-write RX_FIFO_FLUSH RX_FIFO_FLUSH Receive FIFO Flush Register 0x50 32 write-only n 0x0 0xFFFFFFFF RX_FIFO_RST Receive Channel FIFO Reset. Writing a 1 to this register flushes an individual RX FIFO (This is a self clearing bit.). A RX channel or block must be disabled prior to writing to this bit. • 0x0: Does not flush an individual RX FIFO. • 0x1: Flushes an individual RX FIFO. 0 1 write-only RX_FIFO_RST RX_FIFO_RST Receiver Block FIFO Reset Register 0x14 32 write-only n 0x0 0xFFFFFFFF RX_FIFO_RST Receiver FIFO Reset. Writing a 1 to this register flushes all the RX FIFOs (this is a self clearing bit). The Receiver Block must be disabled before writing to this bit. • 0x0: Does not flush the RX FIFO • 0x1: Flushes the RX FIFO 0 1 write-only RX_OVER RX_OVER Receive Overrun Register 0x40 32 read-only n 0x0 0xFFFFFFFF RX_CLR_FDO Read this bit to clear the RX FIFO Data Overrun interrupt. • 0x0: RX FIFO write valid • 0x1: RX FIFO write overrun 0 1 read-only SCLK_CFG SCLK_CFG Clock Configuration Register 0x10 32 read-write n 0x0 0xFFFFFFFF SCLK_GAT These bits are used to program the gating of sclk. The programmed gating value must be less than or equal to the largest configured/programmed audio resolution to prevent the truncating of RX/TX data. The I2S Clock Generation block must be disabled (CLK_EN[0] = 0) before making any changes in this value. • 0x0 (NO_CLOCK_GATING): Clock gating is disabled • 0x1 (CLOCK_CYCLES_12): Gating after 12 sclk cycles • 0x2 (CLOCK_CYCLES_16): Gating after 16 sclk cycles • 0x3 (CLOCK_CYCLES_20): Gating after 20 sclk cycles • 0x4 (CLOCK_CYCLES_24): Gating after 24 sclk cycles Exists: This register is only relevant when component is configured to be a master (I2S_MODE_EN = 1). 0 3 read-write WS_SCLK These bits are used to program the number of sclk cycles for which the word select line (ws_out) stays in the left or right sample mode. The I2S Clock Generation block must be disabled (CLK_EN[0] = 0) prior to any changes in this value. • 0x0: 16 sclk cycles • 0x1: 24 sclk cycles • 0x2: 32 sclk cycles Exists: This register is only relevant when component is configured to be a master (I2S_MODE_EN = 1). 3 2 read-write TX_CFG TX_CFG Transmit Configuration Register 0x34 32 read-write n 0x5 0xFFFFFFFF WORD_LEN These bits are used to program the data resolution of the transmitter and ensures the MSB of the data is transmitted first. Programmed resolution must be less than or equal to 0x5. If the selected resolution is greater than 0x5, the transmit channel defaults back to 0x5. The channel must be disabled prior to any changes in this value(TX_EN[0] = 0). • 0x0: Ignore the word length • 0x1: 12-bit data resolution of the transmitter. • 0x2: 16-bit data resolution of the transmitter. • 0x3: 20-bit data resolution of the transmitter. • 0x4: 24-bit data resolution of the transmitter. • 0x5: 32-bit data resolution of the transmitter. 0 3 read-write TX_CH_EN TX_CH_EN Transmit Enable Register 0x2C 32 read-write n 0x1 0xFFFFFFFF TX_CH_EN Transmit channel enable. This bit enables/disables a transmit channel. On enable, the channel begins transmitting on the next left stereo cycle. A global disable of I2S (EN[0] = 0) or Transmitter block (TX_EN[0] = 0) overrides this value. • 0x0: Transmit Channel Disable • 0x1: Transmit Channel Enable 0 1 read-write TX_DMA TX_DMA Transmitter Block DMA Register 0x1C8 32 read-write n 0x0 0xFFFFFFFF TX_DMA Transmitter Block DMA Register. These bits are used to cycle repeatedly through the enabled transmit channel to allow writing of stereo data pairs. 0 1 read-write TX_EN TX_EN I2S Transmitter Block Enable Register 0x8 32 read-write n 0x0 0xFFFFFFFF TX_EN Transmitter block enable. This bit enables or disables the transmitter. A disable on this bit overrides any individual transmit channel enables. Value: • 0x0: Transmitter disabled • 0x1: Transmitter enabled 0 1 read-write TX_FIFO_CFG TX_FIFO_CFG Transmit FIFO Configuration Register 0x4C 32 read-write n 0x8 0xFFFFFFFF TX_FIFO_TL These bits program the trigger level in the RX FIFO at which the Received Data Available interrupt is generated. Trigger Level = Programmed Value + 1 • 0x0: Interrupt trigger when FIFO level is 1. • 0x1: Interrupt trigger when FIFO level is 2. • 0x2: Interrupt trigger when FIFO level is 3. • 0x3: Interrupt trigger when FIFO level is 4. • 0x4: Interrupt trigger when FIFO level is 5. • 0x5: Interrupt trigger when FIFO level is 6. • 0x6: Interrupt trigger when FIFO level is 7. • 0x7: Interrupt trigger when FIFO level is 8. • 0x8: Interrupt trigger when FIFO level is 9. • 0x9: Interrupt trigger when FIFO level is 10. • 0xA: Interrupt trigger when FIFO level is 11. • 0xB: Interrupt trigger when FIFO level is 12. • 0xC: Interrupt trigger when FIFO level is 13. • 0xD: Interrupt trigger when FIFO level is 14. • 0xE: Interrupt trigger when FIFO level is 15. • 0xF: Interrupt trigger when FIFO level is 16. 0 4 read-write TX_FIFO_FLUSH TX_FIFO_FLUSH Transmit FIFO Flush Register 0x54 32 write-only n 0x0 0xFFFFFFFF TX_FIFO_RST Transmit Channel FIFO Reset. Writing a 1 to this register flushes an individual TX FIFO (This is a self clearing bit.). A TX channel or block must be disabled prior to writing to this bit. Value: • 0x0: Does not flush an individual TX FIFO. • 0x1: Flushes an individual TX FIFO. 0 1 write-only TX_FIFO_RST TX_FIFO_RST Transmitter Block FIFO Reset Register 0x18 32 write-only n 0x0 0xFFFFFFFF TX_FIFO_RST Transmitter FIFO Reset. Writing a 1 to this register flushes all the TX FIFOs (this is a self clearing bit). The Transmitter Block must be disabled prior to writing this bit. Value: • 0x0: Does not flush the TX FIFO • 0x1: Flushes the TX FIFO 0 1 write-only TX_OVER TX_OVER Transmit Overrun Register 0x44 32 read-only n 0x0 0xFFFFFFFF TX_CLR_FDO Read this bit to clear the TX FIFO Data Overrun interrupt. • 0x0: TX FIFO write valid • 0x1: TX FIFO write overrun 0 1 read-only I2S_S Inter—IC Sound I2S 0xA000F000 0x0 0x70 registers n I2S_M I2S_M interrupt 29 I2S_S I2S_S interrupt 30 CLK_CFG CLK_CFG I2S Clock Configure Register 0x268 32 read-write n 0x40008 0xFFFFFFFF CLK_SRC_SEL clock divider source select 0: 96M, 1: 32M 18 1 read-write DIV ratio = 1/(div + 2). Duty cycle is not 50 when the number is odd. For example: div = 0, ratio = 1/2 0 12 read-write DIV_EN enable i2s clock divider 16 1 read-write CLK_EN CLK_EN Clock Enable Register 0xC 32 read-write n 0x0 0xFFFFFFFF CLK_EN Clock Generation enable/disable. This bit enables or disables the clock generation signals when I2S is a master. • 0x0: Clock generation disabled • 0x1: Clock generation enabled Note: When the I2S is configured as a slave, this register serves no purpose. 0 1 read-write EN EN I2S Enable Register 0x0 32 read-write n 0x0 0xFFFFFFFF I2S_EN I2S enable. This bit enables or disables I2S. A disable on this bit overrides any other block or channel enables and flushes all FIFOs. Value: 0x0: I2S disabled. 0x1: I2S enabled 0 1 read-write INT_MASK INT_MASK Interrupt Mask Register 0x3C 32 read-write n 0x13 0xFFFFFFFF RX_DAM Mask RX FIFO Data Available interrupt. This bit masks or unmasks an RX FIFO Data Available interrupt. • 0x1: Disable RX FIFO data available interrupt • 0x0: Enable RX FIFO data available interrupt 0 1 read-write RX_FOM Mask RX FIFO Overrun interrupt. This bit masks or unmasks an RX FIFO Overrun interrupt. • 0x1: Disable RX FIFO Overrun interrupt • 0x0: Enable RX FIFO Overrun interrupt 1 1 read-write TX_FEM Mask TX FIFO Empty interrupt. This bit masks or unmasks a TX FIFO Empty interrupt. • 0x1: Disable TX FIFO Empty interrupt • 0x0: Enable TX FIFO Empty interrupt 4 1 read-write TX_FOM Mask TX FIFO Overrun interrupt. This bit masks or unmasks a TX FIFO overrun interrupt. • 0x1: Disable TX FIFO Overrun interrupt • 0x0: Enable TX FIFO Overrun interrupt 5 1 read-write INT_STAT INT_STAT Interrupt status Register 0x38 32 read-only n 0x10 0xFFFFFFFF RX_DATA_AVL Status of Receive Data Available interrupt. This bit denotes the status of the RX FIFO trigger level. • 0x1: RX FIFO trigger level is reached • 0x0: RX FIFO trigger level is not reached 0 1 read-only RX_FIFO_OVER Status of Data Overrun interrupt for the RX channel. Incoming data lost due to a full RX FIFO. • 0x0: RX FIFO write valid • 0x1: RX FIFO write overrun 1 1 read-only TX_FIFO_EMPTY Status of Transmit Empty Trigger interrupt. This bit specifies whether the TX FIFO trigger level has reached or not. TX FIFO is empty. • 0x0: TX FIFO trigger level is reached • 0x1: TX FIFO trigger level is not reached 4 1 read-only TX_FIFO_OVER Status of Data Overrun interrupt for the TX channel. This bit specifies whether the TX FIFO write is valid or an overrun. Attempt to write to full TX FIFO. • 0x0: TX FIFO write valid • 0x1: TX FIFO write overrun 5 1 read-only LEFT_RX_BUF LEFT_RX_BUF Left Receive Buffer Register 0x20 32 read-only n 0x0 0xFFFFFFFF LEFT_RX_BUF The left stereo data received serially from the receive channel input (sdi). If the RX FIFO is full and the two-stage read operation (for instance, a read from LEFT_RX_BUF register followed by a read from RIGHT_RX_BUF register) is not performed before the start of the next stereo pair, then the new data is lost and an overrun interrupt occurs. (data already in the RX FIFO is preserved.) Note: Before reading this register again, the right stereo data must be read from RRBRx or the status/interrupts will not be valid. 0 32 read-only LEFT_TX_HDG LEFT_TX_HDG Left Transmit Holding Register LEFT_RX_BUF 0x20 32 write-only n 0x0 0xFFFFFFFF LEFT_TX_HDG The left stereo data to be transmitted serially through the transmit channel output (sdo) is written through this register. Writing is a two-stage process: 1. A write to this register passes the left stereo sample to the transmitter. 2. This MUST be followed by writing the right stereo sample to the RIGHT_TX_HDG register. Data must only be written to the FIFO when it is not full. Any attempt to write to a full FIFO results in that data being lost and an overrun interrupt being generated. 0 32 write-only RIGHT_RX_BUF RIGHT_RX_BUF Right Receive Buffer Register 0x24 32 read-only n 0x0 0xFFFFFFFF RIGHT_RX_BUF The right stereo data received serially from the receive channel input (sdi) is read through this register. If the RX FIFO is full and the two-stage read operation (for instance, read from LEFT_RX_BUF register followed by a read from RIGHT_RX_BUF register) is not performed before the start of the next stereo pair, then the new data is lost and an overrun interrupt occurs. (Data already in the RX FIFO is preserved.) Note: Prior to reading this register, the left stereo data MUST be read from LEFT_RX_BUF register, or the status/interrupts will not be valid. 0 32 read-only RIGHT_TX_HDG RIGHT_TX_HDG Right Transmit Holding Register RIGHT_RX_BUF 0x24 32 write-only n 0x0 0xFFFFFFFF RIGHT_TX_HDG The right stereo data to be transmitted serially through the transmit channel output (sdo) is written through this register. Writing is a two-stage process: 1. A left stereo sample MUST be written to the LTHR register. 2. A write to this register passes the right stereo sample to the transmitter. Data should only be written to the FIFO when it is not full. Any attempt to write to a full FIFO results in that data being lost and an overrun interrupt being generated. 0 32 write-only RST_RX_DMA RST_RX_DMA Reset Receiver Block DMA Register 0x1C4 32 write-only n 0x0 0xFFFFFFFF RST_RX_DMA Reset Receiver Block DMA Register. Writing a 1 to this self-clearing register resets the RXDMA register mid-cycle to point to the enabled Receive channel. • 0x0: No effect. • 0x1: Reset receiver block DMA register. 0 1 write-only RST_TX_DMA RST_TX_DMA Reset Transmitter Block DMA Register 0x1CC 32 write-only n 0x0 0xFFFFFFFF RST_TX_DMA Reset Transmitter Block DMA Register. Writing a 1 to this self-clearing register resets the TXDMA register mid-cycle to point to the enabled Transmit channel. • 0x0: No effect. • 0x1: Reset transmitter block DMA register. 0 1 write-only RX_CFG RX_CFG Receive Configuration Register 0x30 32 read-write n 0x5 0xFFFFFFFF WORD_LEN These bits are used to program the desired data resolution of the receiver and enables the LSB of the incoming left (or right) word to be placed in the LSB of the LEFT_RX_BUF (or RIGHT_RX_BUF) register. Programmed data resolution must be less than or equal to 0x5. If the selected resolution is greater than the 0x5, the receive channel defaults back to 0x5. The channel must be disabled prior to any changes in this value(RX_EN[0] = 0). • 0x0: Ignore the word length • 0x1: 12-bit data resolution of the receiver. • 0x2: 16-bit data resolution of the receiver. • 0x3: 20-bit data resolution of the receiver. • 0x4: 24-bit data resolution of the receiver. • 0x5: 32-bit data resolution of the receiver. 0 3 read-write RX_CH_EN RX_CH_EN Receive Enable Register 0x28 32 read-write n 0x1 0xFFFFFFFF RX_CH_EN Receive channel enable. This bit enables/disables a receive channel. On enable, the channel begins receiving on the next left stereo cycle. A global disable of I2S (EN[0] = 0) or the Receiver block (RX_EN[0] = 0) overrides this value. • 0x0: Receive Channel Disable • 0x1: Receive Channel Enable 0 1 read-write RX_DMA RX_DMA Receiver Block DMA Register 0x1C0 32 read-write n 0x0 0xFFFFFFFF RX_DMA Receiver Block DMA Register. These bits are used to cycle repeatedly through the enabled receive channel, reading stereo data pairs. 0 1 read-write RX_EN RX_EN I2S Receiver Block Enable Register 0x4 32 read-write n 0x0 0xFFFFFFFF RX_EN Receiver block enable. This bit enables or disables the receiver. A disable on this bit overrides any individual receive channel enables. Value: • 0x0: Receiver disabled • 0x1: Receiver enabled 0 1 read-write RX_FIFO_CFG RX_FIFO_CFG Receive FIFO Configuration Register 0x48 32 read-write n 0x8 0xFFFFFFFF RX_FIFO_TL These bits program the trigger level in the RX FIFO at which the Received Data Available interrupt is generated. Trigger Level = Programmed Value + 1 • 0x0: Interrupt trigger when FIFO level is 1. • 0x1: Interrupt trigger when FIFO level is 2. • 0x2: Interrupt trigger when FIFO level is 3. • 0x3: Interrupt trigger when FIFO level is 4. • 0x4: Interrupt trigger when FIFO level is 5. • 0x5: Interrupt trigger when FIFO level is 6. • 0x6: Interrupt trigger when FIFO level is 7. • 0x7: Interrupt trigger when FIFO level is 8. • 0x8: Interrupt trigger when FIFO level is 9. • 0x9: Interrupt trigger when FIFO level is 10. • 0xA: Interrupt trigger when FIFO level is 11. • 0xB: Interrupt trigger when FIFO level is 12. • 0xC: Interrupt trigger when FIFO level is 13. • 0xD: Interrupt trigger when FIFO level is 14. • 0xE: Interrupt trigger when FIFO level is 15. • 0xF: Interrupt trigger when FIFO level is 16. 0 4 read-write RX_FIFO_FLUSH RX_FIFO_FLUSH Receive FIFO Flush Register 0x50 32 write-only n 0x0 0xFFFFFFFF RX_FIFO_RST Receive Channel FIFO Reset. Writing a 1 to this register flushes an individual RX FIFO (This is a self clearing bit.). A RX channel or block must be disabled prior to writing to this bit. • 0x0: Does not flush an individual RX FIFO. • 0x1: Flushes an individual RX FIFO. 0 1 write-only RX_FIFO_RST RX_FIFO_RST Receiver Block FIFO Reset Register 0x14 32 write-only n 0x0 0xFFFFFFFF RX_FIFO_RST Receiver FIFO Reset. Writing a 1 to this register flushes all the RX FIFOs (this is a self clearing bit). The Receiver Block must be disabled before writing to this bit. • 0x0: Does not flush the RX FIFO • 0x1: Flushes the RX FIFO 0 1 write-only RX_OVER RX_OVER Receive Overrun Register 0x40 32 read-only n 0x0 0xFFFFFFFF RX_CLR_FDO Read this bit to clear the RX FIFO Data Overrun interrupt. • 0x0: RX FIFO write valid • 0x1: RX FIFO write overrun 0 1 read-only SCLK_CFG SCLK_CFG Clock Configuration Register 0x10 32 read-write n 0x0 0xFFFFFFFF SCLK_GAT These bits are used to program the gating of sclk. The programmed gating value must be less than or equal to the largest configured/programmed audio resolution to prevent the truncating of RX/TX data. The I2S Clock Generation block must be disabled (CLK_EN[0] = 0) before making any changes in this value. • 0x0 (NO_CLOCK_GATING): Clock gating is disabled • 0x1 (CLOCK_CYCLES_12): Gating after 12 sclk cycles • 0x2 (CLOCK_CYCLES_16): Gating after 16 sclk cycles • 0x3 (CLOCK_CYCLES_20): Gating after 20 sclk cycles • 0x4 (CLOCK_CYCLES_24): Gating after 24 sclk cycles Exists: This register is only relevant when component is configured to be a master (I2S_MODE_EN = 1). 0 3 read-write WS_SCLK These bits are used to program the number of sclk cycles for which the word select line (ws_out) stays in the left or right sample mode. The I2S Clock Generation block must be disabled (CLK_EN[0] = 0) prior to any changes in this value. • 0x0: 16 sclk cycles • 0x1: 24 sclk cycles • 0x2: 32 sclk cycles Exists: This register is only relevant when component is configured to be a master (I2S_MODE_EN = 1). 3 2 read-write TX_CFG TX_CFG Transmit Configuration Register 0x34 32 read-write n 0x5 0xFFFFFFFF WORD_LEN These bits are used to program the data resolution of the transmitter and ensures the MSB of the data is transmitted first. Programmed resolution must be less than or equal to 0x5. If the selected resolution is greater than 0x5, the transmit channel defaults back to 0x5. The channel must be disabled prior to any changes in this value(TX_EN[0] = 0). • 0x0: Ignore the word length • 0x1: 12-bit data resolution of the transmitter. • 0x2: 16-bit data resolution of the transmitter. • 0x3: 20-bit data resolution of the transmitter. • 0x4: 24-bit data resolution of the transmitter. • 0x5: 32-bit data resolution of the transmitter. 0 3 read-write TX_CH_EN TX_CH_EN Transmit Enable Register 0x2C 32 read-write n 0x1 0xFFFFFFFF TX_CH_EN Transmit channel enable. This bit enables/disables a transmit channel. On enable, the channel begins transmitting on the next left stereo cycle. A global disable of I2S (EN[0] = 0) or Transmitter block (TX_EN[0] = 0) overrides this value. • 0x0: Transmit Channel Disable • 0x1: Transmit Channel Enable 0 1 read-write TX_DMA TX_DMA Transmitter Block DMA Register 0x1C8 32 read-write n 0x0 0xFFFFFFFF TX_DMA Transmitter Block DMA Register. These bits are used to cycle repeatedly through the enabled transmit channel to allow writing of stereo data pairs. 0 1 read-write TX_EN TX_EN I2S Transmitter Block Enable Register 0x8 32 read-write n 0x0 0xFFFFFFFF TX_EN Transmitter block enable. This bit enables or disables the transmitter. A disable on this bit overrides any individual transmit channel enables. Value: • 0x0: Transmitter disabled • 0x1: Transmitter enabled 0 1 read-write TX_FIFO_CFG TX_FIFO_CFG Transmit FIFO Configuration Register 0x4C 32 read-write n 0x8 0xFFFFFFFF TX_FIFO_TL These bits program the trigger level in the RX FIFO at which the Received Data Available interrupt is generated. Trigger Level = Programmed Value + 1 • 0x0: Interrupt trigger when FIFO level is 1. • 0x1: Interrupt trigger when FIFO level is 2. • 0x2: Interrupt trigger when FIFO level is 3. • 0x3: Interrupt trigger when FIFO level is 4. • 0x4: Interrupt trigger when FIFO level is 5. • 0x5: Interrupt trigger when FIFO level is 6. • 0x6: Interrupt trigger when FIFO level is 7. • 0x7: Interrupt trigger when FIFO level is 8. • 0x8: Interrupt trigger when FIFO level is 9. • 0x9: Interrupt trigger when FIFO level is 10. • 0xA: Interrupt trigger when FIFO level is 11. • 0xB: Interrupt trigger when FIFO level is 12. • 0xC: Interrupt trigger when FIFO level is 13. • 0xD: Interrupt trigger when FIFO level is 14. • 0xE: Interrupt trigger when FIFO level is 15. • 0xF: Interrupt trigger when FIFO level is 16. 0 4 read-write TX_FIFO_FLUSH TX_FIFO_FLUSH Transmit FIFO Flush Register 0x54 32 write-only n 0x0 0xFFFFFFFF TX_FIFO_RST Transmit Channel FIFO Reset. Writing a 1 to this register flushes an individual TX FIFO (This is a self clearing bit.). A TX channel or block must be disabled prior to writing to this bit. Value: • 0x0: Does not flush an individual TX FIFO. • 0x1: Flushes an individual TX FIFO. 0 1 write-only TX_FIFO_RST TX_FIFO_RST Transmitter Block FIFO Reset Register 0x18 32 write-only n 0x0 0xFFFFFFFF TX_FIFO_RST Transmitter FIFO Reset. Writing a 1 to this register flushes all the TX FIFOs (this is a self clearing bit). The Transmitter Block must be disabled prior to writing this bit. Value: • 0x0: Does not flush the TX FIFO • 0x1: Flushes the TX FIFO 0 1 write-only TX_OVER TX_OVER Transmit Overrun Register 0x44 32 read-only n 0x0 0xFFFFFFFF TX_CLR_FDO Read this bit to clear the TX FIFO Data Overrun interrupt. • 0x0: TX FIFO write valid • 0x1: TX FIFO write overrun 0 1 read-only ISO7816 SIM Interface block (ISO/IEC 7816-3 ) ISO7816 0xA000F200 0x0 0x24 registers n ISO7816 ISO7816 Interrupt 31 ADDR ADDR Address Register 0x18 32 read-only n 0x0 0xFFFFFFFF ADDR • Address. • Current address relative to base_addr. 2 18 read-only ADDR_FRAC Address Fraction. Byte selection. 0 2 read-only CLK_CFG CLK_CFG Clock Configuration Register 0x8 32 read-write n 0x2F0173 0xFFFFFFFF CLK_DIV • Clock Division. • Divide system clock by this value + 1. 16 8 read-write CLK_STOP_SEL Clock Stop Select. Value of the clock output during stopped clock. 0x0: Low 0x1: High 31 1 read-write ETU_DIV Divide SIM clock by this value+1 to define ETU length. The reset value is the one, needed for the ATR. 0 10 read-write CTRL CTRL Control Register 0x0 32 write-only n 0x0 0xFFFFFFFF ACTION 0x0: Do Nothing. 0x1: Switch off. 0x2: Stop the clock. 0x3: Switch on and receive ATR. Re-enable clock if clock is stoped. 0x4: Trigger warm reset and receive ATR. 0x5: Receive. 0x6: Transmit. 0x7: Transmit, followed by RX 0 3 write-only IRQ_DMA_EC Interrupt source dma_err clear. This register clears interrupt source ‘STAT.INT_DMA_ERR’. 0x0: No effect 0x1: Clear 23 1 write-only IRQ_DONE_CLR Interrupt source done clear. This register clears interrupt source ‘STAT.INT_DONE’. 0x0: No effect 0x1: Clear 20 1 write-only IRQ_PRESENCE_CLR Interrupt source presence clear. This register clears interrupt source ‘STAT.INT_PRESENCE’. 0x0: No effect 0x1: Clear 25 1 write-only IRQ_RETYR_EC Interrupt source retry_err clear. This register clears interrupt source ‘STAT.IRQ_RETYR_ERR’. 0x0: No effect 0x1: Clear 22 1 write-only IRQ_RX_EC Interrupt source rx_err clear. This register clears interrupt source ‘STAT.INT_RX_ERR’. 0x0: No effect 0x1: Clear 21 1 write-only IRQ_STAT_EC Interrupt source state_err clear. This register clears interrupt source ‘STAT.INT_STAT_ERR’. 0x0: No effect 0x1: Clear 24 1 write-only IRQ_TEST_CLR Interrupt Test Clear. This register clears test interrupt (has higher priority than ‘INT_TEST_SET’) 0x0: No effect 0x1: Clear 30 1 write-only IRQ_TEST_SET Interrupt Test Set. This register sets test interrupt 0x0: No effect 0x1: Set 31 1 write-only RX_RETYR_MC Receive Retries Maximum Clear. This register clears ‘STAT.RX_RETRY_MAX’. 0x0: No effect 0x1: Clear 8 1 write-only TX_RETYR_MC Transmit Retries Maximum Clear. This register clears ‘STAT.TX_RETRY_MAX’. 0x0: No effect 0x1: Clear 12 1 write-only DATA_CFG DATA_CFG Data Configuration Register 0x14 32 read-write n 0x2 0xFFFFFFFF CODING Coding Convention. 0x0: Default. High = 1, LSB first. 0x1: Inverse. High = 0, MSB first. 0 1 read-write DETECT_CODING Detect Coding Convention. Automatically detect coding convention during ATR receiption. 0x0: Disable 0x1: Enable 1 1 read-write RETRY_LIMIT • Retries Limit. • Maximum number of issued retries before giving up. 4 3 read-write RX_END_ADDR RX_END_ADDR RX End Address Register 0x20 32 read-only n 0x0 0xFFFFFFFF RX_END_ADDR • RX End Address. • End address of receive buffer, relative to base_addr. 2 18 read-only RX_END_AF RX End Address Fraction. Byte selection. 0 2 read-only START_ADDR START_ADDR Start Address Register 0x1C 32 read-write n 0x0 0xFFFFFFFF BASE_ADDR Base Address. Base Address for RX and TX Buffer. 20 12 read-write START_ADDR • Address. • Current address relative to base_addr. 2 18 read-write STAT STAT Status Register 0x4 32 read-only n 0x20000 0xFFFFFFFF BUSY Status of SIM interface. 0x0: Idle 0x1: Busy 16 1 read-only IO_STAT Receive Retries Maximum Clear. This register clears ‘STAT.RX_RETRY_MAX’. 0x0: No effect 0x1: Clear 4 3 read-only IRQ_DMA_ERR Interrupt DMA Error. DMA read/write operation could not be issued. 0x0: No interrupt 0x1: Active 23 1 read-only IRQ_DONE Interrupt Done. Requeted operation has been completed. 0x0: No interrupt 0x1: Active 20 1 read-only IRQ_PRESENCE Interrupt Presence. SIM card presence changed. Inserted or removed. 0x0: No interrupt 0x1: Active 25 1 read-only IRQ_RETRY_ERR Interrupt Retry Error. Maximum number of retries exceeded. 0x0: No interrupt 0x1: Active 22 1 read-only IRQ_RX_ERR Interrupt RX Error. No or incomplete or unexpected data. 0x0: No interrupt 0x1: Active 21 1 read-only IRQ_STAT_ERR Interrupt State Error. Action rerquested while busy or unsupported transition. 0x0: No interrupt 0x1: Active 24 1 read-only IRQ_TEST Interrupt Test. Test interrupt for connection check. 0x0: No interrupt 0x1: Active 30 1 read-only PRESENCE_STAT Status of presence IO. 0x0: Absent 0x1: Presence 17 1 read-only PWR_STAT Power States. 0x0: SIM is unpowered. 0x1: Power up SIM. RST asserted(low). Clock stopped. IO is tristate. 0x2: Power up SIM. RST asserted(low). Clock is running. IO is high. 0x3: Power up SIM. RST asserted(low). Clock is running. IO is tristate. 0x4: Power up SIM. RST asserted(low). Clock stopped. IO is low. 0x5: Preparing clock stop. 0x6: Clock stopped. 0x7: Exiting clock stop 0x8: SIM is idle, no communication is ongoing. 0x9: RX TS Character. 0xA: RX TS Character. 0XB: Receive. 0xC: Transmit. 0xD: Transmit and Receive 0 4 read-only RX_RETRY_MAX Receive Retries Maximum. Maximum number of seen receive retries after parity error. 8 3 read-only TX_RETRY_MAX Transmit Retries Maximum. Maximum number of seen transmit retries after error signaling by SIM. 12 3 read-only TIMES_CFG TIMES_CFG Times Configuration Register 0x10 32 read-write n 0x6B000 0xFFFFFFFF GUARD_TIME Guard time in [ETU]. Time between the leading edges of two consecutive characters. 0 10 read-write WAIT_TIME • Wait time in [ETU]. • Maximum card response time (leading edge to leading edge). 12 18 read-write TX_END_ADDR TX_END_ADDR TX End Address Register 0x24 32 read-only n 0x0 0xFFFFFFFF TX_END_ADDR TX End Address. • End address of transmit buffer, relative to base_addr. 2 18 read-only TX_END_AF TX End Address Fraction. Byte selection. 0 2 read-only PIN_MUX pin multiplexing PIN_MUX 0xA000C530 0x0 0x38 registers n ANO_PAD_CTRL0 ANO_PAD_CTRL0 AON PAD control 0 Register 0x20 32 read-write n 0x0 0xFFFFFFFF AON_MCU_OVE Use the setting from MCU domain, Only valid when MCU domain is ON 0x0: Disable AONx digital setting 0x1: Enable AONx digital setting 16 8 read-write AON_R_EN Always on PAD resister enable 0x0: Enable AONx resistor 0x1: Disable AONx resistor 0 8 read-write AON_R_TYPE Always on PAD resistor type 0x0: Pull down 0x1: Pull up 8 8 read-write TIMER_CLK_SEL comm timer clock select 0x0: rng_osc_clk 0x1: rtc_osc_clk 0x2, 0x3: rng_2_osc_clk (an rng clock with better ppm) 28 2 read-write ANO_PAD_CTRL1 ANO_PAD_CTRL1 AON PAD control 0 Register 0x2C 32 read-write n 0xFF 0xFFFFFFFF AON_OUT_EN Always on PAD output enable (active low) 0x0: Enable AONx output 0x1: Disable AONx output 0 8 read-write AON_OUT_VAL AON PAD output value (valid when oe_n = 0) 0x0: Drive AONx low 0x1: Drive AONx high 8 8 read-write OVR_EN Enable override for all stdby_n and vdd_iso_n value 25 1 read-write TIMER_RD_SEL Select which timer value to read 0x0: calendar timer 0x1: always on watchdog timer 0x2: sleep timer 0x3: Calendar timer alarm value 30 2 read-write AON_PAD_MUX_CTRL AON_PAD_MUX_CTRL Always-on PAD mux control register 0x1D60 32 read-write n 0x777770 0xFFFFFFFF AON_PAD_MUX_SEL_01 Mode for AON PAD [1] 4 3 read-write AON_PAD_MUX_SEL_02 Mode for AON PAD [2] 8 3 read-write AON_PAD_MUX_SEL_03 Mode for AON PAD [3] 12 3 read-write AON_PAD_MUX_SEL_04 Mode for AON PAD [4] 16 3 read-write AON_PAD_MUX_SEL_05 Mode for AON PAD [5] 20 3 read-write DPAD_IN_EN DPAD_IN_EN Resistor enable active lO inputs to the RETENTION PAD 0x1CD8 32 read-write n 0x0 0xFFFFFFFF DPAD_IN_EN Resistor enable active lO inputs to the RETENTION PAD 0x0: Enable resistor inputs to pad (GPIO_0 – GPIO_31) 0x1: Disable resistor inputs to pad (GPIO_ 0 – GPIO_31) 0 32 read-write DPAD_MUX_CTRL_00_07 DPAD_MUX_CTRL_00_07 DPAD mux control GPIO_0 – GPIO_7 register 0x1D10 32 read-write n 0x77777700 0xFFFFFFFF DPAD_MUX_SEL_00 Mode for DPAD 0 0 4 read-write DPAD_MUX_SEL_01 Mode for DPAD 1 4 4 read-write DPAD_MUX_SEL_02 Mode for DPAD 2 8 4 read-write DPAD_MUX_SEL_03 Mode for DPAD 3 12 4 read-write DPAD_MUX_SEL_04 Mode for DPAD 4 16 4 read-write DPAD_MUX_SEL_05 Mode for DPAD 5 20 4 read-write DPAD_MUX_SEL_06 Mode for DPAD 6 24 4 read-write DPAD_MUX_SEL_07 Mode for DPAD 7 28 4 read-write DPAD_MUX_CTRL_08_15 DPAD_MUX_CTRL_08_15 DPAD mux control GPIO_8 – GPIO_15 register 0x1D14 32 read-write n 0x77777777 0xFFFFFFFF DPAD_MUX_SEL_08 Mode for DPAD 8 0 4 read-write DPAD_MUX_SEL_09 Mode for DPAD 9 4 4 read-write DPAD_MUX_SEL_10 Mode for DPAD 10 8 4 read-write DPAD_MUX_SEL_11 Mode for DPAD 11 12 4 read-write DPAD_MUX_SEL_12 Mode for DPAD 12 16 4 read-write DPAD_MUX_SEL_13 Mode for DPAD 13 20 4 read-write DPAD_MUX_SEL_14 Mode for DPAD 14 24 4 read-write DPAD_MUX_SEL_15 Mode for DPAD 15 28 4 read-write DPAD_MUX_CTRL_16_23 DPAD_MUX_CTRL_16_23 DPAD mux control GPIO_16 – GPIO_23 register 0x1D18 32 read-write n 0x77777777 0xFFFFFFFF DPAD_MUX_SELL_22 Mode for DPAD 22 24 4 read-write DPAD_MUX_SEL_16 Mode for DPAD 16 0 4 read-write DPAD_MUX_SEL_17 Mode for DPAD 17 4 4 read-write DPAD_MUX_SEL_18 Mode for DPAD 18 8 4 read-write DPAD_MUX_SEL_19 Mode for DPAD 19 12 4 read-write DPAD_MUX_SEL_20 Mode for DPAD 20 16 4 read-write DPAD_MUX_SEL_21 Mode for DPAD 21 20 4 read-write DPAD_MUX_SEL_23 Mode for DPAD 23 28 4 read-write DPAD_MUX_CTRL_24_31 DPAD_MUX_CTRL_24_31 DPAD mux control GPIO_24– GPIO_31 register 0x1D1C 32 read-write n 0x77777777 0xFFFFFFFF DPAD_MUX_SEL_24 Mode for DPAD 24 0 4 read-write DPAD_MUX_SEL_25 Mode for DPAD 25 4 4 read-write DPAD_MUX_SEL_26 Mode for DPAD 26 8 4 read-write DPAD_MUX_SEL_27 Mode for DPAD 27 12 4 read-write DPAD_MUX_SEL_28 Mode for DPAD 28 16 4 read-write DPAD_MUX_SEL_29 Mode for DPAD 29 20 4 read-write DPAD_MUX_SEL_30 Mode for DPAD 30 24 4 read-write DPAD_MUX_SEL_31 Mode for DPAD 31 28 4 read-write DPAD_OUT_EN DPAD_OUT_EN Output enable active lO inputs to the RETENTION PAD 0x1CE8 32 read-write n 0x0 0xFFFFFFFF DPAD_OUT_EN Output enable active lO inputs to the RETENTION PAD 0x0: Enable output. 0x1: Disable output. 0 32 read-write DPAD_PULL_TYPE DPAD_PULL_TYPE Resistor type inputs to the RETENTION PAD. 0x1CE0 32 read-write n 0x0 0xFFFFFFFF DPAD_R_TYPE Resistor type inputs to the RETENTION PAD. 0x0: Pull down (when DPAD_IN_EN = 0) 0x1: Pull up (when DPAD_IN_EN = 0) 0 32 read-write MSIO_PAD_CFG0 MSIO_PAD_CFG0 MISO PAD Configuration 0 Register 0xC 32 read-write n 0x0 0xFFFFFFFF MSIO_IN_EN MSIO input enable (active low) 0x0: Enable MSIOx input 0x1: Disable MSIOx input 16 5 read-write MSIO_OUT MSIO Drive value (valid in output mode) 0x0: Drive MSIOx low 0x1: Drive MSIOx high 8 5 read-write MSIO_OUT_EN MSIO output enable (active low) 0x0: Enable MSIOx output 0x1: Disable MSIOx output 24 5 read-write MSIO_R_EN MSIO resistor enable (active low) 0x0: Enable MSIOx resistor 0x1: Disable MSIOx resistor 0 5 read-write MSIO_PAD_CFG1 MSIO_PAD_CFG1 MISO PAD Configuration 1 Register 0x10 32 read-write n 0x0 0xFFFFFFFF DEP_CTRL_RD deep sleep control comm timer register read bit 15 1 read-only DEP_CTRL_WR deep sleep control comm timer register write bit 16 6 read-write MSIO_A_EN Analog enable control for MSIO Pad 0x0: Analog mode 0x1: Digital mode 0 5 read-write MSIO_MCU_OVE Use the setting from MCU domain, Only valid when MCU domain is ON 0x0: Disable MSIOx digital setting 0x1: Enable MSIOx digital setting 22 5 read-write MSIO_R_TYPE MSIO resistor type 0x0: Pull down 0x1: Pull up 8 5 read-write SADC_CLK_EN ADC clock Enable 0x0: Disable ADC clock 0x1: Enable ADC clock 31 1 read-write SADC_CLK_SEL ADC clock select 0x0: 16 M 0x1: 8 M 0x2: 4 M 0x3: 2 M 0x4, 0x6: 1.6 M 0x5, 0x7: 1 M 28 3 read-write MSIO_PAD_MUX_CTRL MSIO_PAD_MUX_CTRL Always-on PAD mux control register 0x1D64 32 read-write n 0x77777 0xFFFFFFFF MSIO_PAD_MUX_SELL_01 Mode for MSIO PAD [1] 4 3 read-write MSIO_PAD_MUX_SEL_00 Mode for MSIO PAD [0] 0 3 read-write MSIO_PAD_MUX_SEL_02 Mode for MSIO PAD [2] 8 3 read-write MSIO_PAD_MUX_SEL_03 Mode for MSIO PAD [3] 12 3 read-write MSIO_PAD_MUX_SEL_04 Mode for MSIO PAD [4] 16 3 read-write MSIO_VAL MSIO_VAL MSIO Digital value register 0x1CF0 32 read-write n 0x0 0xFFFFFFFF MSIO_VAL MSIO Digital value (when MSIO_PAD_CFG1.MSIO_A_EN = 1) 0 5 read-write PKC Public Key Cryptography PKC 0xA0014000 0x0 0x84 registers n PKC PKC interrupt 21 CFG0 CFG0 PKC Configuration 0 Register 0x4 32 read-write n 0x100000 0xFFFFFFFF K_POINT K point in sp_ram 0 9 read-write R_POINT R point in sp_ram 16 9 read-write CFG1 CFG1 PKC Configuration 1 Register 0x8 32 read-write n 0x280020 0xFFFFFFFF P_POINT p point in sp_ram 0 9 read-write R2_POINT R^2 point in sp_ram 16 9 read-write CFG10 CFG10 PKC Configuration 10 Register 0x2C 32 read-write n 0xB800B0 0xFFFFFFFF X1_POINT X1 point in sp_ram 0 9 read-write X2_POINT X2 point in sp_ram 16 9 read-write CFG11 CFG11 PKC Configuration 11 Register 0x30 32 read-write n 0xC800C0 0xFFFFFFFF KT_POINT software compute 2^256 mod point and write to sp_ram 16 9 read-write MIT_POINT Only used in hardware mode, mi point in sp_ram 0 9 read-write CFG12 CFG12 PKC Configuration 12 Register 0x34 32 read-write n 0xD800D0 0xFFFFFFFF A_POINT Curve parameter a in Montgomery field 0 9 read-write B_POINT Curve parameter b in Montgomery field 16 9 read-write CFG13 CFG13 PKC Configuration 13 Register 0x38 32 read-write n 0x1 0xFFFFFFFF CONSTQ Constant used in Montgomery Multiplication 0 32 read-write CFG2 CFG2 PKC Configuration 2 Register 0xC 32 read-write n 0x380030 0xFFFFFFFF GX_POINT Gx point in sp_ram 0 9 read-write GY_POINT Gy point in sp_ram 16 9 read-write CFG3 CFG3 PKC Configuration 3 Register 0x10 32 read-write n 0x480040 0xFFFFFFFF GZ_POINT Gz point in sp_ram 0 9 read-write R0X_POINT R0x point in sp_ram 16 9 read-write CFG4 CFG4 PKC Configuration 4 Register 0x14 32 read-write n 0x580050 0xFFFFFFFF R0Y_POINT R0y point in sp_ram 0 9 read-write R0Z_POINT R0z point in sp_ram 16 9 read-write CFG5 CFG5 PKC Configuration 5 Register 0x18 32 read-write n 0x680060 0xFFFFFFFF R1X_POINT R1x point in sp_ram 0 9 read-write R1Y_POINT R1y point in sp_ram 16 9 read-write CFG6 CFG6 PKC Configuration 6 Register 0x1C 32 read-write n 0x780070 0xFFFFFFFF R1Z_POINT R1z point in sp_ram 0 9 read-write TEMP1_POINT temp1 point in sp_ram 16 9 read-write CFG7 CFG7 PKC Configuration 7 Register 0x20 32 read-write n 0x880080 0xFFFFFFFF TEMP2_POINT temp2 point in sp_ram 0 9 read-write TEMP3_POINT temp3 point in sp_ram 16 9 read-write CFG8 CFG8 PKC Configuration 8 Register 0x24 32 read-write n 0x980090 0xFFFFFFFF TEMP4_POINT temp4 point in sp_ram 0 9 read-write TEMP5_POINT temp5 point in sp_ram 16 9 read-write CFG9 CFG9 PKC Configuration 9 Register 0x28 32 read-write n 0xA800A0 0xFFFFFFFF CONT1_POINT constant 1 point in sp_ram 16 9 read-write TEMP6_POINT temp6 point in sp_ram 0 9 read-write CTRL CTRL PKC Controller Register 0x0 32 read-write n 0x0 0xFFFFFFFF EN pkc core enable 0x0: disable PKC 0x1: enable PKC 0 1 read-write RST Write 0 and then write 1 to this bit, force PKC core to reset 8 1 read-write START Only used in hardware mode. After MCU configure all parameters, write 0 and then write 1 to this bit, PKC start to work 1 1 read-write SW_CTRL Only used in hardware mode. After MCU configure all parameters, write 0 and then write 1 to this bit, PKC start to work 4 1 read-write INT_EN INT_EN PKC Interrupt Enable Register 0x84 32 read-write n 0x0 0xFFFFFFFF BIAO_INT_EN PKC big integer add overflow interrupt enable 2 1 read-write CPLT_INT_EN PKC complete interrupt enable 0 1 read-write ERR_INT_EN PKC error interrupt enable 1 1 read-write INT_STAT INT_STAT PKC Interrupt Status Register 0x80 32 read-write n 0x0 0xFFFFFFFF BIAO_INT_FLAG PKC big integer add overflow flag, write 1 to clear 2 1 read-write CPLT_INT_FLAG PKC complete interrupt flag, write 1 to clear 0 1 read-write ERR_INT_FLAG PKC error interrupt flag, write 1 to clear 1 1 read-write STAT STAT PKC Status Register 0x88 32 read-only n 0x0 0xFFFFFFFF BUSY PKC busy status 0 1 read-only SW_CFG0 SW_CFG0 PKC Software Configuration 0 Register 0x44 32 read-write n 0x80000 0xFFFFFFFF MMA_POINT Modular multiplication A point in sp_ram 0 9 read-write MMB_POINT Modular multiplication B point in sp_ram 16 9 read-write SW_CFG1 SW_CFG1 PKC Software Configuration 1 Register 0x48 32 read-write n 0x180010 0xFFFFFFFF MMC_POINT Modular multiplication C point in sp_ram 16 9 read-write MMP_POINT Modular multiplication P point in sp_ram 0 9 read-write SW_CFG10 SW_CFG10 PKC Software Configuration 10 Register 0x6C 32 read-write n 0x780070 0xFFFFFFFF BMA_POINT Big multiplication A point in sp_ram 0 9 read-write BMB_POINT Big multiplication B point in sp_ram 16 9 read-write SW_CFG11 SW_CFG11 PKC Software Configuration 11 Register 0x70 32 read-write n 0x880080 0xFFFFFFFF BAA_POINT Big addition A point in sp_ram 16 9 read-write BMC_POINT Big multiplication C point in sp_ram 0 9 read-write SW_CFG12 SW_CFG12 PKC Software Configuration 12 Register 0x74 32 read-write n 0x980090 0xFFFFFFFF BAB_POINT Big addition B point in sp_ram 0 9 read-write BAC_POINT Big addition C point in sp_ram 16 9 read-write SW_CFG13 SW_CFG13 PKC Software Configuration 13 Register 0x78 32 read-write n 0x11223344 0xFFFFFFFF RCG_SEED Random clock gating seed 0 32 read-write SW_CFG2 SW_CFG2 PKC Software Configuration 2 Register 0x4C 32 read-write n 0x280020 0xFFFFFFFF MASA_POINT Modular addition/subtraction A point in sp_ram 0 9 read-write MASB_POINT Modular addition/subtraction B point in sp_ram 16 9 read-write SW_CFG3 SW_CFG3 PKC Software Configuration 3 Register 0x50 32 read-write n 0x380030 0xFFFFFFFF MASC_POINT Modular addition/subtraction C point in sp_ram 16 9 read-write MASP_POINT Modular addition/subtraction P point in sp_ram 0 9 read-write SW_CFG4 SW_CFG4 PKC Software Configuration 4 Register 0x54 32 read-write n 0x480040 0xFFFFFFFF MIU_POINT Modular invertion U point in sp_ram 0 9 read-write MIV_POINT Modular invertion V point in sp_ram 16 9 read-write SW_CFG5 SW_CFG5 PKC Software Configuration 5 Register 0x58 32 read-write n 0x580050 0xFFFFFFFF MIX1_POINT Modular invertion X1 point in sp_ram 0 9 read-write MIX2_POINT Modular invertion X2 point in sp_ram 16 9 read-write SW_CFG6 SW_CFG6 PKC Software Configuration 6 Register 0x5C 32 read-write n 0x60 0xFFFFFFFF MIT_POINT Modular invertion TEMP point in sp_ram 0 9 read-write SW_CFG7 SW_CFG7 PKC Software Configuration 7 Register 0x60 32 read-write n 0x7 0xFFFFFFFF LEN Operator word length configuration, in software mode: 0x07: 256bits 0x08: 288bits - 0x3F: 2048bits In hardware mode fixed to 0x07 0 9 read-write SW_CFG8 SW_CFG8 PKC Software Configuration 8 Register 0x64 32 read-only n 0x0 0xFFFFFFFF MIK_OUT K out in modular invertion operation 0 13 read-only SW_CFG9 SW_CFG9 PKC Software Configuration 9 Register 0x68 32 read-write n 0xAABBCCDD 0xFFFFFFFF RDM_SEED Random dummy multiplication seed 0 32 read-write SW_CTRL SW_CTRL PKC Software Controller Register 0x40 32 read-write n 0x0 0xFFFFFFFF DM_EN Enable dummy multiplication 0x0: Disable 0x1: Enable 8 1 read-write MODE Only used in software mode. 0x0: Montgomery Multiplication 0x1: Mod Inversion 0x2: Mod Addition 0x3: Mod Subtraction 0x4: Mod Comparison 0x5: Mod Shift 0x6: Big Integer Multiplication 0x7: Bit Integer Addition 4 3 read-write RCG_EN Enable random clock gating 0x0: Disable 0x1: Enable 9 1 read-write START Only used in software mode. MCU write 0 to this bit and then write 1 to this bit to start PKC 0 1 read-write PWM0 Pulse Width Modulation PWM 0xA000C900 0x0 0x30 registers n AQ_CTRL AQ_CTRL Action Qualifler Control Regiser 0x24 32 read-write n 0x0 0xFFFFFFFF AQ_CTRL_A0 Action of event CNT_CMPA0 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 0 2 read-write AQ_CTRL_A1 Action of event CNT_CMPA1 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 2 2 read-write AQ_CTRL_B0 Action of event CNT_CMPB0 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 4 2 read-write AQ_CTRL_B1 Action of event CNT_CMPB1 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 6 2 read-write AQ_CTRL_C0 Action of event CNT_CMPC0 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 8 2 read-write AQ_CTRL_C1 Action of event CNT_CMPC1 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 10 2 read-write BREATH_PRD BREATH_PRD Breath Period Register 0x28 32 read-write n 0x0 0xFFFFFFFF BREATH_PRD Breath period register, i.e. the required time (number of clock) that the duty changes from 0% to 100% in breath mode. 0 32 read-write COMPA0 COMPA0 Compare A0 Register 0xC 32 read-write n 0x0 0xFFFFFFFF COMPA0 PWM_A duty control register0 0 32 read-write COMPA1 COMPA1 Compare A1 Register 0x10 32 read-write n 0x0 0xFFFFFFFF COMPA1 PWM_A duty control register1 0 32 read-write COMPB0 COMPB0 Compare B0 Register 0x14 32 read-write n 0x0 0xFFFFFFFF COMPB0 PWM_B duty control register0 0 32 read-write COMPB1 COMPB1 Compare B1 Register 0x18 32 read-write n 0x0 0xFFFFFFFF COMP_B1 PWM_B duty control register1 0 32 read-write COMPC0 COMPC0 Compare C0 Register 0x1C 32 read-write n 0x0 0xFFFFFFFF COMPC0 PWM_C duty control register0 0 32 read-write COMPC1 COMPC1 Compare C1 Register 0x20 32 read-write n 0x0 0xFFFFFFFF COMPC1 PWM_C duty control register1 0 32 read-write HOLD HOLD Compare B1 Register 0x2C 32 read-write n 0x0 0xFFFFFFFF HOLD Breath hold control register. The value should be the required number of clock in breath hold state. 0 24 read-write MODE MODE Mode Register 0x0 32 read-write n 0x0 0xFFFFFFFF BREATH_EN Breath mode enable. 0x0: flicker mode 0x1: breath mode 2 1 read-write EN Enable PWM. 0x0: Disable 0x1: Enable 0 1 read-write PAUSE PWM pause signal. 0x0: Ongoing 0x1: Pause 1 1 read-write PD_A_EN PWM_A positive-drive mode enable. 0x0: negative-drive mode 0x1: positive-drive mode 3 1 read-write PD_B_EN PWM_B positive-drive mode enable. 0x0: negative-drive mode 0x1: positive-drive mode 4 1 read-write PD_C_EN PWM_C positive-drive mode enable. 0x0: negative-drive mode 0x1: positive-drive mode 5 1 read-write PRD PRD Period Register 0x8 32 read-write n 0x0 0xFFFFFFFF PRD The period of PWM output, PRD=fCLK/fPWM 0 32 read-write UPDATE UPDATE Update Register 0x4 32 read-write n 0x0 0xFFFFFFFF UPDATE_SYNC_AE All synchronous update enable 0x0: Disable 0x1: Enable 1 1 read-write UPDATE_SYNC_AG All synchronous update ongoing 0x0: Not ongoing 0x1: Ongoing 0 1 read-only UPDATE_SYNC_SAQCTRL synchronous separate update enable of AQCTRL(action qualifler control) 0x0: Disable 0x1: Enable 18 1 read-write UPDATE_SYNC_SBRPRD synchronous separate update enable of BRPRD(breath period) 0x0: Disable 0x1: Enable 16 1 read-write UPDATE_SYNC_SCMPA0 synchronous separate update enable of CMPA0 0x0: Disable 0x1: Enable 9 1 read-write UPDATE_SYNC_SCMPA1 synchronous separate update enable of CMPA1 0x0: Disable 0x1: Enable 10 1 read-write UPDATE_SYNC_SCMPB0 synchronous separate update enable of CMPB0 0x0: Disable 0x1: Enable 11 1 read-write UPDATE_SYNC_SCMPB1 synchronous separate update enable of CMPB1 0x0: Disable 0x1: Enable 12 1 read-write UPDATE_SYNC_SCMPC0 synchronous separate update enable of CMPC0 0x0: Disable 0x1: Enable 13 1 read-write UPDATE_SYNC_SCMPC1 synchronous separate update enable of CMPC1 0x0: Disable 0x1: Enable 14 1 read-write UPDATE_SYNC_SHOLD synchronous separate update enable of HOLD(hold period) 0x0: Disable 0x1: Enable 17 1 read-write UPDATE_SYNC_SPAUSE synchronous separate update enable of PAUSE 0x0: Disable 0x1: Enable 15 1 read-write UPDATE_SYNC_SPRD synchronous separate update enable of PRD(period) 0x0: Disable 0x1: Enable 8 1 read-write PWM1 Pulse Width Modulation PWM 0xA000CC00 0x0 0x30 registers n AQ_CTRL AQ_CTRL Action Qualifler Control Regiser 0x24 32 read-write n 0x0 0xFFFFFFFF AQ_CTRL_A0 Action of event CNT_CMPA0 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 0 2 read-write AQ_CTRL_A1 Action of event CNT_CMPA1 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 2 2 read-write AQ_CTRL_B0 Action of event CNT_CMPB0 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 4 2 read-write AQ_CTRL_B1 Action of event CNT_CMPB1 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 6 2 read-write AQ_CTRL_C0 Action of event CNT_CMPC0 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 8 2 read-write AQ_CTRL_C1 Action of event CNT_CMPC1 control register. 0x0: do nothing 0x1: clear 0x2: set 0x3:toogle 10 2 read-write BREATH_PRD BREATH_PRD Breath Period Register 0x28 32 read-write n 0x0 0xFFFFFFFF BREATH_PRD Breath period register, i.e. the required time (number of clock) that the duty changes from 0% to 100% in breath mode. 0 32 read-write COMPA0 COMPA0 Compare A0 Register 0xC 32 read-write n 0x0 0xFFFFFFFF COMPA0 PWM_A duty control register0 0 32 read-write COMPA1 COMPA1 Compare A1 Register 0x10 32 read-write n 0x0 0xFFFFFFFF COMPA1 PWM_A duty control register1 0 32 read-write COMPB0 COMPB0 Compare B0 Register 0x14 32 read-write n 0x0 0xFFFFFFFF COMPB0 PWM_B duty control register0 0 32 read-write COMPB1 COMPB1 Compare B1 Register 0x18 32 read-write n 0x0 0xFFFFFFFF COMP_B1 PWM_B duty control register1 0 32 read-write COMPC0 COMPC0 Compare C0 Register 0x1C 32 read-write n 0x0 0xFFFFFFFF COMPC0 PWM_C duty control register0 0 32 read-write COMPC1 COMPC1 Compare C1 Register 0x20 32 read-write n 0x0 0xFFFFFFFF COMPC1 PWM_C duty control register1 0 32 read-write HOLD HOLD Compare B1 Register 0x2C 32 read-write n 0x0 0xFFFFFFFF HOLD Breath hold control register. The value should be the required number of clock in breath hold state. 0 24 read-write MODE MODE Mode Register 0x0 32 read-write n 0x0 0xFFFFFFFF BREATH_EN Breath mode enable. 0x0: flicker mode 0x1: breath mode 2 1 read-write EN Enable PWM. 0x0: Disable 0x1: Enable 0 1 read-write PAUSE PWM pause signal. 0x0: Ongoing 0x1: Pause 1 1 read-write PD_A_EN PWM_A positive-drive mode enable. 0x0: negative-drive mode 0x1: positive-drive mode 3 1 read-write PD_B_EN PWM_B positive-drive mode enable. 0x0: negative-drive mode 0x1: positive-drive mode 4 1 read-write PD_C_EN PWM_C positive-drive mode enable. 0x0: negative-drive mode 0x1: positive-drive mode 5 1 read-write PRD PRD Period Register 0x8 32 read-write n 0x0 0xFFFFFFFF PRD The period of PWM output, PRD=fCLK/fPWM 0 32 read-write UPDATE UPDATE Update Register 0x4 32 read-write n 0x0 0xFFFFFFFF UPDATE_SYNC_AE All synchronous update enable 0x0: Disable 0x1: Enable 1 1 read-write UPDATE_SYNC_AG All synchronous update ongoing 0x0: Not ongoing 0x1: Ongoing 0 1 read-only UPDATE_SYNC_SAQCTRL synchronous separate update enable of AQCTRL(action qualifler control) 0x0: Disable 0x1: Enable 18 1 read-write UPDATE_SYNC_SBRPRD synchronous separate update enable of BRPRD(breath period) 0x0: Disable 0x1: Enable 16 1 read-write UPDATE_SYNC_SCMPA0 synchronous separate update enable of CMPA0 0x0: Disable 0x1: Enable 9 1 read-write UPDATE_SYNC_SCMPA1 synchronous separate update enable of CMPA1 0x0: Disable 0x1: Enable 10 1 read-write UPDATE_SYNC_SCMPB0 synchronous separate update enable of CMPB0 0x0: Disable 0x1: Enable 11 1 read-write UPDATE_SYNC_SCMPB1 synchronous separate update enable of CMPB1 0x0: Disable 0x1: Enable 12 1 read-write UPDATE_SYNC_SCMPC0 synchronous separate update enable of CMPC0 0x0: Disable 0x1: Enable 13 1 read-write UPDATE_SYNC_SCMPC1 synchronous separate update enable of CMPC1 0x0: Disable 0x1: Enable 14 1 read-write UPDATE_SYNC_SHOLD synchronous separate update enable of HOLD(hold period) 0x0: Disable 0x1: Enable 17 1 read-write UPDATE_SYNC_SPAUSE synchronous separate update enable of PAUSE 0x0: Disable 0x1: Enable 15 1 read-write UPDATE_SYNC_SPRD synchronous separate update enable of PRD(period) 0x0: Disable 0x1: Enable 8 1 read-write QSPI0 Serial Peripheral Interface QSPI 0xA000C200 0x0 0x64 registers n QSPI0 QSPI0 interrupts 11 QSPI1 QSPI1 interrupt 23 BAUD BAUD Baud Rate Register 0x14 32 read-write n 0x0 0xFFFFFFFF SSI_CLK_DIV SSI Clock Divider. The LSB for this field is always set to 0 and is unaffected by a write operation, which ensures an even value is held in this register. If the value is 0, the serial output clock (sclk_out) is disabled. The frequency of the sclk_out is derived from the following equation: Fsclk_out = Fssi_clk/SSI_CLK_DIV Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write CTRL0 CTRL0 Control Register 0 0x0 32 read-write n 0x1070000 0xFFFFFFFF CTRL_FRAME_SIZE Control Frame Size. Selects the length of the control word for the Microwire frame format. 0x0 (SIZE_01_BIT): 1-bit Control Word 0x1 (SIZE_02_BIT): 2-bit Control Word 0x2 (SIZE_03_BIT): 3-bit Control Word 0x3 (SIZE_04_BIT): 4-bit Control Word 0x4 (SIZE_05_BIT): 5-bit Control Word 0x5 (SIZE_06_BIT): 6-bit Control Word 0x6 (SIZE_07_BIT): 7-bit Control Word 0x7 (SIZE_08_BIT): 8-bit Control Word 0x8 (SIZE_09_BIT): 9-bit Control Word 0x9 (SIZE_10_BIT): 10-bit Control Word 0xa (SIZE_11_BIT): 11-bit Control Word 0xb (SIZE_12_BIT): 12-bit Control Word 0xc (SIZE_13_BIT): 13-bit Control Word 0xd (SIZE_14_BIT): 14-bit Control Word 0xe (SIZE_15_BIT): 15-bit Control Word 0xf (SIZE_16_BIT): 16-bit Control Word 12 4 read-write DATA_FRAME_SIZE Data Frame Size in 32-bit transfer size mode. Used to select the data frame size in 32-bit transfer mode. When the data frame size is programmed to be less than 32 bits, the receive data are automatically right-justified by the receive logic, with the upper bits of the receive FIFO zero-padded. You are responsible for making sure that transmit data is right-justified before writing into the transmit FIFO. The transmit logic ignores the upper unused bits when transmitting the data. Note: When SPI_FRAME_FORMAT is not set to 0x0. - DFS value should be multiple of 2 if SPI_FRAME_FORMAT = 0x01, - DFS value should be multiple of 4 if SPI_FRAME_FORMAT = 0x10. 0x3 (FRAME_04BITS): 4-bit serial data transfer 0x4 (FRAME_05BITS): 5-bit serial data transfer 0x5 (FRAME_06BITS): 6-bit serial data transfer 0x6 (FRAME_07BITS): 7-bit serial data transfer 0x7 (FRAME_08BITS): 8-bit serial data transfer 0x8 (FRAME_09BITS): 9-bit serial data transfer 0x9 (FRAME_10BITS): 10-bit serial data transfer 0xa (FRAME_11BITS): 11-bit serial data transfer 0xb (FRAME_12BITS): 12-bit serial data transfer 0xc (FRAME_13BITS): 13-bit serial data transfer 0xd (FRAME_14BITS): 14-bit serial data transfer 0xe (FRAME_15BITS): 15-bit serial data transfer 0xf (FRAME_16BITS): 16-bit serial data transfer 0x10 (FRAME_17BITS): 17-bit serial data transfer 0x11 (FRAME_18BITS): 18-bit serial data transfer 0x12 (FRAME_19BITS): 19-bit serial data transfer 0x13 (FRAME_20BITS): 20-bit serial data transfer 0x14 (FRAME_21BITS): 21-bit serial data transfer 0x15 (FRAME_22BITS): 22-bit serial data transfer 0x16 (FRAME_23BITS): 23-bit serial data transfer 0x17 (FRAME_24BITS): 24-bit serial data transfer 0x18 (FRAME_25BITS): 25-bit serial data transfer 0x19 (FRAME_26BITS): 26-bit serial data transfer 0x1a (FRAME_27BITS): 27-bit serial data transfer 0x1b (FRAME_28BITS): 28-bit serial data transfer 0x1c (FRAME_29BITS): 29-bit serial data transfer 0x1d (FRAME_30BITS): 30-bit serial data transfer 0x1e (FRAME_31BITS): 31-bit serial data transfer 0x1f (FRAME_32BITS): 32-bit serial data transfer 16 5 read-write FRAME_FORMAT Frame Format. Selects which serial protocol transfers the data. 0x0 (MOTOROLA_SPI): Motorolla SPI Frame Format 0x1 (TEXAS_SSP): Texas Instruments SSP Frame Format 0x2 (NS_MICROWIRE): National Microwire Frame Format 0x3 (RESERVED): Reserved value 4 2 read-write SERIAL_CLK_PHASE Serial Clock Phase. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. The serial clock phase selects the relationship of the serial clock with the slave select signal. When SERIAL_CLK_PHASE = 0, data are captured on the first edge of the serial clock. When SERIAL_CLK_PHASE = 1, the serial clock starts toggling one cycle after the slave select line is activated, and data are captured on the second edge of the serial clock. 0x0 (SERIAL_CLK_PHASE_MIDDLE): Serial clock toggles in middle of first data bit 0x1 (SERIAL_CLK_PHASE_START): Serial clock toggles at start of first data bit 6 1 read-write SERIAL_CLK_POL Serial Clock Polarity. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. Used to select the polarity of the inactive serial clock, which is held inactive when the SPI master is not actively transferring data on the serial bus. 0x0 (SCLK_LOW): Inactive state of serial clock is low 0x1 (SCLK_HIGH): Inactive state of serial clock is high 7 1 read-write SHIFT_REG_LOOP Shift Register Loop. Used for testing purposes only. When internally active, connects the transmit shift register output to the receive shift register input. 0x0 (NORMAL_MODE): Normal mode operation 0x1 (TESTING_MODE): Test mode: TX and RX shift reg connected 11 1 read-write SPI_FRAME_FORMAT SPI Frame Format: Selects data frame format for Transmitting/Receiving the data Bits. 0x0 (STD_SPI_FRAME_FORMAT): Standard SPI Frame Format 0x1 (DUAL_SPI_FRAME_FORMAT): Dual SPI Frame Format 0x2 (QUAD_SPI_FRAME_FORMAT): Quad SPI Frame Format 0x3: Reserved 21 2 read-write S_ST_EN Slave Select Toggle Enable. When operating in SPI mode with clock phase (SERIAL_CLK_PHASE) set to 0, this register controls the behavior of the slave select line (CS) between data frames. If this register field is set to 1 the CS line will toggle between consecutive data frames, with the serial clock (sclk) being held to its default value while CS is high if this register field is set to 0 the CS will stay low and sclk will run continuously for the duration of the transfer. Note: When the SPI is configured as a slave, this register serves no purpose. 24 1 read-write XFE_MODE Transfer Mode. This transfer mode is only valid when the SPI is configured as master device. 0x0 - Transmit and Receive 0x1 - Transmit Only 0x2 - Receive Only 0x3 - EEPROM Read When SPI_FRF is not set to 2'b00. There are only two valid combinations: 0x1 - Write 0x2 - Read 0x0 (TX_AND_RX): Transmit and receive 0x1 (TX_ONLY): Transmit only mode or Write (SPI_FRAME_FORMAT != 0x0) 0x2 (RX_ONLY): Receive only mode or Read (SPI_FRAME_FORMAT!= 0x0) 0x3 (EEPROM_READ): EEPROM Read mode 8 2 read-write CTRL1 CTRL1 Control Register 1 0x4 32 read-write n 0x0 0xFFFFFFFF NUM_DATA_FRAME Number of Data Frames. When XFE_MODE = 0x2 or XFE_MODE = 0x3, this register field sets the number of data frames to be continuously received by the SPI. The SPI continues to receive serial data until the number of data frames received is equal to thisregister value plus 1, which enables you to receive up to 64KB of data in a continuous transfer. Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write DATA DATA Data Register 0x60 32 read-write n 0x0 0xFFFFFFFF DATA Data Register. When writing to this register, you must right-justify the data. Read data are automatically right-justified. 0 32 read-write DMA_CTRL DMA_CTRL DMA Control Register 0x4C 32 read-write n 0x0 0xFFFFFFFF RX_DMA_EN Receive DMA Enable. This bit enables/disables the receive FIFO DMA channel 0x0 (DISABLE): Receive DMA disabled 0x1 (ENABLED): Receive DMA enabled 0 1 read-write TX_DMA_EN Transmit DMA Enable. This bit enables/disables the transmit FIFO DMA channel. 0x0 (DISABLE): Transmit DMA disabled 0x1 (ENABLED): Transmit DMA enabled 1 1 read-write DMA_RX_DL DMA_RX_DL DMA Receive Data Level Register 0x54 32 read-write n 0x0 0xFFFFFFFF DMA_RX_DL Receive Data Level. This bit field controls the level at which a DMA request is made by the receive logic. The watermark level =DMA_RX_DL+1 that is, dma_rx_req is generated when the number of valid data entries in the receive FIFO is equal to or above this field value + 1, and RX_DMA_EN=1. 0 3 read-write DMA_TX_DL DMA_TX_DL DMA Transmit Data Level Register 0x50 32 read-write n 0x0 0xFFFFFFFF DMA_TX_DL Transmit Data Level. This bit field controls the level at which a DMA request is made by the transmit logic. It is equal to the watermark level that is, the dma_tx_req signal is generated when the number of valid data entries in the transmit FIFO is equal to or below this field value, and TX_DMA_EN = 1. 0 3 read-write INT_CLR INT_CLR Interrupt Clear Register 0x48 32 read-only n 0x0 0xFFFFFFFF INT_CLR Clear Interrupts. This register is set if any of the interrupts below are active. A read clears the txo_intr, rxu_intr, rxo_intr, and the mst_intr interrupts. Writing to this register has no effect. 0 1 read-only INT_MASK INT_MASK Interrupt Mask Register 0x2C 32 read-write n 0x3F 0xFFFFFFFF MULTI_M_CIM Multi-Master Contention Interrupt Mask. 0x0 (MASKED): Disable mst_intr interrupt 0x1 (UNMASKED): Enable mst_intr interrupt 5 1 read-write RX_FIFO_FIS Receive FIFO Full Interrupt Mask 0x0 (MASKED): Disable rxf_intr interrupt 0x1 (UNMASKED): Enable rxf_intr interrupt 4 1 read-write RX_FIFO_OIS Receive FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable rxo_intr interrupt 0x1 (UNMASKED): Enable rxo_intr interrupt 3 1 read-write RX_FIFO_UIS Receive FIFO Underflow Interrupt Mask 0x0 (MASKED): Disable rxu_intr interrupt 0x1 (UNMASKED): Enable rxu_intr interrupt 2 1 read-write TX_FIFO_EIS Transmit FIFO Empty Interrupt Mask 0x0 (MASKED): Disable txe_intr interrupt 0x1 (UNMASKED): Enable txe_intr interrupt 0 1 read-write TX_FIFO_OIS Transmit FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable txo_intr interrupt 0x1 (UNMASKED): Enable txo_intr interrupt 1 1 read-write INT_STAT INT_STAT Interrupt Status Register 0x30 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CIS Multi-Master Contention Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active after be enabled 0x1 (ACTIVE): mst_intr interrupt is full after be enabled 5 1 read-only RX_FIFO_FIS Receive FIFO Full Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxf_intr interrupt is full after be enabled 4 1 read-only RX_FIFO_OIS Receive FIFO Overflow Interrupt Status 0x0 (INACTIVE): rxo_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxo_intr interrupt is active after be enabled 3 1 read-only RX_FIFO_UIS Receive FIFO Underflow Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxu_intr interrupt is active after be enabled 2 1 read-only TX_FIFO_EIS Transmit FIFO Empty Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active after be enabled 0x1 (ACTIVE): txe_intr interrupt is active after be enabled 0 1 read-only TX_FIFO_OIS Transmit FIFO Overflow Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active after be enabled 0x1 (ACTIVE): txo_intr interrupt is active after be enabled 1 1 read-only MULTI_M_IC MULTI_M_IC Multi-Master Interrupt Clear Register 0x44 32 read-only n 0x0 0xFFFFFFFF MULTI_M_IC Clear Multi-Master Contention Interrupt. This register reflects the status of the interrupt. A read from this register clears the mst_intr interrupt writing has no effect. 0 1 read-only MW_CTRL MW_CTRL Microwire Control Register 0xC 32 read-write n 0x0 0xFFFFFFFF MW_DIR_DW Microwire Control. Defines the direction of the data word when the Microwire serial protocol is used. 0x0 (RECEIVE): SPI receives data 0x1 (TRANSMIT): SPI transmits data 1 1 read-write MW_HSG Microwire Handshaking. Used to enable and disable the busy/ready handshaking interface for the Microwire protocol. When enabled, the SPI checks for a ready status from the target slave, after the transfer of the last data/control bit, before clearing the SSI_BUSY status in the DATA register. 0x0 (DISABLE): Handshaking interface is disabled 0x1 (ENABLED): Handshaking interface is enabled Note: When the SPI is configured as a slave, this register serves no purpose. 2 1 read-write MW_XFE_MODE Microwire Transfer Mode. Defines whether the Microwire transfer is sequential or non-sequential. When sequential mode is used, only one control word is needed to transmit or receive a block of data words. When non-sequential mode is used, there must be a control word for each data word that is transmitted or received. 0x0 (NON_SEQUENTIAL): Non-Sequential Microwire Transfer 0x1 (SEQUENTIAL): Sequential Microwire Transfer 0 1 read-write RAW_INT_STAT RAW_INT_STAT Raw Interrupt Status Register 0x34 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CRIS Multi-Master Contention Raw Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): mst_intr interrupt is full prior to be enabled 5 1 read-only RX_FIFO_FRIS Receive FIFO Full Raw Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxf_intr interrupt is active prior to be enabled 4 1 read-only RX_FIFO_ORIS Receive FIFO Overflow Raw Interrupt Status 0x1 (ACTIVE): rxo_intr interrupt is not active prior to be enabled 0x0 (INACTIVE): rxo_intr interrupt is active prior be enabled 3 1 read-only RX_FIFO_URIS Receive FIFO Underflow Raw Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxu_intr interrupt is active prior to be enabled 2 1 read-only TX_FIFO_ERIS Transmit FIFO Empty Raw Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txe_intr interrupt is active prior be enabled 0 1 read-only TX_FIFO_ORIS Transmit FIFO Overflow Raw Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txo_intr interrupt is active prior be enabled 1 1 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL Receive FIFO Level Register 0x24 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_LEVEL Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. 0 4 read-only RX_FIFO_OIC RX_FIFO_OIC Receive FIFO Overflow Interrupt Clear Register 0x3C 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_OIC Clear Receive FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxo_intr interrupt writing has no effect. 0 1 read-only RX_FIFO_TL RX_FIFO_TL Receive FIFO Threshold Level 0x1C 32 read-write n 0x0 0xFFFFFFFF RX_FIFO_THD Receive FIFO Threshold. Controls the level of entries (or above) at which the receive FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256. This register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than the depth of the FIFO, this field is not written and retains its current value. When the number of receive FIFO entries is greater than or equal to this value + 1, the receive FIFO full interrupt is triggered. 0 3 read-write RX_FIFO_UIC RX_FIFO_UIC Receive FIFO Underflow Interrupt Clear Register 0x40 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_UIC Clear Receive FIFO Underflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxu_intr interrupt writing has no effect. 0 1 read-only RX_SMP_DLY RX_SMP_DLY Receive Sample Delay Register 0xF0 32 read-write n 0x0 0xFFFFFFFF RX_SMP_DLY RX Sample Delay. This register is used to delay the sample of the rxd input port. Each value represents a single ssi_clk delay on the sample of rxd. The maximum value is 7. Note: When the SPI is configured as a slave, this register serves no purpose. 0 8 read-write SPI_CTRL SPI_CTRL SPI Control Register 0xF4 32 read-write n 0x200 0xFFFFFFFF ADDR_LEN Address Length. This bit defines Length of Address to be transmitted. Only after this much bits are programmed in to the FIFO the transfer can begin. 0x0 (ADDR_LEN_0): 0-bit Address Width 0x1 (ADDR_LEN_1): 4-bit Address Width 0x2 (ADDR_LEN_2): 8-bit Address Width 0x3 (ADDR_LEN_3): 12-bit Address Width 0x4 (ADDR_LEN_4): 16-bit Address Width 0x5 (ADDR_LEN_5): 20-bit Address Width 0x6 (ADDR_LEN_6): 24-bit Address Width 0x7 (ADDR_LEN_7): 28-bit Address Width 0x8 (ADDR_LEN_8): 32-bit Address Width 0x9 (ADDR_LEN_9): 36-bit Address Width 0xa (ADDR_LEN_10): 40-bit Address Width 0xb (ADDR_LEN_11): 44-bit Address Width 0xc (ADDR_LEN_12): 48-bit Address Width 0xd (ADDR_LEN_13): 52-bit Address Width 0xe (ADDR_LEN_14): 56-bit Address Width 0xf (ADDR_LEN_15): 60-bit Address Width 2 4 read-write INST_LEN 0x0 (INST_LEN_0): 0-bit (No Instruction) 0x1 (INST_LEN_1): 4-bit Instruction 0x2 (INST_LEN_2): 8-bit Instruction 0x3 (INST_LEN_3): 16-bit Instruction 8 2 read-write WAIT_CYCLES Wait cycles Number of wait cycles in Dual/Quad mode between control frames transmit and data reception. This value is specified as number of SPI clock cycles. 11 5 read-write XFE_FORMAT_AI Address and instruction transfer format. Selects whether QSPI will transmit instruction/address either in Standard SPI mode or the SPI mode selected in CTRL0.SPI_FRAME_FORMATfield. Value: 0x0 - Instruction and Address will be sent in Standard SPI Mode. 0x1 - Instruction will be sent in Standard SPI Mode and Address will be sent in the mode specified by CTRL0.SPI_FRAME_FORMAT. 0x2 - Both Instruction and Address will be sent in the mode specified by SPI_FRAME_FORMAT. 0x3 - Reserved. 0 2 read-write SSI_EN SSI_EN SSI Enable Register 0x8 32 read-write n 0x1 0xFFFFFFFF SSI_EN SSI Enable. Enables and disables all SPI operations. When disabled, all serial transfers are halted immediately. Transmit and receive FIFO buffers are cleared when the device is disabled. 0x0 (DISABLE): Disables Serial Transfer 0x1 (ENABLED): Enables Serial Transfer 0 1 read-write STAT STAT Status Register 0x28 32 read-only n 0x6 0xFFFFFFFF DATA_COLN_ERR Data Collision Error. This bit will be set if MISO input is asserted by other master, when the SPI master is in the middle of the transfer. This informs the processor that the last data transfer was halted before completion. This bit is cleared when read. 6 1 read-only RX_FIFO_FULL Receive FIFO Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0x0 (NOT_FULL): Receive FIFO is not full 0x1 (FULL): Receive FIFO is full 4 1 read-only RX_FIFO_NE Receive FIFO Not Empty. Set when the receive FIFO contains one or more entries and is cleared when the receive FIFO is empty. This bit can be polled by software to completely empty the receive FIFO. 0x0 (EMPTY): Receive FIFO is empty 0x1 (NOT_EMPTY): Receive FIFO is not empty 3 1 read-only SSI_BUSY SSI Busy Flag. When set, indicates that a serial transfer is in progress when cleared indicates that the SPI is idle or disabled. 0x0 (INACTIVE): SPI is idle or disabled 0x1 (ACTIVE): SPI is actively transferring data 0 1 read-only TX_ERR Transmission Error. Set if the transmit FIFO is empty when a transfer is started. Data from the previous transmission is resent on the txd line. This bit is cleared when read. 0x0 (NO_ERROR): No Error 0x1 (TX_ERROR): Transmission Error Note: When the SPI is configured as a master, this register serves no purpose. 5 1 read-only TX_FIFO_EMPTY Transmit FIFO Empty. When the transmit FIFO is completely empty, this bit is set. When the transmit FIFO contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0x0 (NOT_EMPTY): Transmit FIFO is not empty 0x1 (EMPTY): Transmit FIFO is empty 2 1 read-only TX_FIFO_NF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0x0 (FULL): Transmit FIFO is full 0x1 (NOT_FULL): Transmit FIFO is not Full 1 1 read-only S_EN S_EN Slave Enable Register 0x10 32 read-write n 0x0 0xFFFFFFFF S_SEL_EN Slave Select Enable. Each bit in this register corresponds to a slave select line (CSn) from the SPI master. 0x0 (NOT_SELECTED): No slave selected 0x1 (SELECTED): Slave is selected Note: When the SPI is configured as a slave, this register serves no purpose. 0 2 read-write TX_FIFO_LEVEL TX_FIFO_LEVEL Transmit FIFO Level Register 0x20 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_LEVEL Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. 0 4 read-only TX_FIFO_OIC TX_FIFO_OIC Transmit FIFO Overflow Interrupt Clear Register 0x38 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_OIC Clear Transmit FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the txo_intr interrupt writing has no effect. 0 1 read-only TX_FIFO_TL TX_FIFO_TL Transmit FIFO Threshold Level Register 0x18 32 read-write n 0x0 0xFFFFFFFF TX_FIFO_THD Transmit FIFO Threshold. Controls the level of entries (or below) at which the transmit FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256 this register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than or equal to the depth of the FIFO, this field is not written and retains its current value.When the number of transmit FIFO entries is less than or equal to this value, the transmit FIFO empty interrupt is triggered. 0 3 read-write QSPI1 Serial Peripheral Interface QSPI 0xA000C800 0x0 0x64 registers n QSPI0 QSPI0 interrupts 11 QSPI1 QSPI1 interrupt 23 BAUD BAUD Baud Rate Register 0x14 32 read-write n 0x0 0xFFFFFFFF SSI_CLK_DIV SSI Clock Divider. The LSB for this field is always set to 0 and is unaffected by a write operation, which ensures an even value is held in this register. If the value is 0, the serial output clock (sclk_out) is disabled. The frequency of the sclk_out is derived from the following equation: Fsclk_out = Fssi_clk/SSI_CLK_DIV Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write CTRL0 CTRL0 Control Register 0 0x0 32 read-write n 0x1070000 0xFFFFFFFF CTRL_FRAME_SIZE Control Frame Size. Selects the length of the control word for the Microwire frame format. 0x0 (SIZE_01_BIT): 1-bit Control Word 0x1 (SIZE_02_BIT): 2-bit Control Word 0x2 (SIZE_03_BIT): 3-bit Control Word 0x3 (SIZE_04_BIT): 4-bit Control Word 0x4 (SIZE_05_BIT): 5-bit Control Word 0x5 (SIZE_06_BIT): 6-bit Control Word 0x6 (SIZE_07_BIT): 7-bit Control Word 0x7 (SIZE_08_BIT): 8-bit Control Word 0x8 (SIZE_09_BIT): 9-bit Control Word 0x9 (SIZE_10_BIT): 10-bit Control Word 0xa (SIZE_11_BIT): 11-bit Control Word 0xb (SIZE_12_BIT): 12-bit Control Word 0xc (SIZE_13_BIT): 13-bit Control Word 0xd (SIZE_14_BIT): 14-bit Control Word 0xe (SIZE_15_BIT): 15-bit Control Word 0xf (SIZE_16_BIT): 16-bit Control Word 12 4 read-write DATA_FRAME_SIZE Data Frame Size in 32-bit transfer size mode. Used to select the data frame size in 32-bit transfer mode. When the data frame size is programmed to be less than 32 bits, the receive data are automatically right-justified by the receive logic, with the upper bits of the receive FIFO zero-padded. You are responsible for making sure that transmit data is right-justified before writing into the transmit FIFO. The transmit logic ignores the upper unused bits when transmitting the data. Note: When SPI_FRAME_FORMAT is not set to 0x0. - DFS value should be multiple of 2 if SPI_FRAME_FORMAT = 0x01, - DFS value should be multiple of 4 if SPI_FRAME_FORMAT = 0x10. 0x3 (FRAME_04BITS): 4-bit serial data transfer 0x4 (FRAME_05BITS): 5-bit serial data transfer 0x5 (FRAME_06BITS): 6-bit serial data transfer 0x6 (FRAME_07BITS): 7-bit serial data transfer 0x7 (FRAME_08BITS): 8-bit serial data transfer 0x8 (FRAME_09BITS): 9-bit serial data transfer 0x9 (FRAME_10BITS): 10-bit serial data transfer 0xa (FRAME_11BITS): 11-bit serial data transfer 0xb (FRAME_12BITS): 12-bit serial data transfer 0xc (FRAME_13BITS): 13-bit serial data transfer 0xd (FRAME_14BITS): 14-bit serial data transfer 0xe (FRAME_15BITS): 15-bit serial data transfer 0xf (FRAME_16BITS): 16-bit serial data transfer 0x10 (FRAME_17BITS): 17-bit serial data transfer 0x11 (FRAME_18BITS): 18-bit serial data transfer 0x12 (FRAME_19BITS): 19-bit serial data transfer 0x13 (FRAME_20BITS): 20-bit serial data transfer 0x14 (FRAME_21BITS): 21-bit serial data transfer 0x15 (FRAME_22BITS): 22-bit serial data transfer 0x16 (FRAME_23BITS): 23-bit serial data transfer 0x17 (FRAME_24BITS): 24-bit serial data transfer 0x18 (FRAME_25BITS): 25-bit serial data transfer 0x19 (FRAME_26BITS): 26-bit serial data transfer 0x1a (FRAME_27BITS): 27-bit serial data transfer 0x1b (FRAME_28BITS): 28-bit serial data transfer 0x1c (FRAME_29BITS): 29-bit serial data transfer 0x1d (FRAME_30BITS): 30-bit serial data transfer 0x1e (FRAME_31BITS): 31-bit serial data transfer 0x1f (FRAME_32BITS): 32-bit serial data transfer 16 5 read-write FRAME_FORMAT Frame Format. Selects which serial protocol transfers the data. 0x0 (MOTOROLA_SPI): Motorolla SPI Frame Format 0x1 (TEXAS_SSP): Texas Instruments SSP Frame Format 0x2 (NS_MICROWIRE): National Microwire Frame Format 0x3 (RESERVED): Reserved value 4 2 read-write SERIAL_CLK_PHASE Serial Clock Phase. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. The serial clock phase selects the relationship of the serial clock with the slave select signal. When SERIAL_CLK_PHASE = 0, data are captured on the first edge of the serial clock. When SERIAL_CLK_PHASE = 1, the serial clock starts toggling one cycle after the slave select line is activated, and data are captured on the second edge of the serial clock. 0x0 (SERIAL_CLK_PHASE_MIDDLE): Serial clock toggles in middle of first data bit 0x1 (SERIAL_CLK_PHASE_START): Serial clock toggles at start of first data bit 6 1 read-write SERIAL_CLK_POL Serial Clock Polarity. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. Used to select the polarity of the inactive serial clock, which is held inactive when the SPI master is not actively transferring data on the serial bus. 0x0 (SCLK_LOW): Inactive state of serial clock is low 0x1 (SCLK_HIGH): Inactive state of serial clock is high 7 1 read-write SHIFT_REG_LOOP Shift Register Loop. Used for testing purposes only. When internally active, connects the transmit shift register output to the receive shift register input. 0x0 (NORMAL_MODE): Normal mode operation 0x1 (TESTING_MODE): Test mode: TX and RX shift reg connected 11 1 read-write SPI_FRAME_FORMAT SPI Frame Format: Selects data frame format for Transmitting/Receiving the data Bits. 0x0 (STD_SPI_FRAME_FORMAT): Standard SPI Frame Format 0x1 (DUAL_SPI_FRAME_FORMAT): Dual SPI Frame Format 0x2 (QUAD_SPI_FRAME_FORMAT): Quad SPI Frame Format 0x3: Reserved 21 2 read-write S_ST_EN Slave Select Toggle Enable. When operating in SPI mode with clock phase (SERIAL_CLK_PHASE) set to 0, this register controls the behavior of the slave select line (CS) between data frames. If this register field is set to 1 the CS line will toggle between consecutive data frames, with the serial clock (sclk) being held to its default value while CS is high if this register field is set to 0 the CS will stay low and sclk will run continuously for the duration of the transfer. Note: When the SPI is configured as a slave, this register serves no purpose. 24 1 read-write XFE_MODE Transfer Mode. This transfer mode is only valid when the SPI is configured as master device. 0x0 - Transmit and Receive 0x1 - Transmit Only 0x2 - Receive Only 0x3 - EEPROM Read When SPI_FRF is not set to 2'b00. There are only two valid combinations: 0x1 - Write 0x2 - Read 0x0 (TX_AND_RX): Transmit and receive 0x1 (TX_ONLY): Transmit only mode or Write (SPI_FRAME_FORMAT != 0x0) 0x2 (RX_ONLY): Receive only mode or Read (SPI_FRAME_FORMAT!= 0x0) 0x3 (EEPROM_READ): EEPROM Read mode 8 2 read-write CTRL1 CTRL1 Control Register 1 0x4 32 read-write n 0x0 0xFFFFFFFF NUM_DATA_FRAME Number of Data Frames. When XFE_MODE = 0x2 or XFE_MODE = 0x3, this register field sets the number of data frames to be continuously received by the SPI. The SPI continues to receive serial data until the number of data frames received is equal to thisregister value plus 1, which enables you to receive up to 64KB of data in a continuous transfer. Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write DATA DATA Data Register 0x60 32 read-write n 0x0 0xFFFFFFFF DATA Data Register. When writing to this register, you must right-justify the data. Read data are automatically right-justified. 0 32 read-write DMA_CTRL DMA_CTRL DMA Control Register 0x4C 32 read-write n 0x0 0xFFFFFFFF RX_DMA_EN Receive DMA Enable. This bit enables/disables the receive FIFO DMA channel 0x0 (DISABLE): Receive DMA disabled 0x1 (ENABLED): Receive DMA enabled 0 1 read-write TX_DMA_EN Transmit DMA Enable. This bit enables/disables the transmit FIFO DMA channel. 0x0 (DISABLE): Transmit DMA disabled 0x1 (ENABLED): Transmit DMA enabled 1 1 read-write DMA_RX_DL DMA_RX_DL DMA Receive Data Level Register 0x54 32 read-write n 0x0 0xFFFFFFFF DMA_RX_DL Receive Data Level. This bit field controls the level at which a DMA request is made by the receive logic. The watermark level =DMA_RX_DL+1 that is, dma_rx_req is generated when the number of valid data entries in the receive FIFO is equal to or above this field value + 1, and RX_DMA_EN=1. 0 3 read-write DMA_TX_DL DMA_TX_DL DMA Transmit Data Level Register 0x50 32 read-write n 0x0 0xFFFFFFFF DMA_TX_DL Transmit Data Level. This bit field controls the level at which a DMA request is made by the transmit logic. It is equal to the watermark level that is, the dma_tx_req signal is generated when the number of valid data entries in the transmit FIFO is equal to or below this field value, and TX_DMA_EN = 1. 0 3 read-write INT_CLR INT_CLR Interrupt Clear Register 0x48 32 read-only n 0x0 0xFFFFFFFF INT_CLR Clear Interrupts. This register is set if any of the interrupts below are active. A read clears the txo_intr, rxu_intr, rxo_intr, and the mst_intr interrupts. Writing to this register has no effect. 0 1 read-only INT_MASK INT_MASK Interrupt Mask Register 0x2C 32 read-write n 0x3F 0xFFFFFFFF MULTI_M_CIM Multi-Master Contention Interrupt Mask. 0x0 (MASKED): Disable mst_intr interrupt 0x1 (UNMASKED): Enable mst_intr interrupt 5 1 read-write RX_FIFO_FIS Receive FIFO Full Interrupt Mask 0x0 (MASKED): Disable rxf_intr interrupt 0x1 (UNMASKED): Enable rxf_intr interrupt 4 1 read-write RX_FIFO_OIS Receive FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable rxo_intr interrupt 0x1 (UNMASKED): Enable rxo_intr interrupt 3 1 read-write RX_FIFO_UIS Receive FIFO Underflow Interrupt Mask 0x0 (MASKED): Disable rxu_intr interrupt 0x1 (UNMASKED): Enable rxu_intr interrupt 2 1 read-write TX_FIFO_EIS Transmit FIFO Empty Interrupt Mask 0x0 (MASKED): Disable txe_intr interrupt 0x1 (UNMASKED): Enable txe_intr interrupt 0 1 read-write TX_FIFO_OIS Transmit FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable txo_intr interrupt 0x1 (UNMASKED): Enable txo_intr interrupt 1 1 read-write INT_STAT INT_STAT Interrupt Status Register 0x30 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CIS Multi-Master Contention Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active after be enabled 0x1 (ACTIVE): mst_intr interrupt is full after be enabled 5 1 read-only RX_FIFO_FIS Receive FIFO Full Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxf_intr interrupt is full after be enabled 4 1 read-only RX_FIFO_OIS Receive FIFO Overflow Interrupt Status 0x0 (INACTIVE): rxo_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxo_intr interrupt is active after be enabled 3 1 read-only RX_FIFO_UIS Receive FIFO Underflow Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxu_intr interrupt is active after be enabled 2 1 read-only TX_FIFO_EIS Transmit FIFO Empty Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active after be enabled 0x1 (ACTIVE): txe_intr interrupt is active after be enabled 0 1 read-only TX_FIFO_OIS Transmit FIFO Overflow Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active after be enabled 0x1 (ACTIVE): txo_intr interrupt is active after be enabled 1 1 read-only MULTI_M_IC MULTI_M_IC Multi-Master Interrupt Clear Register 0x44 32 read-only n 0x0 0xFFFFFFFF MULTI_M_IC Clear Multi-Master Contention Interrupt. This register reflects the status of the interrupt. A read from this register clears the mst_intr interrupt writing has no effect. 0 1 read-only MW_CTRL MW_CTRL Microwire Control Register 0xC 32 read-write n 0x0 0xFFFFFFFF MW_DIR_DW Microwire Control. Defines the direction of the data word when the Microwire serial protocol is used. 0x0 (RECEIVE): SPI receives data 0x1 (TRANSMIT): SPI transmits data 1 1 read-write MW_HSG Microwire Handshaking. Used to enable and disable the busy/ready handshaking interface for the Microwire protocol. When enabled, the SPI checks for a ready status from the target slave, after the transfer of the last data/control bit, before clearing the SSI_BUSY status in the DATA register. 0x0 (DISABLE): Handshaking interface is disabled 0x1 (ENABLED): Handshaking interface is enabled Note: When the SPI is configured as a slave, this register serves no purpose. 2 1 read-write MW_XFE_MODE Microwire Transfer Mode. Defines whether the Microwire transfer is sequential or non-sequential. When sequential mode is used, only one control word is needed to transmit or receive a block of data words. When non-sequential mode is used, there must be a control word for each data word that is transmitted or received. 0x0 (NON_SEQUENTIAL): Non-Sequential Microwire Transfer 0x1 (SEQUENTIAL): Sequential Microwire Transfer 0 1 read-write RAW_INT_STAT RAW_INT_STAT Raw Interrupt Status Register 0x34 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CRIS Multi-Master Contention Raw Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): mst_intr interrupt is full prior to be enabled 5 1 read-only RX_FIFO_FRIS Receive FIFO Full Raw Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxf_intr interrupt is active prior to be enabled 4 1 read-only RX_FIFO_ORIS Receive FIFO Overflow Raw Interrupt Status 0x1 (ACTIVE): rxo_intr interrupt is not active prior to be enabled 0x0 (INACTIVE): rxo_intr interrupt is active prior be enabled 3 1 read-only RX_FIFO_URIS Receive FIFO Underflow Raw Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxu_intr interrupt is active prior to be enabled 2 1 read-only TX_FIFO_ERIS Transmit FIFO Empty Raw Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txe_intr interrupt is active prior be enabled 0 1 read-only TX_FIFO_ORIS Transmit FIFO Overflow Raw Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txo_intr interrupt is active prior be enabled 1 1 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL Receive FIFO Level Register 0x24 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_LEVEL Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. 0 4 read-only RX_FIFO_OIC RX_FIFO_OIC Receive FIFO Overflow Interrupt Clear Register 0x3C 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_OIC Clear Receive FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxo_intr interrupt writing has no effect. 0 1 read-only RX_FIFO_TL RX_FIFO_TL Receive FIFO Threshold Level 0x1C 32 read-write n 0x0 0xFFFFFFFF RX_FIFO_THD Receive FIFO Threshold. Controls the level of entries (or above) at which the receive FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256. This register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than the depth of the FIFO, this field is not written and retains its current value. When the number of receive FIFO entries is greater than or equal to this value + 1, the receive FIFO full interrupt is triggered. 0 3 read-write RX_FIFO_UIC RX_FIFO_UIC Receive FIFO Underflow Interrupt Clear Register 0x40 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_UIC Clear Receive FIFO Underflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxu_intr interrupt writing has no effect. 0 1 read-only RX_SMP_DLY RX_SMP_DLY Receive Sample Delay Register 0xF0 32 read-write n 0x0 0xFFFFFFFF RX_SMP_DLY RX Sample Delay. This register is used to delay the sample of the rxd input port. Each value represents a single ssi_clk delay on the sample of rxd. The maximum value is 7. Note: When the SPI is configured as a slave, this register serves no purpose. 0 8 read-write SPI_CTRL SPI_CTRL SPI Control Register 0xF4 32 read-write n 0x200 0xFFFFFFFF ADDR_LEN Address Length. This bit defines Length of Address to be transmitted. Only after this much bits are programmed in to the FIFO the transfer can begin. 0x0 (ADDR_LEN_0): 0-bit Address Width 0x1 (ADDR_LEN_1): 4-bit Address Width 0x2 (ADDR_LEN_2): 8-bit Address Width 0x3 (ADDR_LEN_3): 12-bit Address Width 0x4 (ADDR_LEN_4): 16-bit Address Width 0x5 (ADDR_LEN_5): 20-bit Address Width 0x6 (ADDR_LEN_6): 24-bit Address Width 0x7 (ADDR_LEN_7): 28-bit Address Width 0x8 (ADDR_LEN_8): 32-bit Address Width 0x9 (ADDR_LEN_9): 36-bit Address Width 0xa (ADDR_LEN_10): 40-bit Address Width 0xb (ADDR_LEN_11): 44-bit Address Width 0xc (ADDR_LEN_12): 48-bit Address Width 0xd (ADDR_LEN_13): 52-bit Address Width 0xe (ADDR_LEN_14): 56-bit Address Width 0xf (ADDR_LEN_15): 60-bit Address Width 2 4 read-write INST_LEN 0x0 (INST_LEN_0): 0-bit (No Instruction) 0x1 (INST_LEN_1): 4-bit Instruction 0x2 (INST_LEN_2): 8-bit Instruction 0x3 (INST_LEN_3): 16-bit Instruction 8 2 read-write WAIT_CYCLES Wait cycles Number of wait cycles in Dual/Quad mode between control frames transmit and data reception. This value is specified as number of SPI clock cycles. 11 5 read-write XFE_FORMAT_AI Address and instruction transfer format. Selects whether QSPI will transmit instruction/address either in Standard SPI mode or the SPI mode selected in CTRL0.SPI_FRAME_FORMATfield. Value: 0x0 - Instruction and Address will be sent in Standard SPI Mode. 0x1 - Instruction will be sent in Standard SPI Mode and Address will be sent in the mode specified by CTRL0.SPI_FRAME_FORMAT. 0x2 - Both Instruction and Address will be sent in the mode specified by SPI_FRAME_FORMAT. 0x3 - Reserved. 0 2 read-write SSI_EN SSI_EN SSI Enable Register 0x8 32 read-write n 0x1 0xFFFFFFFF SSI_EN SSI Enable. Enables and disables all SPI operations. When disabled, all serial transfers are halted immediately. Transmit and receive FIFO buffers are cleared when the device is disabled. 0x0 (DISABLE): Disables Serial Transfer 0x1 (ENABLED): Enables Serial Transfer 0 1 read-write STAT STAT Status Register 0x28 32 read-only n 0x6 0xFFFFFFFF DATA_COLN_ERR Data Collision Error. This bit will be set if MISO input is asserted by other master, when the SPI master is in the middle of the transfer. This informs the processor that the last data transfer was halted before completion. This bit is cleared when read. 6 1 read-only RX_FIFO_FULL Receive FIFO Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0x0 (NOT_FULL): Receive FIFO is not full 0x1 (FULL): Receive FIFO is full 4 1 read-only RX_FIFO_NE Receive FIFO Not Empty. Set when the receive FIFO contains one or more entries and is cleared when the receive FIFO is empty. This bit can be polled by software to completely empty the receive FIFO. 0x0 (EMPTY): Receive FIFO is empty 0x1 (NOT_EMPTY): Receive FIFO is not empty 3 1 read-only SSI_BUSY SSI Busy Flag. When set, indicates that a serial transfer is in progress when cleared indicates that the SPI is idle or disabled. 0x0 (INACTIVE): SPI is idle or disabled 0x1 (ACTIVE): SPI is actively transferring data 0 1 read-only TX_ERR Transmission Error. Set if the transmit FIFO is empty when a transfer is started. Data from the previous transmission is resent on the txd line. This bit is cleared when read. 0x0 (NO_ERROR): No Error 0x1 (TX_ERROR): Transmission Error Note: When the SPI is configured as a master, this register serves no purpose. 5 1 read-only TX_FIFO_EMPTY Transmit FIFO Empty. When the transmit FIFO is completely empty, this bit is set. When the transmit FIFO contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0x0 (NOT_EMPTY): Transmit FIFO is not empty 0x1 (EMPTY): Transmit FIFO is empty 2 1 read-only TX_FIFO_NF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0x0 (FULL): Transmit FIFO is full 0x1 (NOT_FULL): Transmit FIFO is not Full 1 1 read-only S_EN S_EN Slave Enable Register 0x10 32 read-write n 0x0 0xFFFFFFFF S_SEL_EN Slave Select Enable. Each bit in this register corresponds to a slave select line (CSn) from the SPI master. 0x0 (NOT_SELECTED): No slave selected 0x1 (SELECTED): Slave is selected Note: When the SPI is configured as a slave, this register serves no purpose. 0 2 read-write TX_FIFO_LEVEL TX_FIFO_LEVEL Transmit FIFO Level Register 0x20 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_LEVEL Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. 0 4 read-only TX_FIFO_OIC TX_FIFO_OIC Transmit FIFO Overflow Interrupt Clear Register 0x38 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_OIC Clear Transmit FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the txo_intr interrupt writing has no effect. 0 1 read-only TX_FIFO_TL TX_FIFO_TL Transmit FIFO Threshold Level Register 0x18 32 read-write n 0x0 0xFFFFFFFF TX_FIFO_THD Transmit FIFO Threshold. Controls the level of entries (or below) at which the transmit FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256 this register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than or equal to the depth of the FIFO, this field is not written and retains its current value.When the number of transmit FIFO entries is less than or equal to this value, the transmit FIFO empty interrupt is triggered. 0 3 read-write RNG True Random Number Generator RNG 0xA0017800 0x0 0x28 registers n RNG RNG interrupt 19 CFG CFG TRNG Configuration Register 0x14 32 read-write n 0xB246 0xFFFFFFFF FRO_EN Ring oscillator TRNG enabled signal. 0x0: Disabled 0x1: Enabled 15 1 read-write HW_INT_EN TRNG hardware interrupt enable. 13 1 read-write LFSR_MODE_CFG LFSR configuration mode- 0x0: 59 bit LFSR 0x1: 128 bit LFSR 9 1 read-write LFSR_SEED_CFG LFSR seed configuration mode, select source of LFSR seed. 0x0: LFSR seed is from the switching current s0 0x1: LFSR seed is from the switching current s1 0x2: LFSR seed is from the switching current s2 0x3: LFSR seed is from the switching current s3 0x4: LFSR seed is from the oscillator s0 0x5: LFSR seed is from the Low Frequency Sampling s0 0x6: LFSR seed is configured by users 0x7: Random numbers do not use LFSR and completely use true random mode Value is limited to 0x4 or 0x6 in GR551x. 10 3 read-write LFSR_XOR_SEL In Output mode 8, select TRNG with LFSR XOR 0x4: LFSR ⊕ Ring Oscillator s0 ( the ⊕ means XOR.) Value is limited to 0x4 in GR551x. 4 3 read-write LFS_EN Low frequency sampling TRNG enabled signal. 0x0: Disabled 0x1: Enabled Reserved in GR551x. 14 1 read-write OUT_MODE Select TRNG Output mode. 0x4: Digital TRNG direct output, ring oscillator s0 0x6: LFSR and TRNG cyclic sampling and parity generation 0x7: LFSR and TRNG cyclic sampling 0x8: LFSR ⊕ TRNG 0x9: LFSR direct output Value is limited to 0x4, 0x6, 0x7, 0x8 or 0x9 in GR551x. 0 4 read-write P_MODE_CFG TRNG post-process configuration. 0x0: No post process 0x1: bit skipping 0x2: bit counting 0x3: Von-Neumann 7 2 read-write CTRL CTRL TRNG Controller Register 0x0 32 read-write n 0x0 0xFFFFFFFF RUN TRNG work enabled signal, valid at HIGH 0x0: disable RNG module 0x1: TRNG starts working to execute a operation of reading random number 0 1 read-write DATA DATA TRNG Data Register 0x8 32 read-only n 0x0 0xFFFFFFFF DATA TRNG data This register is automatically cleared by hardware after read 0 32 read-only FRO_CFG FRO_CFG TRNG FRO Configuration Register 0x1C 32 read-write n 0xFFFF 0xFFFFFFFF CHAIN_EN Enable signal of each Chain in ring oscillator module It is valid when FROEN is HIGH. 0 8 read-write TEST_IN Test input signal of each Chain for FRO The default value is 1. 8 8 read-write LONG_RUN_CFG LONG_RUN_CFG TRNG Long Run Configuration Register 0x24 32 read-write n 0x35 0xFFFFFFFF LONG_RUN_THD Test input signal of each Chain for FRO The default value is 1. 1 5 read-write THD_LR_TEST Threshold configuration of RNG long run test. The run which is greater or equal to this value will be detected. Default value is 26 and the maximum value is 31. 0 1 read-write LONG_RUN_STAT LONG_RUN_STAT TRNG Long Run Status Register 0x10 32 read-only n 0x0 0xFFFFFFFF LONG_RUN_COUNT Counts of TRNG long run test. This value is incremented by 1 for every long run detected by TRNG. After TRNG being disabled or reset, the register is cleared. 1 8 read-only LONG_RUN_FLAG Flag of TRNG long run test 0x0: Long run never occurred. 0x1: Long run was occurred in random number sequence After TRNG being disabled or reset, this register is cleared 0 1 read-only SRC_CFG SRC_CFG TRNG Source Configuration Register 0x18 32 read-write n 0x7864 0xFFFFFFFF FRO_CHAIN_SEL Selection of Chain4- Chain7 for FRO- 0x0: select long ring 0x1: select short ring 11 4 read-write WAIT_TIME The waiting time that TRNG input reaches stable. Default value is 100 time cycles. 0 8 read-write STAT STAT TRNG Status Register 0x4 32 read-write n 0x0 0xFFFFFFFF READY TRNG status flag bit, queried by CPU 0x0: TRNG output data is not valid. 0x1: TRNG output data is valid. This register is automatically cleared by hardware after READY is set HIGH. This register is automatically cleared by hardware after read DATA 0 1 read-write USER_SEED USER_SEED TRNG User Seed Register 0x20 32 write-only n 0x0 0xFFFFFFFF USER_SEED RNG seed configured by user. Write four times to user_seed[58:0] to configure a 59-bit random number. 0 16 write-only SADC Sense Analog-to-Digital Converter SADC 0xA000E000 0x0 0x14 registers n CFG CFG Sense ADC Configuration Register 0x8 32 read-write n 0x708070A 0xFFFFFFFF BIAS_REF_CTRL Buffered internal reference 0x0: 0.5V 0x1: 0.6V 0x2: 0.7V 0x3: 0.8V - 0xF: 2.0V Note: For any specific reference value (Vref), the maximum ADC input is supposed to be 2xVref. 0 4 read-write CH_N Used to define input for channel N 0x0: MSIO0 as input 0x1: MSIO1 as input 0x2: MSIO2 as input 0x3: MSIO3 as input 0x4: MSIO4 as input 0x5: Temperature sensor as input 0x6: Battery sensor as input 16 3 read-write CH_P Used to define input for channel P 0x0: MSIO0 as input 0x1: MSIO1 as input 0x2: MSIO2 as input 0x3: MSIO3 as input 0x4: MSIO4 as input 0x5: Temperature sensor as input 0x6: Battery sensor as input 19 3 read-write CODE_IN Used to define dynamic range of ADC. Default set to <0x7>, for higher input signal frequencies close to nyquist rate use <0x1> 8 3 read-write EN Enable ADC 0x0: Disable ADC 0x1: Enable ADC 30 1 read-write EN_CAL Used to swap inputs of comparator for offset calibration. 0x0: Disable 0x1: Enable 12 1 read-write EN_TMP Enable temperature sensor 0x0: Disable 0x1: Enable 15 1 read-write EN_VBAT Enable battery sensor 0x0: Disable 0x1: Enable 14 1 read-write MODE Used to define opertation either single ended or differential. 0x0: Diff 0x1: Single 13 1 read-write REF_HP_MODE Used to define current in the reference circuit :Default-<0x0> at 100KS/s and <0x7> at 1MS/s 24 3 read-write REF_SEL Reference Voltage Select 0x0: Buffered internal reference 0x1: Reserved 0x2: Reserved 0x3: Using MSIO0 as reference 0x4: Using MSIO1 as a reference 0x5: Using MSIO2 as a reference 0x6: Using MSIO3 as a reference 0x7: Reserved Note: Because the maximum input for any MSIO is supposed to be VBATT. So in this case, there is no benefit from using an external input higher than VBATT/2. 27 3 read-write RST Reset ADC 0x0: None 0x1: Reset 31 1 read-write CLK CLK Sense ADC Clock Register 0x40 32 read-write n 0x0 0xFFFFFFFF CLK_EN Enable ADC clock 0x0: Disable 0x1: Enable 31 1 read-write CLK_SEL ADC clock select 0x0: 16 MHz 0x1: 8 MHz 0x2: 4 MHz 0x3: 2 MHz 0x4: 1.6 MHz 0x5: 1 MHz 0x6: 1.6 MHz 0x7: 1 MHz 28 3 read-write FIFO_RD FIFO_RD Sense ADC Read FIFO Register 0x1B00 32 read-only n 0x0 0xFFFFFFFF DATA When the register is read, data in the FIFO buffer is accessed. 0 32 read-only FIFO_STAT FIFO_STAT Sense ADC Status Register 0x1C04 32 read-only n 0x0 0xFFFFFFFF COUNT Sense ADC FIFO Count, number of 32 bits words in the FIFO. Maximum value is 0x40 or decimal 64 0 7 read-only VAL Identify whether FIFO is empty 0x0: FIFO is empty 0x1: FIFO is not empty 8 1 read-only FIFO_THD FIFO_THD Sense ADC FIFO Threshold Register 0x1C00 32 read-write n 0x0 0xFFFFFFFF THD This is used to set the threshold at which the DMA request is made to the hardware handshake mechanism. 0 6 read-write SPIM Serial Peripheral Interface SPI 0xA000C000 0x0 0x5C registers n SPI_M SPI_M Interrupt 4 SPI_S SPI_S Interrupt 5 BAUD BAUD Baud Rate Register 0x14 32 read-write n 0x0 0xFFFFFFFF SSI_CLK_DIV SSI Clock Divider. The LSB for this field is always set to 0 and is unaffected by a write operation, which ensures an even value is held in this register. If the value is 0, the serial output clock (sclk_out) is disabled. The frequency of the sclk_out is derived from the following equation: Fsclk_out = Fssi_clk/SSI_CLK_DIV Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write CTRL0 CTRL0 SPI Control Register 0 0x0 32 read-write n 0x1070000 0xFFFFFFFF CTRL_FRAME_SIZE Control Frame Size. Selects the length of the control word for the Microwire frame format. 0x0 (SIZE_01_BIT): 1-bit Control Word 0x1 (SIZE_02_BIT): 2-bit Control Word 0x2 (SIZE_03_BIT): 3-bit Control Word 0x3 (SIZE_04_BIT): 4-bit Control Word 0x4 (SIZE_05_BIT): 5-bit Control Word 0x5 (SIZE_06_BIT): 6-bit Control Word 0x6 (SIZE_07_BIT): 7-bit Control Word 0x7 (SIZE_08_BIT): 8-bit Control Word 0x8 (SIZE_09_BIT): 9-bit Control Word 0x9 (SIZE_10_BIT): 10-bit Control Word 0xa (SIZE_11_BIT): 11-bit Control Word 0xb (SIZE_12_BIT): 12-bit Control Word 0xc (SIZE_13_BIT): 13-bit Control Word 0xd (SIZE_14_BIT): 14-bit Control Word 0xe (SIZE_15_BIT): 15-bit Control Word 0xf (SIZE_16_BIT): 16-bit Control Word 12 4 read-write DATA_FRAME_SIZE Data Frame Size in 32-bit transfer size mode. Used to select the data frame size in 32-bit transfer mode. When the data frame size is programmed to be less than 32 bits, the receive data are automatically right-justified by the receive logic, with the upper bits of the receive FIFO zero-padded. You are responsible for making sure that transmit data is right-justified before writing into the transmit FIFO. The transmit logic ignores the upper unused bits when transmitting the data. 0x3 (FRAME_04BITS): 4-bit serial data transfer 0x4 (FRAME_05BITS): 5-bit serial data transfer 0x5 (FRAME_06BITS): 6-bit serial data transfer 0x6 (FRAME_07BITS): 7-bit serial data transfer 0x7 (FRAME_08BITS): 8-bit serial data transfer 0x8 (FRAME_09BITS): 9-bit serial data transfer 0x9 (FRAME_10BITS): 10-bit serial data transfer 0xa (FRAME_11BITS): 11-bit serial data transfer 0xb (FRAME_12BITS): 12-bit serial data transfer 0xc (FRAME_13BITS): 13-bit serial data transfer 0xd (FRAME_14BITS): 14-bit serial data transfer 0xe (FRAME_15BITS): 15-bit serial data transfer 0xf (FRAME_16BITS): 16-bit serial data transfer 0x10 (FRAME_17BITS): 17-bit serial data transfer 0x11 (FRAME_18BITS): 18-bit serial data transfer 0x12 (FRAME_19BITS): 19-bit serial data transfer 0x13 (FRAME_20BITS): 20-bit serial data transfer 0x14 (FRAME_21BITS): 21-bit serial data transfer 0x15 (FRAME_22BITS): 22-bit serial data transfer 0x16 (FRAME_23BITS): 23-bit serial data transfer 0x17 (FRAME_24BITS): 24-bit serial data transfer 0x18 (FRAME_25BITS): 25-bit serial data transfer 0x19 (FRAME_26BITS): 26-bit serial data transfer 0x1a (FRAME_27BITS): 27-bit serial data transfer 0x1b (FRAME_28BITS): 28-bit serial data transfer 0x1c (FRAME_29BITS): 29-bit serial data transfer 0x1d (FRAME_30BITS): 30-bit serial data transfer 0x1e (FRAME_31BITS): 31-bit serial data transfer 0x1f (FRAME_32BITS): 32-bit serial data transfer 16 5 read-write FRAME_FORMAT Frame Format. Selects which serial protocol transfers the data. 0x0 (MOTOROLA_SPI): Motorolla SPI Frame Format 0x1 (TEXAS_SSP): Texas Instruments SSP Frame Format 0x2 (NS_MICROWIRE): National Microwire Frame Format 0x3 (RESERVED): Reserved value 4 2 read-write SERIAL_CLK_PHASE Serial Clock Phase. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. The serial clock phase selects the relationship of the serial clock with the slave select signal. When SERIAL_CLK_PHASE = 0, data are captured on the first edge of the serial clock. When SERIAL_CLK_PHASE = 1, the serial clock starts toggling one cycle after the slave select line is activated, and data are captured on the second edge of the serial clock. 0x0 (SERIAL_CLK_PHASE_MIDDLE): Serial clock toggles in middle of first data bit 0x1 (SERIAL_CLK_PHASE_START): Serial clock toggles at start of first data bit 6 1 read-write SERIAL_CLK_POL Serial Clock Polarity. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. Used to select the polarity of the inactive serial clock, which is held inactive when the SPI master is not actively transferring data on the serial bus. 0x0 (SCLK_LOW): Inactive state of serial clock is low 0x1 (SCLK_HIGH): Inactive state of serial clock is high 7 1 read-write SHIFT_REG_LOOP Shift Register Loop. Used for testing purposes only. When internally active, connects the transmit shift register output to the receive shift register input. 0x0 (NORMAL_MODE): Normal mode operation 0x1 (TESTING_MODE): Test mode: TX and RX shift reg connected 11 1 read-write S_OUT_EN Slave Output Enable. Relevant only when the SPI is configured as a serial-slave device. When configured as a serial master, this bit field has no functionality. 0x0 (ENABLED): Slave Output is enabled 0x1 (DISABLED): Slave Output is disabled Note: When the SPI is configured as a master, this register serves no purpose. 10 1 read-write S_ST_EN Slave Select Toggle Enable. When operating in SPI mode with clock phase (SERIAL_CLK_PHASE) set to 0, this register controls the behavior of the slave select line (CS) between data frames. If this register field is set to 1 the CS line will toggle between consecutive data frames, with the serial clock (sclk) being held to its default value while CS is high if this register field is set to 0 the CS will stay low and sclk will run continuously for the duration of the transfer. Note: When the SPI is configured as a slave, this register serves no purpose 24 1 read-write XFE_MODE Transfer Mode. This transfer mode is only valid when the SPI is configured as master device. 0x0 - Transmit and Receive 0x1 - Transmit Only 0x2 - Receive Only 0x3 - EEPROM Read 0x0 (TX_AND_RX): Transmit and receive 0x1 (TX_ONLY): Transmit only mode 0x2 (RX_ONLY): Receive only mode 0x3 (EEPROM_READ): EEPROM Read mode 8 2 read-write CTRL1 CTRL1 SPI Control Register 1 0x4 32 read-write n 0x0 0xFFFFFFFF NUM_DATA_FRAME Number of Data Frames. When XFE_MODE = 10 or XFE_MODE = 11, this register field sets thenumber of data frames to be continuously received by the SPI. The SPI continues to receive serialdata until the number of data frames received is equal to thisregister value plus 1, which enables you to receive up to 64KB of data in a continuous transfer. Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write DATA DATA Data Register 0x60 32 read-write n 0x0 0xFFFFFFFF DATA Data Register. When writing to this register, you must right-justify the data. Read data are automatically right-justified. 0 32 read-write DMA_CTRL DMA_CTRL DMA Control Register 0x4C 32 read-write n 0x0 0xFFFFFFFF RX_DMA_EN Receive DMA Enable. This bit enables/disables the receive FIFO DMA channel 0x0 (DISABLE): Receive DMA disabled 0x1 (ENABLED): Receive DMA enabled 0 1 read-write TX_DMA_EN Transmit DMA Enable. This bit enables/disables the transmit FIFO DMA channel. 0x0 (DISABLE): Transmit DMA disabled 0x1 (ENABLED): Transmit DMA enabled 1 1 read-write DMA_RX_DL DMA_RX_DL DMA Receive Data Level Register 0x54 32 read-write n 0x0 0xFFFFFFFF DMA_RX_DL Receive Data Level. This bit field controls the level at which a DMA request is made by the receive logic. The watermark level = DMA_RX_DL+1 that is, dma_rx_req is generated when the number of valid data entries in the receive FIFO is equal to or above this field value + 1, and RX_DMA_EN=1. 0 3 read-write DMA_TX_DL DMA_TX_DL DMA Transmit Data Level Register 0x50 32 read-write n 0x0 0xFFFFFFFF DMA_TX_DL Transmit Data Level. This bit field controls the level at which a DMA request is made by the transmit logic. It is equal to the watermark level that is, the dma_tx_req signal is generated when the number of valid data entries in the transmit FIFO is equal to or below this field value, and TX_DMA_EN = 1. 0 3 read-write INT_CLR INT_CLR Interrupt Clear Register 0x48 32 read-only n 0x0 0xFFFFFFFF INT_CLR Clear Interrupts. This register is set if any of the interrupts below are active. A read clears the txo_intr, rxu_intr, rxo_intr, and the mst_intr interrupts. Writing to this register has no effect. 0 1 read-only INT_MASK INT_MASK Interrupt Mask Register 0x2C 32 read-write n 0x3F 0xFFFFFFFF MULTI_M_CIM Multi-Master Contention Interrupt Mask. 0x0 (MASKED): Disable mst_intr interrupt 0x1 (UNMASKED): Enable mst_intr interrupt Note: When the SPI is configured as a slave, this register serves no purpose. 5 1 read-write RX_FIFO_FIM Receive FIFO Full Interrupt Mask 0x0 (MASKED): Disable rxf_intr interrupt 0x1 (UNMASKED): Enable rxf_intr interrupt 4 1 read-write RX_FIFO_OIM Receive FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable rxo_intr interrupt 0x1 (UNMASKED): Enable rxo_intr interrupt 3 1 read-write RX_FIFO_UIM Receive FIFO Underflow Interrupt Mask 0x0 (MASKED): Disable rxu_intr interrupt 0x1 (UNMASKED): Enable rxu_intr interrupt 2 1 read-write TX_FIFO_EIM Transmit FIFO Empty Interrupt Mask 0x0 (MASKED): Disable txe_intr interrupt 0x1 (UNMASKED): Enable txe_intr interrupt 0 1 read-write TX_FIFO_OIM Transmit FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable txo_intr interrupt 0x1 (UNMASKED): Enable txo_intr interrupt 1 1 read-write INT_STAT INT_STAT Interrupt Status Register 0x30 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CIS Multi-Master Contention Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active after be enabled 0x1 (ACTIVE): mst_intr interrupt is full after be enabled 5 1 read-only RX_FIFO_FIS Receive FIFO Full Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxf_intr interrupt is full after be enabled 4 1 read-only RX_FIFO_OIS Receive FIFO Overflow Interrupt Status 0x0 (INACTIVE): rxo_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxo_intr interrupt is active after be enabled 3 1 read-only RX_FIFO_UIS Receive FIFO Underflow Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxu_intr interrupt is active after be enabled 2 1 read-only TX_FIFO_EIS Transmit FIFO Empty Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active after be enabled 0x1 (ACTIVE): txe_intr interrupt is active after be enabled 0 1 read-only TX_FIFO_OIS Transmit FIFO Overflow Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active after be enabled 0x1 (ACTIVE): txo_intr interrupt is active after be enabled 1 1 read-only MULTI_M_IC MULTI_M_IC Multi-Master Interrupt Clear Register 0x44 32 read-only n 0x0 0xFFFFFFFF MULTI_M_IC Clear Multi-Master Contention Interrupt. This register reflects the status of the interrupt. A read from this register clears the mst_intr interrupt writing has no effect. 0 1 read-only MW_CTRL MW_CTRL Microwire Control Register 0xC 32 read-write n 0x0 0xFFFFFFFF MW_DIR_DW Microwire Control. Defines the direction of the data word when the Microwire serial protocol is used. 0x0 (RECEIVE): SPI receives data 0x1 (TRANSMIT): SPI transmits data 1 1 read-write MW_HSG Microwire Handshaking. Used to enable and disable the busy/ready handshaking interface for the Microwire protocol. When enabled, the SPI checks for a ready status from the target slave, after the transfer of the last data/control bit, before clearing the SSI_BUSY status in the STAT register. 0x0 (DISABLE): Handshaking interface is disabled 0x1 (ENABLED): Handshaking interface is enabled Note: When the SPI is configured as a slave, this register serves no purpose. 2 1 read-write MW_XFE_MODE Microwire Transfer Mode. Defines whether the Microwire transfer is sequential or non-sequential. When sequential mode is used, only one control word is needed to transmit or receive a block of data words. When non-sequential mode is used, there must be a control word for each data word that is transmitted or received. 0x0 (NON_SEQUENTIAL): Non-Sequential Microwire Transfer 0x1 (SEQUENTIAL): Sequential Microwire Transfer 0 1 read-write RAW_INT_STAT RAW_INT_STAT Raw Interrupt Status Register 0x34 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CRIS Multi-Master Contention Raw Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): mst_intr interrupt is full prior to be enabled 5 1 read-only RX_FIFO_FRIS Receive FIFO Full Raw Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxf_intr interrupt is active prior to be enabled 4 1 read-only RX_FIFO_ORIS Receive FIFO Overflow Raw Interrupt Status 0x1 (ACTIVE): rxo_intr interrupt is not active prior to be enabled 0x0 (INACTIVE): rxo_intr interrupt is active prior be enabled 3 1 read-only RX_FIFO_URIS Receive FIFO Underflow Raw Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxu_intr interrupt is active prior to be enabled 2 1 read-only TX_FIFO_ERIS Transmit FIFO Empty Raw Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txe_intr interrupt is active prior be enabled 0 1 read-only TX_FIFO_ORIS Transmit FIFO Overflow Raw Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txo_intr interrupt is active prior be enabled 1 1 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL Receive FIFO Level Register 0x24 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_LEVEL Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. 0 4 read-only RX_FIFO_OIC RX_FIFO_OIC Receive FIFO Overflow Interrupt Clear Register 0x3C 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_OIC Clear Receive FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxo_intr interrupt writing has no effect. 0 1 read-only RX_FIFO_TL RX_FIFO_TL Receive FIFO Threshold Level 0x1C 32 read-write n 0x0 0xFFFFFFFF RX_FIFO_THD Receive FIFO Threshold. Controls the level of entries (or above) at which the receive FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256. This register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than the depth of the FIFO, this field is not written and retains its current value.When the number of receive FIFO entries is greater than or equal to this value + 1, the receive FIFO full interrupt is triggered. 0 3 read-write RX_FIFO_UIC RX_FIFO_UIC Receive FIFO Underflow Interrupt Clear Register 0x40 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_UIC Clear Receive FIFO Underflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxu_intr interrupt writing has no effect. 0 1 read-only SSI_EN SSI_EN SSI Enable Register 0x8 32 read-write n 0x0 0xFFFFFFFF SSI_EN SSI Enable. Enables and disables all SPI operations. When disabled, all serial transfers are halted immediately. Transmit and receive FIFO buffers are cleared when the device is disabled. 0x0 (DISABLE): Disables Serial Transfer 0x1 (ENABLED): Enables Serial Transfer 0 1 read-write STAT STAT Status Register 0x28 32 read-only n 0x6 0xFFFFFFFF DATA_COLN_ERR Data Collision Error. This bit will be set if MISO input is asserted by other master, when the SPI master is in the middle of the transfer. This informs the processor that the last data transfer was halted before completion. This bit is cleared when read. Note: When the SPI is configured as a slave, this register serves no purpose. 6 1 read-only RX_FIFO_FULL Receive FIFO Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0x0 (NOT_FULL): Receive FIFO is not full 0x1 (FULL): Receive FIFO is full 4 1 read-only RX_FIFO_NE Receive FIFO Not Empty. Set when the receive FIFO contains one or more entries and is cleared when the receive FIFO is empty. This bit can be polled by software to completely empty the receive FIFO. 0x0 (EMPTY): Receive FIFO is empty 0x1 (NOT_EMPTY): Receive FIFO is not empty 3 1 read-only SSI_BUSY SSI Busy Flag. When set, indicates that a serial transfer is in progress when cleared indicates that the SPI is idle or disabled. 0x0 (INACTIVE): SPI is idle or disabled 0x1 (ACTIVE): SPI is actively transferring data 0 1 read-only TX_ERR Transmission Error. Set if the transmit FIFO is empty when a transfer is started. Data from the previous transmission is resent on the txd line. This bit is cleared when read. 0x0 (NO_ERROR): No Error 0x1 (TX_ERROR): Transmission Error Note: When the SPI is configured as a master, this register serves no purpose. 5 1 read-only TX_FIFO_EMPTY Transmit FIFO Empty. When the transmit FIFO is completely empty, this bit is set. When the transmit FIFO contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0x0 (NOT_EMPTY): Transmit FIFO is not empty 0x1 (EMPTY): Transmit FIFO is empty 2 1 read-only TX_FIFO_NF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0x0 (FULL): Transmit FIFO is full 0x1 (NOT_FULL): Transmit FIFO is not Full 1 1 read-only S_EN S_EN Slave Enable Register 0x10 32 read-write n 0x0 0xFFFFFFFF S_SEL_EN Slave Select Enable. Each bit in this register corresponds to a slave select line (CSn) from the SPI master. 0x0 (NOT_SELECTED): No slave selected 0x1 (SELECTED): Slave is selected Note: When the SPI is configured as a slave, this register serves no purpose. 0 2 read-write TX_FIFO_LEVEL TX_FIFO_LEVEL Transmit FIFO Level Register 0x20 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_LEVEL Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. 0 4 read-only TX_FIFO_OIC TX_FIFO_OIC Transmit FIFO Overflow Interrupt Clear Register 0x38 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_OIC Clear Transmit FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the txo_intr interrupt writing has no effect. 0 1 read-only TX_FIFO_TL TX_FIFO_TL Transmit FIFO Threshold Level Register 0x18 32 read-write n 0x0 0xFFFFFFFF TX_FIFO_THD Transmit FIFO Threshold. Controls the level of entries (or below) at which the transmit FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256 this register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than or equal to the depth of the FIFO, this field is not written and retains its current value.When the number of transmit FIFO entries is less than or equal to this value, the transmit FIFO empty interrupt is triggered. 0 3 read-write SPIS Serial Peripheral Interface SPI 0xA000C100 0x0 0x5C registers n SPI_M SPI_M Interrupt 4 SPI_S SPI_S Interrupt 5 BAUD BAUD Baud Rate Register 0x14 32 read-write n 0x0 0xFFFFFFFF SSI_CLK_DIV SSI Clock Divider. The LSB for this field is always set to 0 and is unaffected by a write operation, which ensures an even value is held in this register. If the value is 0, the serial output clock (sclk_out) is disabled. The frequency of the sclk_out is derived from the following equation: Fsclk_out = Fssi_clk/SSI_CLK_DIV Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write CTRL0 CTRL0 SPI Control Register 0 0x0 32 read-write n 0x1070000 0xFFFFFFFF CTRL_FRAME_SIZE Control Frame Size. Selects the length of the control word for the Microwire frame format. 0x0 (SIZE_01_BIT): 1-bit Control Word 0x1 (SIZE_02_BIT): 2-bit Control Word 0x2 (SIZE_03_BIT): 3-bit Control Word 0x3 (SIZE_04_BIT): 4-bit Control Word 0x4 (SIZE_05_BIT): 5-bit Control Word 0x5 (SIZE_06_BIT): 6-bit Control Word 0x6 (SIZE_07_BIT): 7-bit Control Word 0x7 (SIZE_08_BIT): 8-bit Control Word 0x8 (SIZE_09_BIT): 9-bit Control Word 0x9 (SIZE_10_BIT): 10-bit Control Word 0xa (SIZE_11_BIT): 11-bit Control Word 0xb (SIZE_12_BIT): 12-bit Control Word 0xc (SIZE_13_BIT): 13-bit Control Word 0xd (SIZE_14_BIT): 14-bit Control Word 0xe (SIZE_15_BIT): 15-bit Control Word 0xf (SIZE_16_BIT): 16-bit Control Word 12 4 read-write DATA_FRAME_SIZE Data Frame Size in 32-bit transfer size mode. Used to select the data frame size in 32-bit transfer mode. When the data frame size is programmed to be less than 32 bits, the receive data are automatically right-justified by the receive logic, with the upper bits of the receive FIFO zero-padded. You are responsible for making sure that transmit data is right-justified before writing into the transmit FIFO. The transmit logic ignores the upper unused bits when transmitting the data. 0x3 (FRAME_04BITS): 4-bit serial data transfer 0x4 (FRAME_05BITS): 5-bit serial data transfer 0x5 (FRAME_06BITS): 6-bit serial data transfer 0x6 (FRAME_07BITS): 7-bit serial data transfer 0x7 (FRAME_08BITS): 8-bit serial data transfer 0x8 (FRAME_09BITS): 9-bit serial data transfer 0x9 (FRAME_10BITS): 10-bit serial data transfer 0xa (FRAME_11BITS): 11-bit serial data transfer 0xb (FRAME_12BITS): 12-bit serial data transfer 0xc (FRAME_13BITS): 13-bit serial data transfer 0xd (FRAME_14BITS): 14-bit serial data transfer 0xe (FRAME_15BITS): 15-bit serial data transfer 0xf (FRAME_16BITS): 16-bit serial data transfer 0x10 (FRAME_17BITS): 17-bit serial data transfer 0x11 (FRAME_18BITS): 18-bit serial data transfer 0x12 (FRAME_19BITS): 19-bit serial data transfer 0x13 (FRAME_20BITS): 20-bit serial data transfer 0x14 (FRAME_21BITS): 21-bit serial data transfer 0x15 (FRAME_22BITS): 22-bit serial data transfer 0x16 (FRAME_23BITS): 23-bit serial data transfer 0x17 (FRAME_24BITS): 24-bit serial data transfer 0x18 (FRAME_25BITS): 25-bit serial data transfer 0x19 (FRAME_26BITS): 26-bit serial data transfer 0x1a (FRAME_27BITS): 27-bit serial data transfer 0x1b (FRAME_28BITS): 28-bit serial data transfer 0x1c (FRAME_29BITS): 29-bit serial data transfer 0x1d (FRAME_30BITS): 30-bit serial data transfer 0x1e (FRAME_31BITS): 31-bit serial data transfer 0x1f (FRAME_32BITS): 32-bit serial data transfer 16 5 read-write FRAME_FORMAT Frame Format. Selects which serial protocol transfers the data. 0x0 (MOTOROLA_SPI): Motorolla SPI Frame Format 0x1 (TEXAS_SSP): Texas Instruments SSP Frame Format 0x2 (NS_MICROWIRE): National Microwire Frame Format 0x3 (RESERVED): Reserved value 4 2 read-write SERIAL_CLK_PHASE Serial Clock Phase. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. The serial clock phase selects the relationship of the serial clock with the slave select signal. When SERIAL_CLK_PHASE = 0, data are captured on the first edge of the serial clock. When SERIAL_CLK_PHASE = 1, the serial clock starts toggling one cycle after the slave select line is activated, and data are captured on the second edge of the serial clock. 0x0 (SERIAL_CLK_PHASE_MIDDLE): Serial clock toggles in middle of first data bit 0x1 (SERIAL_CLK_PHASE_START): Serial clock toggles at start of first data bit 6 1 read-write SERIAL_CLK_POL Serial Clock Polarity. Valid when the frame format (FRAME_FORMAT) is set to Motorola SPI. Used to select the polarity of the inactive serial clock, which is held inactive when the SPI master is not actively transferring data on the serial bus. 0x0 (SCLK_LOW): Inactive state of serial clock is low 0x1 (SCLK_HIGH): Inactive state of serial clock is high 7 1 read-write SHIFT_REG_LOOP Shift Register Loop. Used for testing purposes only. When internally active, connects the transmit shift register output to the receive shift register input. 0x0 (NORMAL_MODE): Normal mode operation 0x1 (TESTING_MODE): Test mode: TX and RX shift reg connected 11 1 read-write S_OUT_EN Slave Output Enable. Relevant only when the SPI is configured as a serial-slave device. When configured as a serial master, this bit field has no functionality. 0x0 (ENABLED): Slave Output is enabled 0x1 (DISABLED): Slave Output is disabled Note: When the SPI is configured as a master, this register serves no purpose. 10 1 read-write S_ST_EN Slave Select Toggle Enable. When operating in SPI mode with clock phase (SERIAL_CLK_PHASE) set to 0, this register controls the behavior of the slave select line (CS) between data frames. If this register field is set to 1 the CS line will toggle between consecutive data frames, with the serial clock (sclk) being held to its default value while CS is high if this register field is set to 0 the CS will stay low and sclk will run continuously for the duration of the transfer. Note: When the SPI is configured as a slave, this register serves no purpose 24 1 read-write XFE_MODE Transfer Mode. This transfer mode is only valid when the SPI is configured as master device. 0x0 - Transmit and Receive 0x1 - Transmit Only 0x2 - Receive Only 0x3 - EEPROM Read 0x0 (TX_AND_RX): Transmit and receive 0x1 (TX_ONLY): Transmit only mode 0x2 (RX_ONLY): Receive only mode 0x3 (EEPROM_READ): EEPROM Read mode 8 2 read-write CTRL1 CTRL1 SPI Control Register 1 0x4 32 read-write n 0x0 0xFFFFFFFF NUM_DATA_FRAME Number of Data Frames. When XFE_MODE = 10 or XFE_MODE = 11, this register field sets thenumber of data frames to be continuously received by the SPI. The SPI continues to receive serialdata until the number of data frames received is equal to thisregister value plus 1, which enables you to receive up to 64KB of data in a continuous transfer. Note: When the SPI is configured as a slave, this register serves no purpose. 0 16 read-write DATA DATA Data Register 0x60 32 read-write n 0x0 0xFFFFFFFF DATA Data Register. When writing to this register, you must right-justify the data. Read data are automatically right-justified. 0 32 read-write DMA_CTRL DMA_CTRL DMA Control Register 0x4C 32 read-write n 0x0 0xFFFFFFFF RX_DMA_EN Receive DMA Enable. This bit enables/disables the receive FIFO DMA channel 0x0 (DISABLE): Receive DMA disabled 0x1 (ENABLED): Receive DMA enabled 0 1 read-write TX_DMA_EN Transmit DMA Enable. This bit enables/disables the transmit FIFO DMA channel. 0x0 (DISABLE): Transmit DMA disabled 0x1 (ENABLED): Transmit DMA enabled 1 1 read-write DMA_RX_DL DMA_RX_DL DMA Receive Data Level Register 0x54 32 read-write n 0x0 0xFFFFFFFF DMA_RX_DL Receive Data Level. This bit field controls the level at which a DMA request is made by the receive logic. The watermark level = DMA_RX_DL+1 that is, dma_rx_req is generated when the number of valid data entries in the receive FIFO is equal to or above this field value + 1, and RX_DMA_EN=1. 0 3 read-write DMA_TX_DL DMA_TX_DL DMA Transmit Data Level Register 0x50 32 read-write n 0x0 0xFFFFFFFF DMA_TX_DL Transmit Data Level. This bit field controls the level at which a DMA request is made by the transmit logic. It is equal to the watermark level that is, the dma_tx_req signal is generated when the number of valid data entries in the transmit FIFO is equal to or below this field value, and TX_DMA_EN = 1. 0 3 read-write INT_CLR INT_CLR Interrupt Clear Register 0x48 32 read-only n 0x0 0xFFFFFFFF INT_CLR Clear Interrupts. This register is set if any of the interrupts below are active. A read clears the txo_intr, rxu_intr, rxo_intr, and the mst_intr interrupts. Writing to this register has no effect. 0 1 read-only INT_MASK INT_MASK Interrupt Mask Register 0x2C 32 read-write n 0x3F 0xFFFFFFFF MULTI_M_CIM Multi-Master Contention Interrupt Mask. 0x0 (MASKED): Disable mst_intr interrupt 0x1 (UNMASKED): Enable mst_intr interrupt Note: When the SPI is configured as a slave, this register serves no purpose. 5 1 read-write RX_FIFO_FIM Receive FIFO Full Interrupt Mask 0x0 (MASKED): Disable rxf_intr interrupt 0x1 (UNMASKED): Enable rxf_intr interrupt 4 1 read-write RX_FIFO_OIM Receive FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable rxo_intr interrupt 0x1 (UNMASKED): Enable rxo_intr interrupt 3 1 read-write RX_FIFO_UIM Receive FIFO Underflow Interrupt Mask 0x0 (MASKED): Disable rxu_intr interrupt 0x1 (UNMASKED): Enable rxu_intr interrupt 2 1 read-write TX_FIFO_EIM Transmit FIFO Empty Interrupt Mask 0x0 (MASKED): Disable txe_intr interrupt 0x1 (UNMASKED): Enable txe_intr interrupt 0 1 read-write TX_FIFO_OIM Transmit FIFO Overflow Interrupt Mask 0x0 (MASKED): Disable txo_intr interrupt 0x1 (UNMASKED): Enable txo_intr interrupt 1 1 read-write INT_STAT INT_STAT Interrupt Status Register 0x30 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CIS Multi-Master Contention Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active after be enabled 0x1 (ACTIVE): mst_intr interrupt is full after be enabled 5 1 read-only RX_FIFO_FIS Receive FIFO Full Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxf_intr interrupt is full after be enabled 4 1 read-only RX_FIFO_OIS Receive FIFO Overflow Interrupt Status 0x0 (INACTIVE): rxo_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxo_intr interrupt is active after be enabled 3 1 read-only RX_FIFO_UIS Receive FIFO Underflow Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active after be enabled 0x1 (ACTIVE): rxu_intr interrupt is active after be enabled 2 1 read-only TX_FIFO_EIS Transmit FIFO Empty Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active after be enabled 0x1 (ACTIVE): txe_intr interrupt is active after be enabled 0 1 read-only TX_FIFO_OIS Transmit FIFO Overflow Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active after be enabled 0x1 (ACTIVE): txo_intr interrupt is active after be enabled 1 1 read-only MULTI_M_IC MULTI_M_IC Multi-Master Interrupt Clear Register 0x44 32 read-only n 0x0 0xFFFFFFFF MULTI_M_IC Clear Multi-Master Contention Interrupt. This register reflects the status of the interrupt. A read from this register clears the mst_intr interrupt writing has no effect. 0 1 read-only MW_CTRL MW_CTRL Microwire Control Register 0xC 32 read-write n 0x0 0xFFFFFFFF MW_DIR_DW Microwire Control. Defines the direction of the data word when the Microwire serial protocol is used. 0x0 (RECEIVE): SPI receives data 0x1 (TRANSMIT): SPI transmits data 1 1 read-write MW_HSG Microwire Handshaking. Used to enable and disable the busy/ready handshaking interface for the Microwire protocol. When enabled, the SPI checks for a ready status from the target slave, after the transfer of the last data/control bit, before clearing the SSI_BUSY status in the STAT register. 0x0 (DISABLE): Handshaking interface is disabled 0x1 (ENABLED): Handshaking interface is enabled Note: When the SPI is configured as a slave, this register serves no purpose. 2 1 read-write MW_XFE_MODE Microwire Transfer Mode. Defines whether the Microwire transfer is sequential or non-sequential. When sequential mode is used, only one control word is needed to transmit or receive a block of data words. When non-sequential mode is used, there must be a control word for each data word that is transmitted or received. 0x0 (NON_SEQUENTIAL): Non-Sequential Microwire Transfer 0x1 (SEQUENTIAL): Sequential Microwire Transfer 0 1 read-write RAW_INT_STAT RAW_INT_STAT Raw Interrupt Status Register 0x34 32 read-only n 0x0 0xFFFFFFFF MULTI_M_CRIS Multi-Master Contention Raw Interrupt Status 0x0 (INACTIVE): mst_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): mst_intr interrupt is full prior to be enabled 5 1 read-only RX_FIFO_FRIS Receive FIFO Full Raw Interrupt Status 0x0 (INACTIVE): rxf_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxf_intr interrupt is active prior to be enabled 4 1 read-only RX_FIFO_ORIS Receive FIFO Overflow Raw Interrupt Status 0x1 (ACTIVE): rxo_intr interrupt is not active prior to be enabled 0x0 (INACTIVE): rxo_intr interrupt is active prior be enabled 3 1 read-only RX_FIFO_URIS Receive FIFO Underflow Raw Interrupt Status 0x0 (INACTIVE): rxu_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): rxu_intr interrupt is active prior to be enabled 2 1 read-only TX_FIFO_ERIS Transmit FIFO Empty Raw Interrupt Status 0x0 (INACTIVE): txe_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txe_intr interrupt is active prior be enabled 0 1 read-only TX_FIFO_ORIS Transmit FIFO Overflow Raw Interrupt Status 0x0 (INACTIVE): txo_intr interrupt is not active prior to be enabled 0x1 (ACTIVE): txo_intr interrupt is active prior be enabled 1 1 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL Receive FIFO Level Register 0x24 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_LEVEL Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. 0 4 read-only RX_FIFO_OIC RX_FIFO_OIC Receive FIFO Overflow Interrupt Clear Register 0x3C 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_OIC Clear Receive FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxo_intr interrupt writing has no effect. 0 1 read-only RX_FIFO_TL RX_FIFO_TL Receive FIFO Threshold Level 0x1C 32 read-write n 0x0 0xFFFFFFFF RX_FIFO_THD Receive FIFO Threshold. Controls the level of entries (or above) at which the receive FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256. This register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than the depth of the FIFO, this field is not written and retains its current value.When the number of receive FIFO entries is greater than or equal to this value + 1, the receive FIFO full interrupt is triggered. 0 3 read-write RX_FIFO_UIC RX_FIFO_UIC Receive FIFO Underflow Interrupt Clear Register 0x40 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_UIC Clear Receive FIFO Underflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the rxu_intr interrupt writing has no effect. 0 1 read-only SSI_EN SSI_EN SSI Enable Register 0x8 32 read-write n 0x0 0xFFFFFFFF SSI_EN SSI Enable. Enables and disables all SPI operations. When disabled, all serial transfers are halted immediately. Transmit and receive FIFO buffers are cleared when the device is disabled. 0x0 (DISABLE): Disables Serial Transfer 0x1 (ENABLED): Enables Serial Transfer 0 1 read-write STAT STAT Status Register 0x28 32 read-only n 0x6 0xFFFFFFFF DATA_COLN_ERR Data Collision Error. This bit will be set if MISO input is asserted by other master, when the SPI master is in the middle of the transfer. This informs the processor that the last data transfer was halted before completion. This bit is cleared when read. Note: When the SPI is configured as a slave, this register serves no purpose. 6 1 read-only RX_FIFO_FULL Receive FIFO Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0x0 (NOT_FULL): Receive FIFO is not full 0x1 (FULL): Receive FIFO is full 4 1 read-only RX_FIFO_NE Receive FIFO Not Empty. Set when the receive FIFO contains one or more entries and is cleared when the receive FIFO is empty. This bit can be polled by software to completely empty the receive FIFO. 0x0 (EMPTY): Receive FIFO is empty 0x1 (NOT_EMPTY): Receive FIFO is not empty 3 1 read-only SSI_BUSY SSI Busy Flag. When set, indicates that a serial transfer is in progress when cleared indicates that the SPI is idle or disabled. 0x0 (INACTIVE): SPI is idle or disabled 0x1 (ACTIVE): SPI is actively transferring data 0 1 read-only TX_ERR Transmission Error. Set if the transmit FIFO is empty when a transfer is started. Data from the previous transmission is resent on the txd line. This bit is cleared when read. 0x0 (NO_ERROR): No Error 0x1 (TX_ERROR): Transmission Error Note: When the SPI is configured as a master, this register serves no purpose. 5 1 read-only TX_FIFO_EMPTY Transmit FIFO Empty. When the transmit FIFO is completely empty, this bit is set. When the transmit FIFO contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0x0 (NOT_EMPTY): Transmit FIFO is not empty 0x1 (EMPTY): Transmit FIFO is empty 2 1 read-only TX_FIFO_NF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0x0 (FULL): Transmit FIFO is full 0x1 (NOT_FULL): Transmit FIFO is not Full 1 1 read-only S_EN S_EN Slave Enable Register 0x10 32 read-write n 0x0 0xFFFFFFFF S_SEL_EN Slave Select Enable. Each bit in this register corresponds to a slave select line (CSn) from the SPI master. 0x0 (NOT_SELECTED): No slave selected 0x1 (SELECTED): Slave is selected Note: When the SPI is configured as a slave, this register serves no purpose. 0 2 read-write TX_FIFO_LEVEL TX_FIFO_LEVEL Transmit FIFO Level Register 0x20 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_LEVEL Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. 0 4 read-only TX_FIFO_OIC TX_FIFO_OIC Transmit FIFO Overflow Interrupt Clear Register 0x38 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_OIC Clear Transmit FIFO Overflow Interrupt. This register reflects the status of the interrupt. A read from this register clears the txo_intr interrupt writing has no effect. 0 1 read-only TX_FIFO_TL TX_FIFO_TL Transmit FIFO Threshold Level Register 0x18 32 read-write n 0x0 0xFFFFFFFF TX_FIFO_THD Transmit FIFO Threshold. Controls the level of entries (or below) at which the transmit FIFO controller triggers an interrupt. The FIFO depth is configurable in the range 2-256 this register is sized to the number of address bits needed to access the FIFO. If you attempt to set this value greater than or equal to the depth of the FIFO, this field is not written and retains its current value.When the number of transmit FIFO entries is less than or equal to this value, the transmit FIFO empty interrupt is triggered. 0 3 read-write TIMER0 Analog-to-Digital Converter TIMER 0xA0000000 0x0 0x10 registers n TIMER0 Timer0 interrupts 8 TIMER1 Timer1 interrupts 9 DUAL_TIMER DUAL_TIMER interrupts 10 SLEEP_TIMER Sleep Timer Interrupt 26 CTRL CTRL Timer Control Register 0x0 32 read-write n 0x0 0xFFFFFFFF EN Enable the timer 0 1 read-write INT_EN Timer interrupt enable 3 1 read-write RSVD Reserved bits 1 2 read-only INT_STAT INT_STAT Timer Interrupt Status Register 0xC 32 read-write n 0x0 0xFFFFFFFF STAT Timer interrupt. Write one to clear. 0 1 read-write RELOAD RELOAD Timer Reload Register 0x8 32 read-write n 0x0 0xFFFFFFFF COUNT Reload value. 0 32 read-write VAL VAL Timer Value Register 0x4 32 read-write n 0x0 0xFFFFFFFF COUNT Current value. 0 32 read-write TIMER1 Analog-to-Digital Converter TIMER 0xA0001000 0x0 0x10 registers n TIMER0 Timer0 interrupts 8 TIMER1 Timer1 interrupts 9 DUAL_TIMER DUAL_TIMER interrupts 10 SLEEP_TIMER Sleep Timer Interrupt 26 CTRL CTRL Timer Control Register 0x0 32 read-write n 0x0 0xFFFFFFFF EN Enable the timer 0 1 read-write INT_EN Timer interrupt enable 3 1 read-write RSVD Reserved bits 1 2 read-only INT_STAT INT_STAT Timer Interrupt Status Register 0xC 32 read-write n 0x0 0xFFFFFFFF STAT Timer interrupt. Write one to clear. 0 1 read-write RELOAD RELOAD Timer Reload Register 0x8 32 read-write n 0x0 0xFFFFFFFF COUNT Reload value. 0 32 read-write VAL VAL Timer Value Register 0x4 32 read-write n 0x0 0xFFFFFFFF COUNT Current value. 0 32 read-write UART0 UART UART 0xA000C600 0x0 0x70 registers n DIV_LATCH_FRACTION DIV_LATCH_FRACTION UART DMA Software Acknowledge Register 0xC0 32 read-write n 0x0 0xFFFFFFFF DIV_LATCH_FRACTION Fractional part of divisor 0 4 read-write DIV_LATCH_HIGH DIV_LATCH_HIGH UART Divisor Latch High Register 0x4 32 read-write n 0x0 0xFFFFFFFF DLH Divisor Latch (high). 0 8 read-write DIV_LATCH_LOW DIV_LATCH_LOW UART Divisor Latch (Low)Register RX_BUF 0x0 32 read-write n 0x0 0xFFFFFFFF DIV_LATCH_LOW Divisor Latch (Low). 0 8 read-write DMA_SW_ACK DMA_SW_ACK UART DMA Software Acknowledge Register 0xA8 32 write-only n 0x0 0xFFFFFFFF DMA_SW_ACK DMA Software Acknowledge. 0 1 write-only FIFO_ACCESS FIFO_ACCESS UART FIFO Access Register 0x70 32 read-only n 0x0 0xFFFFFFFF FIFO_ACCESS_EN This register is use to enable a FIFO access mode 0 1 read-only FIFO_CTRL FIFO_CTRL UART FIFO Control Register 0x8 32 write-only n 0x0 0xFFFFFFFF DMA_MODE DMA Mode 3 1 write-only FIFO_EN FIFO Enable 0 1 write-only RX_FIFO_RST RCVR FIFO Reset 1 1 write-only RX_FIFO_TRG RCVR Trigger 6 2 write-only TX_EMPTY_TRG TX Empty Trigger 4 2 write-only TX_FIFO_RST XMIT FIFO Reset 2 1 write-only HALT_TX HALT_TX UART Halt TX Register 0xA4 32 read-write n 0x0 0xFFFFFFFF HALT_TX Halt TX 0 1 read-write INT_EN INT_EN UART Interrupt Enable Register DIV_LATCH_HIGH 0x4 32 read-write n 0x0 0xFFFFFFFF INT_GTHEE This is used to enable/disable the generation of TX_HDG_EMPTY Interrupt 7 1 read-write INT_MSE Enable Modem Status Interrupt. 3 1 read-write INT_RX_EN Enable Received Data Available Interrupt. 0 1 read-write INT_RX_LSE Enable Receiver Line Status Interrupt. 2 1 read-write INT_TX_HE Enable Transmit Holding Register Empty Interrupt 1 1 read-write INT_ID INT_ID UART Interrupt Identification Register FIFO_CTRL 0x8 32 read-only n 0x1 0xFFFFFFFF FIFO_EN This is used to indicate whether the FIFOs are enabled or disabled. 6 2 read-only INT_PRIOR This indicates the highest priority pending interrupt 0 4 read-only LINE_CTRL LINE_CTRL UART Line Control Register 0xC 32 read-write n 0x0 0xFFFFFFFF BREAK_CTRL_BIT Break Control Bit. 6 1 read-write DATA_LEN_SEL Data Length Select 0 2 read-write DIV_LATCH_AB Divisor Latch Access Bit 7 1 read-write EVEN_PARITY_SEL Even Parity Select. 4 1 read-write PARITY_EN Parity Enable. 3 1 read-write STICK_PARITY Stick Parity. 5 1 read-write STOP_BITS Number of stop bits 2 1 read-write LINE_STAT LINE_STAT UART Line Status Register 0x14 32 read-only n 0x60 0xFFFFFFFF BREAK_INT Break Interrupt bit 4 1 read-only DATA_READY Data Ready bit. 0 1 read-only FRAMING_ERR Framing Error bit. 3 1 read-only OVER_ERR Overrun error bit. 1 1 read-only PARITY_ERR Parity Error bit. 2 1 read-only RX_FIFO_ERR Receiver FIFO Error bit. 7 1 read-only TX_EMPTY Transmitter Empty bit 6 1 read-only TX_HDG_EMPTY Transmit Holding Register Empty bit 5 1 read-only MODEM_CTRL MODEM_CTRL UART Modem Control Register 0x10 32 read-write n 0x0 0xFFFFFFFF LOOP_BACK LoopBack Bit 4 1 read-write REQ_TO_SEND Request to Send 1 1 read-write MODEM_STAT MODEM_STAT UART Modem Status Register 0x18 32 read-only n 0x0 0xFFFFFFFF CLR_SEND Clear to Send 4 1 read-only DELTA_CLR_SEND Delta Clear to Send. 0 1 read-only RX_BUF RX_BUF UART Receive Buffer Register 0x0 32 read-only n 0x0 0xFFFFFFFF RX_BUF Receive Buffer Register. 0 8 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL UART Receive FIFO Level Register 0x84 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_LEVEL Receive FIFO Level. 0 8 read-only SCRATCHPAD SCRATCHPAD UART Scratchpad Register 0x1C 32 read-write n 0x0 0xFFFFFFFF SCR This register is for programmers to use as a temporary storage space 0 8 read-write SHADOW_BREAK_CTRL SHADOW_BREAK_CTRL UART Shadow Break Control Register 0x90 32 read-write n 0x0 0xFFFFFFFF SHADOW_BREAK_CB Shadow Break Control Bit. 0 1 read-write SHADOW_DMA_MODE SHADOW_DMA_MODE UART Shadow DMA Mode Register 0x94 32 read-write n 0x0 0xFFFFFFFF SHADOW_DMA_MODE Shadow DMA Mode. 0 1 read-write SHADOW_FIFO_EN SHADOW_FIFO_EN UART Shadow FIFO Enable Register 0x98 32 read-write n 0x0 0xFFFFFFFF SHADOW_FIFO_EN Shadow FIFO Enable. 0 1 read-write SHADOW_REQ_SEND SHADOW_REQ_SEND UART Shadow Request to Send Register 0x8C 32 read-write n 0x0 0xFFFFFFFF SHADOW_REQUEST_SEND Shadow Request to Send. 0 1 read-write SHADOW_RX_BUFx SHADOW_RX_BUFx UART Shadow Receive Buffer Register 0x30 32 read-only n 0x0 0xFFFFFFFF SHADOW_RX_BUFn Shadow Receive Buffer Register n. 0 8 read-only SHADOW_RX_TRG SHADOW_RX_TRG UART Shadow RCVR Trigger Register 0x9C 32 read-write n 0x0 0xFFFFFFFF SHADOW_RX_TRG Shadow RCVR Trigger. 0 2 read-write SHADOW_TX_HDGx SHADOW_TX_HDGx UART Shadow Transmit Holding Register SHADOW_RX_BUFx 0x30 32 write-only n 0x0 0xFFFFFFFF SHADOW_TX_HDGn Shadow Transmit Holding Register n 0 8 write-only SHADOW_TX_TRG SHADOW_TX_TRG UART Shadow TX Empty Trigger Register 0xA0 32 read-write n 0x0 0xFFFFFFFF SHADOW_TX_TRG Shadow TX Empty Trigger. 0 2 read-write STAT STAT UART Status Register 0x7C 32 read-only n 0x6 0xFFFFFFFF RX_FIFO_EMPTY Receive FIFO Not Empty. 3 1 read-only RX_FIFO_FULL Receive FIFO Full. 4 1 read-only TX_FIFO_EMPTY Transmit FIFO Empty. 2 1 read-only TX_FIFO_FULL Transmit FIFO Not Full 1 1 read-only SW_RST SW_RST UART Software Reset Register 0x88 32 write-only n 0x0 0xFFFFFFFF RX_FIFO_RST RCVR FIFO Reset. 1 1 write-only TX_FIFO_RST XMIT FIFO Reset. 2 1 write-only UART_RST UART Reset 0 1 write-only TX_FIFO_LEVEL TX_FIFO_LEVEL UART Transmit FIFO Level Register 0x80 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_LEVEL Transmit FIFO Level. 0 8 read-only TX_HDG TX_HDG UART Transmit Holding Register DIV_LATCH_LOW 0x0 32 write-only n 0x0 0xFFFFFFFF TX_HDG Transmit Holding Register. 0 8 write-only UART1 UART UART 0xA000C700 0x0 0x70 registers n DIV_LATCH_FRACTION DIV_LATCH_FRACTION UART DMA Software Acknowledge Register 0xC0 32 read-write n 0x0 0xFFFFFFFF DIV_LATCH_FRACTION Fractional part of divisor 0 4 read-write DIV_LATCH_HIGH DIV_LATCH_HIGH UART Divisor Latch High Register 0x4 32 read-write n 0x0 0xFFFFFFFF DLH Divisor Latch (high). 0 8 read-write DIV_LATCH_LOW DIV_LATCH_LOW UART Divisor Latch (Low)Register RX_BUF 0x0 32 read-write n 0x0 0xFFFFFFFF DIV_LATCH_LOW Divisor Latch (Low). 0 8 read-write DMA_SW_ACK DMA_SW_ACK UART DMA Software Acknowledge Register 0xA8 32 write-only n 0x0 0xFFFFFFFF DMA_SW_ACK DMA Software Acknowledge. 0 1 write-only FIFO_ACCESS FIFO_ACCESS UART FIFO Access Register 0x70 32 read-only n 0x0 0xFFFFFFFF FIFO_ACCESS_EN This register is use to enable a FIFO access mode 0 1 read-only FIFO_CTRL FIFO_CTRL UART FIFO Control Register 0x8 32 write-only n 0x0 0xFFFFFFFF DMA_MODE DMA Mode 3 1 write-only FIFO_EN FIFO Enable 0 1 write-only RX_FIFO_RST RCVR FIFO Reset 1 1 write-only RX_FIFO_TRG RCVR Trigger 6 2 write-only TX_EMPTY_TRG TX Empty Trigger 4 2 write-only TX_FIFO_RST XMIT FIFO Reset 2 1 write-only HALT_TX HALT_TX UART Halt TX Register 0xA4 32 read-write n 0x0 0xFFFFFFFF HALT_TX Halt TX 0 1 read-write INT_EN INT_EN UART Interrupt Enable Register DIV_LATCH_HIGH 0x4 32 read-write n 0x0 0xFFFFFFFF INT_GTHEE This is used to enable/disable the generation of TX_HDG_EMPTY Interrupt 7 1 read-write INT_MSE Enable Modem Status Interrupt. 3 1 read-write INT_RX_EN Enable Received Data Available Interrupt. 0 1 read-write INT_RX_LSE Enable Receiver Line Status Interrupt. 2 1 read-write INT_TX_HE Enable Transmit Holding Register Empty Interrupt 1 1 read-write INT_ID INT_ID UART Interrupt Identification Register FIFO_CTRL 0x8 32 read-only n 0x1 0xFFFFFFFF FIFO_EN This is used to indicate whether the FIFOs are enabled or disabled. 6 2 read-only INT_PRIOR This indicates the highest priority pending interrupt 0 4 read-only LINE_CTRL LINE_CTRL UART Line Control Register 0xC 32 read-write n 0x0 0xFFFFFFFF BREAK_CTRL_BIT Break Control Bit. 6 1 read-write DATA_LEN_SEL Data Length Select 0 2 read-write DIV_LATCH_AB Divisor Latch Access Bit 7 1 read-write EVEN_PARITY_SEL Even Parity Select. 4 1 read-write PARITY_EN Parity Enable. 3 1 read-write STICK_PARITY Stick Parity. 5 1 read-write STOP_BITS Number of stop bits 2 1 read-write LINE_STAT LINE_STAT UART Line Status Register 0x14 32 read-only n 0x60 0xFFFFFFFF BREAK_INT Break Interrupt bit 4 1 read-only DATA_READY Data Ready bit. 0 1 read-only FRAMING_ERR Framing Error bit. 3 1 read-only OVER_ERR Overrun error bit. 1 1 read-only PARITY_ERR Parity Error bit. 2 1 read-only RX_FIFO_ERR Receiver FIFO Error bit. 7 1 read-only TX_EMPTY Transmitter Empty bit 6 1 read-only TX_HDG_EMPTY Transmit Holding Register Empty bit 5 1 read-only MODEM_CTRL MODEM_CTRL UART Modem Control Register 0x10 32 read-write n 0x0 0xFFFFFFFF LOOP_BACK LoopBack Bit 4 1 read-write REQ_TO_SEND Request to Send 1 1 read-write MODEM_STAT MODEM_STAT UART Modem Status Register 0x18 32 read-only n 0x0 0xFFFFFFFF CLR_SEND Clear to Send 4 1 read-only DELTA_CLR_SEND Delta Clear to Send. 0 1 read-only RX_BUF RX_BUF UART Receive Buffer Register 0x0 32 read-only n 0x0 0xFFFFFFFF RX_BUF Receive Buffer Register. 0 8 read-only RX_FIFO_LEVEL RX_FIFO_LEVEL UART Receive FIFO Level Register 0x84 32 read-only n 0x0 0xFFFFFFFF RX_FIFO_LEVEL Receive FIFO Level. 0 8 read-only SCRATCHPAD SCRATCHPAD UART Scratchpad Register 0x1C 32 read-write n 0x0 0xFFFFFFFF SCR This register is for programmers to use as a temporary storage space 0 8 read-write SHADOW_BREAK_CTRL SHADOW_BREAK_CTRL UART Shadow Break Control Register 0x90 32 read-write n 0x0 0xFFFFFFFF SHADOW_BREAK_CB Shadow Break Control Bit. 0 1 read-write SHADOW_DMA_MODE SHADOW_DMA_MODE UART Shadow DMA Mode Register 0x94 32 read-write n 0x0 0xFFFFFFFF SHADOW_DMA_MODE Shadow DMA Mode. 0 1 read-write SHADOW_FIFO_EN SHADOW_FIFO_EN UART Shadow FIFO Enable Register 0x98 32 read-write n 0x0 0xFFFFFFFF SHADOW_FIFO_EN Shadow FIFO Enable. 0 1 read-write SHADOW_REQ_SEND SHADOW_REQ_SEND UART Shadow Request to Send Register 0x8C 32 read-write n 0x0 0xFFFFFFFF SHADOW_REQUEST_SEND Shadow Request to Send. 0 1 read-write SHADOW_RX_BUFx SHADOW_RX_BUFx UART Shadow Receive Buffer Register 0x30 32 read-only n 0x0 0xFFFFFFFF SHADOW_RX_BUFn Shadow Receive Buffer Register n. 0 8 read-only SHADOW_RX_TRG SHADOW_RX_TRG UART Shadow RCVR Trigger Register 0x9C 32 read-write n 0x0 0xFFFFFFFF SHADOW_RX_TRG Shadow RCVR Trigger. 0 2 read-write SHADOW_TX_HDGx SHADOW_TX_HDGx UART Shadow Transmit Holding Register SHADOW_RX_BUFx 0x30 32 write-only n 0x0 0xFFFFFFFF SHADOW_TX_HDGn Shadow Transmit Holding Register n 0 8 write-only SHADOW_TX_TRG SHADOW_TX_TRG UART Shadow TX Empty Trigger Register 0xA0 32 read-write n 0x0 0xFFFFFFFF SHADOW_TX_TRG Shadow TX Empty Trigger. 0 2 read-write STAT STAT UART Status Register 0x7C 32 read-only n 0x6 0xFFFFFFFF RX_FIFO_EMPTY Receive FIFO Not Empty. 3 1 read-only RX_FIFO_FULL Receive FIFO Full. 4 1 read-only TX_FIFO_EMPTY Transmit FIFO Empty. 2 1 read-only TX_FIFO_FULL Transmit FIFO Not Full 1 1 read-only SW_RST SW_RST UART Software Reset Register 0x88 32 write-only n 0x0 0xFFFFFFFF RX_FIFO_RST RCVR FIFO Reset. 1 1 write-only TX_FIFO_RST XMIT FIFO Reset. 2 1 write-only UART_RST UART Reset 0 1 write-only TX_FIFO_LEVEL TX_FIFO_LEVEL UART Transmit FIFO Level Register 0x80 32 read-only n 0x0 0xFFFFFFFF TX_FIFO_LEVEL Transmit FIFO Level. 0 8 read-only TX_HDG TX_HDG UART Transmit Holding Register DIV_LATCH_LOW 0x0 32 write-only n 0x0 0xFFFFFFFF TX_HDG Transmit Holding Register. 0 8 write-only WDT System Watchdog WDT 0xA0008000 0x0 0x1C registers n WDT Watchdog interrupt 0 AON_WDT AON_WDT interrupt 28 CTRL CTRL System Watchdog Control Register 0x8 32 read-write n 0x0 0xFFFFFFFF INT_EN Enable the interrupt event. 0 1 read-write RST_EN Enable watchdog reset output 1 1 read-write INT_CLR INT_CLR System Watchdog Clear Interrupt Register 0xC 32 write-only n 0x0 0xFFFFFFFF CLR Clear the watchdog interrupt event. 0 32 write-only INT_RAW_STAT INT_RAW_STAT System Watchdog Raw Interrupt Status Register 0x10 32 read-only n 0x0 0xFFFFFFFF RAW_STAT Raw interrupt status from the counter 0 1 read-only INT_STAT INT_STAT System Watchdog Interrupt Status Register 0x14 32 read-only n 0x0 0xFFFFFFFF RO Reserved bits 1 31 read-only STAT Enable interrupt status from the counter. 0 1 read-only LOAD LOAD System Watchdog Load Register 0x0 32 read-write n 0xFFFFFFFF 0xFFFFFFFF COUNT Reload value. A write to this register sets the current value. 0 32 read-write LOCK LOCK System Watchdog Lock Register 0xC00 32 read-write n 0x0 0xFFFFFFFF WR_EN Enable write access to all other registers by writing 0x1ACCE551. Disable write access by writing any other value. 1 31 read-write WR_EN_STAT Register write enable status 0 1 read-write VAL VAL System Watchdog Value Register 0x4 32 read-only n 0xFFFFFFFF 0xFFFFFFFF COUNT Current value of the watchdog counter 0 32 read-only XQSPI XIP_Cache Register XQSPI 0xA000D000 0x0 0x90 registers n CACHE_CRTL1 CACHE_CRTL1 XQSPI cache Control 1 Register 0x4 32 read-write n 0x110 0xFFFFFFFF BIAS_TRIM Bias Trim signal 4 4 read-write BUS_MUX_EN Debug bus Mux Enable/Disable. 0x0: enable 0x1: disable 11 1 read-write BUS_MUX_SRC Select 1 of 8 debugbus configurations Debug bus is 8-bit bus. 8 3 read-write RD_MARGIN Read margin 0 1 read-write RW_MARGIN_CTRL Read write margin control 2 2 read-write WR_MARGIN Write margin 1 1 read-write CACHE_CTRL0 CACHE_CTRL0 XQSPI cache Control 0 Register 0x0 32 read-write n 0x11 0xFFFFFFFF CACHE_EN 0x0: Cache_enabled 0x1: Cache_disabled 0 1 read-write FIFO_CLR Clear LFU FIFO. 0x0: FIFO in Normal Mode 0x1: FIFO in Clear Mode 3 1 read-write HIT_MISS_CLR Clear Hit/Miss Counters. 0x0: Hit/Miss Counters in Normal Mode 0x1: Hit/Miss Counters in Clear Mode 4 1 read-write TAG_FLUSH_EN Enable tag memory Flush Out of reset. Tag memory will get flushed unless tag_ret is enabled (Tag_ret signal lives in cpu register space). 0x0: Tag memory Flush is disabled 0x1: Tag memory Flush is enabled. 1 1 read-write CACHE_HIT_COUNT CACHE_HIT_COUNT XQSPI cache Hits Counter Register 0x8 32 read-only n 0x0 0xFFFFFFFF HIT_COUNT Hits Counter 0 32 read-only CACHE_MISS_COUNT CACHE_MISS_COUNT XQSPI cache Miss Counter Register 0xC 32 read-only n 0x0 0xFFFFFFFF MISS_COUNT Cache miss counter 0 32 read-only CACHE_STAT CACHE_STAT XQSPI cache Status Register 0x10 32 read-only n 0x0 0xFFFFFFFF STAT Tag_flush_busy status. 0x0: Idle 0x1: Busy 0 1 read-only XIP_CTRL0 XIP_CTRL0 XIP Control 0 Register 0xC00 32 read-write n 0x3 0xFFFFFFFF XIP_CFG_CMD XIP configuration read command. 0x03: Read 0x0B: Fast Read 0x3B: Fast Dual Out Read 0x6B: Fast Quad Out Read 0xBB: Fast Dual I/O Read 0xEB: Fast Quad I/O Read All others reserved 0 8 read-write XIP_CTRL1 XIP_CTRL1 XIP Control 1 Register 0xC04 32 read-write n 0x102 0xFFFFFFFF XIP_CFG_ADDR4 XIP configuration 4-Byte Address mode. 0x0: XIP issues 3-Byte Address 0x1: XIP issues 4-Byte SPI Address 7 1 read-write XIP_CFG_CPHA XIP configuration CPHA mode. 0x0: CPHA mode 0 0x1: CPHA mode 1 5 1 read-write XIP_CFG_CPOL XIP configuration CPOL mode. 0x0: CPOL mode 0 0x1: CPOL mode 1 6 1 read-write XIP_CFG_HPME XIP configuration High Performance Mode. 0x0: HP mode disable 0x1: HP mode enable 0 1 read-write XIP_CFG_LE32 XIP configuration 32-bit Little-Endian Arrangement of Read Data. 0x0: Read Data is Big Endian 0x1: Read Data is 32-bit Little Endian 8 1 read-write XIP_CFG_SS XIP configuration slave select . 0x1: slave select 0 0x2: slave select 1 0x4: slave select 2 0x8: slave select 3 All other reserved 1 4 read-write XIP_CTRL2 XIP_CTRL2 XIP Control 2 Register 0xC08 32 read-write n 0xA3 0xFFFFFFFF XIP_CFG_DC Used to configure the number of dummy cycles used by the core for Fast Read, Fast Read Dual Output, Fast Read Quad Ouput. Fast Read Dual I/O: 4 x value + 4 Fast Read Quad I/O: 2 x value + 2 Fast Read Quad Output: 8 x value 8 4 read-write XIP_CFG_HPED Configure the number of dummy cycles necessary to terminate high performance mode. This is used by the core when existing XIP mode after performing high-performance transfers to ensure that FLASH device is not still in HP mode. For Dual mode, this value is multiplied by 4 to get the actual number of dummy cycles. For Quad mode, this value is multiplied by 2 to get the actual number of dummy cycle 12 2 read-write XIP_CFG_HPM XIP Mode Command Byte. This byte is transferred from core to QSPI FLASH memory. It is the value specified by different QSPI FLASH memory vendor to enter into its status register to activate HP mode in dual I/O and Quad I/O access 0 8 read-write XIP_CTRL3 XIP_CTRL3 XIP Control 3 Register 0xC0C 32 read-write n 0x0 0xFFFFFFFF XIP_EN_REQ XIP Enable Request. 0x0: Disable XIP mode 0x1: Enable XIP mode When set to 1’b1, do not access QSPI address space. Wait until XIP_EN_OUT is 1’b1. When set to 1’b0, do not access QSPI address space. Wait until XIP_EN_OUT is 1’b0. 0 1 read-write XIP_SOFT_RST XIP_SOFT_RST XIP Soft Reset Register 0xC28 32 read-write n 0x1 0xFFFFFFFF SOFT_RST Soft reset IP by writing 1’b0, internal logic generates active low reset for one HCLK cycle 0 1 read-write XIP_STAT XIP_STAT XIP Status Register 0xC10 32 read-only n 0x0 0xFFFFFFFF XIP_EN_OUT XIP Enable Status. 0x0: XIP mode is disabled 0x1: XIP mode is enabled 0 1 read-only