Hi @All,
Platform / Software
--------------------
- Module: FS 8ULP OSM-SF, HW Rev 1.10
- Yocto/BitBake, linux-fus kernel 6.6.129-F+S
- Panel: Midas MDT0500B1IH-MIPI, 5", 720x1280, ILI9881C controller,
4 MIPI-DSI data lanes + clock, using upstream "bananapi,lhr050h41"
compatible/descriptor in panel-ilitek-ili9881c.c (62 MHz pixel clock,
matches our panel exactly)
What is confirmed working
--------------------------
- DSI host (nwl-dsi) attaches successfully: "lanes=4, format=0x0 flags=0x4"
- imx-dcnano DRM/KMS initializes, framebuffer device is created
(720x1280, correct resolution)
- Panel driver (ili9881c-dsi) probes successfully (no GPIO/probe errors)
- Display VDD and backlight power rails are active at the correct 3.3V
(confirmed via /sys/kernel/debug/regulator/regulator_summary)
- Backlight itself turns on correctly
The problem
-----------
Despite all of the above, the panel never displays an image - only the
backlight is visible. Kernel log shows repeated:
nwl-dsi 2db00000.dsi: [drm:nwl_dsi_host_transfer] *ERROR* [FF] DSI transfer timed out
nwl-dsi 2db00000.dsi: [drm:nwl_dsi_host_transfer] *ERROR* [10] DSI transfer timed out
Direct hardware measurement at the panel's RESET pin shows 0V after
boot, even though the SoC-side GPIO used for reset is confirmed (via
/sys/kernel/debug/gpio) to be correctly driven HIGH (deasserted) by the
kernel driver during ili9881c_prepare(). Since the ILI9881C stays in
hardware reset, it cannot acknowledge any DSI command, which explains
the transfer timeouts.
Per your FS 8ULP OSM-SF hardware manual (Table 18, DISP pin
description), the MIPI DSI interface does not define a dedicated RESET
pin - only DATA0-3, CLK, DSI_TE, DISP_VDD_EN, DISP_BL_EN and
DISP_BL_PWM. Our carrier-level schematic repurposes a generic OSM GPIO
for the panel's RESET line. Cross-referencing your ADP-OSMBB2 hardware
manual (Table 4, Connector J1), J1 pin 7 = GPIO_B_6 (OSM pin K19 / SoC
pad PTF30), which is what we are currently driving as reset-gpios in
our devicetree:
reset-gpios = <&gpiof 30 GPIO_ACTIVE_LOW>;
Questions
---------
1. Is GPIO_B_6 (K19/PTF30) a plain, unreserved general-purpose GPIO
with no special pinmux/power-domain sequencing requirement, or does
it require anything beyond the standard pinctrl_gpiof group already
present in fs-osm-sf-mx8ulp.dtsi?
2. Is there a recommended/reference power-up sequencing order between
DISP_VDD_EN, DISP_BL_EN and a customer-wired MIPI panel RESET line
(e.g. minimum delay after VDD before releasing reset)?
3. Do you have a reference devicetree/example for driving a generic
MIPI-DSI panel's RESET signal from one of the OSM GPIO_B/C pins on
this module, since the official DISP interface table doesn't
include one?
4. Is it possible that GPIO_B_6 is also used/reserved internally on
the ADP-OSMBB2 for anything else (similar to how we found GPIO_B_7
is consumed internally for the onboard Ethernet PHY reset)?
Any guidance would be greatly
appreciated.