15 #define DBI_QSPI_SUPPORT 1 16 #define DBI_YUV_SUPPORT 1 17 #define DBI_WRITE_DATA_BYTE_MAX 256 18 #define DBI_READ_DATA_BYTE_MAX 8 19 #define SPI_FIFO_NUM_MAX 8 20 #elif defined(BL606P) || defined(BL808) 21 #define DBI_QSPI_SUPPORT 0 22 #define DBI_YUV_SUPPORT 0 23 #define DBI_WRITE_DATA_BYTE_MAX 4 24 #define DBI_READ_DATA_BYTE_MAX 4 25 #define SPI_FIFO_NUM_MAX 8 27 #error "unknown device" 30 #define DBI_WRITE_PIXEL_CNT_MAX 0x00FFFFFF 35 #define DBI_MODE_TYPE_B 0 36 #define DBI_MODE_TYPE_C_4_WIRE 1 37 #define DBI_MODE_TYPE_C_3_WIRE 2 38 #if (DBI_QSPI_SUPPORT) 39 #define DBI_MODE_EX_QSPI 3 48 #define DBI_PIXEL_INPUT_FORMAT_NBGR_8888 0 49 #define DBI_PIXEL_INPUT_FORMAT_NRGB_8888 1 50 #define DBI_PIXEL_INPUT_FORMAT_BGRN_8888 2 51 #define DBI_PIXEL_INPUT_FORMAT_RGBN_8888 3 52 #define DBI_PIXEL_INPUT_FORMAT_RGB_888 4 53 #define DBI_PIXEL_INPUT_FORMAT_BGR_888 5 54 #define DBI_PIXEL_INPUT_FORMAT_BGR_565 6 55 #define DBI_PIXEL_INPUT_FORMAT_RGB_565 7 63 #define DBI_PIXEL_OUTPUT_FORMAT_RGB_565 0 64 #define DBI_PIXEL_OUTPUT_FORMAT_RGB_888 1 72 #define DBI_CLOCK_MODE_0 0 73 #define DBI_CLOCK_MODE_1 1 74 #define DBI_CLOCK_MODE_2 2 75 #define DBI_CLOCK_MODE_3 3 83 #define DBI_QSPI_WIRE_NUM_1 0 84 #define DBI_QSPI_WIRE_NUM_4 1 92 #define DBI_INTSTS_TC (1 << 0) 93 #define SPI_INTSTS_TX_FIFO (1 << 1) 94 #define SPI_INTSTS_FIFO_ERR (1 << 2) 102 #define DBI_INTCLR_TC (1 << 0) 110 #define DBI_CMD_CLEAR_TX_FIFO (0x01) 111 #define DBI_CMD_GET_TX_FIFO_CNT (0x02) 112 #define DBI_CMD_MASK_CMD_PHASE (0x03) 113 #define DBI_CMD_CS_CONTINUE (0x04) 114 #define DBI_CMD_SET_DUMMY_CNT (0x05) 115 #define DBI_CMD_GET_SIZE_OF_PIXEL_CNT (0x06) 116 #define DBI_CMD_INPUT_PIXEL_FORMAT (0x07) 117 #define DBI_CMD_OUTPUT_PIXEL_FORMAT (0x08) 118 #if (DBI_QSPI_SUPPORT) 119 #define DBI_CMD_YUV_TO_RGB_ENABLE (0x10) 154 #if (DBI_QSPI_SUPPORT) 155 uint8_t cmd_wire_mode;
156 uint8_t addr_wire_mode;
157 uint8_t data_wire_mode;
188 void bflb_dbi_qspi_set_addr(
struct bflb_device_s *dev, uint8_t addr_byte_size, uint32_t addr_val);
uint8_t pixel_input_format
void bflb_dbi_txint_mask(struct bflb_device_s *dev, bool mask)
Enable or disable dbi rx fifo threhold interrupt.
DBI configuration structure.
int bflb_dbi_send_cmd_read_data(struct bflb_device_s *dev, uint8_t cmd, uint8_t data_len, uint8_t *data_buff)
To read the data after sending the command, send cmd -> send address(only QSPI mode) -> read paramete...
void bflb_dbi_init(struct bflb_device_s *dev, const struct bflb_dbi_config_s *config)
Initialize dbi.
void bflb_dbi_deinit(struct bflb_device_s *dev)
Deinitialize dbi.
uint32_t bflb_dbi_get_intstatus(struct bflb_device_s *dev)
Get dbi interrupt status.
int bflb_dbi_feature_control(struct bflb_device_s *dev, int cmd, size_t arg)
Control dbi feature.
void bflb_dbi_link_txdma(struct bflb_device_s *dev, bool enable)
Enable dbi tx dma.
void bflb_dbi_tcint_mask(struct bflb_device_s *dev, bool mask)
Enable or disable dbi transfer completion interrupt.
int bflb_dbi_send_cmd_data(struct bflb_device_s *dev, uint8_t cmd, uint8_t data_len, uint8_t *data_buff)
Send cmd with pixel data, send cmd -> send address(only QSPI mode) -> send parameter_data.
uint8_t tx_fifo_threshold
void bflb_dbi_errint_mask(struct bflb_device_s *dev, bool mask)
Enable or disable dbi error interrupt.
void bflb_dbi_int_clear(struct bflb_device_s *dev, uint32_t int_clear)
Clear dbi interrupt status.
int bflb_dbi_send_cmd_pixel(struct bflb_device_s *dev, uint8_t cmd, uint32_t pixel_cnt, void *pixel_buff)
Send cmd with pixel data, send cmd -> send address(only QSPI mode) -> send pixel_data,.
uint8_t pixel_output_format