#include #include "lcm_drv.h" // --------------------------------------------------------------------------- // Local Constants // --------------------------------------------------------------------------- #define FRAME_WIDTH (480) #define FRAME_HEIGHT (800) // --------------------------------------------------------------------------- // Local Variables // --------------------------------------------------------------------------- static LCM_UTIL_FUNCS lcm_util = {0}; #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v))) #define UDELAY(n) (lcm_util.udelay(n)) #define MDELAY(n) (lcm_util.mdelay(n)) // --------------------------------------------------------------------------- // Local Functions // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // LCM Driver Implementations // --------------------------------------------------------------------------- static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util) { memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS)); } static void lcm_get_params(LCM_PARAMS *params) { memset(params, 0, sizeof(LCM_PARAMS)); params->type = LCM_TYPE_DPI; params->ctrl = LCM_CTRL_NONE; params->width = FRAME_WIDTH; params->height = FRAME_HEIGHT; params->dpi.mipi_pll_clk_ref = 0; params->dpi.mipi_pll_clk_div1 = 42; params->dpi.mipi_pll_clk_div2 = 10; params->dpi.dpi_clk_div = 2; params->dpi.dpi_clk_duty = 1; params->dpi.clk_pol = LCM_POLARITY_FALLING; params->dpi.de_pol = LCM_POLARITY_FALLING; params->dpi.vsync_pol = LCM_POLARITY_FALLING; params->dpi.hsync_pol = LCM_POLARITY_FALLING; params->dpi.hsync_pulse_width = 4; params->dpi.hsync_back_porch = 10; params->dpi.hsync_front_porch = 18; params->dpi.vsync_pulse_width = 2; params->dpi.vsync_back_porch = 2; params->dpi.vsync_front_porch = 14; params->dpi.format = LCM_DPI_FORMAT_RGB888; params->dpi.rgb_order = LCM_COLOR_ORDER_RGB; params->dpi.is_serial_output = 0; params->dpi.intermediat_buffer_num = 2; params->dpi.io_driving_current = 0; } static void lcm_init(void) { } static void lcm_suspend(void) { } static void lcm_resume(void) { } // --------------------------------------------------------------------------- // Get LCM Driver Hooks // --------------------------------------------------------------------------- const LCM_DRIVER* LCM_GetDriver() { static const LCM_DRIVER LCM_DRV = { .set_util_funcs = lcm_set_util_funcs, .get_params = lcm_get_params, .init = lcm_init, .suspend = lcm_suspend, .resume = lcm_resume }; return &LCM_DRV; }