Commit 46fc5154 authored by Philippe CORNU's avatar Philippe CORNU Committed by Archit Taneja

drm/bridge/synopsys: Add MIPI DSI host controller bridge

Add a Synopsys Designware MIPI DSI host DRM bridge driver, based on the
Rockchip version from rockchip/dw-mipi-dsi.c with phy & bridge APIs.
Signed-off-by: default avatarPhilippe CORNU <philippe.cornu@st.com>
Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
Link: https://patchwork.freedesktop.org/patch/msgid/1500277223-29553-5-git-send-email-philippe.cornu@st.com
parent 88dd1e6f
...@@ -22,3 +22,9 @@ config DRM_DW_HDMI_I2S_AUDIO ...@@ -22,3 +22,9 @@ config DRM_DW_HDMI_I2S_AUDIO
help help
Support the I2S Audio interface which is part of the Synopsys Support the I2S Audio interface which is part of the Synopsys
Designware HDMI block. Designware HDMI block.
config DRM_DW_MIPI_DSI
tristate
select DRM_KMS_HELPER
select DRM_MIPI_DSI
select DRM_PANEL_BRIDGE
...@@ -3,3 +3,5 @@ ...@@ -3,3 +3,5 @@
obj-$(CONFIG_DRM_DW_HDMI) += dw-hdmi.o obj-$(CONFIG_DRM_DW_HDMI) += dw-hdmi.o
obj-$(CONFIG_DRM_DW_HDMI_AHB_AUDIO) += dw-hdmi-ahb-audio.o obj-$(CONFIG_DRM_DW_HDMI_AHB_AUDIO) += dw-hdmi-ahb-audio.o
obj-$(CONFIG_DRM_DW_HDMI_I2S_AUDIO) += dw-hdmi-i2s-audio.o obj-$(CONFIG_DRM_DW_HDMI_I2S_AUDIO) += dw-hdmi-i2s-audio.o
obj-$(CONFIG_DRM_DW_MIPI_DSI) += dw-mipi-dsi.o
This diff is collapsed.
/*
* Copyright (C) STMicroelectronics SA 2017
*
* Authors: Philippe Cornu <philippe.cornu@st.com>
* Yannick Fertre <yannick.fertre@st.com>
*
* License terms: GNU General Public License (GPL), version 2
*/
#ifndef __DW_MIPI_DSI__
#define __DW_MIPI_DSI__
struct dw_mipi_dsi_phy_ops {
int (*init)(void *priv_data);
int (*get_lane_mbps)(void *priv_data, struct drm_display_mode *mode,
unsigned long mode_flags, u32 lanes, u32 format,
unsigned int *lane_mbps);
};
struct dw_mipi_dsi_plat_data {
void __iomem *base;
unsigned int max_data_lanes;
enum drm_mode_status (*mode_valid)(void *priv_data,
const struct drm_display_mode *mode);
const struct dw_mipi_dsi_phy_ops *phy_ops;
void *priv_data;
};
int dw_mipi_dsi_probe(struct platform_device *pdev,
const struct dw_mipi_dsi_plat_data *plat_data);
void dw_mipi_dsi_remove(struct platform_device *pdev);
int dw_mipi_dsi_bind(struct platform_device *pdev, struct drm_encoder *encoder,
const struct dw_mipi_dsi_plat_data *plat_data);
void dw_mipi_dsi_unbind(struct device *dev);
#endif /* __DW_MIPI_DSI__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment