Add I2S and SLC register headers
This commit is contained in:
parent
4b5349c236
commit
1f1bb4d190
2 changed files with 446 additions and 0 deletions
135
core/include/esp/i2s_regs.h
Normal file
135
core/include/esp/i2s_regs.h
Normal file
|
@ -0,0 +1,135 @@
|
|||
/* esp/i2s_regs.h
|
||||
*
|
||||
* ESP8266 I2S register definitions
|
||||
*
|
||||
* Not compatible with ESP SDK register access code.
|
||||
*/
|
||||
|
||||
#ifndef _ESP_I2S_REGS_H
|
||||
#define _ESP_I2S_REGS_H
|
||||
|
||||
#include "esp/types.h"
|
||||
#include "common_macros.h"
|
||||
|
||||
#define I2S_BASE 0x60000e00
|
||||
#define I2S (*(struct I2S_REGS *)I2S_BASE)
|
||||
|
||||
struct I2S_REGS {
|
||||
uint32_t volatile TXFIFO; // 0x00
|
||||
uint32_t volatile RXFIFO; // 0x04
|
||||
uint32_t volatile CONF; // 0x08
|
||||
uint32_t volatile INT_RAW; // 0x0c
|
||||
uint32_t volatile INT_STATUS; // 0x10
|
||||
uint32_t volatile INT_ENABLE; // 0x14
|
||||
uint32_t volatile INT_CLEAR; // 0x18
|
||||
uint32_t volatile TIMING; // 0x1c
|
||||
uint32_t volatile FIFO_CONF; // 0x20
|
||||
uint32_t volatile RX_EOF_NUM; // 0x24
|
||||
uint32_t volatile CONF_SINGLE_DATA; // 0x28
|
||||
uint32_t volatile CONF_CHANNELS; // 0x2c
|
||||
};
|
||||
|
||||
/* Details for CONF register */
|
||||
|
||||
#define I2S_CONF_BCK_DIV_M 0x0000003f
|
||||
#define I2S_CONF_BCK_DIV_S 22
|
||||
#define I2S_CONF_CLKM_DIV_M 0x0000003f
|
||||
#define I2S_CONF_CLKM_DIV_S 16
|
||||
#define I2S_CONF_BITS_MOD_M 0x0000000f
|
||||
#define I2S_CONF_BITS_MOD_S 12
|
||||
#define I2S_CONF_RX_MSB_SHIFT BIT(11)
|
||||
#define I2S_CONF_TX_MSB_SHIFT BIT(10)
|
||||
#define I2S_CONF_RX_START BIT(9)
|
||||
#define I2S_CONF_TX_START BIT(8)
|
||||
#define I2S_CONF_MSB_RIGHT BIT(7)
|
||||
#define I2S_CONF_RIGHT_FIRST BIT(6)
|
||||
#define I2S_CONF_RX_SLAVE_MOD BIT(5)
|
||||
#define I2S_CONF_TX_SLAVE_MOD BIT(4)
|
||||
#define I2S_CONF_RX_FIFO_RESET BIT(3)
|
||||
#define I2S_CONF_TX_FIFO_RESET BIT(2)
|
||||
#define I2S_CONF_RX_RESET BIT(1)
|
||||
#define I2S_CONF_TX_RESET BIT(0)
|
||||
#define I2S_CONF_RESET_MASK 0xf
|
||||
|
||||
/* Details for INT_RAW register */
|
||||
|
||||
#define I2S_INT_RAW_TX_REMPTY BIT(5)
|
||||
#define I2S_INT_RAW_TX_WFULL BIT(4)
|
||||
#define I2S_INT_RAW_RX_REMPTY BIT(3)
|
||||
#define I2S_INT_RAW_RX_WFULL BIT(2)
|
||||
#define I2S_INT_RAW_TX_PUT_DATA BIT(1)
|
||||
#define I2S_INT_RAW_RX_TAKE_DATA BIT(0)
|
||||
|
||||
/* Details for INT_STATUS register */
|
||||
|
||||
#define I2S_INT_STATUS_TX_REMPTY BIT(5)
|
||||
#define I2S_INT_STATUS_TX_WFULL BIT(4)
|
||||
#define I2S_INT_STATUS_RX_REMPTY BIT(3)
|
||||
#define I2S_INT_STATUS_RX_WFULL BIT(2)
|
||||
#define I2S_INT_STATUS_TX_PUT_DATA BIT(1)
|
||||
#define I2S_INT_STATUS_RX_TAKE_DATA BIT(0)
|
||||
|
||||
/* Details for INT_ENABLE register */
|
||||
|
||||
#define I2S_INT_ENABLE_TX_REMPTY BIT(5)
|
||||
#define I2S_INT_ENABLE_TX_WFULL BIT(4)
|
||||
#define I2S_INT_ENABLE_RX_REMPTY BIT(3)
|
||||
#define I2S_INT_ENABLE_RX_WFULL BIT(2)
|
||||
#define I2S_INT_ENABLE_TX_PUT_DATA BIT(1)
|
||||
#define I2S_INT_ENABLE_RX_TAKE_DATA BIT(0)
|
||||
|
||||
/* Details for INT_CLEAR register */
|
||||
|
||||
#define I2S_INT_CLEAR_TX_REMPTY BIT(5)
|
||||
#define I2S_INT_CLEAR_TX_WFULL BIT(4)
|
||||
#define I2S_INT_CLEAR_RX_REMPTY BIT(3)
|
||||
#define I2S_INT_CLEAR_RX_WFULL BIT(2)
|
||||
#define I2S_INT_CLEAR_TX_PUT_DATA BIT(1)
|
||||
#define I2S_INT_CLEAR_RX_TAKE_DATA BIT(0)
|
||||
|
||||
/* Details for TIMING register */
|
||||
|
||||
#define I2S_TIMING_TX_BCK_IN_INV BIT(22)
|
||||
#define I2S_TIMING_RX_DSYNC_SW BIT(21)
|
||||
#define I2S_TIMING_TX_DSYNC_SW BIT(20)
|
||||
#define I2S_TIMING_RX_BCK_OUT_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_RX_BCK_OUT_DELAY_S 18
|
||||
#define I2S_TIMING_RX_WS_OUT_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_RX_WS_OUT_DELAY_S 16
|
||||
#define I2S_TIMING_TX_SD_OUT_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_TX_SD_OUT_DELAY_S 14
|
||||
#define I2S_TIMING_TX_WS_OUT_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_TX_WS_OUT_DELAY_S 12
|
||||
#define I2S_TIMING_TX_BCK_OUT_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_TX_BCK_OUT_DELAY_S 10
|
||||
#define I2S_TIMING_RX_SD_IN_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_RX_SD_IN_DELAY_S 8
|
||||
#define I2S_TIMING_RX_WS_IN_DELAY 0x00000003
|
||||
#define I2S_TIMING_RX_WS_IN_DELAY_S 6
|
||||
#define I2S_TIMING_RX_BCK_IN_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_RX_BCK_IN_DELAY_S 4
|
||||
#define I2S_TIMING_TX_WS_IN_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_TX_WS_IN_DELAY_S 2
|
||||
#define I2S_TIMING_TX_BCK_IN_DELAY_M 0x00000003
|
||||
#define I2S_TIMING_TX_BCK_IN_DELAY_S 0
|
||||
|
||||
/* Details for FIFO_CONF register */
|
||||
|
||||
#define I2S_FIFO_CONF_RX_FIFO_MOD_M 0x00000007
|
||||
#define I2S_FIFO_CONF_RX_FIFO_MOD_S 16
|
||||
#define I2S_FIFO_CONF_TX_FIFO_MOD_M 0x00000007
|
||||
#define I2S_FIFO_CONF_TX_FIFO_MOD_S 13
|
||||
#define I2S_FIFO_CONF_DESCRIPTOR_ENABLE BIT(12)
|
||||
#define I2S_FIFO_CONF_TX_DATA_NUM_M 0x0000003F
|
||||
#define I2S_FIFO_CONF_TX_DATA_NUM_S 6
|
||||
#define I2S_FIFO_CONF_RX_DATA_NUM_M 0x0000003F
|
||||
#define I2S_FIFO_CONF_RX_DATA_NUM_S 0
|
||||
|
||||
/* Details for CONF_CHANNEL register */
|
||||
|
||||
#define I2S_CONF_CHANNELS_RX_CHANNEL_MOD_M 0x00000003
|
||||
#define I2S_CONF_CHANNELS_RX_CHANNEL_MOD_S 3
|
||||
#define I2S_CONF_CHANNELS_TX_CHANNEL_MOD_M 0x00000007
|
||||
#define I2S_CONF_CHANNELS_TX_CHANNEL_MOD_S 0
|
||||
|
||||
#endif /* _ESP_I2S_REGS_H */
|
311
core/include/esp/slc_regs.h
Normal file
311
core/include/esp/slc_regs.h
Normal file
|
@ -0,0 +1,311 @@
|
|||
/* esp/slc_regs.h
|
||||
*
|
||||
* ESP8266 SLC register definitions
|
||||
*
|
||||
* Not compatible with ESP SDK register access code.
|
||||
*/
|
||||
|
||||
#ifndef _ESP_SLC_REGS_H
|
||||
#define _ESP_SLC_REGS_H
|
||||
|
||||
#include "esp/types.h"
|
||||
#include "common_macros.h"
|
||||
|
||||
#define SLC_BASE 0x60000b00
|
||||
#define SLC (*(struct SLC_REGS *)SLC_BASE)
|
||||
|
||||
struct SLC_REGS {
|
||||
uint32_t volatile CONF0; // 0x00
|
||||
uint32_t volatile INT_RAW; // 0x04
|
||||
uint32_t volatile INT_STATUS; // 0x08
|
||||
uint32_t volatile INT_ENABLE; // 0x0c
|
||||
uint32_t volatile INT_CLEAR; // 0x10
|
||||
uint32_t volatile RX_STATUS; // 0x14
|
||||
uint32_t volatile RX_FIFO_PUSH; // 0x18
|
||||
uint32_t volatile TX_STATUS; // 0x1c
|
||||
uint32_t volatile TX_FIFO_POP; // 0x20
|
||||
uint32_t volatile RX_LINK; // 0x24
|
||||
uint32_t volatile TX_LINK; // 0x28
|
||||
uint32_t volatile INTVEC_TO_HOST; // 0x2c
|
||||
uint32_t volatile TOKEN0; // 0x30
|
||||
uint32_t volatile TOKEN1; // 0x34
|
||||
uint32_t volatile CONF1; // 0x38
|
||||
uint32_t volatile STATE0; // 0x3c
|
||||
uint32_t volatile STATE1; // 0x40
|
||||
uint32_t volatile BRIDGE_CONF; // 0x44
|
||||
uint32_t volatile RX_EOF_DESCRIPTOR_ADDR; // 0x48
|
||||
uint32_t volatile TX_EOF_DESCRIPTOR_ADDR; // 0x4c
|
||||
uint32_t volatile RX_EOF_BUFFER_DESCRIPTOR_ADDR; // 0x50 - Naming uncertain
|
||||
uint32_t volatile AHB_TEST; // 0x54
|
||||
uint32_t volatile SDIO_STATUS; // 0x58
|
||||
uint32_t volatile RX_DESCRIPTOR_CONF; // 0x5c
|
||||
uint32_t volatile TX_LINK_DESCRIPTOR; // 0x60
|
||||
uint32_t volatile TX_LINK_DESCRIPTOR_BF0; // 0x64
|
||||
uint32_t volatile TX_LINK_DESCRIPTOR_BF1; // 0x68
|
||||
uint32_t volatile RX_LINK_DESCRIPTOR; // 0x6c
|
||||
uint32_t volatile RX_LINK_DESCRIPTOR_BF0; // 0x70
|
||||
uint32_t volatile RX_LINK_DESCRIPTOR_BF1; // 0x74
|
||||
uint32_t volatile DATE; // 0x78
|
||||
uint32_t volatile ID; // 0x7c
|
||||
uint32_t volatile UNKNOWN_80; // 0x80
|
||||
uint32_t volatile UNKNOWN_84; // 0x84
|
||||
uint32_t volatile HOST_INT_RAW; // 0x88
|
||||
uint32_t volatile UNKNOWN_8C; // 0x8c
|
||||
uint32_t volatile UNKNOWN_90; // 0x90
|
||||
uint32_t volatile HOST_CONF_W0; // 0x94
|
||||
uint32_t volatile HOST_CONF_W1; // 0x98
|
||||
uint32_t volatile HOST_INT_STATUS; // 0x9c
|
||||
uint32_t volatile HOST_CONF_W2; // 0xa0
|
||||
uint32_t volatile HOST_CONF_W3; // 0xa4
|
||||
uint32_t volatile HOST_CONF_W4; // 0xa8
|
||||
uint32_t volatile UNKNOWN_AC; // 0xac
|
||||
uint32_t volatile HOST_INT_CLEAR; // 0xb0
|
||||
uint32_t volatile HOST_INT_ENABLE; // 0xb4
|
||||
uint32_t volatile UNKNOWN_B8; // 0xb8
|
||||
uint32_t volatile HOST_CONF_W5; // 0xbc
|
||||
};
|
||||
|
||||
/* Details for CONF0 register */
|
||||
|
||||
#define SLC_CONF0_MODE_M 0x00000003
|
||||
#define SLC_CONF0_MODE_S 12
|
||||
#define SLC_CONF0_DATA_BURST_ENABLE BIT(9)
|
||||
#define SLC_CONF0_DESCRIPTOR_BURST_ENABLE BIT(8)
|
||||
#define SLC_CONF0_RX_NO_RESTART_CLEAR BIT(7)
|
||||
#define SLC_CONF0_RX_AUTO_WRITE_BACK BIT(6)
|
||||
#define SLC_CONF0_RX_LOOP_TEST BIT(5)
|
||||
#define SLC_CONF0_TX_LOOP_TEST BIT(4)
|
||||
#define SLC_CONF0_AHBM_RESET BIT(3)
|
||||
#define SLC_CONF0_AHBM_FIFO_RESET BIT(2)
|
||||
#define SLC_CONF0_RX_LINK_RESET BIT(1)
|
||||
#define SLC_CONF0_TX_LINK_RESET BIT(0)
|
||||
|
||||
/* Details for INT_RAW register */
|
||||
|
||||
#define SLC_INT_RAW_TX_DSCR_EMPTY BIT(21)
|
||||
#define SLC_INT_RAW_RX_DSCR_ERROR BIT(20)
|
||||
#define SLC_INT_RAW_TX_DSCR_ERROR BIT(19)
|
||||
#define SLC_INT_RAW_TO_HOST BIT(18)
|
||||
#define SLC_INT_RAW_RX_EOF BIT(17)
|
||||
#define SLC_INT_RAW_RX_DONE BIT(16)
|
||||
#define SLC_INT_RAW_TX_EOF BIT(15)
|
||||
#define SLC_INT_RAW_TX_DONE BIT(14)
|
||||
#define SLC_INT_RAW_TOKEN1_1TO0 BIT(13)
|
||||
#define SLC_INT_RAW_TOKEN0_1TO0 BIT(12)
|
||||
#define SLC_INT_RAW_TX_OVERFLOW BIT(11)
|
||||
#define SLC_INT_RAW_RX_UNDEFLOW BIT(10)
|
||||
#define SLC_INT_RAW_TX_START BIT(9)
|
||||
#define SLC_INT_RAW_RX_START BIT(8)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT7 BIT(7)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT6 BIT(6)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT5 BIT(5)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT4 BIT(4)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT3 BIT(3)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT2 BIT(2)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT1 BIT(1)
|
||||
#define SLC_INT_RAW_FROM_HOST_BIT0 BIT(0)
|
||||
|
||||
/* Details for INT_STATUS register */
|
||||
|
||||
#define SLC_INT_STATUS_TX_DSCR_EMPTY BIT(21)
|
||||
#define SLC_INT_STATUS_RX_DSCR_ERROR BIT(20)
|
||||
#define SLC_INT_STATUS_TX_DSCR_ERROR BIT(19)
|
||||
#define SLC_INT_STATUS_TO_HOST BIT(18)
|
||||
#define SLC_INT_STATUS_RX_EOF BIT(17)
|
||||
#define SLC_INT_STATUS_RX_DONE BIT(16)
|
||||
#define SLC_INT_STATUS_TX_EOF BIT(15)
|
||||
#define SLC_INT_STATUS_TX_DONE BIT(14)
|
||||
#define SLC_INT_STATUS_TOKEN1_1TO0 BIT(13)
|
||||
#define SLC_INT_STATUS_TOKEN0_1TO0 BIT(12)
|
||||
#define SLC_INT_STATUS_TX_OVERFLOW BIT(11)
|
||||
#define SLC_INT_STATUS_RX_UNDEFLOW BIT(10)
|
||||
#define SLC_INT_STATUS_TX_START BIT(9)
|
||||
#define SLC_INT_STATUS_RX_START BIT(8)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT7 BIT(7)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT6 BIT(6)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT5 BIT(5)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT4 BIT(4)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT3 BIT(3)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT2 BIT(2)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT1 BIT(1)
|
||||
#define SLC_INT_STATUS_FROM_HOST_BIT0 BIT(0)
|
||||
|
||||
/* Details for INT_ENABLE register */
|
||||
|
||||
#define SLC_INT_ENABLE_TX_DSCR_EMPTY BIT(21)
|
||||
#define SLC_INT_ENABLE_RX_DSCR_ERROR BIT(20)
|
||||
#define SLC_INT_ENABLE_TX_DSCR_ERROR BIT(19)
|
||||
#define SLC_INT_ENABLE_TO_HOST BIT(18)
|
||||
#define SLC_INT_ENABLE_RX_EOF BIT(17)
|
||||
#define SLC_INT_ENABLE_RX_DONE BIT(16)
|
||||
#define SLC_INT_ENABLE_TX_EOF BIT(15)
|
||||
#define SLC_INT_ENABLE_TX_DONE BIT(14)
|
||||
#define SLC_INT_ENABLE_TOKEN1_1TO0 BIT(13)
|
||||
#define SLC_INT_ENABLE_TOKEN0_1TO0 BIT(12)
|
||||
#define SLC_INT_ENABLE_TX_OVERFLOW BIT(11)
|
||||
#define SLC_INT_ENABLE_RX_UNDEFLOW BIT(10)
|
||||
#define SLC_INT_ENABLE_TX_START BIT(9)
|
||||
#define SLC_INT_ENABLE_RX_START BIT(8)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT7 BIT(7)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT6 BIT(6)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT5 BIT(5)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT4 BIT(4)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT3 BIT(3)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT2 BIT(2)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT1 BIT(1)
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT0 BIT(0)
|
||||
|
||||
#define SLC_INT_ENABLE_FROM_HOST_BIT_ALL 0xff
|
||||
|
||||
/* Details for INT_CLEAR register */
|
||||
|
||||
#define SLC_INT_CLEAR_TX_DSCR_EMPTY BIT(21)
|
||||
#define SLC_INT_CLEAR_RX_DSCR_ERROR BIT(20)
|
||||
#define SLC_INT_CLEAR_TX_DSCR_ERROR BIT(19)
|
||||
#define SLC_INT_CLEAR_TO_HOST BIT(18)
|
||||
#define SLC_INT_CLEAR_RX_EOF BIT(17)
|
||||
#define SLC_INT_CLEAR_RX_DONE BIT(16)
|
||||
#define SLC_INT_CLEAR_TX_EOF BIT(15)
|
||||
#define SLC_INT_CLEAR_TX_DONE BIT(14)
|
||||
#define SLC_INT_CLEAR_TOKEN1_1TO0 BIT(13)
|
||||
#define SLC_INT_CLEAR_TOKEN0_1TO0 BIT(12)
|
||||
#define SLC_INT_CLEAR_TX_OVERFLOW BIT(11)
|
||||
#define SLC_INT_CLEAR_RX_UNDEFLOW BIT(10)
|
||||
#define SLC_INT_CLEAR_TX_START BIT(9)
|
||||
#define SLC_INT_CLEAR_RX_START BIT(8)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT7 BIT(7)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT6 BIT(6)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT5 BIT(5)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT4 BIT(4)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT3 BIT(3)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT2 BIT(2)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT1 BIT(1)
|
||||
#define SLC_INT_CLEAR_FROM_HOST_BIT0 BIT(0)
|
||||
|
||||
/* Details for RX_STATUS register */
|
||||
|
||||
#define SLC_RX_STATUS_EMPTY BIT(1)
|
||||
#define SLC_RX_STATUS_FULL BIT(0)
|
||||
|
||||
/* Details for RX_FIFO_PUSH register */
|
||||
|
||||
#define SLC_RX_FIFO_PUSH_FLAG BIT(16)
|
||||
#define SLC_RX_FIFO_PUSH_DATA_M 0x000001ff
|
||||
#define SLC_RX_FIFO_PUSH_DATA_S 0
|
||||
|
||||
/* Details for TX_STATUS register */
|
||||
|
||||
#define SLC_TX_STATUS_EMPTY BIT(1)
|
||||
#define SLC_TX_STATUS_FULL BIT(0)
|
||||
|
||||
/* Details for TX_FIFO_POP register */
|
||||
|
||||
#define SLC_TX_FIFO_POP_FLAG BIT(16)
|
||||
#define SLC_TX_FIFO_POP_DATA_M 0x000007ff
|
||||
#define SLC_TX_FIFO_POP_DATA_S 0
|
||||
|
||||
/* Details for RX_LINK register */
|
||||
|
||||
#define SLC_RX_LINK_PARK BIT(31)
|
||||
#define SLC_RX_LINK_RESTART BIT(30)
|
||||
#define SLC_RX_LINK_START BIT(29)
|
||||
#define SLC_RX_LINK_STOP BIT(28)
|
||||
#define SLC_RX_LINK_DESCRIPTOR_ADDR_M 0x000fffff
|
||||
#define SLC_RX_LINK_DESCRIPTOR_ADDR_S 0
|
||||
|
||||
/* Details for TX_LINK register */
|
||||
|
||||
#define SLC_TX_LINK_PARK BIT(31)
|
||||
#define SLC_TX_LINK_RESTART BIT(30)
|
||||
#define SLC_TX_LINK_START BIT(29)
|
||||
#define SLC_TX_LINK_STOP BIT(28)
|
||||
#define SLC_TX_LINK_DESCRIPTOR_ADDR_M 0x000fffff
|
||||
#define SLC_TX_LINK_DESCRIPTOR_ADDR_S 0
|
||||
|
||||
/* Details for INTVEC_TO_HOST register */
|
||||
|
||||
#define SLC_INTVEC_TO_HOST_INTVEC_M 0x000000ff
|
||||
#define SLC_INTVEC_TO_HOST_INTVEC_S 0
|
||||
|
||||
/* Details for TOKEN0 register */
|
||||
|
||||
#define SLC_TOKEN0_M 0x00000fff
|
||||
#define SLC_TOKEN0_S 16
|
||||
#define SLC_TOKEN0_LOCAL_INC_MORE BIT(14)
|
||||
#define SLC_TOKEN0_LOCAL_INC BIT(13)
|
||||
#define SLC_TOKEN0_LOCAL_WRITE BIT(12)
|
||||
#define SLC_TOKEN0_LOCAL_DATA_M 0x00000FFF
|
||||
#define SLC_TOKEN0_LOCAL_DATA_S 0
|
||||
|
||||
/* Details for TOKEN1 register */
|
||||
|
||||
#define SLC_TOKEN1_MASK 0x00000fff
|
||||
#define SLC_TOKEN1_S 16
|
||||
#define SLC_TOKEN1_LOCAL_INC_MORE BIT(14)
|
||||
#define SLC_TOKEN1_LOCAL_INC BIT(13)
|
||||
#define SLC_TOKEN1_LOCAL_WRITE BIT(12)
|
||||
#define SLC_TOKEN1_LOCAL_DATA_M 0x00000fff
|
||||
#define SLC_TOKEN1_LOCAL_DATA_S 0
|
||||
|
||||
/* Details for BRIDGE_CONF register */
|
||||
|
||||
#define SLC_BRIDGE_CONF_TX_PUSH_IDLE_M 0x0000ffff
|
||||
#define SLC_BRIDGE_CONF_TX_PUSH_IDLE_S 16
|
||||
#define SLC_BRIDGE_CONF_TX_DUMMY_MODE BIT(12)
|
||||
#define SLC_BRIDGE_CONF_FIFO_MAP_ENABLE_M 0x0000000f
|
||||
#define SLC_BRIDGE_CONF_FIFO_MAP_ENABLE_S 8
|
||||
#define SLC_BRIDGE_CONF_TX_EOF_ENABLE_M 0x0000003f
|
||||
#define SLC_BRIDGE_CONF_TX_EOF_ENABLE_S 0
|
||||
|
||||
/* Details for AHB_TEST register */
|
||||
|
||||
#define SLC_AHB_TEST_ADDR_M 0x00000003
|
||||
#define SLC_AHB_TEST_ADDR_S 4
|
||||
#define SLC_AHB_TEST_MODE_M 0x00000007
|
||||
#define SLC_AHB_TEST_MODE_S 0
|
||||
|
||||
/* Details for SDIO_STATUS register */
|
||||
|
||||
#define SLC_SDIO_STATUS_BUS_M 0x00000007
|
||||
#define SLC_SDIO_STATUS_BUS_S 12
|
||||
#define SLC_SDIO_STATUS_WAKEUP BIT(8)
|
||||
#define SLC_SDIO_STATUS_FUNC_M 0x0000000F
|
||||
#define SLC_SDIO_STATUS_FUNC_S 4
|
||||
#define SLC_SDIO_STATUS_COMMAND_M 0x00000007
|
||||
#define SLC_SDIO_STATUS_COMMAND_S 0
|
||||
|
||||
/* Details for RX_DESCRIPTOR_CONF register */
|
||||
|
||||
#define SLC_RX_DESCRIPTOR_CONF_RX_FILL_ENABLE BIT(20)
|
||||
#define SLC_RX_DESCRIPTOR_CONF_RX_EOF_MODE BIT(19)
|
||||
#define SLC_RX_DESCRIPTOR_CONF_RX_FILL_MODE BIT(18)
|
||||
#define SLC_RX_DESCRIPTOR_CONF_INFOR_NO_REPLACE BIT(17)
|
||||
#define SLC_RX_DESCRIPTOR_CONF_TOKEN_NO_REPLACE BIT(16)
|
||||
#define SLC_RX_DESCRIPTOR_CONF_POP_IDLE_COUNT_M 0x0000ffff
|
||||
#define SLC_RX_DESCRIPTOR_CONF_POP_IDLE_COUNT_S 0
|
||||
|
||||
struct SLCDescriptor
|
||||
{
|
||||
uint32_t flags;
|
||||
uint32_t buf_ptr;
|
||||
uint32_t next_link_ptr;
|
||||
};
|
||||
|
||||
#define SLC_DESCRIPTOR_FLAGS_BLOCKSIZE_M 0x00000fff
|
||||
#define SLC_DESCRIPTOR_FLAGS_BLOCKSIZE_S 0
|
||||
#define SLC_DESCRIPTOR_FLAGS_DATA_LENGTH_M 0x00000fff
|
||||
#define SLC_DESCRIPTOR_FLAGS_DATA_LENGTH_S 12
|
||||
#define SLC_DESCRIPTOR_FLAGS_SUB_SOF BIT(29)
|
||||
#define SLC_DESCRIPTOR_FLAGS_EOF BIT(30)
|
||||
#define SLC_DESCRIPTOR_FLAGS_OWNER BIT(31)
|
||||
|
||||
#define SLC_DESCRIPTOR_FLAGS(blocksize,datalen,sub_sof,eof,owner) ( \
|
||||
(((blocksize)&SLC_DESCRIPTOR_FLAGS_BLOCKSIZE_M)<<SLC_DESCRIPTOR_FLAGS_BLOCKSIZE_S)| \
|
||||
(((datalen)&SLC_DESCRIPTOR_FLAGS_DATA_LENGTH_M)<<SLC_DESCRIPTOR_FLAGS_DATA_LENGTH_S)| \
|
||||
((sub_sof)?SLC_DESCRIPTOR_FLAGS_SUB_SOF:0)| \
|
||||
((eof)?SLC_DESCRIPTOR_FLAGS_EOF:0)| \
|
||||
((owner)?SLC_DESCRIPTOR_FLAGS_OWNER:0) \
|
||||
)
|
||||
|
||||
|
||||
#endif /* _ESP_SLC_REGS_H */
|
Loading…
Reference in a new issue