From b9614bda923d424af282753f5919ddd686230941 Mon Sep 17 00:00:00 2001 From: "Vadim V. Vlasov" Date: Thu, 1 Oct 2020 20:27:58 +0300 Subject: [PATCH 613/634] drm/bridge: 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. Signed-off-by: Vadim V. Vlasov Signed-off-by: Alexey Sheplyakov --- drivers/gpu/drm/bridge/Kconfig | 8 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/stdp4028.c | 486 ++++++++++++++++++++++++++++++ 3 files changed, 495 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 68ec45abc..5f1778c36 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -315,6 +315,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 f2c73683c..9faf98509 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -29,6 +29,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 000000000..12b3ff31b --- /dev/null +++ b/drivers/gpu/drm/bridge/stdp4028.c @@ -0,0 +1,486 @@ +// 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