* [PATCH v6 0/3] Add driver for Novatek NT35596S panel
@ 2025-09-13 19:19 David Heidelberg via B4 Relay
2025-09-13 19:19 ` [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional David Heidelberg via B4 Relay
` (3 more replies)
0 siblings, 4 replies; 13+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-09-13 19:19 UTC (permalink / raw)
To: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, linux-kernel, devicetree, Molly Sophia,
Arnaud Ferraris, David Heidelberg, Krzysztof Kozlowski
These patches add support for Novatek NT35596S based JDI FHD panels.
This panel is already used by mainlined Xiaomi Mi Mix 2S mobile phone.
Notes:
- I'm taking over this series as the original submitter is no longer
able to work on/test those patches.
Changes in v5:
- Split changes affecting original paths to the separate patch
"drm: panel: nt36672a: Make some command sequences optional"
for easier review.
- Small wording corrections.
Changes in v5:
- Move changelogs out of commit messages.
- Wrap comment/text lines around 80 chars.
Changes in v4:
- Correct numeric order of the items in binding.
Changes in v3:
- Embed the support into existing driver (panel-novatek-nt36672a), as
these two IC are similar with different initialization commands.
Changes in v2:
- Correct items order in Makefile and improve failure handling.
---
Molly Sophia (3):
drm: panel: nt36672a: Make some command sequences optional
drm: panel: nt36672a: Add support for novatek nt35596s panel
dt-bindings: display: panel: Add Novatek NT35596S panel bindings
.../bindings/display/panel/novatek,nt36672a.yaml | 21 +-
drivers/gpu/drm/panel/Kconfig | 7 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 252 +++++++++++++++++++--
3 files changed, 251 insertions(+), 29 deletions(-)
---
base-commit: 590b221ed4256fd6c34d3dea77aa5bd6e741bbc1
change-id: 20250908-nt35596s-1240c2cc4ebc
Best regards,
--
David Heidelberg <david@ixit.cz>
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional 2025-09-13 19:19 [PATCH v6 0/3] Add driver for Novatek NT35596S panel David Heidelberg via B4 Relay @ 2025-09-13 19:19 ` David Heidelberg via B4 Relay 2025-09-15 1:22 ` Dmitry Baryshkov 2025-09-13 19:19 ` [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel David Heidelberg via B4 Relay ` (2 subsequent siblings) 3 siblings, 1 reply; 13+ messages in thread From: David Heidelberg via B4 Relay @ 2025-09-13 19:19 UTC (permalink / raw) To: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris, David Heidelberg From: Molly Sophia <mollysophia379@gmail.com> Preparation for the follow-up nt35596s support, where not all sequences are provided. Signed-off-by: Molly Sophia <mollysophia379@gmail.com> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Signed-off-by: David Heidelberg <david@ixit.cz> --- drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 27 ++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c index 29e1f6aea48060384f4639999174b67097a6c8a7..f7518ec469176a4e2d4f2b03f8e77f03511a12a7 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c @@ -117,12 +117,13 @@ static int nt36672a_panel_unprepare(struct drm_panel *panel) struct nt36672a_panel *pinfo = to_nt36672a_panel(panel); int ret; - /* send off cmds */ - ret = nt36672a_send_cmds(panel, pinfo->desc->off_cmds, - pinfo->desc->num_off_cmds); - - if (ret < 0) - dev_err(panel->dev, "failed to send DCS off cmds: %d\n", ret); + if (pinfo->desc->num_off_cmds != 0) { + /* send off cmds if present */ + ret = nt36672a_send_cmds(panel, pinfo->desc->off_cmds, + pinfo->desc->num_off_cmds); + if (ret < 0) + dev_err(panel->dev, "failed to send DCS off cmds: %d\n", ret); + } ret = mipi_dsi_dcs_set_display_off(pinfo->link); if (ret < 0) @@ -200,13 +201,15 @@ static int nt36672a_panel_prepare(struct drm_panel *panel) goto poweroff; } - /* Send rest of the init cmds */ - err = nt36672a_send_cmds(panel, pinfo->desc->on_cmds_2, - pinfo->desc->num_on_cmds_2); + if (pinfo->desc->num_on_cmds_2 != 0) { + /* Send rest of the init cmds if present */ + err = nt36672a_send_cmds(panel, pinfo->desc->on_cmds_2, + pinfo->desc->num_on_cmds_2); - if (err < 0) { - dev_err(panel->dev, "failed to send DCS Init 2nd Code: %d\n", err); - goto poweroff; + if (err < 0) { + dev_err(panel->dev, "failed to send DCS Init 2nd Code: %d\n", err); + goto poweroff; + } } msleep(120); -- 2.51.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional 2025-09-13 19:19 ` [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional David Heidelberg via B4 Relay @ 2025-09-15 1:22 ` Dmitry Baryshkov 0 siblings, 0 replies; 13+ messages in thread From: Dmitry Baryshkov @ 2025-09-15 1:22 UTC (permalink / raw) To: david Cc: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris On Sat, Sep 13, 2025 at 09:19:47PM +0200, David Heidelberg via B4 Relay wrote: > From: Molly Sophia <mollysophia379@gmail.com> > > Preparation for the follow-up nt35596s support, where not all sequences > are provided. > > Signed-off-by: Molly Sophia <mollysophia379@gmail.com> > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> > Signed-off-by: David Heidelberg <david@ixit.cz> > --- > drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 27 ++++++++++++++------------ > 1 file changed, 15 insertions(+), 12 deletions(-) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel 2025-09-13 19:19 [PATCH v6 0/3] Add driver for Novatek NT35596S panel David Heidelberg via B4 Relay 2025-09-13 19:19 ` [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional David Heidelberg via B4 Relay @ 2025-09-13 19:19 ` David Heidelberg via B4 Relay 2025-09-15 1:29 ` Dmitry Baryshkov 2025-09-13 19:19 ` [PATCH v6 3/3] dt-bindings: display: panel: Add Novatek NT35596S panel bindings David Heidelberg via B4 Relay 2026-09-11 8:55 ` [PATCH v6 0/3] Add driver for Novatek NT35596S panel Konrad Dybcio 3 siblings, 1 reply; 13+ messages in thread From: David Heidelberg via B4 Relay @ 2025-09-13 19:19 UTC (permalink / raw) To: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris, David Heidelberg From: Molly Sophia <mollysophia379@gmail.com> Novatek NT35596s is a generic DSI IC that drives command and video mode panels. Currently add support for the LCD panel from JDI connected with this IC, as found on Xiaomi Mi Mix 2S phones. Signed-off-by: Molly Sophia <mollysophia379@gmail.com> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Signed-off-by: David Heidelberg <david@ixit.cz> --- drivers/gpu/drm/panel/Kconfig | 7 +- drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++- 2 files changed, 222 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 407c5f6a268b2ec66e5d0eddae26b3368e4cb2cb..dd2ea9f87292a5a99ae91b14b3f0d197c4db944f 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -521,14 +521,15 @@ config DRM_PANEL_NOVATEK_NT36523 Boe panels used in Xiaomi Mi Pad 5 and 5 Pro tablets. config DRM_PANEL_NOVATEK_NT36672A - tristate "Novatek NT36672A DSI panel" + tristate "Novatek NT36672A/NT35596S DSI panel" depends on OF depends on DRM_MIPI_DSI depends on BACKLIGHT_CLASS_DEVICE help Say Y here if you want to enable support for the panels built - around the Novatek NT36672A display controller, such as some - Tianma panels used in a few Xiaomi Poco F1 mobile phones. + around the Novatek NT36672A or NT35596S display controller, such + as some Tianma panels used in a few Xiaomi Poco F1 mobile phones + or the JDI panels used in Xiaomi Mi Mix2S mobile phones. config DRM_PANEL_NOVATEK_NT36672E tristate "Novatek NT36672E DSI panel" diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c index f7518ec469176a4e2d4f2b03f8e77f03511a12a7..a0271ca5feeb125a9d57b3b1ac47a7933cf06226 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c @@ -3,13 +3,16 @@ * Copyright (C) 2020 Linaro Ltd * Author: Sumit Semwal <sumit.semwal@linaro.org> * - * This driver is for the DSI interface to panels using the NT36672A display driver IC - * from Novatek. - * Currently supported are the Tianma FHD+ panels found in some Xiaomi phones, including - * some variants of the Poco F1 phone. + * Copyright (C) 2022 Molly Sophia <mollysophia379@gmail.com> * - * Panels using the Novatek NT37762A IC should add appropriate configuration per-panel and - * use this driver. + * This driver is for the DSI interface to panels using the NT36672A/NT35596S + * display driver IC from Novatek. + * Currently supported are the Tianma FHD+ panels found in some Xiaomi phones, + * including some variants of the Poco F1 phone, and the JDI FHD+ panels found + * in Xiaomi Mi Mix 2S phones. + * + * Panels using the Novatek NT37762A or NT35596S IC should add appropriate + * configuration per-panel and use this driver. */ #include <linux/delay.h> @@ -591,6 +594,212 @@ static const struct nt36672a_panel_desc tianma_fhd_video_panel_desc = { .num_off_cmds = ARRAY_SIZE(tianma_fhd_video_off_cmds), }; +static const struct nt36672a_panel_cmd jdi_nt35596s_video_on_cmds[] = { + { .data = { 0xff, 0x24 } }, + { .data = { 0x9d, 0x34 } }, + { .data = { 0xfb, 0x01 } }, + { .data = { 0xc4, 0x25 } }, + { .data = { 0xd1, 0x08 } }, + { .data = { 0xd2, 0x84 } }, + { .data = { 0xff, 0x26 } }, + { .data = { 0xfb, 0x01 } }, + { .data = { 0x03, 0x1c } }, + { .data = { 0x3b, 0x08 } }, + { .data = { 0x6b, 0x08 } }, + { .data = { 0x97, 0x08 } }, + { .data = { 0xc5, 0x08 } }, + { .data = { 0xfb, 0x01 } }, + { .data = { 0xff, 0x23 } }, + { .data = { 0xfb, 0x01 } }, + { .data = { 0x01, 0x84 } }, + { .data = { 0x05, 0x2d } }, + { .data = { 0x06, 0x00 } }, + { .data = { 0x33, 0x07 } }, + { .data = { 0x21, 0xee } }, + { .data = { 0x22, 0xed } }, + { .data = { 0x23, 0xea } }, + { .data = { 0x24, 0xe8 } }, + { .data = { 0x25, 0xe5 } }, + { .data = { 0x26, 0xe2 } }, + { .data = { 0x27, 0xde } }, + { .data = { 0x28, 0xbb } }, + { .data = { 0x29, 0x87 } }, + { .data = { 0x2a, 0x77 } }, + { .data = { 0x32, 0x0c } }, + { .data = { 0x13, 0x3f } }, + { .data = { 0x14, 0x34 } }, + { .data = { 0x15, 0x2a } }, + { .data = { 0x16, 0x25 } }, + { .data = { 0x17, 0x9d } }, + { .data = { 0x18, 0x9a } }, + { .data = { 0x19, 0x97 } }, + { .data = { 0x1a, 0x94 } }, + { .data = { 0x1b, 0x91 } }, + { .data = { 0x1c, 0x8e } }, + { .data = { 0x1d, 0x8b } }, + { .data = { 0x1e, 0x89 } }, + { .data = { 0x1f, 0x86 } }, + { .data = { 0x20, 0x83 } }, + { .data = { 0xff, 0x22 } }, + { .data = { 0x00, 0x0a } }, + { .data = { 0x01, 0x43 } }, + { .data = { 0x02, 0x5b } }, + { .data = { 0x03, 0x6a } }, + { .data = { 0x04, 0x7a } }, + { .data = { 0x05, 0x82 } }, + { .data = { 0x06, 0x85 } }, + { .data = { 0x07, 0x80 } }, + { .data = { 0x08, 0x7c } }, + { .data = { 0x09, 0x7c } }, + { .data = { 0x0a, 0x74 } }, + { .data = { 0x0b, 0x71 } }, + { .data = { 0x0c, 0x6e } }, + { .data = { 0x0d, 0x68 } }, + { .data = { 0x0e, 0x65 } }, + { .data = { 0x0f, 0x5c } }, + { .data = { 0x10, 0x32 } }, + { .data = { 0x11, 0x18 } }, + { .data = { 0x12, 0x00 } }, + { .data = { 0x13, 0x00 } }, + { .data = { 0x1a, 0x00 } }, + { .data = { 0x1b, 0x00 } }, + { .data = { 0x1c, 0x00 } }, + { .data = { 0x1d, 0x00 } }, + { .data = { 0x1e, 0x00 } }, + { .data = { 0x1f, 0x00 } }, + { .data = { 0x20, 0x00 } }, + { .data = { 0x21, 0x00 } }, + { .data = { 0x22, 0x00 } }, + { .data = { 0x23, 0x00 } }, + { .data = { 0x24, 0x00 } }, + { .data = { 0x25, 0x00 } }, + { .data = { 0x26, 0x00 } }, + { .data = { 0x27, 0x00 } }, + { .data = { 0x28, 0x00 } }, + { .data = { 0x29, 0x00 } }, + { .data = { 0x2a, 0x00 } }, + { .data = { 0x2b, 0x00 } }, + { .data = { 0x2f, 0x00 } }, + { .data = { 0x30, 0x00 } }, + { .data = { 0x31, 0x00 } }, + { .data = { 0x32, 0x0c } }, + { .data = { 0x33, 0x0c } }, + { .data = { 0x34, 0x0c } }, + { .data = { 0x35, 0x0b } }, + { .data = { 0x36, 0x09 } }, + { .data = { 0x37, 0x09 } }, + { .data = { 0x38, 0x08 } }, + { .data = { 0x39, 0x05 } }, + { .data = { 0x3a, 0x03 } }, + { .data = { 0x3b, 0x00 } }, + { .data = { 0x3f, 0x00 } }, + { .data = { 0x40, 0x00 } }, + { .data = { 0x41, 0x00 } }, + { .data = { 0x42, 0x00 } }, + { .data = { 0x43, 0x00 } }, + { .data = { 0x44, 0x00 } }, + { .data = { 0x45, 0x00 } }, + { .data = { 0x46, 0x00 } }, + { .data = { 0x47, 0x00 } }, + { .data = { 0x48, 0x00 } }, + { .data = { 0x49, 0x03 } }, + { .data = { 0x4a, 0x06 } }, + { .data = { 0x4b, 0x07 } }, + { .data = { 0x4c, 0x07 } }, + { .data = { 0x53, 0x01 } }, + { .data = { 0x54, 0x01 } }, + { .data = { 0x55, 0x89 } }, + { .data = { 0x56, 0x00 } }, + { .data = { 0x58, 0x00 } }, + { .data = { 0x68, 0x00 } }, + { .data = { 0x84, 0xff } }, + { .data = { 0x85, 0xff } }, + { .data = { 0x86, 0x03 } }, + { .data = { 0x87, 0x00 } }, + { .data = { 0x88, 0x00 } }, + { .data = { 0xa2, 0x20 } }, + { .data = { 0xa9, 0x01 } }, + { .data = { 0xaa, 0x12 } }, + { .data = { 0xab, 0x13 } }, + { .data = { 0xac, 0x0a } }, + { .data = { 0xad, 0x74 } }, + { .data = { 0xaf, 0x33 } }, + { .data = { 0xb0, 0x03 } }, + { .data = { 0xb1, 0x14 } }, + { .data = { 0xb2, 0x42 } }, + { .data = { 0xb3, 0x40 } }, + { .data = { 0xb4, 0xa5 } }, + { .data = { 0xb6, 0x44 } }, + { .data = { 0xb7, 0x04 } }, + { .data = { 0xb8, 0x14 } }, + { .data = { 0xb9, 0x42 } }, + { .data = { 0xba, 0x40 } }, + { .data = { 0xbb, 0xa5 } }, + { .data = { 0xbd, 0x44 } }, + { .data = { 0xbe, 0x04 } }, + { .data = { 0xbf, 0x00 } }, + { .data = { 0xc0, 0x75 } }, + { .data = { 0xc1, 0x6a } }, + { .data = { 0xc2, 0xa5 } }, + { .data = { 0xc4, 0x22 } }, + { .data = { 0xc5, 0x02 } }, + { .data = { 0xc6, 0x00 } }, + { .data = { 0xc7, 0x95 } }, + { .data = { 0xc8, 0x8a } }, + { .data = { 0xc9, 0xa5 } }, + { .data = { 0xcb, 0x22 } }, + { .data = { 0xcc, 0x02 } }, + { .data = { 0xcd, 0x00 } }, + { .data = { 0xce, 0xb5 } }, + { .data = { 0xcf, 0xaa } }, + { .data = { 0xd0, 0xa5 } }, + { .data = { 0xd2, 0x22 } }, + { .data = { 0xd3, 0x02 } }, + { .data = { 0xfb, 0x01 } }, + { .data = { 0xff, 0x10 } }, + { .data = { 0x26, 0x02 } }, + { .data = { 0x35, 0x00 } }, + { .data = { 0x51, 0xff } }, + { .data = { 0x53, 0x24 } }, + { .data = { 0x55, 0x00 } }, + { .data = { 0xb0, 0x00 } }, +}; + +static const struct drm_display_mode jdi_nt35596s_video_panel_mode = { + .clock = (1080 + 16 + 28 + 40) * (2160 + 7 + 4 + 24) * 60 / 1000, + + .hdisplay = 1080, + .hsync_start = 1080 + 16, + .hsync_end = 1080 + 16 + 28, + .htotal = 1080 + 16 + 28 + 40, + + .vdisplay = 2160, + .vsync_start = 2160 + 7, + .vsync_end = 2160 + 7 + 4, + .vtotal = 2160 + 7 + 4 + 24, + + .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, +}; + +static const struct nt36672a_panel_desc jdi_nt35596s_video_panel_desc = { + .display_mode = &jdi_nt35596s_video_panel_mode, + + .width_mm = 68, + .height_mm = 136, + + .mode_flags = MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_VIDEO | + MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_CLOCK_NON_CONTINUOUS | + MIPI_DSI_MODE_VIDEO_BURST, + .format = MIPI_DSI_FMT_RGB888, + .lanes = 4, + .on_cmds_1 = jdi_nt35596s_video_on_cmds, + .num_on_cmds_1 = ARRAY_SIZE(jdi_nt35596s_video_on_cmds), + .on_cmds_2 = NULL, + .num_on_cmds_2 = 0, + .off_cmds = NULL, + .num_off_cmds = 0, +}; + static int nt36672a_panel_add(struct nt36672a_panel *pinfo) { struct device *dev = &pinfo->link->dev; @@ -668,6 +877,7 @@ static void nt36672a_panel_remove(struct mipi_dsi_device *dsi) static const struct of_device_id tianma_fhd_video_of_match[] = { { .compatible = "tianma,fhd-video", .data = &tianma_fhd_video_panel_desc }, + { .compatible = "jdi,fhd-nt35596s", .data = &jdi_nt35596s_video_panel_desc }, { }, }; MODULE_DEVICE_TABLE(of, tianma_fhd_video_of_match); @@ -683,5 +893,6 @@ static struct mipi_dsi_driver nt36672a_panel_driver = { module_mipi_dsi_driver(nt36672a_panel_driver); MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>"); -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver"); +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>"); +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver"); MODULE_LICENSE("GPL"); -- 2.51.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel 2025-09-13 19:19 ` [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel David Heidelberg via B4 Relay @ 2025-09-15 1:29 ` Dmitry Baryshkov 2025-09-15 10:11 ` David Heidelberg 0 siblings, 1 reply; 13+ messages in thread From: Dmitry Baryshkov @ 2025-09-15 1:29 UTC (permalink / raw) To: david Cc: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote: > From: Molly Sophia <mollysophia379@gmail.com> > > Novatek NT35596s is a generic DSI IC that drives command and video mode > panels. > Currently add support for the LCD panel from JDI connected with this IC, > as found on Xiaomi Mi Mix 2S phones. Why are you adding it to the existing driver rather than adding a new one? > > Signed-off-by: Molly Sophia <mollysophia379@gmail.com> > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> > Signed-off-by: David Heidelberg <david@ixit.cz> > --- > drivers/gpu/drm/panel/Kconfig | 7 +- > drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++- > 2 files changed, 222 insertions(+), 10 deletions(-) > > > MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>"); > -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver"); > +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>"); ?? > +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver"); > MODULE_LICENSE("GPL"); > > -- > 2.51.0 > > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel 2025-09-15 1:29 ` Dmitry Baryshkov @ 2025-09-15 10:11 ` David Heidelberg 2025-09-15 11:11 ` Dmitry Baryshkov 0 siblings, 1 reply; 13+ messages in thread From: David Heidelberg @ 2025-09-15 10:11 UTC (permalink / raw) To: Dmitry Baryshkov Cc: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris On 15/09/2025 03:29, Dmitry Baryshkov wrote: > On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote: >> From: Molly Sophia <mollysophia379@gmail.com> >> >> Novatek NT35596s is a generic DSI IC that drives command and video mode >> panels. >> Currently add support for the LCD panel from JDI connected with this IC, >> as found on Xiaomi Mi Mix 2S phones. > > Why are you adding it to the existing driver rather than adding a new > one? Hello, originally it started as a standalone driver (see v2 patchset), but got merged due to similarities. v2 patchset: https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html If it's desired, I can switch it back to the standalone driver. > >> >> Signed-off-by: Molly Sophia <mollysophia379@gmail.com> >> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> >> Signed-off-by: David Heidelberg <david@ixit.cz> >> --- >> drivers/gpu/drm/panel/Kconfig | 7 +- >> drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++- >> 2 files changed, 222 insertions(+), 10 deletions(-) >> >> >> MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>"); >> -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver"); >> +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>"); > > ?? What's wrong with it? David > >> +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver"); >> MODULE_LICENSE("GPL"); >> >> -- >> 2.51.0 >> >> > -- David Heidelberg ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel 2025-09-15 10:11 ` David Heidelberg @ 2025-09-15 11:11 ` Dmitry Baryshkov 2025-09-15 15:06 ` David Heidelberg 0 siblings, 1 reply; 13+ messages in thread From: Dmitry Baryshkov @ 2025-09-15 11:11 UTC (permalink / raw) To: David Heidelberg Cc: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris On Mon, Sep 15, 2025 at 12:11:49PM +0200, David Heidelberg wrote: > On 15/09/2025 03:29, Dmitry Baryshkov wrote: > > On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote: > > > From: Molly Sophia <mollysophia379@gmail.com> > > > > > > Novatek NT35596s is a generic DSI IC that drives command and video mode > > > panels. > > > Currently add support for the LCD panel from JDI connected with this IC, > > > as found on Xiaomi Mi Mix 2S phones. > > > > Why are you adding it to the existing driver rather than adding a new > > one? > > Hello, originally it started as a standalone driver (see v2 patchset), but > got merged due to similarities. I'm not sure, you had to get rid of the two command sets. On the other hand, adding a new module will add a lot of boilerplate. Let's keep it as is. Please add some notes to the commit message. > > v2 patchset: > https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html > > If it's desired, I can switch it back to the standalone driver. > > > > > > > > > Signed-off-by: Molly Sophia <mollysophia379@gmail.com> > > > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> > > > Signed-off-by: David Heidelberg <david@ixit.cz> > > > --- > > > drivers/gpu/drm/panel/Kconfig | 7 +- > > > drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++- > > > 2 files changed, 222 insertions(+), 10 deletions(-) > > > > > > MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>"); > > > -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver"); > > > +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>"); > > > > ?? > > What's wrong with it? I thought that the module can have only one MODULE_AUTHOR declaration, I was wrong. This is fine. > > David > > > > > > +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver"); > > > MODULE_LICENSE("GPL"); > > > > > > -- > > > 2.51.0 > > > > > > > > > > -- > David Heidelberg > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel 2025-09-15 11:11 ` Dmitry Baryshkov @ 2025-09-15 15:06 ` David Heidelberg 2025-09-15 18:22 ` Dmitry Baryshkov 0 siblings, 1 reply; 13+ messages in thread From: David Heidelberg @ 2025-09-15 15:06 UTC (permalink / raw) To: Dmitry Baryshkov Cc: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris On 15/09/2025 13:11, Dmitry Baryshkov wrote: > On Mon, Sep 15, 2025 at 12:11:49PM +0200, David Heidelberg wrote: >> On 15/09/2025 03:29, Dmitry Baryshkov wrote: >>> On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote: >>>> From: Molly Sophia <mollysophia379@gmail.com> >>>> >>>> Novatek NT35596s is a generic DSI IC that drives command and video mode >>>> panels. >>>> Currently add support for the LCD panel from JDI connected with this IC, >>>> as found on Xiaomi Mi Mix 2S phones. >>> >>> Why are you adding it to the existing driver rather than adding a new >>> one? >> >> Hello, originally it started as a standalone driver (see v2 patchset), but >> got merged due to similarities. > > I'm not sure, you had to get rid of the two command sets. On the other > hand, adding a new module will add a lot of boilerplate. Let's keep it > as is. Please add some notes to the commit message. Ok, I found out in the meantime that Alexey is working on refactoring nt36672a, so we’ll coordinate. I’ll likely need to rebase this changeset on top of the refactored nt36672a, or possibly move it into a separate driver. See https://github.com/sdm660-mainline/linux/pull/114/commits > >> >> v2 patchset: >> https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html >> >> If it's desired, I can switch it back to the standalone driver. >> >>> >>>> >>>> Signed-off-by: Molly Sophia <mollysophia379@gmail.com> >>>> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> >>>> Signed-off-by: David Heidelberg <david@ixit.cz> >>>> --- >>>> drivers/gpu/drm/panel/Kconfig | 7 +- >>>> drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++- >>>> 2 files changed, 222 insertions(+), 10 deletions(-) >>>> >>>> MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>"); >>>> -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver"); >>>> +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>"); >>> >>> ?? >> >> What's wrong with it? > > I thought that the module can have only one MODULE_AUTHOR declaration, I > was wrong. This is fine. Yeah, it's not usual to have more than one. > >> >> David >> >>> >>>> +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver"); >>>> MODULE_LICENSE("GPL"); >>>> >>>> -- >>>> 2.51.0 >>>> >>>> >>> >> >> -- >> David Heidelberg >> > -- David Heidelberg ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel 2025-09-15 15:06 ` David Heidelberg @ 2025-09-15 18:22 ` Dmitry Baryshkov 0 siblings, 0 replies; 13+ messages in thread From: Dmitry Baryshkov @ 2025-09-15 18:22 UTC (permalink / raw) To: David Heidelberg Cc: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris On Mon, Sep 15, 2025 at 05:06:51PM +0200, David Heidelberg wrote: > > On 15/09/2025 13:11, Dmitry Baryshkov wrote: > > On Mon, Sep 15, 2025 at 12:11:49PM +0200, David Heidelberg wrote: > > > On 15/09/2025 03:29, Dmitry Baryshkov wrote: > > > > On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote: > > > > > From: Molly Sophia <mollysophia379@gmail.com> > > > > > > > > > > Novatek NT35596s is a generic DSI IC that drives command and video mode > > > > > panels. > > > > > Currently add support for the LCD panel from JDI connected with this IC, > > > > > as found on Xiaomi Mi Mix 2S phones. > > > > > > > > Why are you adding it to the existing driver rather than adding a new > > > > one? > > > > > > Hello, originally it started as a standalone driver (see v2 patchset), but > > > got merged due to similarities. > > > > I'm not sure, you had to get rid of the two command sets. On the other > > hand, adding a new module will add a lot of boilerplate. Let's keep it > > as is. Please add some notes to the commit message. > > Ok, I found out in the meantime that Alexey is working on refactoring > nt36672a, so we’ll coordinate. I’ll likely need to rebase this changeset on > top of the refactored nt36672a, or possibly move it into a separate driver. > > See https://github.com/sdm660-mainline/linux/pull/114/commits I think it fits even more after refactoring. I hope Alexey will post the refacrorings soon. > > > > > > > > > v2 patchset: > > > https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html > > > > > > If it's desired, I can switch it back to the standalone driver. > > > > > > > > > > > > > > > > > Signed-off-by: Molly Sophia <mollysophia379@gmail.com> > > > > > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> > > > > > Signed-off-by: David Heidelberg <david@ixit.cz> > > > > > --- > > > > > drivers/gpu/drm/panel/Kconfig | 7 +- > > > > > drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++- > > > > > 2 files changed, 222 insertions(+), 10 deletions(-) > > > > > > > > > > MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>"); > > > > > -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver"); > > > > > +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>"); > > > > > > > > ?? > > > > > > What's wrong with it? > > > > I thought that the module can have only one MODULE_AUTHOR declaration, I > > was wrong. This is fine. > > Yeah, it's not usual to have more than one. > > > > > > > > > David > > > > > > > > > > > > +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver"); > > > > > MODULE_LICENSE("GPL"); > > > > > > > > > > -- > > > > > 2.51.0 > > > > > > > > > > > > > > > > > > > > -- > > > David Heidelberg > > > > > > > -- > David Heidelberg > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 3/3] dt-bindings: display: panel: Add Novatek NT35596S panel bindings 2025-09-13 19:19 [PATCH v6 0/3] Add driver for Novatek NT35596S panel David Heidelberg via B4 Relay 2025-09-13 19:19 ` [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional David Heidelberg via B4 Relay 2025-09-13 19:19 ` [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel David Heidelberg via B4 Relay @ 2025-09-13 19:19 ` David Heidelberg via B4 Relay 2026-09-11 8:55 ` [PATCH v6 0/3] Add driver for Novatek NT35596S panel Konrad Dybcio 3 siblings, 0 replies; 13+ messages in thread From: David Heidelberg via B4 Relay @ 2025-09-13 19:19 UTC (permalink / raw) To: Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris, Krzysztof Kozlowski From: Molly Sophia <mollysophia379@gmail.com> Add documentation for "novatek,nt35596s" panel. Signed-off-by: Molly Sophia <mollysophia379@gmail.com> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- .../bindings/display/panel/novatek,nt36672a.yaml | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml b/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml index 800a2f0a4dad98954ef60c3bb04d8eb2243cae7a..d7036ab46382f7b6200cc263ba7e93856386919f 100644 --- a/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml +++ b/Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml @@ -20,14 +20,21 @@ allOf: properties: compatible: - items: - - enum: - - tianma,fhd-video - - const: novatek,nt36672a + oneOf: + - items: + - enum: + - jdi,fhd-nt35596s + - const: novatek,nt35596s + + - items: + - enum: + - tianma,fhd-video + - const: novatek,nt36672a + description: This indicates the panel manufacturer of the panel that is - in turn using the NT36672A panel driver. This compatible string - determines how the NT36672A panel driver is configured for the indicated - panel. The novatek,nt36672a compatible shall always be provided as a fallback. + in turn using the NT36672A or the NT35596S panel driver. This compatible + string determines how the panel driver is configured for the indicated + panel. reg: maxItems: 1 -- 2.51.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/3] Add driver for Novatek NT35596S panel 2025-09-13 19:19 [PATCH v6 0/3] Add driver for Novatek NT35596S panel David Heidelberg via B4 Relay ` (2 preceding siblings ...) 2025-09-13 19:19 ` [PATCH v6 3/3] dt-bindings: display: panel: Add Novatek NT35596S panel bindings David Heidelberg via B4 Relay @ 2026-09-11 8:55 ` Konrad Dybcio 2026-09-11 20:10 ` David Heidelberg 3 siblings, 1 reply; 13+ messages in thread From: Konrad Dybcio @ 2026-09-11 8:55 UTC (permalink / raw) To: David Heidelberg, Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris, Krzysztof Kozlowski On 9/13/25 9:19 PM, David Heidelberg wrote: > These patches add support for Novatek NT35596S based JDI FHD panels. > This panel is already used by mainlined Xiaomi Mi Mix 2S mobile phone. Hello, are you going to be following up on this? I noticed we've had the jdi,fhd-nt35596s compatible in the QC tree for 3 years, without bindings and even without a driver.. It's producing DT warnings, so if this is not restarted, I'd like to drop that node soon to quiesce them, with of course proper reintroduction being more than welcome. Konrad ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/3] Add driver for Novatek NT35596S panel 2026-09-11 8:55 ` [PATCH v6 0/3] Add driver for Novatek NT35596S panel Konrad Dybcio @ 2026-09-11 20:10 ` David Heidelberg 2026-09-13 9:54 ` Alexey Minnekhanov 0 siblings, 1 reply; 13+ messages in thread From: David Heidelberg @ 2026-09-11 20:10 UTC (permalink / raw) To: Konrad Dybcio, Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alexey Minnekhanov Cc: dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris, Krzysztof Kozlowski On 11/09/2026 10:55, Konrad Dybcio wrote: > On 9/13/25 9:19 PM, David Heidelberg wrote: >> These patches add support for Novatek NT35596S based JDI FHD panels. >> This panel is already used by mainlined Xiaomi Mi Mix 2S mobile phone. > > Hello, are you going to be following up on this? X> Ok, I found out in the meantime that Alexey is working on refactoring X> nt36672a, so we’ll coordinate. I’ll likely need to rebase this changeset on X> top of the refactored nt36672a, or possibly move it into a separate driver. X> X> See https://github.com/sdm660-mainline/linux/pull/114/commits I think it fits even more after refactoring. I hope Alexey will post the refactorings soon. I'm afraid Alexey didn't :) (+Cc) David P.S. I don't have the hardware so I don't want to do a risky changes. > > I noticed we've had the jdi,fhd-nt35596s compatible in the QC tree > for 3 years, without bindings and even without a driver.. > > It's producing DT warnings, so if this is not restarted, I'd like > to drop that node soon to quiesce them, with of course proper > reintroduction being more than welcome. > > Konrad ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/3] Add driver for Novatek NT35596S panel 2026-09-11 20:10 ` David Heidelberg @ 2026-09-13 9:54 ` Alexey Minnekhanov 0 siblings, 0 replies; 13+ messages in thread From: Alexey Minnekhanov @ 2026-09-13 9:54 UTC (permalink / raw) To: David Heidelberg, Konrad Dybcio, Sumit Semwal, Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alexey Minnekhanov Cc: dri-devel, linux-kernel, devicetree, Molly Sophia, Arnaud Ferraris, Krzysztof Kozlowski On 11.09.2026 23:10, David Heidelberg wrote: > > X> Ok, I found out in the meantime that Alexey is working on refactoring > X> nt36672a, so we’ll coordinate. I’ll likely need to rebase this > changeset on > X> top of the refactored nt36672a, or possibly move it into a separate > driver. > X> > X> See https://github.com/sdm660-mainline/linux/pull/114/commits > > I think it fits even more after refactoring. I hope Alexey will post the > refactorings soon. > > I'm afraid Alexey didn't :) (+Cc) > > David > > P.S. I don't have the hardware so I don't want to do a risky changes. > The rework: https://patchwork.kernel.org/series/1163701/ But there will be at least v2, I'm feeling it.. -- Regards, Alexey Minnekhanov ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-09-13 9:54 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-09-13 19:19 [PATCH v6 0/3] Add driver for Novatek NT35596S panel David Heidelberg via B4 Relay 2025-09-13 19:19 ` [PATCH v6 1/3] drm: panel: nt36672a: Make some command sequences optional David Heidelberg via B4 Relay 2025-09-15 1:22 ` Dmitry Baryshkov 2025-09-13 19:19 ` [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel David Heidelberg via B4 Relay 2025-09-15 1:29 ` Dmitry Baryshkov 2025-09-15 10:11 ` David Heidelberg 2025-09-15 11:11 ` Dmitry Baryshkov 2025-09-15 15:06 ` David Heidelberg 2025-09-15 18:22 ` Dmitry Baryshkov 2025-09-13 19:19 ` [PATCH v6 3/3] dt-bindings: display: panel: Add Novatek NT35596S panel bindings David Heidelberg via B4 Relay 2026-09-11 8:55 ` [PATCH v6 0/3] Add driver for Novatek NT35596S panel Konrad Dybcio 2026-09-11 20:10 ` David Heidelberg 2026-09-13 9:54 ` Alexey Minnekhanov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox