From 7431182e34fac15b79d1aa64976d753d9a361e6c Mon Sep 17 00:00:00 2001 From: "Vadim V. Vlasov" Date: Thu, 1 Oct 2020 20:27:58 +0300 Subject: [PATCH 618/631] drm: new bridge driver - stdp4028 MegaChips stdp4028 is LVDS to DP bridge. The driver can work in interrupt or poll mode. Videomodes may be specified in the devicetree or read from EDID. Co-developed-by: Vadim V. Vlasov Signed-off-by: Alexey Sheplyakov X-feature-Baikal-M --- drivers/gpu/drm/bridge/Kconfig | 8 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/stdp4028.c | 484 ++++++++++++++++++++++++++++++ 3 files changed, 493 insertions(+) create mode 100644 drivers/gpu/drm/bridge/stdp4028.c diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 3e6a4e2044c0..ebd457f5ada7 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -384,6 +384,14 @@ config DRM_TI_TPD12S015 Texas Instruments TPD12S015 HDMI level shifter and ESD protection driver. +config DRM_STDP4028 + tristate "MegaChips STDP4028 DP bridge" + depends on OF + select DRM_KMS_HELPER + select DRM_PANEL + help + MegaChips STDP4028 DP bridge driver + source "drivers/gpu/drm/bridge/analogix/Kconfig" source "drivers/gpu/drm/bridge/adv7511/Kconfig" diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile index 2b892b7ed59e..5c37e8731e09 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -33,6 +33,7 @@ obj-$(CONFIG_DRM_TI_TFP410) += ti-tfp410.o obj-$(CONFIG_DRM_TI_TPD12S015) += ti-tpd12s015.o obj-$(CONFIG_DRM_NWL_MIPI_DSI) += nwl-dsi.o obj-$(CONFIG_DRM_ITE_IT66121) += ite-it66121.o +obj-$(CONFIG_DRM_STDP4028) += stdp4028.o obj-y += analogix/ obj-y += cadence/ diff --git a/drivers/gpu/drm/bridge/stdp4028.c b/drivers/gpu/drm/bridge/stdp4028.c new file mode 100644 index 000000000000..5a27db85ad4b --- /dev/null +++ b/drivers/gpu/drm/bridge/stdp4028.c @@ -0,0 +1,484 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Driver for MegaChips STDP4028 LVDS to DP display bridge + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* video modes */ +#include