Lines Matching refs:dbidev
237 static void mipi_dbi_set_window_address(struct mipi_dbi_dev *dbidev,
241 struct mipi_dbi *dbi = &dbidev->dbi;
243 xs += dbidev->left_offset;
244 xe += dbidev->left_offset;
245 ys += dbidev->top_offset;
246 ye += dbidev->top_offset;
257 struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
260 struct mipi_dbi *dbi = &dbidev->dbi;
272 tr = dbidev->tx_buf;
280 mipi_dbi_set_window_address(dbidev, rect->x1, rect->x2 - 1, rect->y1,
302 struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(pipe->crtc.dev);
304 return drm_crtc_helper_mode_valid_fixed(&pipe->crtc, mode, &dbidev->mode);
343 * @dbidev: MIPI DBI device structure
354 void mipi_dbi_enable_flush(struct mipi_dbi_dev *dbidev,
368 if (!drm_dev_enter(&dbidev->drm, &idx))
372 backlight_enable(dbidev->backlight);
378 static void mipi_dbi_blank(struct mipi_dbi_dev *dbidev)
380 struct drm_device *drm = &dbidev->drm;
383 struct mipi_dbi *dbi = &dbidev->dbi;
390 memset(dbidev->tx_buf, 0, len);
392 mipi_dbi_set_window_address(dbidev, 0, width - 1, 0, height - 1);
394 (u8 *)dbidev->tx_buf, len);
409 struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(pipe->crtc.dev);
413 if (dbidev->backlight)
414 backlight_disable(dbidev->backlight);
416 mipi_dbi_blank(dbidev);
418 if (dbidev->regulator)
419 regulator_disable(dbidev->regulator);
420 if (dbidev->io_regulator)
421 regulator_disable(dbidev->io_regulator);
511 struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(connector->dev);
513 return drm_connector_helper_get_modes_fixed(connector, &dbidev->mode);
558 * @dbidev: MIPI DBI device structure to initialize
579 int mipi_dbi_dev_init_with_formats(struct mipi_dbi_dev *dbidev,
589 struct drm_device *drm = &dbidev->drm;
592 if (!dbidev->dbi.command)
599 dbidev->tx_buf = devm_kmalloc(drm->dev, tx_buf_size, GFP_KERNEL);
600 if (!dbidev->tx_buf)
603 drm_mode_copy(&dbidev->mode, mode);
604 ret = mipi_dbi_rotate_mode(&dbidev->mode, rotation);
610 drm_connector_helper_add(&dbidev->connector, &mipi_dbi_connector_hfuncs);
611 ret = drm_connector_init(drm, &dbidev->connector, &mipi_dbi_connector_funcs,
616 ret = drm_simple_display_pipe_init(drm, &dbidev->pipe, funcs, formats, format_count,
617 modifiers, &dbidev->connector);
621 drm_plane_enable_fb_damage_clips(&dbidev->pipe.plane);
624 drm->mode_config.min_width = dbidev->mode.hdisplay;
625 drm->mode_config.max_width = dbidev->mode.hdisplay;
626 drm->mode_config.min_height = dbidev->mode.vdisplay;
627 drm->mode_config.max_height = dbidev->mode.vdisplay;
628 dbidev->rotation = rotation;
638 * @dbidev: MIPI DBI device structure to initialize
653 int mipi_dbi_dev_init(struct mipi_dbi_dev *dbidev,
659 dbidev->drm.mode_config.preferred_depth = 16;
661 return mipi_dbi_dev_init_with_formats(dbidev, funcs, mipi_dbi_formats,
717 static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
719 struct device *dev = dbidev->drm.dev;
720 struct mipi_dbi *dbi = &dbidev->dbi;
723 if (dbidev->regulator) {
724 ret = regulator_enable(dbidev->regulator);
731 if (dbidev->io_regulator) {
732 ret = regulator_enable(dbidev->io_regulator);
735 if (dbidev->regulator)
736 regulator_disable(dbidev->regulator);
748 if (dbidev->regulator)
749 regulator_disable(dbidev->regulator);
750 if (dbidev->io_regulator)
751 regulator_disable(dbidev->io_regulator);
770 * @dbidev: MIPI DBI device structure
778 int mipi_dbi_poweron_reset(struct mipi_dbi_dev *dbidev)
780 return mipi_dbi_poweron_reset_conditional(dbidev, false);
786 * @dbidev: MIPI DBI device structure
796 int mipi_dbi_poweron_conditional_reset(struct mipi_dbi_dev *dbidev)
798 return mipi_dbi_poweron_reset_conditional(dbidev, true);
1335 struct mipi_dbi_dev *dbidev = m->private;
1340 if (!drm_dev_enter(&dbidev->drm, &idx))
1379 ret = mipi_dbi_command_buf(&dbidev->dbi, cmd, parameters, i);
1391 struct mipi_dbi_dev *dbidev = m->private;
1392 struct mipi_dbi *dbi = &dbidev->dbi;
1397 if (!drm_dev_enter(&dbidev->drm, &idx))
1461 struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(minor->dev);
1464 if (dbidev->dbi.read_commands)
1466 debugfs_create_file("command", mode, minor->debugfs_root, dbidev,