static void sdi_basic_init(void) { dispc_set_parallel_interface_mode(OMAP_DSS_PARALLELMODE_BYPASS); dispc_set_lcd_display_type(OMAP_DSS_LCD_DISPLAY_TFT); dispc_set_tft_data_lines(24); dispc_lcd_enable_signal_polarity(1); }
static void dpi_basic_init(struct omap_dss_device *dssdev) { bool is_tft; is_tft = (dssdev->panel.config & OMAP_DSS_LCD_TFT) != 0; dispc_set_parallel_interface_mode(dssdev->channel, OMAP_DSS_PARALLELMODE_BYPASS); dispc_set_lcd_display_type(dssdev->channel, is_tft ? OMAP_DSS_LCD_DISPLAY_TFT : OMAP_DSS_LCD_DISPLAY_STN); dispc_set_tft_data_lines(dssdev->channel, dssdev->phy.dpi.data_lines); }
static void sdi_basic_init(void) { dispc_set_parallel_interface_mode(OMAP_DSS_CHANNEL_LCD, OMAP_DSS_PARALLELMODE_BYPASS); /* TODO: change here for LCD2 support */ dispc_set_lcd_display_type(OMAP_DSS_CHANNEL_LCD, OMAP_DSS_LCD_DISPLAY_TFT); dispc_set_tft_data_lines(OMAP_DSS_CHANNEL_LCD, 24); dispc_lcd_enable_signal_polarity(1); }
static int dpi_basic_init(struct omap_display *display) { bool is_tft; is_tft = (display->panel->config & OMAP_DSS_LCD_TFT) != 0; dispc_set_parallel_interface_mode(OMAP_DSS_PARALLELMODE_BYPASS); dispc_set_lcd_display_type(is_tft ? OMAP_DSS_LCD_DISPLAY_TFT : OMAP_DSS_LCD_DISPLAY_STN); dispc_set_tft_data_lines(display->hw_config.u.dpi.data_lines); return 0; }
static int rfbi_display_enable(struct omap_dss_device *dssdev) { int r; dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; r = omap_dss_start_device(dssdev); if (r) { DSSERR("failed to start device\n"); goto err0; } r = omap_dispc_register_isr(framedone_callback, NULL, DISPC_IRQ_FRAMEDONE); if (r) { DSSERR("can't get FRAMEDONE irq\n"); goto err1; } dispc_set_lcd_display_type(OMAP_DSS_LCD_DISPLAY_TFT); dispc_set_parallel_interface_mode(OMAP_DSS_PARALLELMODE_RFBI); dispc_set_tft_data_lines(dssdev->ctrl.pixel_size); rfbi_configure(dssdev->phy.rfbi.channel, dssdev->ctrl.pixel_size, dssdev->phy.rfbi.data_lines); rfbi_set_timings(dssdev->phy.rfbi.channel, &dssdev->ctrl.rfbi_timings); if (dssdev->driver->enable) { r = dssdev->driver->enable(dssdev); if (r) goto err2; } return 0; err2: omap_dispc_unregister_isr(framedone_callback, NULL, DISPC_IRQ_FRAMEDONE); err1: omap_dss_stop_device(dssdev); err0: return r; }
static int dpi_basic_init(struct omap_dss_device *dssdev) { bool is_tft; if (!dssdev->manager) return -ENODEV; is_tft = (dssdev->panel.config & OMAP_DSS_LCD_TFT) != 0; dispc_set_parallel_interface_mode(dssdev->manager->id, OMAP_DSS_PARALLELMODE_BYPASS); dispc_set_lcd_display_type(dssdev->manager->id, is_tft ? OMAP_DSS_LCD_DISPLAY_TFT : OMAP_DSS_LCD_DISPLAY_STN); dispc_set_tft_data_lines(dssdev->manager->id, dssdev->phy.dpi.data_lines); return 0; }
int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev) { int r; r = rfbi_runtime_get(); if (r) return r; r = omap_dss_start_device(dssdev); if (r) { DSSERR("failed to start device\n"); goto err0; } r = omap_dispc_register_isr(framedone_callback, NULL, DISPC_IRQ_FRAMEDONE); if (r) { DSSERR("can't get FRAMEDONE irq\n"); goto err1; } dispc_set_lcd_display_type(dssdev->manager->id, OMAP_DSS_LCD_DISPLAY_TFT); dispc_set_parallel_interface_mode(dssdev->manager->id, OMAP_DSS_PARALLELMODE_RFBI); dispc_set_tft_data_lines(dssdev->manager->id, dssdev->ctrl.pixel_size); rfbi_configure(dssdev->phy.rfbi.channel, dssdev->ctrl.pixel_size, dssdev->phy.rfbi.data_lines); rfbi_set_timings(dssdev->phy.rfbi.channel, &dssdev->ctrl.rfbi_timings); return 0; err1: omap_dss_stop_device(dssdev); err0: rfbi_runtime_put(); return r; }
static int dpi_set_data_lines(struct omap_dss_device *dssdev, int data_lines) { int r = 0; if (dssdev->channel != OMAP_DSS_CHANNEL_LCD && dssdev->channel != OMAP_DSS_CHANNEL_LCD2) return -EINVAL; dispc_enable_lcd_out(dssdev->channel, 0); r = dispc_set_tft_data_lines(dssdev->channel, data_lines); if (!r) dssdev->phy.dpi.data_lines = data_lines; dispc_enable_lcd_out(dssdev->channel, 1); return r; }
int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev) { int r; struct dispc_clock_info dispc_cinfo; struct omap_video_timings timings = { .hsw = 1, .hfp = 1, .hbp = 1, .vsw = 1, .vfp = 0, .vbp = 0, }; r = omap_dss_start_device(dssdev); if (r) { DSSERR("RFBI: failed to start device\n"); return r; } r = rfbi_runtime_get(); if (r) { DSSERR("RFBI: failed to get runtime\n"); goto err0; } r = omap_dispc_register_isr(framedone_callback, NULL, DISPC_IRQ_FRAMEDONE); if (r) { DSSERR("RFBI: can't get FRAMEDONE irq\n"); goto err1; } dispc_set_parallel_interface_mode(dssdev->manager->id, OMAP_DSS_PARALLELMODE_RFBI); dispc_enable_fifohandcheck(dssdev->manager->id, 1); dispc_set_lcd_display_type(dssdev->manager->id, OMAP_DSS_LCD_DISPLAY_TFT); dispc_set_tft_data_lines(dssdev->manager->id, dssdev->ctrl.pixel_size); dispc_set_lcd_timings(dssdev->manager->id, &timings); r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); if (r) { DSSERR("RFBI: Failed to set dispc clocks\n"); goto err1; } rfbi_configure(dssdev->phy.rfbi.channel, dssdev->ctrl.pixel_size, dssdev->phy.rfbi.data_lines); rfbi_set_timings(dssdev->phy.rfbi.channel, &dssdev->ctrl.rfbi_timings); return 0; err1: rfbi_runtime_put(); err0: omap_dss_stop_device(dssdev); return r; } EXPORT_SYMBOL(omapdss_rfbi_display_enable); void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev) { omap_dispc_unregister_isr(framedone_callback, NULL, DISPC_IRQ_FRAMEDONE); omap_dss_stop_device(dssdev); rfbi_runtime_put(); }