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: Eric 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
This commit is contained in:
parent
302cee3648
commit
4078f57571
|
@ -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.
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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},
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue