11 #define QUP_IO_MODES 0x8
12 #define QUP_SW_RESET 0xc
13 #define QUP_TIME_OUT 0x10
14 #define QUP_TIME_OUT_CURRENT 0x14
15 #define QUP_OPERATIONAL 0x18
16 #define QUP_ERROR_FLAGS 0x1c
17 #define QUP_ERROR_FLAGS_EN 0x20
18 #define QUP_TEST_CTRL 0x24
19 #define QUP_MX_OUTPUT_COUNT 0x100
20 #define QUP_MX_OUTPUT_CNT_CURRENT 0x104
21 #define QUP_OUTPUT_DEBUG 0x108
22 #define QUP_OUTPUT_FIFO_WORD_CNT 0x10c
23 #define QUP_OUTPUT_FIFO 0x110
24 #define QUP_MX_WRITE_COUNT 0x150
25 #define QUP_WRITE_CNT_CURRENT 0x154
26 #define QUP_MX_INPUT_COUNT 0x200
27 #define QUP_READ_COUNT 0x208
28 #define QUP_MX_READ_CNT_CURRENT 0x20c
29 #define QUP_INPUT_DEBUG 0x210
30 #define QUP_INPUT_FIFO_WORD_CNT 0x214
31 #define QUP_INPUT_FIFO 0x218
32 #define QUP_I2C_MASTER_CLK_CTL 0x400
33 #define QUP_I2C_MASTER_STATUS 0x404
35 #define OUTPUT_FIFO_FULL (1<<6)
36 #define INPUT_FIFO_NOT_EMPTY (1<<5)
37 #define OUTPUT_FIFO_NOT_EMPTY (1<<4)
38 #define INPUT_SERVICE_FLAG (1<<9)
39 #define OUTPUT_SERVICE_FLAG (1<<8)
40 #define QUP_OUTPUT_BIT_SHIFT_EN (1<<16)
42 #define QUP_MODE_MASK (0x03)
43 #define QUP_OUTPUT_MODE_SHFT (10)
44 #define QUP_INPUT_MODE_SHFT (12)
46 #define QUP_FS_DIVIDER_MASK (0xFF)
48 #define QUP_MINI_CORE_PROTO_SHFT (8)
49 #define QUP_MINI_CORE_PROTO_MASK (0x0F)
52 #define QUP_STATE_RESET 0x0
53 #define QUP_STATE_RUN 0x1
54 #define QUP_STATE_PAUSE 0x3
55 #define QUP_STATE_VALID (1<<2)
56 #define QUP_STATE_MASK 0x3
57 #define QUP_STATE_VALID_MASK (1<<2)
60 #define QUP_I2C_1CLK_NOOP_SEQ 0x1
61 #define QUP_I2C_START_SEQ (0x1 << 8)
62 #define QUP_I2C_DATA_SEQ (0x2 << 8)
63 #define QUP_I2C_STOP_SEQ (0x3 << 8)
64 #define QUP_I2C_RECV_SEQ (0x4 << 8)
67 #define QUP_I2C_MIDATA_SEQ (0x5 << 8)
68 #define QUP_I2C_MISTOP_SEQ (0x6 << 8)
69 #define QUP_I2C_MINACK_SEQ (0x7 << 8)
71 #define QUP_I2C_ADDR(x) ((x & 0xFF) << 1)
72 #define QUP_I2C_DATA(x) (x & 0xFF)
73 #define QUP_I2C_MI_TAG(x) (x & 0xFF00)
74 #define QUP_I2C_SLAVE_READ (0x1)
77 #define QUP_HS_DIVIDER_SHFT (8)
78 #define QUP_DIVIDER_MIN_VAL (0x3)
81 #define QUP_I2C_INVALID_READ_SEQ (1 << 25)
82 #define QUP_I2C_INVALID_READ_ADDR (1 << 24)
83 #define QUP_I2C_INVALID_TAG (1 << 23)
84 #define QUP_I2C_FAILED_MASK (0x3 << 6)
85 #define QUP_I2C_INVALID_WRITE (1 << 5)
86 #define QUP_I2C_ARB_LOST (1 << 4)
87 #define QUP_I2C_PACKET_NACK (1 << 3)
88 #define QUP_I2C_BUS_ERROR (1 << 2)
121 unsigned int clk_frequency;
122 unsigned int src_frequency;
133 unsigned int data_len;
qup_return_t qup_set_state(blsp_qup_id_t id, uint32_t state)
qup_return_t qup_recv_data(blsp_qup_id_t id, qup_data_t *p_tx_obj)
@ QUP_MINICORE_I2C_MASTER
qup_return_t qup_send_data(blsp_qup_id_t id, qup_data_t *p_tx_obj, uint8_t stop_seq)
@ QUP_ERR_I2C_INVALID_SLAVE_ADDR
@ QUP_ERR_I2C_INVALID_WRITE
@ QUP_ERR_I2C_INVALID_TAG
qup_return_t qup_reset_i2c_master_status(blsp_qup_id_t id)
qup_return_t qup_init(blsp_qup_id_t id, const qup_config_t *config_ptr)