On Wed Nov 6, 2024 at 1:33 PM CET, Heiko Stuebner wrote: > From: Heiko Stuebner <heiko.stuebner@xxxxxxxxx> > > Add a Synopsys Designware MIPI DSI host DRM bridge driver for their > DSI2 host controller, based on the Rockchip version from the driver > rockchip/dw-mipi-dsi2.c in their vendor-kernel with phy & bridge APIs. > > While the driver is heavily modelled after the previous IP, the register > set of this DSI2 controller is completely different and there are also > additional properties like the variable-width phy interface. > > Signed-off-by: Heiko Stuebner <heiko.stuebner@xxxxxxxxx> > --- > drivers/gpu/drm/bridge/synopsys/Kconfig | 6 + > drivers/gpu/drm/bridge/synopsys/Makefile | 1 + > .../gpu/drm/bridge/synopsys/dw-mipi-dsi2.c | 1034 +++++++++++++++++ > include/drm/bridge/dw_mipi_dsi2.h | 94 ++ > 4 files changed, 1135 insertions(+) > create mode 100644 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > create mode 100644 include/drm/bridge/dw_mipi_dsi2.h > > diff --git a/drivers/gpu/drm/bridge/synopsys/Kconfig b/drivers/gpu/drm/bridge/synopsys/Kconfig > index ca416dab156d..f3ab2f985f8c 100644 > --- a/drivers/gpu/drm/bridge/synopsys/Kconfig > +++ b/drivers/gpu/drm/bridge/synopsys/Kconfig > @@ -59,3 +59,9 @@ config DRM_DW_MIPI_DSI > select DRM_KMS_HELPER > select DRM_MIPI_DSI > select DRM_PANEL_BRIDGE > + > +config DRM_DW_MIPI_DSI2 > + tristate > + select DRM_KMS_HELPER > + select DRM_MIPI_DSI > + select DRM_PANEL_BRIDGE > diff --git a/drivers/gpu/drm/bridge/synopsys/Makefile b/drivers/gpu/drm/bridge/synopsys/Makefile > index 9869d9651ed1..9dc376d220ad 100644 > --- a/drivers/gpu/drm/bridge/synopsys/Makefile > +++ b/drivers/gpu/drm/bridge/synopsys/Makefile > @@ -8,3 +8,4 @@ obj-$(CONFIG_DRM_DW_HDMI_CEC) += dw-hdmi-cec.o > obj-$(CONFIG_DRM_DW_HDMI_QP) += dw-hdmi-qp.o > > obj-$(CONFIG_DRM_DW_MIPI_DSI) += dw-mipi-dsi.o > +obj-$(CONFIG_DRM_DW_MIPI_DSI2) += dw-mipi-dsi2.o > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > new file mode 100644 > index 000000000000..43738fe3cb93 > --- /dev/null > +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > @@ -0,0 +1,1034 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (c) 2024, Fuzhou Rockchip Electronics Co., Ltd > + * > + * Modified by Heiko Stuebner <heiko.stuebner@xxxxxxxxx> > + * This generic Synopsys DesignWare MIPI DSI2 host driver is based on the > + * Rockchip version from rockchip/dw-mipi-dsi2.c converted to use bridge APIs. > + */ > + > +#include <linux/clk.h> > ... > +#include <drm/drm_print.h> > + > +#define UPDATE(v, h, l) (((v) << (l)) & GENMASK((h), (l))) > + > +#define DSI2_PWR_UP 0x000c > ... > +#define DSI2_MAX_REGISGER DSI2_INT_FORCE_CRI > + > +#define MODE_STATUS_TIMEOUT_US 10000 > +#define CMD_PKT_STATUS_TIMEOUT_US 20000 > + > +enum vid_mode_type { > + VID_MODE_TYPE_NON_BURST_SYNC_PULSES, > + VID_MODE_TYPE_NON_BURST_SYNC_EVENTS, > + VID_MODE_TYPE_BURST, > +}; > + > +enum mode_ctrl { > + IDLE_MODE, > + AUTOCALC_MODE, > + COMMAND_MODE, > + VIDEO_MODE, > + DATA_STREAM_MODE, > + VIDE_TEST_MODE, VIDEO_TEST_MODE ? > + DATA_STREAM_TEST_MODE, > +}; Cheers, Diederik
Attachment:
signature.asc
Description: PGP signature