coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
dsi.c File Reference
#include <mipi/dsi.h>
#include <mipi/panel.h>
#include <device/mmio.h>
#include <console/console.h>
#include <assert.h>
#include <edid.h>
#include <delay.h>
#include <symbols.h>
#include <types.h>
#include <string.h>
#include <soc/display/mipi_dsi.h>
#include <soc/display/mdssreg.h>
#include <soc/display/dsi_phy.h>
Include dependency graph for dsi.c:

Go to the source code of this file.

Macros

#define DSI_DMA_STREAM1   0x0
 
#define DSI_EMBED_MODE1   0x1
 
#define DSI_POWER_MODE2   0x1
 
#define DSI_PACK_TYPE1   0x0
 
#define DSI_VC1   0x0
 
#define DSI_DT1   0x0
 
#define DSI_WC1   0x0
 
#define DSI_EOF_BLLP_PWR   0x9
 
#define DSI_DMA_TRIGGER_SEL   0x4
 
#define TRAFFIC_MODE   0x1
 
#define DSI_EN   0x1
 
#define DSI_CLKLN_EN   0x1
 
#define DSI_VIDEO_EN   0x1
 
#define HS_TX_TO   0xEA60
 
#define TIMER_RESOLUTION   0x4
 
#define DSI_PAYLOAD_BYTE_BOUND   256
 
#define DSI_PAYLOAD_SIZE_ALIGN   4
 
#define DSI_CMD_DMA_TPG_EN   BIT(1)
 
#define DSI_TPG_DMA_FIFO_MODE   BIT(2)
 
#define DSI_CMD_DMA_PATTERN_SEL   (BIT(16) | BIT(17))
 

Functions

static void mdss_dsi_host_init (int num_of_lanes)
 
static void mdss_dsi_reset (void)
 
void mdss_dsi_video_mode_config (struct edid *edid, uint32_t bpp)
 
enum cb_err mdss_dsi_config (struct edid *edid, uint32_t num_of_lanes, uint32_t bpp)
 
void mdss_dsi_clock_config (void)
 
static void mdss_dsi_set_intr (void)
 
static int mdss_dsi_cmd_dma_trigger_for_panel (void)
 
static enum cb_err mdss_dsi_send_init_cmd (enum mipi_dsi_transaction type, const u8 *body, u8 len)
 
static void mdss_dsi_clear_intr (void)
 
enum cb_err mdss_dsi_panel_initialize (const u8 *init_cmds)
 

Macro Definition Documentation

◆ DSI_CLKLN_EN

#define DSI_CLKLN_EN   0x1

Definition at line 29 of file dsi.c.

◆ DSI_CMD_DMA_PATTERN_SEL

#define DSI_CMD_DMA_PATTERN_SEL   (BIT(16) | BIT(17))

Definition at line 38 of file dsi.c.

◆ DSI_CMD_DMA_TPG_EN

#define DSI_CMD_DMA_TPG_EN   BIT(1)

Definition at line 36 of file dsi.c.

◆ DSI_DMA_STREAM1

#define DSI_DMA_STREAM1   0x0

Definition at line 17 of file dsi.c.

◆ DSI_DMA_TRIGGER_SEL

#define DSI_DMA_TRIGGER_SEL   0x4

Definition at line 25 of file dsi.c.

◆ DSI_DT1

#define DSI_DT1   0x0

Definition at line 22 of file dsi.c.

◆ DSI_EMBED_MODE1

#define DSI_EMBED_MODE1   0x1

Definition at line 18 of file dsi.c.

◆ DSI_EN

#define DSI_EN   0x1

Definition at line 28 of file dsi.c.

◆ DSI_EOF_BLLP_PWR

#define DSI_EOF_BLLP_PWR   0x9

Definition at line 24 of file dsi.c.

◆ DSI_PACK_TYPE1

#define DSI_PACK_TYPE1   0x0

Definition at line 20 of file dsi.c.

◆ DSI_PAYLOAD_BYTE_BOUND

#define DSI_PAYLOAD_BYTE_BOUND   256

