coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
dc.h File Reference
#include <device/device.h>
#include <types.h>
Include dependency graph for dc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dc_cmd_reg
 
struct  dc_com_reg
 
struct  _disp_h_pulse
 
struct  _disp_v_pulse0
 
struct  _disp_v_pulse2
 
struct  dc_disp_reg
 
struct  dc_winc_reg
 
struct  dc_win_reg
 
struct  dc_winbuf_reg
 
struct  display_controller
 
struct  tegra_dc
 
struct  tegra_dc_mode
 

Macros

#define DISP_COMMAND_RAISE   (1 << 0)
 
#define DISP_CTRL_MODE_STOP   (0 << 5)
 
#define DISP_CTRL_MODE_C_DISPLAY   (1 << 5)
 
#define DISP_CTRL_MODE_NC_DISPLAY   (2 << 5)
 
#define DISP_COMMAND_RAISE_VECTOR(x)   (((x) & 0x1f) << 22)
 
#define DISP_COMMAND_RAISE_CHANNEL_ID(x)   (((x) & 0xf) << 27)
 
#define PW0_ENABLE   BIT(0)
 
#define PW1_ENABLE   BIT(2)
 
#define PW2_ENABLE   BIT(4)
 
#define PW3_ENABLE   BIT(6)
 
#define PW4_ENABLE   BIT(8)
 
#define PM0_ENABLE   BIT(16)
 
#define PM1_ENABLE   BIT(18)
 
#define SPI_ENABLE   BIT(24)
 
#define HSPI_ENABLE   BIT(25)
 
#define READ_MUX_ASSEMBLY   (0 << 0)
 
#define READ_MUX_ACTIVE   (1 << 0)
 
#define WRITE_MUX_ASSEMBLY   (0 << 2)
 
#define WRITE_MUX_ACTIVE   (1 << 2)
 
#define GENERAL_ACT_REQ   BIT(0)
 
#define WIN_A_ACT_REQ   BIT(1)
 
#define WIN_B_ACT_REQ   BIT(2)
 
#define WIN_C_ACT_REQ   BIT(3)
 
#define WIN_D_ACT_REQ   BIT(4)
 
#define WIN_H_ACT_REQ   BIT(5)
 
#define CURSOR_ACT_REQ   BIT(7)
 
#define GENERAL_UPDATE   BIT(8)
 
#define WIN_A_UPDATE   BIT(9)
 
#define WIN_B_UPDATE   BIT(10)
 
#define WIN_C_UPDATE   BIT(11)
 
#define WIN_D_UPDATE   BIT(12)
 
#define WIN_H_UPDATE   BIT(13)
 
#define CURSOR_UPDATE   BIT(15)
 
#define NC_HOST_TRIG   BIT(24)
 
#define WINDOW_A_SELECT   BIT(4)
 
#define WINDOW_B_SELECT   BIT(5)
 
#define WINDOW_C_SELECT   BIT(6)
 
#define WINDOW_D_SELECT   BIT(7)
 
#define WINDOW_H_SELECT   BIT(8)
 
#define CURSOR_ENABLE   BIT(16)
 
#define SOR_ENABLE   BIT(25)
 
#define TVO_ENABLE   BIT(28)
 
#define DSI_ENABLE   BIT(29)
 
#define HDMI_ENABLE   BIT(30)
 
#define VSYNC_H_POSITION(x)   ((x) & 0xfff)
 
#define SHIFT_CLK_DIVIDER_SHIFT   0
 
#define SHIFT_CLK_DIVIDER_MASK   (0xff << SHIFT_CLK_DIVIDER_SHIFT)
 
#define PIXEL_CLK_DIVIDER_SHIFT   8
 
#define PIXEL_CLK_DIVIDER_MSK   (0xf << PIXEL_CLK_DIVIDER_SHIFT)
 
#define SHIFT_CLK_DIVIDER(x)   (((x) - 1) * 2)
 
#define H_DIRECTION_DECREMENT(x)   ((x) << 0)
 
#define V_DIRECTION_DECREMENT(x)   ((x) << 2)
 
#define WIN_SCAN_COLUMN   BIT(4)
 
#define COLOR_EXPAND   BIT(6)
 
#define H_FILTER_ENABLE(x)   ((x) << 8)
 
#define V_FILTER_ENABLE(x)   ((x) << 10)
 
#define CP_ENABLE   BIT(16)
 
#define CSC_ENABLE   BIT(18)
 
#define DV_ENABLE   BIT(20)
 
#define INTERLACE_ENABLE   BIT(23)
 
