17 #define DSI_DMA_STREAM1 0x0
18 #define DSI_EMBED_MODE1 0x1
19 #define DSI_POWER_MODE2 0x1
20 #define DSI_PACK_TYPE1 0x0
24 #define DSI_EOF_BLLP_PWR 0x9
25 #define DSI_DMA_TRIGGER_SEL 0x4
26 #define TRAFFIC_MODE 0x1
29 #define DSI_CLKLN_EN 0x1
30 #define DSI_VIDEO_EN 0x1
32 #define HS_TX_TO 0xEA60
33 #define TIMER_RESOLUTION 0x4
34 #define DSI_PAYLOAD_BYTE_BOUND 256
35 #define DSI_PAYLOAD_SIZE_ALIGN 4
36 #define DSI_CMD_DMA_TPG_EN BIT(1)
37 #define DSI_TPG_DMA_FIFO_MODE BIT(2)
38 #define DSI_CMD_DMA_PATTERN_SEL (BIT(16) | BIT(17))
45 switch (num_of_lanes) {
189 while (read_value != 0x1) {
192 if (
count > 0xffff) {
195 "Panel CMD: count :%d command mode dma test failed\n",
count);
197 "Panel CMD: read value = %x, addr=%p\n",
210 uint8_t *pload = _dma_coherent;
220 pload[3] =
BIT(7) |
BIT(6);
223 memcpy(pload + 4, body, len);
225 memset(pload + 4 + len, 0, size - 4 - len);
229 pload[1] = len > 1 ? body[1] : 0;
245 for (
int j = 0; j < size; j += 4) {
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
void * memcpy(void *dest, const void *src, size_t n)
void * memset(void *dstpp, int c, size_t len)
#define assert(statement)
cb_err
coreboot error codes
@ CB_ERR
Generic error code.
@ CB_SUCCESS
Call completed successfully.
#define printk(level,...)
static struct dsi_regs *const dsi0
enum cb_err mdss_dsi_phy_10nm_init(struct edid *edid, uint32_t num_of_lanes, uint32_t bpp)
#define setbits32(addr, set)
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
@ DSI_VIDEO_MODE_DONE_MASK
@ DSI_CMD_MODE_MDP_DONE_MASK
@ DSI_CMD_MODE_MDP_DONE_AK
@ DSI_CMD_MODE_DMA_DONE_AK
@ DSI_CMD_MODE_DMA_DONE_MASK
@ DSI_FORCE_ON_DYN_AHBM_HCLK
enum cb_err mipi_panel_parse_init_commands(const void *buf, mipi_cmd_func_t cmd_func)
void mdss_dsi_video_mode_config(struct edid *edid, uint32_t bpp)
static void mdss_dsi_set_intr(void)
#define DSI_PAYLOAD_SIZE_ALIGN
static void mdss_dsi_reset(void)
static enum cb_err mdss_dsi_send_init_cmd(enum mipi_dsi_transaction type, const u8 *body, u8 len)
#define DSI_DMA_TRIGGER_SEL
#define DSI_PAYLOAD_BYTE_BOUND
#define DSI_TPG_DMA_FIFO_MODE
static void mdss_dsi_host_init(int num_of_lanes)
static int mdss_dsi_cmd_dma_trigger_for_panel(void)
enum cb_err mdss_dsi_panel_initialize(const u8 *init_cmds)
#define DSI_CMD_DMA_PATTERN_SEL
void mdss_dsi_clock_config(void)
#define DSI_CMD_DMA_TPG_EN
static void mdss_dsi_clear_intr(void)
enum cb_err mdss_dsi_config(struct edid *edid, uint32_t num_of_lanes, uint32_t bpp)
#define DSI_VIDEO_DST_FORMAT_RGB666
#define DSI_VIDEO_DST_FORMAT_RGB565
#define DSI_VIDEO_DST_FORMAT_RGB888
uint32_t video_mode_active_h
uint32_t video_mode_active_vsync_vpos
uint32_t video_mode_active_v
uint32_t tpg_dma_fifo_reset
uint32_t video_mode_active_total
uint32_t video_mode_active_vsync
uint32_t test_pattern_gen_ctrl
uint32_t cmd_mode_dma_sw_trigger
uint32_t test_pattern_gen_cmd_dma_init_val
uint32_t video_mode_active_hsync
uint32_t cmd_mode_dma_ctrl