Hi Rob.
The panel-id can be used to help in several usecase. With a few nits pointed out below fixed: Reviewed-by: Sam Ravnborg sam@ravnborg.org
Sam
On Sat, Dec 07, 2019 at 12:35:50PM -0800, Rob Clark wrote:
From: Rob Clark robdclark@chromium.org
For devices that have one of several possible panels installed, the panel-id property gives firmware a generic way to locate and enable the panel node corresponding to the installed panel. Example of how to use this property:
ivo_panel { compatible = "ivo,m133nwf4-r0"; panel-id = <0xc5>; status = "disabled"; ports { port { ivo_panel_in_edp: endpoint { remote-endpoint = <&sn65dsi86_out_ivo>; }; }; }; }; boe_panel { compatible = "boe,nv133fhm-n61"; panel-id = <0xc4>; status = "disabled"; ports { port { boe_panel_in_edp: endpoint { remote-endpoint = <&sn65dsi86_out_boe>; }; }; }; }; sn65dsi86: bridge@2c { compatible = "ti,sn65dsi86"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; sn65dsi86_in_a: endpoint { remote-endpoint = <&dsi0_out>; }; }; port@1 { reg = <1>; sn65dsi86_out_boe: endpoint@c4 { remote-endpoint = <&boe_panel_in_edp>; }; sn65dsi86_out_ivo: endpoint@c5 { remote-endpoint = <&ivo_panel_in_edp>; }; }; }; };Signed-off-by: Rob Clark robdclark@chromium.org
.../bindings/display/panel/panel-common.yaml | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml index ef8d8cdfcede..6113319b91dd 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml @@ -75,6 +75,32 @@ properties: in the device graph bindings defined in Documentation/devicetree/bindings/graph.txt.
- panel-id:
- description:
To support the case where one of several different panels can be installedon a device, the panel-id property can be used by the firmware to identifywhich panel should have it's status changed to "ok". This property is not
Use "okay" as this is waht is specified in the CT files.
used by the HLOS itself.
Spell out HLOS - it is not obvious for all what it is.
For a device with multiple potential panels, a node for each potentialshould be defined with status = "disabled", and an appropriate panel-id
"potential panel should"
property. The video data producer should be setup with endpoints going toeach possible panel. The firmware will find the dt node with a panel-idmatching the actual panel installed, and change it's status to "ok".The exact method the firmware uses to determine the panel-id of the installedpanel is outside the scope of this binding, but a few examples are1) u-boot module reading a value from a u-boot env var2) EFI driver module reading a value from an EFI variable3) device specific firmware reading some device specific GPIOs ore-fuseThe panel-id values are an opaque integer. They can be sparse. The onlyimportant thing is that each possible panel in the system has a uniquepanel-id, and that the values configured in the device's DTB match thevalues that the firmware is looking for.- ddc-i2c-bus: $ref: /schemas/types.yaml#/definitions/phandle description:
-- 2.23.0
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel