20 #include <soc/qcom_qup_se.h>
24 #include <soc/addressmap.h>
26 #define BRIDGE_BUS QUPV3_0_SE2
27 #define BRIDGE_SN65DSI86_CHIP 0x2d
28 #define BRIDGE_PS8640_CHIP 0x08
67 if (!
CONFIG(CONSOLE_SERIAL))
152 if (
CONFIG(TROGDOR_HAS_MIPI_PANEL))
158 const char *cbfs_filename =
NULL;
161 if (
CONFIG(BOARD_GOOGLE_MRBLAND)) {
165 cbfs_filename =
"panel-BOE_TV101WUM_N53";
169 cbfs_filename =
"panel-AUO_B101UAN08_3";
175 if (
CONFIG(BOARD_GOOGLE_QUACKINGSTICK)) {
178 cbfs_filename =
"panel-AUO_B101UAN08_3";
184 if (
CONFIG(BOARD_GOOGLE_WORMDINGLER)) {
187 cbfs_filename =
"panel-INX_P110ZZD_DF0";
191 cbfs_filename =
"panel-BOE_TV110C9M_LL0";
202 printk(
BIOS_ERR,
"Could not find panel data for %s!\n", cbfs_filename);
217 if (
CONFIG(TROGDOR_HAS_MIPI_PANEL)) {
226 &panel->
edid, lanes, dsi_bpp);
227 if (
CONFIG(TROGDOR_HAS_BRIDGE_BACKLIGHT))
252 if (
CONFIG(TROGDOR_HAS_MIPI_PANEL)) {
292 if (
CONFIG(TROGDOR_HAS_FINGERPRINT))
struct chip_operations mainboard_ops
static void write32(void *addr, uint32_t val)
int display_init_required(void)
cb_err
coreboot error codes
@ CB_ERR
Generic error code.
@ CB_SUCCESS
Call completed successfully.
static void * cbfs_map(const char *name, size_t *size_out)
lb_fb_orientation
coreboot framebuffer
@ LB_FB_ORIENTATION_NORMAL
@ LB_FB_ORIENTATION_LEFT_UP
#define printk(level,...)
void mdelay(unsigned int msecs)
uint32_t board_id(void)
board_id() - Get the board version
struct fb_info * fb_new_framebuffer_info_from_edid(const struct edid *edid, uintptr_t fb_addr)
void fb_set_orientation(struct fb_info *info, enum lb_fb_orientation orientation)
void display_startup(struct device *dev)
#define GPIO_VDD_RESET_1V8
#define GPIO_EN_PP3300_DX_EDP
#define GPIO_MIPI_1V8_ENABLE
#define GPIO_PS8640_EDP_BRIDGE_RST_L
#define GPIO_PS8640_EDP_BRIDGE_PD_L
#define GPIO_AVEE_LCD_ENABLE
#define GPIO_PS8640_EDP_BRIDGE_3V3_ENABLE
#define GPIO_EDP_BRIDGE_ENABLE
#define GPIO_AVDD_LCD_ENABLE
static void mainboard_init(struct device *dev)
static bool is_ps8640_bridge(void)
static enum cb_err display_init(struct panel_serializable_data *panel)
static void qi2s_configure_gpios(void)
static struct panel_serializable_data * get_mipi_panel(enum lb_fb_orientation *orientation)
#define BRIDGE_SN65DSI86_CHIP
static void configure_sdhci(void)
static struct usb_board_data usb0_board_data
static void configure_mipi_panel(void)
static void setup_usb(void)
static void mainboard_enable(struct device *dev)
static void power_on_sn65dsi86_bridge(void)
static void power_on_ps8640_bridge(void)
static void load_qup_fw(void)
#define BRIDGE_PS8640_CHIP
void edid_set_framebuffer_bits_per_pixel(struct edid *edid, int fb_bpp, int row_byte_alignment)
void gpio_output(gpio_t gpio, int value)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
static uint8_t panel_id(void)
void mdp_dsi_video_config(struct edid *edid)
void mdp_dsi_video_on(void)
int ps8640_init(uint8_t bus, uint8_t chip)
int ps8640_get_edid(uint8_t bus, uint8_t chip, struct edid *out)
void setup_usb_host0(void *board_data)
void mdss_dsi_video_mode_config(struct edid *edid, uint32_t bpp)
enum cb_err mdss_dsi_panel_initialize(const u8 *init_cmds)
enum cb_err mdss_dsi_config(struct edid *edid, uint32_t num_of_lanes, uint32_t bpp)
void qupv3_se_fw_load_and_init(unsigned int bus, unsigned int protocol, unsigned int mode)
void sn65dsi86_backlight_enable(uint8_t bus, uint8_t chip)
void sn65dsi86_bridge_init(uint8_t bus, uint8_t chip, enum dp_pll_clk_src ref_clk)
void sn65dsi86_bridge_configure(uint8_t bus, uint8_t chip, struct edid *edid, uint32_t num_of_lanes, uint32_t dsi_bpp)
enum cb_err sn65dsi86_bridge_read_edid(uint8_t bus, uint8_t chip, struct edid *out)
void i2c_init(unsigned int bus)
void gpio_configure(gpio_t gpio, uint32_t func, uint32_t pull, uint32_t drive_str, uint32_t enable)
#define SDC1_TLMM_CFG_ADDR
#define SDC2_TLMM_CFG_ADDR
void(* enable_dev)(struct device *dev)
void(* init)(struct device *dev)
struct device_operations * ops