From 1844cf57315049047286f17416f3e860ec6cf815 Mon Sep 17 00:00:00 2001 From: Josep Orga Date: Fri, 13 Aug 2021 12:34:01 +0200 Subject: [PATCH] drm: bridge: add support for TI SN65DSI83 MIPI DSI -> LVDS bridge. Based on https://github.com/karo-electronics/karo-tx-linux/commits/imx_5.10.9_1.0.0/drivers/gpu/drm/bridge/sn65dsi83 Commits 8ddea41926c08f5afdec3589f57a63d1d28b7aec and 9512d3fdb4b00b7b575e7349b3cfcdc3b20a7306. Signed-off-by: Josep Orga --- drivers/gpu/drm/bridge/Kconfig | 2 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/sn65dsi83/Kconfig | 6 + drivers/gpu/drm/bridge/sn65dsi83/Makefile | 2 + .../gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.c | 422 +++++++++++++++++ .../gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.h | 63 +++ .../gpu/drm/bridge/sn65dsi83/sn65dsi83_drv.c | 429 ++++++++++++++++++ .../drm/bridge/sn65dsi83/sn65dsi83_timing.h | 38 ++ 8 files changed, 963 insertions(+) create mode 100644 drivers/gpu/drm/bridge/sn65dsi83/Kconfig create mode 100644 drivers/gpu/drm/bridge/sn65dsi83/Makefile create mode 100644 drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.c create mode 100644 drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.h create mode 100644 drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_drv.c create mode 100644 drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_timing.h diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 7e15d7c41eed..2ad1b23cbf4f 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -266,6 +266,8 @@ source "drivers/gpu/drm/bridge/adv7511/Kconfig" source "drivers/gpu/drm/bridge/cadence/Kconfig" +source "drivers/gpu/drm/bridge/sn65dsi83/Kconfig" + source "drivers/gpu/drm/bridge/synopsys/Kconfig" config DRM_ITE_IT6263 diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile index 17d70fc62f89..0fa473340bea 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_DRM_TOSHIBA_TC358767) += tc358767.o obj-$(CONFIG_DRM_TOSHIBA_TC358768) += tc358768.o obj-$(CONFIG_DRM_TOSHIBA_TC358775) += tc358775.o obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511/ +obj-$(CONFIG_DRM_I2C_SN65DSI83) += sn65dsi83/ obj-$(CONFIG_DRM_TI_SN65DSI86) += ti-sn65dsi86.o obj-$(CONFIG_DRM_TI_TFP410) += ti-tfp410.o obj-$(CONFIG_DRM_TI_TPD12S015) += ti-tpd12s015.o diff --git a/drivers/gpu/drm/bridge/sn65dsi83/Kconfig b/drivers/gpu/drm/bridge/sn65dsi83/Kconfig new file mode 100644 index 000000000000..e1b8e802f61f --- /dev/null +++ b/drivers/gpu/drm/bridge/sn65dsi83/Kconfig @@ -0,0 +1,6 @@ +config DRM_I2C_SN65DSI83 + bool "TI SN65DSI83 MIPI DSI to LVDS bridge" + depends on OF + select DRM_MIPI_DSI + help + TI SN65DSI83 MIPI DSI to LVDS bridge driver diff --git a/drivers/gpu/drm/bridge/sn65dsi83/Makefile b/drivers/gpu/drm/bridge/sn65dsi83/Makefile new file mode 100644 index 000000000000..dee7f493b323 --- /dev/null +++ b/drivers/gpu/drm/bridge/sn65dsi83/Makefile @@ -0,0 +1,2 @@ +sn65dsi83-objs := sn65dsi83_drv.o sn65dsi83_brg.o +obj-$(CONFIG_DRM_I2C_SN65DSI83) := sn65dsi83.o diff --git a/drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.c b/drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.c new file mode 100644 index 000000000000..211c7fcb3e53 --- /dev/null +++ b/drivers/gpu/drm/bridge/sn65dsi83/sn65dsi83_brg.c @@ -0,0 +1,422 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2018 CopuLab Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include