#define INTERLACE_DISABLE   (0 << 23)
 
#define WIN_ENABLE   BIT(30)
 
#define DDA_INC(prescaled_size, post_scaled_size)    (((prescaled_size) - 1) * 0x1000 / ((post_scaled_size) - 1))
 
#define H_DDA_INC(x)   (((x) & 0xffff) << 0)
 
#define V_DDA_INC(x)   (((x) & 0xffff) << 16)
 

Enumerations

enum  { PIN_REG_COUNT = 4 , PIN_OUTPUT_SEL_COUNT = 7 }
 
enum  dc_disp_h_pulse_pos {
  H_PULSE0_POSITION_A , H_PULSE0_POSITION_B , H_PULSE0_POSITION_C , H_PULSE0_POSITION_D ,
  H_PULSE0_POSITION_COUNT
}
 
enum  dc_disp_v_pulse_pos { V_PULSE0_POSITION_A , V_PULSE0_POSITION_B , V_PULSE0_POSITION_C , V_PULSE0_POSITION_COUNT }
 
enum  dc_disp_h_pulse_reg { H_PULSE0 , H_PULSE1 , H_PULSE2 , H_PULSE_COUNT }
 
enum  dc_disp_pp_select {
  PP_SELECT_A , PP_SELECT_B , PP_SELECT_C , PP_SELECT_D ,
  PP_SELECT_COUNT
}
 
enum  dc_winc_filter_p { WINC_FILTER_COUNT = 0x10 }
 
enum  {
  PIXEL_CLK_DIVIDER_PCD1 , PIXEL_CLK_DIVIDER_PCD1H , PIXEL_CLK_DIVIDER_PCD2 , PIXEL_CLK_DIVIDER_PCD3 ,
  PIXEL_CLK_DIVIDER_PCD4 , PIXEL_CLK_DIVIDER_PCD6 , PIXEL_CLK_DIVIDER_PCD8 , PIXEL_CLK_DIVIDER_PCD9 ,
  PIXEL_CLK_DIVIDER_PCD12 , PIXEL_CLK_DIVIDER_PCD16 , PIXEL_CLK_DIVIDER_PCD18 , PIXEL_CLK_DIVIDER_PCD24 ,
  PIXEL_CLK_DIVIDER_PCD13
}
 
enum  {
  COLOR_DEPTH_P8 = 3 , COLOR_DEPTH_B4G4R4A4 , COLOR_DEPTH_B5G5R5A , COLOR_DEPTH_B5G6R5 ,
  COLOR_DEPTH_AB5G5R5 , COLOR_DEPTH_B8G8R8A8 = 12 , COLOR_DEPTH_R8G8B8A8 , COLOR_DEPTH_YCbCr422 = 16 ,
  COLOR_DEPTH_YUV422 , COLOR_DEPTH_YCbCr420P , COLOR_DEPTH_YUV420P , COLOR_DEPTH_YCbCr422P ,
  COLOR_DEPTH_YUV422P , COLOR_DEPTH_N422R , COLOR_DEPTH_YCbCr422R = COLOR_DEPTH_N422R , COLOR_DEPTH_N422R_TRUE ,
  COLOR_DEPTH_YUV422R = COLOR_DEPTH_N422R_TRUE , COLOR_DEPTH_CrYCbY422 , COLOR_DEPTH_VYUY422
}
 

Functions

 check_member (dc_cmd_reg, reg_act_ctrl, 0x43 *4)
 
 check_member (dc_com_reg, crc_checksum_latched,(0x329 - 0x300) *4)
 
 check_member (dc_disp_reg, blend_background_color,(0x4e4 - 0x400) *4)
 
 check_member (dc_winc_reg, v_filter_p,(0x619 - 0x500) *4)
 
 check_member (dc_win_reg, blend_alpha_1bit,(0x719 - 0x700) *4)
 
 check_member (dc_winbuf_reg, start_addr_hi,(0x80d - 0x800) *4)
 
 check_member (display_controller, winbuf, 0x800 *4)
 
unsigned long READL (void *p)
 
void WRITEL (unsigned long value, void *p)
 
void display_startup (struct device *dev)
 
void dp_init (void *_config)
 
void dp_enable (void *_dp)
 
unsigned int fb_base_mb (void)
 

Macro Definition Documentation

◆ COLOR_EXPAND

#define COLOR_EXPAND   BIT(6)

Definition at line 436 of file dc.h.

◆ CP_ENABLE

#define CP_ENABLE   BIT(16)

Definition at line 439 of file dc.h.

◆ CSC_ENABLE

#define CSC_ENABLE   BIT(18)

Definition at line 440 of file dc.h.

◆ CURSOR_ACT_REQ

#define CURSOR_ACT_REQ   BIT(7)

Definition at line 383 of file dc.h.

◆ CURSOR_ENABLE

#define CURSOR_ENABLE   BIT(16)

Definition at line 401 of file dc.h.

◆ CURSOR_UPDATE

#define CURSOR_UPDATE   BIT(15)

Definition at line 390 of file dc.h.

◆ DDA_INC

#define DDA_INC (   prescaled_size,
  post_scaled_size 
)     (((prescaled_size) - 1) * 0x1000 / ((post_scaled_size) - 1))

Definition at line 470 of file dc.h.

◆ DISP_COMMAND_RAISE

#define DISP_COMMAND_RAISE   (1 << 0)

Definition at line 352 of file dc.h.

◆ DISP_COMMAND_RAISE_CHANNEL_ID

#define DISP_COMMAND_RAISE_CHANNEL_ID (   x)    (((x) & 0xf) << 27)

Definition at line 357 of file dc.h.

◆ DISP_COMMAND_RAISE_VECTOR

#define DISP_COMMAND_RAISE_VECTOR (   x)    (((x) & 0x1f) << 22)

Definition at line 356 of file dc.h.

◆ DISP_CTRL_MODE_C_DISPLAY

#define DISP_CTRL_MODE_C_DISPLAY   (1 << 5)

Definition at line 354 of file dc.h.

◆ DISP_CTRL_MODE_NC_DISPLAY

#define DISP_CTRL_MODE_NC_DISPLAY   (2 << 5)

Definition at line 355 of file dc.h.

◆ DISP_CTRL_MODE_STOP

#define DISP_CTRL_MODE_STOP   (0 << 5)

Definition at line 353 of file dc.h.

◆ DSI_ENABLE

#define DSI_ENABLE   BIT(29)

Definition at line 404 of file dc.h.

◆ DV_ENABLE

#define DV_ENABLE   BIT(20)

Definition at line 441 of file dc.h.

◆ GENERAL_ACT_REQ

#define GENERAL_ACT_REQ   BIT(0)

Definition at line 377 of file dc.h.

◆ GENERAL_UPDATE

#define GENERAL_UPDATE   BIT(8)

Definition at line 384 of file dc.h.

◆ H_DDA_INC

#define H_DDA_INC (   x)    (((x) & 0xffff) << 0)

Definition at line 472 of file dc.h.

◆ H_DIRECTION_DECREMENT

#define H_DIRECTION_DECREMENT (   x)    ((x) << 0)

Definition at line 433 of file dc.h.

◆ H_FILTER_ENABLE

#define H_FILTER_ENABLE (   x)    ((x) << 8)

Definition at line 437 of file dc.h.

◆ HDMI_ENABLE

#define HDMI_ENABLE   BIT(30)

Definition at line 405 of file dc.h.

◆ HSPI_ENABLE

#define HSPI_ENABLE   BIT(25)

Definition at line 368 of file dc.h.

◆ INTERLACE_DISABLE

#define INTERLACE_DISABLE   (0 << 23)

Definition at line 443 of file dc.h.

◆ INTERLACE_ENABLE

#define INTERLACE_ENABLE   BIT(23)

Definition at line 442 of file dc.h.

◆ NC_HOST_TRIG

#define NC_HOST_TRIG   BIT(24)

Definition at line 391 of file dc.h.

◆ PIXEL_CLK_DIVIDER_MSK

#define PIXEL_CLK_DIVIDER_MSK   (0xf << PIXEL_CLK_DIVIDER_SHIFT)

Definition at line 414 of file dc.h.

◆ PIXEL_CLK_DIVIDER_SHIFT

#define PIXEL_CLK_DIVIDER_SHIFT   8

Definition at line 413 of file dc.h.

◆ PM0_ENABLE

#define PM0_ENABLE   BIT(16)

Definition at line 365 of file dc.h.

◆ PM1_ENABLE

#define PM1_ENABLE   BIT(18)

Definition at line 366 of file dc.h.

◆ PW0_ENABLE

#define PW0_ENABLE   BIT(0)

Definition at line 360 of file dc.h.

◆ PW1_ENABLE

#define PW1_ENABLE   BIT(2)

Definition at line 361 of file dc.h.

◆ PW2_ENABLE

#define PW2_ENABLE   BIT(4)

Definition at line 362 of file dc.h.

◆ PW3_ENABLE

#define PW3_ENABLE   BIT(6)

Definition at line 363 of file dc.h.

