drm/exynos: add DSIM driver
The patch adds driver for Exynos DSI master (DSIM). It is a platform driver which is registered as exynos_drm_display sub-driver of exynos_drm framework and implements DRM encoder/connector pair. It is also MIPI-DSI host driver and provides DSI bus for panels. It interacts with its panel(s) using drm_panel framework. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
670935b696
commit
7eb8f069be
|
@ -39,6 +39,15 @@ config DRM_EXYNOS_DPI
|
||||||
help
|
help
|
||||||
This enables support for Exynos parallel output.
|
This enables support for Exynos parallel output.
|
||||||
|
|
||||||
|
config DRM_EXYNOS_DSI
|
||||||
|
bool "EXYNOS DRM MIPI-DSI driver support"
|
||||||
|
depends on DRM_EXYNOS
|
||||||
|
select DRM_MIPI_DSI
|
||||||
|
select DRM_PANEL
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
This enables support for Exynos MIPI-DSI device.
|
||||||
|
|
||||||
config DRM_EXYNOS_DP
|
config DRM_EXYNOS_DP
|
||||||
bool "EXYNOS DRM DP driver support"
|
bool "EXYNOS DRM DP driver support"
|
||||||
depends on DRM_EXYNOS && ARCH_EXYNOS
|
depends on DRM_EXYNOS && ARCH_EXYNOS
|
||||||
|
|
|
@ -12,6 +12,7 @@ exynosdrm-$(CONFIG_DRM_EXYNOS_IOMMU) += exynos_drm_iommu.o
|
||||||
exynosdrm-$(CONFIG_DRM_EXYNOS_DMABUF) += exynos_drm_dmabuf.o
|
exynosdrm-$(CONFIG_DRM_EXYNOS_DMABUF) += exynos_drm_dmabuf.o
|
||||||
exynosdrm-$(CONFIG_DRM_EXYNOS_FIMD) += exynos_drm_fimd.o
|
exynosdrm-$(CONFIG_DRM_EXYNOS_FIMD) += exynos_drm_fimd.o
|
||||||
exynosdrm-$(CONFIG_DRM_EXYNOS_DPI) += exynos_drm_dpi.o
|
exynosdrm-$(CONFIG_DRM_EXYNOS_DPI) += exynos_drm_dpi.o
|
||||||
|
exynosdrm-$(CONFIG_DRM_EXYNOS_DSI) += exynos_drm_dsi.o
|
||||||
exynosdrm-$(CONFIG_DRM_EXYNOS_DP) += exynos_dp_core.o exynos_dp_reg.o
|
exynosdrm-$(CONFIG_DRM_EXYNOS_DP) += exynos_dp_core.o exynos_dp_reg.o
|
||||||
exynosdrm-$(CONFIG_DRM_EXYNOS_HDMI) += exynos_hdmi.o exynos_mixer.o
|
exynosdrm-$(CONFIG_DRM_EXYNOS_HDMI) += exynos_hdmi.o exynos_mixer.o
|
||||||
exynosdrm-$(CONFIG_DRM_EXYNOS_VIDI) += exynos_drm_vidi.o
|
exynosdrm-$(CONFIG_DRM_EXYNOS_VIDI) += exynos_drm_vidi.o
|
||||||
|
|
|
@ -450,6 +450,12 @@ static int __init exynos_drm_init(void)
|
||||||
goto out_dp;
|
goto out_dp;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_DRM_EXYNOS_DSI
|
||||||
|
ret = platform_driver_register(&dsi_driver);
|
||||||
|
if (ret < 0)
|
||||||
|
goto out_dsi;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DRM_EXYNOS_FIMD
|
#ifdef CONFIG_DRM_EXYNOS_FIMD
|
||||||
ret = platform_driver_register(&fimd_driver);
|
ret = platform_driver_register(&fimd_driver);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -566,6 +572,11 @@ static int __init exynos_drm_init(void)
|
||||||
out_fimd:
|
out_fimd:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_DRM_EXYNOS_DSI
|
||||||
|
platform_driver_unregister(&dsi_driver);
|
||||||
|
out_dsi:
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DRM_EXYNOS_DP
|
#ifdef CONFIG_DRM_EXYNOS_DP
|
||||||
platform_driver_unregister(&dp_driver);
|
platform_driver_unregister(&dp_driver);
|
||||||
out_dp:
|
out_dp:
|
||||||
|
@ -613,6 +624,10 @@ static void __exit exynos_drm_exit(void)
|
||||||
platform_driver_unregister(&fimd_driver);
|
platform_driver_unregister(&fimd_driver);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_DRM_EXYNOS_DSI
|
||||||
|
platform_driver_unregister(&dsi_driver);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DRM_EXYNOS_DP
|
#ifdef CONFIG_DRM_EXYNOS_DP
|
||||||
platform_driver_unregister(&dp_driver);
|
platform_driver_unregister(&dp_driver);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -370,6 +370,7 @@ static inline int exynos_dpi_remove(struct device *dev) { return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern struct platform_driver dp_driver;
|
extern struct platform_driver dp_driver;
|
||||||
|
extern struct platform_driver dsi_driver;
|
||||||
extern struct platform_driver fimd_driver;
|
extern struct platform_driver fimd_driver;
|
||||||
extern struct platform_driver hdmi_driver;
|
extern struct platform_driver hdmi_driver;
|
||||||
extern struct platform_driver mixer_driver;
|
extern struct platform_driver mixer_driver;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue