Re: [PATCH v5 5/6] dt-bindings: display: Add Synaptics R63455 panel support
From: Neil Armstrong
Date: Wed Sep 30 2026 - 14:36:49 EST
On 9/30/26 09:44, Linus Walleij wrote:
On Tue, Sep 29, 2026 at 3:35 PM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
This entire binding seems like stitching two devices together, which
might be fine (I don't even remember this stuff... two months old) or
might be artificial grouping of separate devices.
I think that's a good point and fair pushback.
Neil and Jun talk about it yesterday at XDC (1:15 into the stream):
https://www.youtube.com/watch?v=6tNGW8PoSzw
The current binding does not reflect the physical topology of the
actual device, and the bindings need improvements. I have a feeling
there is one display controller with two physical panels.
No there's really 2 controller and 2 separate panels, but they are not
classic panel, they are a pair of panels+lens which are in front of
the eyes which forms a single "image" for the brain, so they are
technically a single display and requires to be hard synchronized.
The R63455 is designed for this exact use case and are only supposed
to be use in XR application in pair.
See it like a single physical panel with 2 controllers which
shouldn't be used separately. While technically a controller could
be used to driver single panel, it's likely impossible Synaptics
would sell this IC for non XR applications.
We want the both panels to be seen at a single big panel because
physically the human eye will see it as a single display.
Describing both panels into separate nodes would only be possible
if we described a "VR display complex" nodes linked to both panels
but this would probably be solved by actually describing the "display"
linked to a DDIC controller and is out of subject for this serie,
and can be added later when we properly define things.
Nei
In that case I think it's better if we do:
panel: panel@0 {
/* This is the two-panel package with one display controller */
compatible = "sharp,ls026b3sa06", "synaptics,r63455";
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel@0 {
reset-gpios = <&pm8550_gpios 3 GPIO_ACTIVE_HIGH>;
reg = <0>;
....
};
panel@1 {
reset-gpios = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
reg = <1>;
....
};
...
};
Yours,
Linus Walleij