◆ PW4_ENABLE

#define PW4_ENABLE   BIT(8)

Definition at line 364 of file dc.h.

◆ READ_MUX_ACTIVE

#define READ_MUX_ACTIVE   (1 << 0)

Definition at line 372 of file dc.h.

◆ READ_MUX_ASSEMBLY

#define READ_MUX_ASSEMBLY   (0 << 0)

Definition at line 371 of file dc.h.

◆ SHIFT_CLK_DIVIDER

#define SHIFT_CLK_DIVIDER (   x)    (((x) - 1) * 2)

Definition at line 430 of file dc.h.

◆ SHIFT_CLK_DIVIDER_MASK

#define SHIFT_CLK_DIVIDER_MASK   (0xff << SHIFT_CLK_DIVIDER_SHIFT)

Definition at line 412 of file dc.h.

◆ SHIFT_CLK_DIVIDER_SHIFT

#define SHIFT_CLK_DIVIDER_SHIFT   0

Definition at line 411 of file dc.h.

◆ SOR_ENABLE

#define SOR_ENABLE   BIT(25)

Definition at line 402 of file dc.h.

◆ SPI_ENABLE

#define SPI_ENABLE   BIT(24)

Definition at line 367 of file dc.h.

◆ TVO_ENABLE

#define TVO_ENABLE   BIT(28)

Definition at line 403 of file dc.h.

◆ V_DDA_INC

#define V_DDA_INC (   x)    (((x) & 0xffff) << 16)

Definition at line 473 of file dc.h.

◆ V_DIRECTION_DECREMENT

#define V_DIRECTION_DECREMENT (   x)    ((x) << 2)

Definition at line 434 of file dc.h.

◆ V_FILTER_ENABLE

#define V_FILTER_ENABLE (   x)    ((x) << 10)

Definition at line 438 of file dc.h.

◆ VSYNC_H_POSITION

#define VSYNC_H_POSITION (   x)    ((x) & 0xfff)

Definition at line 408 of file dc.h.

◆ WIN_A_ACT_REQ

#define WIN_A_ACT_REQ   BIT(1)

Definition at line 378 of file dc.h.

◆ WIN_A_UPDATE

#define WIN_A_UPDATE   BIT(9)

Definition at line 385 of file dc.h.

◆ WIN_B_ACT_REQ

#define WIN_B_ACT_REQ   BIT(2)

Definition at line 379 of file dc.h.

◆ WIN_B_UPDATE

#define WIN_B_UPDATE   BIT(10)

Definition at line 386 of file dc.h.

◆ WIN_C_ACT_REQ

#define WIN_C_ACT_REQ   BIT(3)

Definition at line 380 of file dc.h.

◆ WIN_C_UPDATE

#define WIN_C_UPDATE   BIT(11)

Definition at line 387 of file dc.h.

◆ WIN_D_ACT_REQ

#define WIN_D_ACT_REQ   BIT(4)

Definition at line 381 of file dc.h.

◆ WIN_D_UPDATE

#define WIN_D_UPDATE   BIT(12)

Definition at line 388 of file dc.h.

◆ WIN_ENABLE

#define WIN_ENABLE   BIT(30)

Definition at line 444 of file dc.h.

◆ WIN_H_ACT_REQ

#define WIN_H_ACT_REQ   BIT(5)

Definition at line 382 of file dc.h.

◆ WIN_H_UPDATE

#define WIN_H_UPDATE   BIT(13)

Definition at line 389 of file dc.h.

◆ WIN_SCAN_COLUMN

#define WIN_SCAN_COLUMN   BIT(4)

Definition at line 435 of file dc.h.

◆ WINDOW_A_SELECT

#define WINDOW_A_SELECT   BIT(4)

Definition at line 394 of file dc.h.

◆ WINDOW_B_SELECT

#define WINDOW_B_SELECT   BIT(5)

Definition at line 395 of file dc.h.

◆ WINDOW_C_SELECT

#define WINDOW_C_SELECT   BIT(6)

Definition at line 396 of file dc.h.

◆ WINDOW_D_SELECT

#define WINDOW_D_SELECT   BIT(7)

Definition at line 397 of file dc.h.

◆ WINDOW_H_SELECT

#define WINDOW_H_SELECT   BIT(8)

Definition at line 398 of file dc.h.

◆ WRITE_MUX_ACTIVE

#define WRITE_MUX_ACTIVE   (1 << 2)

Definition at line 374 of file dc.h.

◆ WRITE_MUX_ASSEMBLY

#define WRITE_MUX_ASSEMBLY   (0 << 2)

