Thread (4 messages) flat view 4 messages, 1 author, 1d ago
WARM1d

[PATCH 0/2] drm/panel: add the Novatek NT51021 panel in the Amazon Fire HD 10

From: Ryan Brue via B4 Relay <devnull+ryanbrue.dev.gmail.com@kernel.org>
Date: 2026-09-06 01:34:35
Also in: b4-sent, dri-devel, linux-arm-kernel, linux-mediatek, lkml

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 <redacted>
---
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 [off-list ref]

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help