From 458d4574259e8963a96c46244690281222cde349 Mon Sep 17 00:00:00 2001 From: Jianwei Fan Date: Sat, 8 Jul 2023 03:03:13 +0000 Subject: [PATCH 01/10] media: i2c: lt6911uxe: modify rk3588_dcphy params Change-Id: I5455c5e18e0074aa08a9bd97d20fa51bf2790a8a Signed-off-by: Jianwei Fan --- drivers/media/i2c/lt6911uxe.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/lt6911uxe.c b/drivers/media/i2c/lt6911uxe.c index 50cf2920eed0..fb15093c13d5 100644 --- a/drivers/media/i2c/lt6911uxe.c +++ b/drivers/media/i2c/lt6911uxe.c @@ -223,9 +223,9 @@ struct lt6911uxe_mode { static struct rkmodule_csi_dphy_param rk3588_dcphy_param = { .vendor = PHY_VENDOR_SAMSUNG, .lp_vol_ref = 3, - .lp_hys_sw = {3, 0, 0, 0}, - .lp_escclk_pol_sel = {1, 0, 0, 0}, - .skew_data_cal_clk = {0, 3, 3, 3}, + .lp_hys_sw = {3, 0, 3, 0}, + .lp_escclk_pol_sel = {1, 1, 0, 0}, + .skew_data_cal_clk = {0, 13, 0, 13}, .clk_hs_term_sel = 2, .data_hs_term_sel = {2, 2, 2, 2}, .reserved = {0}, From e57d4ee1aeb89e0af2e16b98c2abae3d59743504 Mon Sep 17 00:00:00 2001 From: Jianwei Fan Date: Tue, 4 Jul 2023 11:52:44 +0000 Subject: [PATCH 02/10] media: i2c: it6616: modify set ctrl when video stable Change-Id: I84b583f0a8c17a84a4c22f5a9d62dbde42904132 Signed-off-by: Jianwei Fan --- drivers/media/i2c/it6616.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/it6616.c b/drivers/media/i2c/it6616.c index 6928a11ac47c..fc930d2938c7 100644 --- a/drivers/media/i2c/it6616.c +++ b/drivers/media/i2c/it6616.c @@ -3519,6 +3519,16 @@ static int it6616_isr(struct v4l2_subdev *sd, u32 status, bool *handled) return 0; } +static void it6616_detect_hot_plug(struct v4l2_subdev *sd) +{ + struct it6616 *it6616 = to_it6616(sd); + + if (it6616->mipi_tx_video_stable && it6616_hdmi_is_5v_on(it6616)) + v4l2_ctrl_s_ctrl(it6616->detect_tx_5v_ctrl, 1); + else + v4l2_ctrl_s_ctrl(it6616->detect_tx_5v_ctrl, 0); +} + static void it6616_work_i2c_poll(struct work_struct *work) { struct delayed_work *dwork = to_delayed_work(work); @@ -3526,8 +3536,8 @@ static void it6616_work_i2c_poll(struct work_struct *work) struct it6616, work_i2c_poll); bool handled; - it6616_s_ctrl_detect_tx_5v(&it6616->sd); it6616_isr(&it6616->sd, 0, &handled); + it6616_detect_hot_plug(&it6616->sd); schedule_delayed_work(&it6616->work_i2c_poll, msecs_to_jiffies(POLL_INTERVAL_MS)); } From 78e9c25543b5c1721b17452887e5ee7ff34706a4 Mon Sep 17 00:00:00 2001 From: Wyon Bi Date: Mon, 19 Jun 2023 16:10:53 +0800 Subject: [PATCH 03/10] drm/panel: Add panel driver for Maxim MAX96772 based LCDs Signed-off-by: Wyon Bi Change-Id: Ie1981f600dd1422052f57c329ceed0702bb97ca4 --- drivers/gpu/drm/panel/Kconfig | 8 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-maxim-max96772.c | 543 +++++++++++++++++++ 3 files changed, 552 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-maxim-max96772.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 2794dd34726f..c04e091233f1 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -236,6 +236,14 @@ config DRM_PANEL_MAXIM_MAX96752F Say Y if you want to enable support for panels based on the Maxim MAX96752F. +config DRM_PANEL_MAXIM_MAX96772 + tristate "Maxim MAX96772-based panels" + depends on OF + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y if you want to enable support for panels based on the + Maxim MAX96772. + config DRM_PANEL_OLIMEX_LCD_OLINUXINO tristate "Olimex LCD-OLinuXino panel" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index d99b1eaf92c2..f28d98218387 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -22,6 +22,7 @@ obj-$(CONFIG_DRM_PANEL_NOVATEK_NT35510) += panel-novatek-nt35510.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT39016) += panel-novatek-nt39016.o obj-$(CONFIG_DRM_PANEL_MANTIX_MLAF057WE51) += panel-mantix-mlaf057we51.o obj-$(CONFIG_DRM_PANEL_MAXIM_MAX96752F) += panel-maxim-max96752f.o +obj-$(CONFIG_DRM_PANEL_MAXIM_MAX96772) += panel-maxim-max96772.o obj-$(CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO) += panel-olimex-lcd-olinuxino.o obj-$(CONFIG_DRM_PANEL_ORISETECH_OTM8009A) += panel-orisetech-otm8009a.o obj-$(CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS) += panel-osd-osd101t2587-53ts.o diff --git a/drivers/gpu/drm/panel/panel-maxim-max96772.c b/drivers/gpu/drm/panel/panel-maxim-max96772.c new file mode 100644 index 000000000000..2e16d0337887 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-maxim-max96772.c @@ -0,0 +1,543 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2022 Rockchip Electronics Co. Ltd. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include