coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ddp.h File Reference
#include <soc/addressmap.h>
#include <soc/ddp_common.h>
#include <types.h>
Include dependency graph for ddp.h:

Go to the source code of this file.

Data Structures

struct  mmsys_cfg_regs
 
struct  disp_mutex_regs
 
struct  disp_ccorr_regs
 
struct  disp_gamma_regs
 
struct  disp_aal_regs
 
struct  disp_dither_regs
 
struct  disp_dsc_regs
 
struct  disp_merge_regs
 

Macros

#define MAIN_PATH_OVL_NR   2
 

Enumerations

enum  {
  CG_CON0_DISP_OVL0 = BIT(0) , CG_CON0_DISP_COLOR0 = BIT(2) , CG_CON0_DISP_CCORR0 = BIT(4) , CG_CON0_DISP_AAL0 = BIT(6) ,
  CG_CON0_DISP_GAMMA0 = BIT(8) , CG_CON0_DISP_DITHER0 = BIT(10) , CG_CON0_DISP_RDMA0 = BIT(19) , CG_CON0_DISP_DSC_WRAP0 = BIT(23) ,
  CG_CON0_DISP_VPP_MERGE0 = BIT(24) , CG_CON0_DISP_DP_INTF0 = BIT(25) , CG_CON0_DISP_MUTEX0 = BIT(26) , CG_CON0_DISP_ALL ,
  CG_CON0_ALL = 0xffffffff
}
 
enum  {
  CG_CON1_SMI_GALS = BIT(10) , CG_CON1_SMI_COMMON = BIT(11) , CG_CON1_SMI_EMI = BIT(12) , CG_CON1_SMI_IOMMU = BIT(13) ,
  CG_CON1_SMI_LARB = BIT(14) , CG_CON1_SMI_RSI = BIT(15) , CG_CON1_DISP_ALL , CG_CON1_ALL = 0xffffffff
}
 
enum  {
  CG_CON2_DSI_DSI0 = BIT(0) , CG_CON2_DPI_DPI0 = BIT(8) , CG_CON2_DP_INTF0 = BIT(16) , CG_CON2_MM_26MHZ = BIT(24) ,
  CG_CON2_DISP_ALL , CG_CON2_ALL = 0xffffffff
}
 
enum  { DISP_OVL0_GO_BLEND = BIT(0) , DISP_OVL0_GO_BG = BIT(1) , DISP_OVL0_TO_DISP_RDMA0 = BIT(0) , DITHER0_MOUT_DSI0 = BIT(0) }
 
enum  {
  SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT = (0 << 0) , SEL_IN_DSC_WRAP0_IN_FROM_DISP_DITHER0 = (0 << 4) , SEL_IN_DP_INTF0_FROM_VPP_MERGE = (1 << 12) , SEL_OUT_DISP_DITHER0_TO_DSC_WRAP0_IN = (0 << 0) ,
  SEL_OUT_VPP_MERGE_TO_DP_INTF0 = (1 << 8) , SEL_OUT_DSC_WRAP0_OUT_TO_VPP_MERGE = (2 << 12)
}
 
enum  {
  MUTEX_MOD_DISP_OVL0 = BIT(0) , MUTEX_MOD_DISP_RDMA0 = BIT(2) , MUTEX_MOD_DISP_COLOR0 = BIT(3) , MUTEX_MOD_DISP_CCORR0 = BIT(4) ,
  MUTEX_MOD_DISP_AAL0 = BIT(5) , MUTEX_MOD_DISP_GAMMA0 = BIT(6) , MUTEX_MOD_DISP_DITHER0 = BIT(7) , MUTEX_MOD_DISP_DSC0 = BIT(9) ,
  MUTEX_MOD_DISP_MERGE0 = BIT(20) , MUTEX_MOD_MAIN_PATH
}
 
enum  { MUTEX_SOF_SINGLE_MODE = 0 , MUTEX_SOF_DSI0 = 1 , MUTEX_SOF_DPI0 = 2 , MUTEX_SOF_DP_INTF0 = 3 }
 
enum  {
  DISP_DSC0_EN = BIT(0) , DISP_DSC0_DUAL_INOUT = BIT(2) , DISP_DSC0_BYPASS = BIT(4) , DISP_DSC0_UFOE_SEL = BIT(16) ,
  DISP_DSC0_CON
}
 
enum  { PQ_EN = BIT(0) , PQ_RELAY_MODE = BIT(0) , PQ_ENGINE_EN = BIT(1) }
 
enum  { SMI_LARB_PORT_L0_OVL_RDMA0 = 0x388 }
 

Functions

 check_member (mmsys_cfg_regs, mmsys_cg_con0, 0x100)
 
 check_member (mmsys_cfg_regs, mmsys_cg_con1, 0x110)
 
 check_member (mmsys_cfg_regs, mmsys_cg_con2, 0x120)
 
 check_member (mmsys_cfg_regs, mmsys_ovl_mout_en, 0xF14)
 
 check_member (disp_ccorr_regs, shadow, 0xa0)
 
 check_member (disp_gamma_regs, size, 0x30)
 
 check_member (disp_aal_regs, shadow, 0xf0)
 
 check_member (disp_aal_regs, output_size, 0x4d8)
 
 check_member (disp_dither_regs, shadow, 0x100)
 
 check_member (disp_dsc_regs, obuf, 0x70)
 
 check_member (disp_dsc_regs, shadow, 0x200)
 
 check_member (disp_merge_regs, cfg55, 0xec)
 
void mtk_ddp_init (void)
 
void mtk_ddp_mode_set (const struct edid *edid)
 

Variables

static struct mmsys_cfg_regs *const mmsys_cfg = (void *)VDOSYS0_BASE
 
static struct disp_mutex_regs *const disp_mutex = (void *)DISP_MUTEX_BASE
 
static struct disp_ccorr_regs *const disp_ccorr = (void *)DISP_CCORR0_BASE
 
static struct disp_aal_regs *const disp_aal = (void *)DISP_AAL0_BASE
 
static struct disp_gamma_regs *const disp_gamma = (void *)DISP_GAMMA0_BASE
 
static struct disp_dither_regs *const disp_dither = (void *)DISP_DITHER0_BASE
 
static struct disp_dsc_regs *const disp_dsc = (void *)DISP_DSC0_BASE
 
static struct disp_merge_regs *const disp_merge = (void *)DISP_MERGE0_BASE
 

Macro Definition Documentation

◆ MAIN_PATH_OVL_NR

#define MAIN_PATH_OVL_NR   2

Definition at line 10 of file ddp.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CG_CON0_DISP_OVL0 
CG_CON0_DISP_COLOR0 
CG_CON0_DISP_CCORR0 
CG_CON0_DISP_AAL0 
CG_CON0_DISP_GAMMA0 
CG_CON0_DISP_DITHER0 
CG_CON0_DISP_RDMA0 
CG_CON0_DISP_DSC_WRAP0 
CG_CON0_DISP_VPP_MERGE0 
CG_CON0_DISP_DP_INTF0 
CG_CON0_DISP_MUTEX0 
CG_CON0_DISP_ALL 
CG_CON0_ALL 

Definition at line 55 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
CG_CON1_SMI_GALS 
CG_CON1_SMI_COMMON 
CG_CON1_SMI_EMI 
CG_CON1_SMI_IOMMU 
CG_CON1_SMI_LARB 
CG_CON1_SMI_RSI 
CG_CON1_DISP_ALL 
CG_CON1_ALL 

Definition at line 86 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
CG_CON2_DSI_DSI0 
CG_CON2_DPI_DPI0 
CG_CON2_DP_INTF0 
CG_CON2_MM_26MHZ 
CG_CON2_DISP_ALL 
CG_CON2_ALL 

Definition at line 107 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
DISP_OVL0_GO_BLEND 
DISP_OVL0_GO_BG 
DISP_OVL0_TO_DISP_RDMA0 
DITHER0_MOUT_DSI0 

Definition at line 118 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT 
SEL_IN_DSC_WRAP0_IN_FROM_DISP_DITHER0 
SEL_IN_DP_INTF0_FROM_VPP_MERGE 
SEL_OUT_DISP_DITHER0_TO_DSC_WRAP0_IN 
SEL_OUT_VPP_MERGE_TO_DP_INTF0 
SEL_OUT_DSC_WRAP0_OUT_TO_VPP_MERGE 

Definition at line 125 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
MUTEX_MOD_DISP_OVL0 
MUTEX_MOD_DISP_RDMA0 
MUTEX_MOD_DISP_COLOR0 
MUTEX_MOD_DISP_CCORR0 
MUTEX_MOD_DISP_AAL0 
MUTEX_MOD_DISP_GAMMA0 
MUTEX_MOD_DISP_DITHER0 
MUTEX_MOD_DISP_DSC0 
MUTEX_MOD_DISP_MERGE0 
MUTEX_MOD_MAIN_PATH 

Definition at line 150 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
MUTEX_SOF_SINGLE_MODE 
MUTEX_SOF_DSI0 
MUTEX_SOF_DPI0 
MUTEX_SOF_DP_INTF0 

Definition at line 171 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
DISP_DSC0_EN 
DISP_DSC0_DUAL_INOUT 
DISP_DSC0_BYPASS 
DISP_DSC0_UFOE_SEL 
DISP_DSC0_CON 

Definition at line 336 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
PQ_EN 
PQ_RELAY_MODE 
PQ_ENGINE_EN 

Definition at line 347 of file ddp.h.

◆ anonymous enum

anonymous enum
Enumerator
SMI_LARB_PORT_L0_OVL_RDMA0 

Definition at line 365 of file ddp.h.

Function Documentation

◆ check_member() [1/12]

check_member ( disp_aal_regs  ,
output_size  ,
0x4d8   
)

◆ check_member() [2/12]

check_member ( disp_aal_regs  ,
shadow  ,
0xf0   
)

◆ check_member() [3/12]

check_member ( disp_ccorr_regs  ,
shadow  ,
0xa0   
)

◆ check_member() [4/12]

check_member ( disp_dither_regs  ,
shadow  ,
0x100   
)

◆ check_member() [5/12]

check_member ( disp_dsc_regs  ,
obuf  ,
0x70   
)

◆ check_member() [6/12]

check_member ( disp_dsc_regs  ,
shadow  ,
0x200   
)

◆ check_member() [7/12]

check_member ( disp_gamma_regs  ,
size  ,
0x30   
)

◆ check_member() [8/12]

check_member ( disp_merge_regs  ,
cfg55  ,
0xec   
)

◆ check_member() [9/12]

check_member ( mmsys_cfg_regs  ,
mmsys_cg_con0  ,
0x100   
)

◆ check_member() [10/12]

check_member ( mmsys_cfg_regs  ,
mmsys_cg_con1  ,
0x110   
)

◆ check_member() [11/12]

check_member ( mmsys_cfg_regs  ,
mmsys_cg_con2  ,
0x120   
)

◆ check_member() [12/12]

check_member ( mmsys_cfg_regs  ,
mmsys_ovl_mout_en  ,
0xF14   
)

◆ mtk_ddp_init()

void mtk_ddp_init ( void  )

Definition at line 61 of file ddp.c.

References disp_clock_on(), SMI_LARB0, SMI_LARB_NON_SEC_CON, SMI_LARB_PORT_L0_OVL_RDMA0, and write32().

Referenced by configure_display(), and display_startup().

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

◆ mtk_ddp_mode_set()

void mtk_ddp_mode_set ( const struct edid edid)

Variable Documentation

◆ disp_aal

struct disp_aal_regs* const disp_aal = (void *)DISP_AAL0_BASE
static

Definition at line 355 of file ddp.h.

◆ disp_ccorr

struct disp_ccorr_regs* const disp_ccorr = (void *)DISP_CCORR0_BASE
static

Definition at line 353 of file ddp.h.

◆ disp_dither

struct disp_dither_regs* const disp_dither = (void *)DISP_DITHER0_BASE
static

Definition at line 359 of file ddp.h.

◆ disp_dsc

struct disp_dsc_regs* const disp_dsc = (void *)DISP_DSC0_BASE
static

Definition at line 361 of file ddp.h.

Referenced by dsc_config().

◆ disp_gamma

struct disp_gamma_regs* const disp_gamma = (void *)DISP_GAMMA0_BASE
static

Definition at line 357 of file ddp.h.

◆ disp_merge

struct disp_merge_regs* const disp_merge = (void *)DISP_MERGE0_BASE
static

Definition at line 363 of file ddp.h.

Referenced by merge_config().

◆ disp_mutex

struct disp_mutex_regs* const disp_mutex = (void *)DISP_MUTEX_BASE
static

Definition at line 148 of file ddp.h.

◆ mmsys_cfg

struct mmsys_cfg_regs* const mmsys_cfg = (void *)VDOSYS0_BASE
static

Definition at line 49 of file ddp.h.