Definition at line 34 of file dsi.c.

◆ DSI_PAYLOAD_SIZE_ALIGN

#define DSI_PAYLOAD_SIZE_ALIGN   4

Definition at line 35 of file dsi.c.

◆ DSI_POWER_MODE2

#define DSI_POWER_MODE2   0x1

Definition at line 19 of file dsi.c.

◆ DSI_TPG_DMA_FIFO_MODE

#define DSI_TPG_DMA_FIFO_MODE   BIT(2)

Definition at line 37 of file dsi.c.

◆ DSI_VC1

#define DSI_VC1   0x0

Definition at line 21 of file dsi.c.

◆ DSI_VIDEO_EN

#define DSI_VIDEO_EN   0x1

Definition at line 30 of file dsi.c.

◆ DSI_WC1

#define DSI_WC1   0x0

Definition at line 23 of file dsi.c.

◆ HS_TX_TO

#define HS_TX_TO   0xEA60

Definition at line 32 of file dsi.c.

◆ TIMER_RESOLUTION

#define TIMER_RESOLUTION   0x4

Definition at line 33 of file dsi.c.

◆ TRAFFIC_MODE

#define TRAFFIC_MODE   0x1

Definition at line 26 of file dsi.c.

Function Documentation

◆ mdss_dsi_clear_intr()

static void mdss_dsi_clear_intr ( void  )
static

◆ mdss_dsi_clock_config()

void mdss_dsi_clock_config ( void  )

Definition at line 154 of file dsi.c.

References dsi_regs::clk_ctrl, dsi0, DSI_AHBM_SCLK_ON, DSI_AHBS_HCLK_ON, DSI_BYTECLK_ON, DSI_DSICLK_ON, DSI_ESCCLK_ON, DSI_FORCE_ON_DYN_AHBM_HCLK, DSI_PCLK_ON, setbits32, and write32().

Referenced by mdss_dsi_host_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mdss_dsi_cmd_dma_trigger_for_panel()

static int mdss_dsi_cmd_dma_trigger_for_panel ( void  )
static

Definition at line 177 of file dsi.c.

References BIOS_ERR, dsi_regs::cmd_mode_dma_sw_trigger, count, dsb, dsi0, dsi_regs::int_ctrl, mdss_dsi_set_intr(), printk, read32(), and write32().

Here is the call graph for this function:

◆ mdss_dsi_config()

◆ mdss_dsi_host_init()

static void mdss_dsi_host_init ( int  num_of_lanes)
static

◆ mdss_dsi_panel_initialize()

enum cb_err mdss_dsi_panel_initialize ( const u8 init_cmds)

Definition at line 270 of file dsi.c.

◆ mdss_dsi_reset()

static void mdss_dsi_reset ( void  )
static

Definition at line 79 of file dsi.c.

References dsi_regs::ctrl, dsi0, dsi_regs::hs_timer_ctrl, HS_TX_TO, dsi_regs::soft_reset, TIMER_RESOLUTION, dsi_regs::tpg_dma_fifo_reset, and write32().

Here is the call graph for this function:

◆ mdss_dsi_send_init_cmd()

static enum cb_err mdss_dsi_send_init_cmd ( enum mipi_dsi_transaction  type,
const u8 body,
u8  len 
)
static

Definition at line 177 of file dsi.c.

◆ mdss_dsi_set_intr()

static void mdss_dsi_set_intr ( void  )
static

Definition at line 168 of file dsi.c.

References dsi0, DSI_BTA_DONE_MASK, DSI_CMD_MODE_DMA_DONE_MASK, DSI_CMD_MODE_MDP_DONE_MASK, DSI_ERROR_MASK, DSI_VIDEO_MODE_DONE_MASK, dsi_regs::int_ctrl, setbits32, and write32().

Referenced by mdss_dsi_cmd_dma_trigger_for_panel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mdss_dsi_video_mode_config()

void mdss_dsi_video_mode_config ( struct edid edid,
uint32_t  bpp 
)

Definition at line 99 of file dsi.c.