mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/panel: add the Novatek NT51021 panel in the Amazon Fire HD 10
@ 2026-09-06  1:34 Ryan Brue via B4 Relay
  2026-09-06  1:34 ` [PATCH 1/2] dt-bindings: display: panel: add Novatek NT51021 Ryan Brue via B4 Relay
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ryan Brue via B4 Relay @ 2026-09-06  1:34 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
	AngeloGioacchino Del Regno
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-kernel,
	linux-mediatek, Ryan Brue

Add the 1200x1920 DSI panel fitted to the Amazon Fire HD 10 (2017), an
MT8173 tablet. The controller is a Novatek NT51021; the module carries
BOE glass.

The controller has no readable panel identity. MediaTek's LCM framework
identifies panels through a .compare_id callback and the vendor's driver
for this one leaves it unset, and the glass part number is not recorded
anywhere in the vendor tree -- it names the module only "BOE". I had the
compatible name the module after the board it ships in, the way
xiaomi,elish-boe-nt36523 and lenovo,j606f-boe-nt36523w do for this
situation.

The vendor's bootloader and kernel both carry a second register sequence
for Innolux glass, selected from two board ID straps, so a second module
exists as far as the vendor firmware is concerned. I didn't have an
Innolux unit to test with, and I don't know its part number, so it is not
described here. Naming the glass in the compatible leaves room for it as
a second compatible should someone have the hardware and the need.

This controller accepts commands either over I2C or in-band over DSI, and
on the shipping boards it does not default to DSI. Writing 0xa5 to
register 0x8f opens a window in which DSI commands are accepted and
writing 0x00 closes it, so every command the driver sends, including
sleep in/out and display on/off, has to sit inside such a window. That is
why those are not simply issued from enable()/disable() as most panel
drivers do.

The vendor's timings are used verbatim.

The board DTS that uses this is not in this series -- it's a whole new
board file that I plan on upstreaming over time after getting its
components upstreamed.

Tested on the Amazon Fire HD 10 (2017) driven by mediatek-drm: 1200x1920
at 62.5 Hz across a cold boot, three display off and on cycles and a
suspend/resume, with the MIPI TX PLL read back at the intended rate.

Signed-off-by: Ryan Brue <ryanbrue.dev@gmail.com>
---
Ryan Brue (2):
      dt-bindings: display: panel: add Novatek NT51021
      drm/panel: add Novatek NT51021 1200x1920 DSI panel driver

 .../bindings/display/panel/novatek,nt51021.yaml    |  65 ++++
 MAINTAINERS                                        |   7 +
 drivers/gpu/drm/panel/Kconfig                      |  11 +
 drivers/gpu/drm/panel/Makefile                     |   1 +
 drivers/gpu/drm/panel/panel-novatek-nt51021.c      | 329 +++++++++++++++++++++
 5 files changed, 413 insertions(+)
---
base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
change-id: 20260905-rbrue-drm-panel-add-novatek-nt51021-b286a67e4de3

Best regards,
--  
Ryan Brue <ryanbrue.dev@gmail.com>



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-07  5:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-06  1:34 [PATCH 0/2] drm/panel: add the Novatek NT51021 panel in the Amazon Fire HD 10 Ryan Brue via B4 Relay
2026-09-06  1:34 ` [PATCH 1/2] dt-bindings: display: panel: add Novatek NT51021 Ryan Brue via B4 Relay
2026-09-06  1:34 ` [PATCH 2/2] drm/panel: add Novatek NT51021 1200x1920 DSI panel driver Ryan Brue via B4 Relay
2026-09-07  5:45 ` [PATCH 0/2] " Ryan Brue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®