static void dw_mipi_dsi_init(struct dw_mipi_dsi *dsi) { dsi_write(dsi, DSI_PWR_UP, RESET); dsi_write(dsi, DSI_PHY_RSTZ, PHY_DISFORCEPLL | PHY_DISABLECLK | PHY_RSTZ | PHY_SHUTDOWNZ); dsi_write(dsi, DSI_CLKMGR_CFG, TO_CLK_DIVIDSION(10) | TX_ESC_CLK_DIVIDSION(7)); dsi_write(dsi, DSI_LPCLK_CTRL, PHY_TXREQUESTCLKHS); }
static void dw_mipi_dsi_init(struct dw_mipi_dsi *dsi) { /* * The maximum permitted escape clock is 20MHz and it is derived from * lanebyteclk, which is running at "lane_mbps / 8". Thus we want: * * (lane_mbps >> 3) / esc_clk_division < 20 * which is: * (lane_mbps >> 3) / 20 > esc_clk_division */ u32 esc_clk_division = (dsi->lane_mbps >> 3) / 20 + 1; dsi_write(dsi, DSI_PWR_UP, RESET); dsi_write(dsi, DSI_PHY_RSTZ, PHY_DISFORCEPLL | PHY_DISABLECLK | PHY_RSTZ | PHY_SHUTDOWNZ); dsi_write(dsi, DSI_CLKMGR_CFG, TO_CLK_DIVIDSION(10) | TX_ESC_CLK_DIVIDSION(esc_clk_division)); } static void dw_mipi_dsi_dpi_config(struct dw_mipi_dsi *dsi, struct drm_display_mode *mode) { u32 val = 0, color = 0; switch (dsi->format) { case MIPI_DSI_FMT_RGB888: color = DPI_COLOR_CODING_24BIT; break; case MIPI_DSI_FMT_RGB666: color = DPI_COLOR_CODING_18BIT_2 | EN18_LOOSELY; break;