* [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel
@ 2026-02-14 8:54 Langyan Ye
2026-02-14 8:54 ` [PATCH v3 1/3] dt-bindings: vendor: add taiguanck Langyan Ye
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Langyan Ye @ 2026-02-14 8:54 UTC (permalink / raw)
To: neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann,
robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj,
dev, kever.yang
Cc: dri-devel, devicetree, linux-kernel, dianders, Langyan Ye
The panel uses the Jadard JD9365DA-H3 display controller, which is already
supported by the existing panel driver. This series introduces a new
vendor prefix, adds the corresponding devicetree compatible, and extends
the panel driver to support this specific panel variant.
Changes in v3:
- Use vendor prefix "taiguanck" to match the verifiable company domain
as requested during review.
- Link to v2: https://lore.kernel.org/all/20260213071946.1436852-1-yelangyan@huaqin.corp-partner.google.com/
Changes in v2:
- PATCH 1/3: Clarify the origin of the "taiguan" vendor prefix as requested during review.
- Link to v1: https://lore.kernel.org/all/20260205154657.3085820-1-yelangyan@huaqin.corp-partner.google.com/
Langyan Ye (3):
dt-bindings: vendor: add taiguanck
dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A
drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a
MIPI-DSI panel
.../display/panel/jadard,jd9365da-h3.yaml | 1 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
.../gpu/drm/panel/panel-jadard-jd9365da-h3.c | 244 ++++++++++++++++++
3 files changed, 247 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v3 1/3] dt-bindings: vendor: add taiguanck 2026-02-14 8:54 [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye @ 2026-02-14 8:54 ` Langyan Ye 2026-02-16 17:49 ` Conor Dooley 2026-02-14 8:54 ` [PATCH v3 2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A Langyan Ye ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Langyan Ye @ 2026-02-14 8:54 UTC (permalink / raw) To: neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang Cc: dri-devel, devicetree, linux-kernel, dianders, Langyan Ye Add the "taiguanck" vendor prefix for Shenzhen Top Group Technology Co., Ltd. The prefix is derived from the vendor's website domain: www.taiguanck.com/en/, which uses "taiguanck" as the primary identifier of the company. Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com> --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index fc7985f3a549..1856e455f7e6 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -1598,6 +1598,8 @@ patternProperties: "^synopsys,.*": description: Synopsys, Inc. (deprecated, use snps) deprecated: true + "^taiguanck,.*": + description: Shenzhen Top Group Technology Co., Ltd. "^taos,.*": description: Texas Advanced Optoelectronic Solutions Inc. "^tbs,.*": -- 2.34.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: vendor: add taiguanck 2026-02-14 8:54 ` [PATCH v3 1/3] dt-bindings: vendor: add taiguanck Langyan Ye @ 2026-02-16 17:49 ` Conor Dooley 2026-02-18 7:59 ` Krzysztof Kozlowski 0 siblings, 1 reply; 10+ messages in thread From: Conor Dooley @ 2026-02-16 17:49 UTC (permalink / raw) To: Langyan Ye Cc: neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang, dri-devel, devicetree, linux-kernel, dianders [-- Attachment #1: Type: text/plain, Size: 1214 bytes --] On Sat, Feb 14, 2026 at 04:54:07PM +0800, Langyan Ye wrote: > Add the "taiguanck" vendor prefix for Shenzhen Top Group Technology Co., Ltd. > > The prefix is derived from the vendor's website domain: > www.taiguanck.com/en/, which uses "taiguanck" as the primary This website doesn't exist it seems. I get an ERR_EMPTY_RESPONSE. > identifier of the company. > > Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com> > --- > Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml > index fc7985f3a549..1856e455f7e6 100644 > --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml > +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml > @@ -1598,6 +1598,8 @@ patternProperties: > "^synopsys,.*": > description: Synopsys, Inc. (deprecated, use snps) > deprecated: true > + "^taiguanck,.*": > + description: Shenzhen Top Group Technology Co., Ltd. > "^taos,.*": > description: Texas Advanced Optoelectronic Solutions Inc. > "^tbs,.*": > -- > 2.34.1 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: vendor: add taiguanck 2026-02-16 17:49 ` Conor Dooley @ 2026-02-18 7:59 ` Krzysztof Kozlowski 2026-02-18 18:12 ` Conor Dooley 0 siblings, 1 reply; 10+ messages in thread From: Krzysztof Kozlowski @ 2026-02-18 7:59 UTC (permalink / raw) To: Conor Dooley, Langyan Ye Cc: neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang, dri-devel, devicetree, linux-kernel, dianders On 16/02/2026 18:49, Conor Dooley wrote: > On Sat, Feb 14, 2026 at 04:54:07PM +0800, Langyan Ye wrote: >> Add the "taiguanck" vendor prefix for Shenzhen Top Group Technology Co., Ltd. >> >> The prefix is derived from the vendor's website domain: >> www.taiguanck.com/en/, which uses "taiguanck" as the primary > > This website doesn't exist it seems. I get an ERR_EMPTY_RESPONSE. I commented on this already v2, which was ignored by author, waited one week to get it fixed and still not fixed. Website seems real, though, according to Google. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: vendor: add taiguanck 2026-02-18 7:59 ` Krzysztof Kozlowski @ 2026-02-18 18:12 ` Conor Dooley 0 siblings, 0 replies; 10+ messages in thread From: Conor Dooley @ 2026-02-18 18:12 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Langyan Ye, neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang, dri-devel, devicetree, linux-kernel, dianders [-- Attachment #1: Type: text/plain, Size: 960 bytes --] On Wed, Feb 18, 2026 at 08:59:31AM +0100, Krzysztof Kozlowski wrote: > On 16/02/2026 18:49, Conor Dooley wrote: > > On Sat, Feb 14, 2026 at 04:54:07PM +0800, Langyan Ye wrote: > >> Add the "taiguanck" vendor prefix for Shenzhen Top Group Technology Co., Ltd. > >> > >> The prefix is derived from the vendor's website domain: > >> www.taiguanck.com/en/, which uses "taiguanck" as the primary > > > > This website doesn't exist it seems. I get an ERR_EMPTY_RESPONSE. > > I commented on this already v2, which was ignored by author, waited one > week to get it fixed and still not fixed. Website seems real, though, > according to Google. tbf, the author of the patch may have no ability to fix it if that's the case, I assumed it was a typo or something. It's probably fair enough to just ack it then even if the website is not working for us. Acked-by: Conor Dooley <conor.dooley@microchip.com> pw-bot: not-applicable Cheers, Conor. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A 2026-02-14 8:54 [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye 2026-02-14 8:54 ` [PATCH v3 1/3] dt-bindings: vendor: add taiguanck Langyan Ye @ 2026-02-14 8:54 ` Langyan Ye 2026-02-23 17:58 ` Rob Herring (Arm) 2026-02-14 8:54 ` [PATCH v3 3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye 2026-03-10 13:28 ` [PATCH v3 0/3] " Neil Armstrong 3 siblings, 1 reply; 10+ messages in thread From: Langyan Ye @ 2026-02-14 8:54 UTC (permalink / raw) To: neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang Cc: dri-devel, devicetree, linux-kernel, dianders, Langyan Ye Add a new compatible for the panel TAIGUAN XTI05101-01A. This panel uses JD9365DA-H3 IC, so add the compatible to the jd9365da-h3 binding files. Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com> --- .../devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml b/Documentation/devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml index 5802fb3c9ffe..0bb4980555e2 100644 --- a/Documentation/devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml +++ b/Documentation/devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml @@ -23,6 +23,7 @@ properties: - melfas,lmfbx101117480 - radxa,display-10hd-ad001 - radxa,display-8hd-ad002 + - taiguanck,xti05101-01a - const: jadard,jd9365da-h3 reg: -- 2.34.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A 2026-02-14 8:54 ` [PATCH v3 2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A Langyan Ye @ 2026-02-23 17:58 ` Rob Herring (Arm) 0 siblings, 0 replies; 10+ messages in thread From: Rob Herring (Arm) @ 2026-02-23 17:58 UTC (permalink / raw) To: Langyan Ye Cc: dianders, mani, simona, conor+dt, dev, devicetree, heiko, dri-devel, tzimmermann, prabhakar.mahadev-lad.rj, maarten.lankhorst, mripard, linux-kernel, neil.armstrong, kever.yang, krzk+dt On Sat, 14 Feb 2026 16:54:08 +0800, Langyan Ye wrote: > Add a new compatible for the panel TAIGUAN XTI05101-01A. This panel uses > JD9365DA-H3 IC, so add the compatible to the jd9365da-h3 binding files. > > Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com> > --- > .../devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml | 1 + > 1 file changed, 1 insertion(+) > Acked-by: Rob Herring (Arm) <robh@kernel.org> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel 2026-02-14 8:54 [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye 2026-02-14 8:54 ` [PATCH v3 1/3] dt-bindings: vendor: add taiguanck Langyan Ye 2026-02-14 8:54 ` [PATCH v3 2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A Langyan Ye @ 2026-02-14 8:54 ` Langyan Ye 2026-03-04 16:34 ` neil.armstrong 2026-03-10 13:28 ` [PATCH v3 0/3] " Neil Armstrong 3 siblings, 1 reply; 10+ messages in thread From: Langyan Ye @ 2026-02-14 8:54 UTC (permalink / raw) To: neil.armstrong, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang Cc: dri-devel, devicetree, linux-kernel, dianders, Langyan Ye The taiguan-xti05101-01a is a 10.1" TFT panel. The MIPI controller on this panel is the same as the other panels here, so add this panel to this driver. Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com> --- .../gpu/drm/panel/panel-jadard-jd9365da-h3.c | 244 ++++++++++++++++++ 1 file changed, 244 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c index 5386a06fcd08..c33c611e03c0 100644 --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c @@ -1366,6 +1366,246 @@ static const struct jadard_panel_desc anbernic_rgds_display_desc = { MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM, }; +static int taiguan_xti05101_01a_init_cmds(struct jadard *jadard) +{ + struct mipi_dsi_multi_context dsi_ctx = { .dsi = jadard->dsi }; + + jd9365da_switch_page(&dsi_ctx, 0x00); + jadard_enable_standard_cmds(&dsi_ctx); + + jd9365da_switch_page(&dsi_ctx, 0x01); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x74); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x17, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0xd7); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x01); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1a, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0xd7); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x01); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0xfe); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x19); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x35, 0x28); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x38, 0x05); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x39, 0x08); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3a, 0x12); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x78); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3d, 0xff); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3e, 0xff); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3f, 0x7f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x40, 0x06); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x41, 0xa0); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x43, 0x1e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x44, 0x0b); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x55, 0x02); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x6a); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x59, 0x0a); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5a, 0x2e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5b, 0x1a); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5c, 0x15); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x7f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x58); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x46); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x39); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x35); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x27); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x2b); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x16); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x30); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x2e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0x2f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x4d); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x3c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x43); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x36); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6c, 0x31); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6d, 0x24); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6e, 0x14); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6f, 0x02); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x70, 0x7f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x71, 0x58); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x72, 0x46); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x73, 0x39); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x74, 0x35); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0x27); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x2b); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x16); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x30); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x79, 0x2e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7a, 0x2f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7b, 0x4d); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7c, 0x3c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7d, 0x43); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7e, 0x36); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7f, 0x31); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x80, 0x24); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x81, 0x14); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x82, 0x02); + + jd9365da_switch_page(&dsi_ctx, 0x02); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x00, 0x52); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x01, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x02, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x03, 0x50); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x04, 0x77); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x05, 0x57); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x06, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x07, 0x4e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x08, 0x4c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x09, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0a, 0x4a); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0b, 0x48); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0d, 0x46); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0e, 0x44); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0f, 0x40); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x10, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x11, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x12, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x13, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x14, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x15, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x16, 0x53); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x17, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x51); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1a, 0x77); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0x57); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1d, 0x4f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1e, 0x4d); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1f, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x20, 0x4b); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x21, 0x49); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x22, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x23, 0x47); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0x45); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x25, 0x41); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x26, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x27, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x28, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x29, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2a, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2b, 0x5f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2c, 0x13); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2d, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2e, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2f, 0x01); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x30, 0x17); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x31, 0x17); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x32, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x33, 0x0d); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x34, 0x0f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x35, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x36, 0x05); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x07); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x38, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x39, 0x09); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3a, 0x0b); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3b, 0x11); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3d, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3e, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3f, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x40, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x41, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x42, 0x12); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x43, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x44, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x45, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x46, 0x17); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x47, 0x17); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x48, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x49, 0x0c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4a, 0x0e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4b, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4c, 0x04); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4d, 0x06); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4e, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4f, 0x08); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x50, 0x0a); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x51, 0x10); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x52, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x53, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x54, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x55, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x56, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x1f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x58, 0x40); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5b, 0x10); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5c, 0x06); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x40); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x40); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x03); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x04); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x6c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x6c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x75); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x08); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0xb4); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x08); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x6c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x6c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x0c); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6d, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6e, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6f, 0x88); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0xbb); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x00); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x05); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x2a); + + jd9365da_switch_page(&dsi_ctx, 0x04); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x00, 0x0e); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x02, 0xb3); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x09, 0x61); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0e, 0x48); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2b, 0x0f); + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x58); + + jd9365da_switch_page(&dsi_ctx, 0x00); + + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); + + mipi_dsi_msleep(&dsi_ctx, 120); + + mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); + + mipi_dsi_msleep(&dsi_ctx, 20); + + return dsi_ctx.accum_err; +}; + +static const struct jadard_panel_desc taiguan_xti05101_01a_desc = { + .mode = { + .clock = (800 + 24 + 24 + 24) * (1280 + 30 + 4 + 8) * 60 / 1000, + + .hdisplay = 800, + .hsync_start = 800 + 24, + .hsync_end = 800 + 24 + 24, + .htotal = 800 + 24 + 24 + 24, + + .vdisplay = 1280, + .vsync_start = 1280 + 30, + .vsync_end = 1280 + 30 + 4, + .vtotal = 1280 + 30 + 4 + 8, + + .width_mm = 135, + .height_mm = 216, + .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, + }, + .lanes = 4, + .format = MIPI_DSI_FMT_RGB888, + .init = taiguan_xti05101_01a_init_cmds, + .lp11_before_reset = true, + .reset_before_power_off_vcioo = true, + .vcioo_to_lp11_delay_ms = 5, + .lp11_to_reset_delay_ms = 10, + .backlight_off_to_display_off_delay_ms = 3, + .display_off_to_enter_sleep_delay_ms = 50, + .enter_sleep_to_reset_down_delay_ms = 100, +}; + static int jadard_dsi_probe(struct mipi_dsi_device *dsi) { struct device *dev = &dsi->dev; @@ -1463,6 +1703,10 @@ static const struct of_device_id jadard_of_match[] = { .compatible = "radxa,display-8hd-ad002", .data = &radxa_display_8hd_ad002_desc }, + { + .compatible = "taiguanck,xti05101-01a", + .data = &taiguan_xti05101_01a_desc + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, jadard_of_match); -- 2.34.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel 2026-02-14 8:54 ` [PATCH v3 3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye @ 2026-03-04 16:34 ` neil.armstrong 0 siblings, 0 replies; 10+ messages in thread From: neil.armstrong @ 2026-03-04 16:34 UTC (permalink / raw) To: Langyan Ye, simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang Cc: dri-devel, devicetree, linux-kernel, dianders On 2/14/26 09:54, Langyan Ye wrote: > The taiguan-xti05101-01a is a 10.1" TFT panel. The MIPI controller on this > panel is the same as the other panels here, so add this panel to this > driver. > > Signed-off-by: Langyan Ye <yelangyan@huaqin.corp-partner.google.com> > --- > .../gpu/drm/panel/panel-jadard-jd9365da-h3.c | 244 ++++++++++++++++++ > 1 file changed, 244 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c > index 5386a06fcd08..c33c611e03c0 100644 > --- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c > +++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c > @@ -1366,6 +1366,246 @@ static const struct jadard_panel_desc anbernic_rgds_display_desc = { > MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM, > }; > > +static int taiguan_xti05101_01a_init_cmds(struct jadard *jadard) > +{ > + struct mipi_dsi_multi_context dsi_ctx = { .dsi = jadard->dsi }; > + > + jd9365da_switch_page(&dsi_ctx, 0x00); > + jadard_enable_standard_cmds(&dsi_ctx); > + > + jd9365da_switch_page(&dsi_ctx, 0x01); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x74); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x17, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0xd7); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x01); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1a, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0xd7); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x01); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0xfe); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x19); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x35, 0x28); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x38, 0x05); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x39, 0x08); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3a, 0x12); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x78); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3d, 0xff); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3e, 0xff); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3f, 0x7f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x40, 0x06); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x41, 0xa0); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x43, 0x1e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x44, 0x0b); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x55, 0x02); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x6a); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x59, 0x0a); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5a, 0x2e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5b, 0x1a); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5c, 0x15); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x7f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x58); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x46); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x39); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x35); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x27); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x2b); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x16); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x30); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x2e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0x2f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x4d); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x3c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x43); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x36); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6c, 0x31); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6d, 0x24); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6e, 0x14); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6f, 0x02); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x70, 0x7f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x71, 0x58); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x72, 0x46); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x73, 0x39); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x74, 0x35); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0x27); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x2b); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x16); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x30); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x79, 0x2e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7a, 0x2f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7b, 0x4d); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7c, 0x3c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7d, 0x43); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7e, 0x36); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x7f, 0x31); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x80, 0x24); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x81, 0x14); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x82, 0x02); > + > + jd9365da_switch_page(&dsi_ctx, 0x02); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x00, 0x52); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x01, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x02, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x03, 0x50); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x04, 0x77); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x05, 0x57); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x06, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x07, 0x4e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x08, 0x4c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x09, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0a, 0x4a); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0b, 0x48); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0c, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0d, 0x46); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0e, 0x44); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0f, 0x40); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x10, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x11, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x12, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x13, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x14, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x15, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x16, 0x53); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x17, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x18, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x19, 0x51); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1a, 0x77); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1b, 0x57); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1c, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1d, 0x4f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1e, 0x4d); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x1f, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x20, 0x4b); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x21, 0x49); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x22, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x23, 0x47); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x24, 0x45); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x25, 0x41); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x26, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x27, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x28, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x29, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2a, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2b, 0x5f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2c, 0x13); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2d, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2e, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2f, 0x01); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x30, 0x17); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x31, 0x17); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x32, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x33, 0x0d); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x34, 0x0f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x35, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x36, 0x05); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x07); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x38, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x39, 0x09); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3a, 0x0b); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3b, 0x11); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3c, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3d, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3e, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x3f, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x40, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x41, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x42, 0x12); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x43, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x44, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x45, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x46, 0x17); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x47, 0x17); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x48, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x49, 0x0c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4a, 0x0e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4b, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4c, 0x04); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4d, 0x06); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4e, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x4f, 0x08); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x50, 0x0a); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x51, 0x10); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x52, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x53, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x54, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x55, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x56, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x57, 0x1f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x58, 0x40); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5b, 0x10); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5c, 0x06); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5d, 0x40); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5e, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x5f, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x60, 0x40); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x61, 0x03); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x62, 0x04); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x63, 0x6c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x64, 0x6c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x65, 0x75); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x66, 0x08); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x67, 0xb4); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x68, 0x08); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x69, 0x6c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6a, 0x6c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6b, 0x0c); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6d, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6e, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x6f, 0x88); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x75, 0xbb); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x76, 0x00); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x77, 0x05); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x78, 0x2a); > + > + jd9365da_switch_page(&dsi_ctx, 0x04); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x00, 0x0e); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x02, 0xb3); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x09, 0x61); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x0e, 0x48); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x2b, 0x0f); > + mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0x37, 0x58); > + > + jd9365da_switch_page(&dsi_ctx, 0x00); > + > + mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); > + > + mipi_dsi_msleep(&dsi_ctx, 120); > + > + mipi_dsi_dcs_set_display_on_multi(&dsi_ctx); > + > + mipi_dsi_msleep(&dsi_ctx, 20); > + > + return dsi_ctx.accum_err; > +}; > + > +static const struct jadard_panel_desc taiguan_xti05101_01a_desc = { > + .mode = { > + .clock = (800 + 24 + 24 + 24) * (1280 + 30 + 4 + 8) * 60 / 1000, > + > + .hdisplay = 800, > + .hsync_start = 800 + 24, > + .hsync_end = 800 + 24 + 24, > + .htotal = 800 + 24 + 24 + 24, > + > + .vdisplay = 1280, > + .vsync_start = 1280 + 30, > + .vsync_end = 1280 + 30 + 4, > + .vtotal = 1280 + 30 + 4 + 8, > + > + .width_mm = 135, > + .height_mm = 216, > + .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, > + }, > + .lanes = 4, > + .format = MIPI_DSI_FMT_RGB888, > + .init = taiguan_xti05101_01a_init_cmds, > + .lp11_before_reset = true, > + .reset_before_power_off_vcioo = true, > + .vcioo_to_lp11_delay_ms = 5, > + .lp11_to_reset_delay_ms = 10, > + .backlight_off_to_display_off_delay_ms = 3, > + .display_off_to_enter_sleep_delay_ms = 50, > + .enter_sleep_to_reset_down_delay_ms = 100, > +}; > + > static int jadard_dsi_probe(struct mipi_dsi_device *dsi) > { > struct device *dev = &dsi->dev; > @@ -1463,6 +1703,10 @@ static const struct of_device_id jadard_of_match[] = { > .compatible = "radxa,display-8hd-ad002", > .data = &radxa_display_8hd_ad002_desc > }, > + { > + .compatible = "taiguanck,xti05101-01a", > + .data = &taiguan_xti05101_01a_desc > + }, > { /* sentinel */ } > }; > MODULE_DEVICE_TABLE(of, jadard_of_match); Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Thanks, Neil ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel 2026-02-14 8:54 [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye ` (2 preceding siblings ...) 2026-02-14 8:54 ` [PATCH v3 3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye @ 2026-03-10 13:28 ` Neil Armstrong 3 siblings, 0 replies; 10+ messages in thread From: Neil Armstrong @ 2026-03-10 13:28 UTC (permalink / raw) To: simona, maarten.lankhorst, mripard, tzimmermann, robh, krzk+dt, conor+dt, heiko, mani, prabhakar.mahadev-lad.rj, dev, kever.yang, Langyan Ye Cc: dri-devel, devicetree, linux-kernel, dianders Hi, On Sat, 14 Feb 2026 16:54:06 +0800, Langyan Ye wrote: > The panel uses the Jadard JD9365DA-H3 display controller, which is already > supported by the existing panel driver. This series introduces a new > vendor prefix, adds the corresponding devicetree compatible, and extends > the panel driver to support this specific panel variant. > > Changes in v3: > - Use vendor prefix "taiguanck" to match the verifiable company domain > as requested during review. > - Link to v2: https://lore.kernel.org/all/20260213071946.1436852-1-yelangyan@huaqin.corp-partner.google.com/ > > [...] Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-next) [1/3] dt-bindings: vendor: add taiguanck https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/65fb1ca580461a4fb4529a22b0d6f50c13e4c3cc [2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/75a703c6810fa566e5a64dc0c3e45d2d891307e2 [3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/5c19c4ed5ae45553380afa6de7cd17d4e5bef827 -- Neil ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-03-10 13:28 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-14 8:54 [PATCH v3 0/3] support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye 2026-02-14 8:54 ` [PATCH v3 1/3] dt-bindings: vendor: add taiguanck Langyan Ye 2026-02-16 17:49 ` Conor Dooley 2026-02-18 7:59 ` Krzysztof Kozlowski 2026-02-18 18:12 ` Conor Dooley 2026-02-14 8:54 ` [PATCH v3 2/3] dt-bindings: display: panel: Add compatible for TAIGUAN XTI05101-01A Langyan Ye 2026-02-23 17:58 ` Rob Herring (Arm) 2026-02-14 8:54 ` [PATCH v3 3/3] drm/panel: panel-jadard-jd9365da-h3: support for taiguan-xti05101-01a MIPI-DSI panel Langyan Ye 2026-03-04 16:34 ` neil.armstrong 2026-03-10 13:28 ` [PATCH v3 0/3] " Neil Armstrong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox