![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <assert.h>
#include <console/console.h>
#include <mipi/panel.h>
#include <device/mmio.h>
#include <delay.h>
#include <edid.h>
#include <soc/dsi.h>
#include <string.h>
#include <timer.h>
Go to the source code of this file.
Macros | |
#define | MIN_HFP_BYTE 2 |
#define | MIN_HBP_BYTE 2 |
Functions | |
static unsigned int | mtk_dsi_get_bits_per_pixel (u32 format) |
static u32 | mtk_dsi_get_data_rate (u32 bits_per_pixel, u32 lanes, const struct edid *edid) |
__weak void | mtk_dsi_override_phy_timing (struct mtk_phy_timing *timing) |
static void | mtk_dsi_phy_timing (u32 data_rate, struct mtk_phy_timing *timing) |
static void | mtk_dsi_clk_hs_mode_enable (void) |
static void | mtk_dsi_clk_hs_mode_disable (void) |
static void | mtk_dsi_set_mode (u32 mode_flags) |
static void | mtk_dsi_rxtx_control (u32 mode_flags, u32 lanes) |
static void | mtk_dsi_config_vdo_timing (u32 mode_flags, u32 format, u32 lanes, const struct edid *edid, const struct mtk_phy_timing *phy_timing) |
static void | mtk_dsi_start (void) |
static bool | mtk_dsi_is_read_command (enum mipi_dsi_transaction type) |
static enum cb_err | mtk_dsi_cmdq (enum mipi_dsi_transaction type, const u8 *data, u8 len) |
static void | mtk_dsi_reset_dphy (void) |
int | mtk_dsi_init (u32 mode_flags, u32 format, u32 lanes, const struct edid *edid, const u8 *init_commands) |
Definition at line 116 of file dsi.c.
References clrbits32, dsi0, dsi_regs::dsi_phy_lccon, and LC_HS_TX_EN.
Referenced by mtk_dsi_init().
Definition at line 111 of file dsi.c.
References dsi0, dsi_regs::dsi_phy_lccon, LC_HS_TX_EN, and setbits32.
Referenced by mtk_dsi_init().
|
static |
Definition at line 293 of file dsi.c.
References MIPI_DSI_DCS_READ, MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM, MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM, MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM, and type.
Referenced by mtk_dsi_init().
|
static |
Definition at line 167 of file dsi.c.
References BIOS_ERR, BIOS_NOTICE, mtk_phy_timing::d_phy, mtk_phy_timing::da_hs_exit, mtk_phy_timing::da_hs_prepare, mtk_phy_timing::da_hs_zero, DIV_ROUND_UP, dsi0, dsi_regs::dsi_hbp_wc, dsi_regs::dsi_hfp_wc, dsi_regs::dsi_hsa_wc, DSI_PS_WC, DSI_PSCON_CUSTOM_HEADER_SHIFT, dsi_regs::dsi_psctrl, dsi_regs::dsi_size_con, DSI_SIZE_CON_HEIGHT_SHIFT, DSI_SIZE_CON_WIDTH_SHIFT, dsi_regs::dsi_vact_nl, dsi_regs::dsi_vbp_nl, dsi_regs::dsi_vfp_nl, dsi_regs::dsi_vsa_nl, edid_mode::ha, edid_mode::hbl, edid_mode::hborder, edid_mode::hso, edid_mode::hspw, LOOSELY_PS_18BIT_RGB666, mtk_phy_timing::lpx, MIN_HBP_BYTE, MIN_HFP_BYTE, MIPI_DSI_FMT_RGB565, MIPI_DSI_FMT_RGB666, MIPI_DSI_FMT_RGB666_PACKED, MIPI_DSI_FMT_RGB888, MIPI_DSI_MODE_EOT_PACKET, MIPI_DSI_MODE_LINE_END, MIPI_DSI_MODE_VIDEO_BURST, MIPI_DSI_MODE_VIDEO_SYNC_PULSE, edid::mode, mtk_dsi_get_bits_per_pixel(), MTK_DSI_HAVE_SIZE_CON, PACKED_PS_16BIT_RGB565, PACKED_PS_18BIT_RGB666, PACKED_PS_24BIT_RGB888, PIXEL_STREAM_CUSTOM_HEADER, printk, edid_mode::va, edid_mode::vbl, edid_mode::vborder, edid_mode::vso, edid_mode::vspw, and write32().
Referenced by mtk_dsi_init().
Definition at line 16 of file dsi.c.
References BIOS_WARNING, MIPI_DSI_FMT_RGB565, MIPI_DSI_FMT_RGB666, MIPI_DSI_FMT_RGB666_PACKED, MIPI_DSI_FMT_RGB888, and printk.
Referenced by mtk_dsi_config_vdo_timing(), and mtk_dsi_init().
Definition at line 32 of file dsi.c.
References BIOS_ERR, BIOS_INFO, DIV_ROUND_UP, MHz, edid::mode, MTK_DSI_DATA_RATE_MIN_MHZ, MTK_DSI_MIPI_RATIO_DENOMINATOR, MTK_DSI_MIPI_RATIO_NUMERATOR, edid_mode::pixel_clock, and printk.
Referenced by mtk_dsi_init().
int mtk_dsi_init | ( | u32 | mode_flags, |
u32 | format, | ||
u32 | lanes, | ||
const struct edid * | edid, | ||
const u8 * | init_commands | ||
) |
Definition at line 360 of file dsi.c.
References mdelay(), mipi_panel_parse_init_commands(), mtk_dsi_clk_hs_mode_disable(), mtk_dsi_clk_hs_mode_enable(), mtk_dsi_cmdq(), mtk_dsi_config_vdo_timing(), mtk_dsi_configure_mipi_tx(), mtk_dsi_get_bits_per_pixel(), mtk_dsi_get_data_rate(), mtk_dsi_phy_timing(), mtk_dsi_reset(), mtk_dsi_reset_dphy(), mtk_dsi_rxtx_control(), mtk_dsi_set_mode(), and mtk_dsi_start().
Referenced by configure_display(), and display_startup().
|
static |
__weak void mtk_dsi_override_phy_timing | ( | struct mtk_phy_timing * | timing | ) |
Definition at line 62 of file dsi.c.
Referenced by mtk_dsi_phy_timing().
|
static |
Definition at line 67 of file dsi.c.
References mtk_phy_timing::clk_hs_exit, mtk_phy_timing::clk_hs_post, mtk_phy_timing::clk_hs_prepare, mtk_phy_timing::clk_hs_trail, mtk_phy_timing::clk_hs_zero, mtk_phy_timing::da_hs_exit, mtk_phy_timing::da_hs_prepare, mtk_phy_timing::da_hs_sync, mtk_phy_timing::da_hs_trail, mtk_phy_timing::da_hs_zero, DIV_ROUND_UP, dsi0, dsi_regs::dsi_phy_timecon0, dsi_regs::dsi_phy_timecon1, dsi_regs::dsi_phy_timecon2, dsi_regs::dsi_phy_timecon3, mtk_phy_timing::lpx, memset(), MHz, mtk_dsi_override_phy_timing(), mtk_phy_timing::ta_get, mtk_phy_timing::ta_go, mtk_phy_timing::ta_sure, and write32().
Referenced by mtk_dsi_init().
Definition at line 354 of file dsi.c.
References clrbits32, DPHY_RESET, dsi0, dsi_regs::dsi_con_ctrl, and setbits32.
Referenced by mtk_dsi_init().
Definition at line 138 of file dsi.c.
References dsi0, dsi_regs::dsi_txrx_ctrl, EOTP_DISABLE, MIPI_DSI_CLOCK_NON_CONTINUOUS, MIPI_DSI_MODE_EOT_PACKET, NON_CONTINUOUS_CLK, and write32().
Referenced by mtk_dsi_init().
Definition at line 121 of file dsi.c.
References BURST_MODE, dsi0, dsi_regs::dsi_mode_ctrl, MIPI_DSI_MODE_VIDEO, MIPI_DSI_MODE_VIDEO_BURST, MIPI_DSI_MODE_VIDEO_SYNC_PULSE, SYNC_PULSE_MODE, and write32().
Referenced by mtk_dsi_init().
Definition at line 286 of file dsi.c.
References dsi0, dsi_regs::dsi_start, and write32().
Referenced by mtk_dsi_init().