Definition at line 373 of file dc.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PIN_REG_COUNT 
PIN_OUTPUT_SEL_COUNT 

Definition at line 75 of file dc.h.

◆ anonymous enum

anonymous enum
Enumerator
PIXEL_CLK_DIVIDER_PCD1 
PIXEL_CLK_DIVIDER_PCD1H 
PIXEL_CLK_DIVIDER_PCD2 
PIXEL_CLK_DIVIDER_PCD3 
PIXEL_CLK_DIVIDER_PCD4 
PIXEL_CLK_DIVIDER_PCD6 
PIXEL_CLK_DIVIDER_PCD8 
PIXEL_CLK_DIVIDER_PCD9 
PIXEL_CLK_DIVIDER_PCD12 
PIXEL_CLK_DIVIDER_PCD16 
PIXEL_CLK_DIVIDER_PCD18 
PIXEL_CLK_DIVIDER_PCD24 
PIXEL_CLK_DIVIDER_PCD13 

Definition at line 415 of file dc.h.

◆ anonymous enum

anonymous enum
Enumerator
COLOR_DEPTH_P8 
COLOR_DEPTH_B4G4R4A4 
COLOR_DEPTH_B5G5R5A 
COLOR_DEPTH_B5G6R5 
COLOR_DEPTH_AB5G5R5 
COLOR_DEPTH_B8G8R8A8 
COLOR_DEPTH_R8G8B8A8 
COLOR_DEPTH_YCbCr422 
COLOR_DEPTH_YUV422 
COLOR_DEPTH_YCbCr420P 
COLOR_DEPTH_YUV420P 
COLOR_DEPTH_YCbCr422P 
COLOR_DEPTH_YUV422P 
COLOR_DEPTH_N422R 
COLOR_DEPTH_YCbCr422R 
COLOR_DEPTH_N422R_TRUE 
COLOR_DEPTH_YUV422R 
COLOR_DEPTH_CrYCbY422 
COLOR_DEPTH_VYUY422 

Definition at line 447 of file dc.h.

◆ dc_disp_h_pulse_pos

Enumerator
H_PULSE0_POSITION_A 
H_PULSE0_POSITION_B 
H_PULSE0_POSITION_C 
H_PULSE0_POSITION_D 
H_PULSE0_POSITION_COUNT 

Definition at line 124 of file dc.h.

◆ dc_disp_h_pulse_reg

Enumerator
H_PULSE0 
H_PULSE1 
H_PULSE2 
H_PULSE_COUNT 

Definition at line 160 of file dc.h.

◆ dc_disp_pp_select

Enumerator
PP_SELECT_A 
PP_SELECT_B 
PP_SELECT_C 
PP_SELECT_D 
PP_SELECT_COUNT 

Definition at line 167 of file dc.h.

◆ dc_disp_v_pulse_pos

Enumerator
V_PULSE0_POSITION_A 
V_PULSE0_POSITION_B 
V_PULSE0_POSITION_C 
V_PULSE0_POSITION_COUNT 

Definition at line 139 of file dc.h.

◆ dc_winc_filter_p

Enumerator
WINC_FILTER_COUNT 

Definition at line 244 of file dc.h.

Function Documentation

◆ check_member() [1/7]

check_member ( dc_cmd_reg  ,
reg_act_ctrl  ,
0x43 *  4 
)

◆ check_member() [2/7]

check_member ( dc_com_reg  ,
crc_checksum_latched  ,
(0x329 - 0x300) *  4 
)

◆ check_member() [3/7]

check_member ( dc_disp_reg  ,
blend_background_color  ,
(0x4e4 - 0x400) *  4 
)

◆ check_member() [4/7]

check_member ( dc_win_reg  ,
blend_alpha_1bit  ,
(0x719 - 0x700) *  4 
)

◆ check_member() [5/7]

check_member ( dc_winbuf_reg  ,
start_addr_hi  ,
(0x80d - 0x800) *  4 
)

◆ check_member() [6/7]

check_member ( dc_winc_reg  ,
v_filter_p  ,
(0x619 - 0x500) *  4 
)

◆ check_member() [7/7]

check_member ( display_controller  ,
winbuf  ,
0x800 *  4 
)

◆ display_startup()

◆ dp_enable()

◆ dp_init()

◆ fb_base_mb()

unsigned int fb_base_mb ( void  )

Definition at line 190 of file display.c.

References FB_SIZE_MB, and sdram_max_addressable_mb().

Referenced by display_startup(), and soc_read_resources().

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

◆ READL()

◆ WRITEL()