Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4078f575 authored by Eric Anholt's avatar Eric Anholt
Browse files

drm/vc4: Add DSI driver



The DSI0 and DSI1 blocks on the 2835 are related hardware blocks.
Some registers move around, and the featureset is slightly different,
as DSI1 (the 4-lane DSI) is a later version of the hardware block.
This driver doesn't yet enable DSI0, since we don't have any hardware
to test against, but it does put a lot of the register definitions and
code in place.

v2: Use the clk_hw interfaces, don't set CLK_IS_BASIC (from review by
    Stephen Boyd)

Signed-off-by: default avatarEric Anholt <eric@anholt.net>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> (v1)
Link: http://patchwork.freedesktop.org/patch/msgid/20170131192912.11316-1-eric@anholt.net
parent 302cee36
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2,10 +2,12 @@ config DRM_VC4
	tristate "Broadcom VC4 Graphics"
	depends on ARCH_BCM2835 || COMPILE_TEST
	depends on DRM
	depends on COMMON_CLK
	select DRM_KMS_HELPER
	select DRM_KMS_CMA_HELPER
	select DRM_GEM_CMA_HELPER
	select DRM_PANEL
	select DRM_MIPI_DSI
	help
	  Choose this option if you have a system that has a Broadcom
	  VC4 GPU, such as the Raspberry Pi or other BCM2708/BCM2835.
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ vc4-y := \
	vc4_crtc.o \
	vc4_drv.o \
	vc4_dpi.o \
	vc4_dsi.o \
	vc4_kms.o \
	vc4_gem.o \
	vc4_hdmi.o \
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
static const struct drm_info_list vc4_debugfs_list[] = {
	{"bo_stats", vc4_bo_stats_debugfs, 0},
	{"dpi_regs", vc4_dpi_debugfs_regs, 0},
	{"dsi1_regs", vc4_dsi_debugfs_regs, 0, (void *)(uintptr_t)1},
	{"hdmi_regs", vc4_hdmi_debugfs_regs, 0},
	{"vec_regs", vc4_vec_debugfs_regs, 0},
	{"hvs_regs", vc4_hvs_debugfs_regs, 0},
+1 −0
Original line number Diff line number Diff line
@@ -295,6 +295,7 @@ static struct platform_driver *const component_drivers[] = {
	&vc4_hdmi_driver,
	&vc4_vec_driver,
	&vc4_dpi_driver,
	&vc4_dsi_driver,
	&vc4_hvs_driver,
	&vc4_crtc_driver,
	&vc4_v3d_driver,
+5 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ struct vc4_dev {
	struct vc4_hvs *hvs;
	struct vc4_v3d *v3d;
	struct vc4_dpi *dpi;
	struct vc4_dsi *dsi1;
	struct vc4_vec *vec;

	struct drm_fbdev_cma *fbdev;
@@ -465,6 +466,10 @@ void __iomem *vc4_ioremap_regs(struct platform_device *dev, int index);
extern struct platform_driver vc4_dpi_driver;
int vc4_dpi_debugfs_regs(struct seq_file *m, void *unused);

/* vc4_dsi.c */
extern struct platform_driver vc4_dsi_driver;
int vc4_dsi_debugfs_regs(struct seq_file *m, void *unused);

/* vc4_gem.c */
void vc4_gem_init(struct drm_device *dev);
void vc4_gem_destroy(struct drm_device *dev);
Loading