dt-bindings: display: panel: Make DSI panels port optional
Subsystems (17)
PATCH 1/1 dt-bindings: display: panel: Make DSI panels port optional
DSI panels can be placed under DSI bus directly and many Linux DRM drivers will work fine with it: mipi_dsi_host_register() adds device for such panel and DRM driver does not use OF graph to configure lanes. The affected here Linux panel drivers do not use OF graph, either.
Requiring graph port for such panels is tying the binding to one specific implementation of Linux DRM drivers, e.g. Qualcomm DRM which requires the port. The port is not needed for the hardware to operate and for some of the Linux drivers, so it should be optional.
---
Remaining one Ilitek is fixed in:
https://lore.kernel.org/all/[email protected]/
--- .../devicetree/bindings/display/panel/anbernic,td4310.yaml | 1 - Documentation/devicetree/bindings/display/panel/boe,td4320.yaml | 1 - .../devicetree/bindings/display/panel/boe,tv101wum-ll2.yaml | 1 - Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml | 1 - .../devicetree/bindings/display/panel/elida,kd35t133.yaml | 1 - .../bindings/display/panel/feiyang,fy07024di26a30d.yaml | 1 - .../devicetree/bindings/display/panel/himax,hx83112a.yaml | 1 - .../devicetree/bindings/display/panel/himax,hx83112b.yaml | 1 - .../devicetree/bindings/display/panel/himax,hx8394.yaml | 1 - .../devicetree/bindings/display/panel/ilitek,ili7807s.yaml | 1 - .../devicetree/bindings/display/panel/ilitek,ili9805.yaml | 1 - .../devicetree/bindings/display/panel/ilitek,ili9806e.yaml | 1 - Documentation/devicetree/bindings/display/panel/lxd,m9189a.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt35532.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt36672a.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt36672e.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt37801.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt51021.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm67191.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm67200.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm69220.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm692e5.yaml | 1 - .../devicetree/bindings/display/panel/renesas,r61307.yaml | 1 - .../devicetree/bindings/display/panel/renesas,r69328.yaml | 1 - .../devicetree/bindings/display/panel/ronbo,rb070d30.yaml | 1 - .../devicetree/bindings/display/panel/samsung,ams581vf01.yaml | 1 - .../devicetree/bindings/display/panel/samsung,ams639rq08.yaml | 1 - .../bindings/display/panel/samsung,s6e88a0-ams452ef01.yaml | 1 - .../devicetree/bindings/display/panel/samsung,sofef01-m.yaml | 1 - .../devicetree/bindings/display/panel/sony,td4353-jdi.yaml | 1 - .../bindings/display/panel/sony,tulip-truly-nt35521.yaml | 1 - .../devicetree/bindings/display/panel/startek,kd070fhfid015.yaml | 1 - .../devicetree/bindings/display/panel/synaptics,r63353.yaml | 1 - .../devicetree/bindings/display/panel/visionox,g2647fb105.yaml | 1 - .../devicetree/bindings/display/panel/visionox,r66451.yaml | 1 - .../devicetree/bindings/display/panel/visionox,rm69299.yaml | 1 - .../devicetree/bindings/display/panel/visionox,rm692e5.yaml | 1 - .../devicetree/bindings/display/panel/visionox,vtdr6130.yaml | 1 - .../devicetree/bindings/display/panel/xinpeng,xpp055c272.yaml | 1 - 39 files changed, 39 deletions(-)
Documentation/devicetree/bindings/display/panel/anbernic,td4310.yaml +0 -1
@@ -31,7 +31,6 @@ properties: required: - compatible - - port - reg - reset-gpios - vdd-supply
Documentation/devicetree/bindings/display/panel/boe,td4320.yaml +0 -1
@@ -36,7 +36,6 @@ required: - compatible - reg - reset-gpios - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/boe,tv101wum-ll2.yaml +0 -1
@@ -33,7 +33,6 @@ required: - reset-gpios - vsp-supply - vsn-supply - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml +0 -1
@@ -41,7 +41,6 @@ required: - vddpos-supply - vddneg-supply - reset-gpios - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/elida,kd35t133.yaml +0 -1
@@ -32,7 +32,6 @@ required: - compatible - reg - backlight - - port - iovcc-supply - vdd-supply
Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.yaml +0 -1
@@ -35,7 +35,6 @@ required: - reg - avdd-supply - dvdd-supply - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/himax,hx83112a.yaml +0 -1
@@ -40,7 +40,6 @@ required: - vdd1-supply - vsn-supply - vsp-supply - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/himax,hx83112b.yaml +0 -1
@@ -40,7 +40,6 @@ required: - iovcc-supply - vsn-supply - vsp-supply - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml +0 -1
@@ -49,7 +49,6 @@ required: - compatible - reg - backlight - - port - vcc-supply - iovcc-supply
Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml +0 -1
@@ -41,7 +41,6 @@ required: - vddi-supply - avdd-supply - avee-supply - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/ilitek,ili9805.yaml +0 -1
@@ -32,7 +32,6 @@ required: - dvdd-supply - reg - reset-gpios - - port - backlight unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml +0 -1
@@ -33,7 +33,6 @@ required: - vdd-supply - reset-gpios - backlight - - port if: properties:
Documentation/devicetree/bindings/display/panel/lxd,m9189a.yaml +0 -1
@@ -35,7 +35,6 @@ required: - reset-gpios - power-supply - backlight - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/novatek,nt35532.yaml +0 -1
@@ -47,7 +47,6 @@ required: - reg - reset-gpios - vddi-supply - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml +0 -1
@@ -54,7 +54,6 @@ required: - vddpos-supply - vddneg-supply - reset-gpios - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/novatek,nt36672e.yaml +0 -1
@@ -34,7 +34,6 @@ required: - avdd-supply - avee-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/novatek,nt37801.yaml +0 -1
@@ -36,7 +36,6 @@ required: - vci-supply - vdd-supply - vddio-supply - - port - reset-gpios additionalProperties: false
Documentation/devicetree/bindings/display/panel/novatek,nt51021.yaml +0 -1
@@ -54,7 +54,6 @@ required: - avdd-supply - havdd-supply - reset-gpios - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/raydium,rm67191.yaml +0 -1
@@ -47,7 +47,6 @@ required: - compatible - reg - dsi-lanes - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/raydium,rm67200.yaml +0 -1
@@ -40,7 +40,6 @@ properties: required: - compatible - - port - reg additionalProperties: false
Documentation/devicetree/bindings/display/panel/raydium,rm69220.yaml +0 -1
@@ -42,7 +42,6 @@ required: - vci-supply - vddio-supply - reset-gpios - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/raydium,rm692e5.yaml +0 -1
@@ -41,7 +41,6 @@ required: - dvdd-supply - vci-supply - vddio-supply - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/renesas,r61307.yaml +0 -1
@@ -55,7 +55,6 @@ properties: required: - compatible - - port - backlight additionalProperties: false
Documentation/devicetree/bindings/display/panel/renesas,r69328.yaml +0 -1
@@ -38,7 +38,6 @@ properties: required: - compatible - - port - backlight additionalProperties: false
Documentation/devicetree/bindings/display/panel/ronbo,rb070d30.yaml +0 -1
@@ -42,6 +42,5 @@ required: - shlr-gpios - updn-gpios - vcc-lcd-supply - - port unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/samsung,ams581vf01.yaml +0 -1
@@ -45,7 +45,6 @@ required: - vsn-supply - vsp-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/samsung,ams639rq08.yaml +0 -1
@@ -46,7 +46,6 @@ required: - vsn-supply - vsp-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/samsung,s6e88a0-ams452ef01.yaml +0 -1
@@ -29,7 +29,6 @@ properties: required: - compatible - reg - - port - vdd3-supply - vci-supply - reset-gpios
Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml +0 -1
@@ -47,7 +47,6 @@ properties: required: - compatible - - port - reg - reset-gpios - vddio-supply
Documentation/devicetree/bindings/display/panel/sony,td4353-jdi.yaml +0 -1
@@ -52,7 +52,6 @@ required: - vsn-supply - panel-reset-gpios - touch-reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/sony,tulip-truly-nt35521.yaml +0 -1
@@ -41,7 +41,6 @@ required: - negative5-supply - reset-gpios - enable-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/startek,kd070fhfid015.yaml +0 -1
@@ -34,7 +34,6 @@ required: - iovcc-supply - reg - reset-gpios - - port - power-supply additionalProperties: false
Documentation/devicetree/bindings/display/panel/synaptics,r63353.yaml +0 -1
@@ -31,7 +31,6 @@ required: - avdd-supply - dvdd-supply - reset-gpios - - port - backlight unevaluatedProperties: false
Documentation/devicetree/bindings/display/panel/visionox,g2647fb105.yaml +0 -1
@@ -45,7 +45,6 @@ required: - vsn-supply - vsp-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/visionox,r66451.yaml +0 -1
@@ -31,7 +31,6 @@ required: - vddio-supply - vdd-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/visionox,rm69299.yaml +0 -1
@@ -42,7 +42,6 @@ required: - vdda-supply - vdd3p3-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/visionox,rm692e5.yaml +0 -1
@@ -44,7 +44,6 @@ required: - reset-gpios - vdd-supply - vddio-supply - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/visionox,vtdr6130.yaml +0 -1
@@ -37,7 +37,6 @@ required: - vddio-supply - vci-supply - reset-gpios - - port additionalProperties: false
Documentation/devicetree/bindings/display/panel/xinpeng,xpp055c272.yaml +0 -1
@@ -31,7 +31,6 @@ required: - compatible - reg - backlight - - port - iovcc-supply - vci-supply
Signature · 1 line
2.53.0
[email protected]
AI reviewThank you for your contribution! Sashiko AI review found 1 potential issue to consider: - [Low] dt-bindings: display: panel: ilitek,ili9806e: port made optional for SPI panel --
Thank you for your contribution! Sashiko AI review found 1 potential issue to consider:
- [Low] dt-bindings: display: panel: ilitek,ili9806e: port made optional for SPI panel
--
commit 2dd7afd9762ebccda9424fc16917d18216458223
Author: Krzysztof Kozlowski <[email protected]>
dt-bindings: display: panel: Make DSI panels port optional
This commit removes the port property from the required list in 39 DSI panel Device Tree bindings so that panels placed directly under a DSI bus node do not have to specify an OF graph port.
Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml required: · line 38
Quoted 12 lines
Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml +0
-1@@ -33,7 +33,6 @@ required: - vdd-supply - reset-gpios - backlight - - port if: properties:
[Severity: Low]
Should port remain required in the conditional then branch for rocktech,rk050hr345-ct106a?
While densitron,dmt028vghmcmi-1d and ortustech,com35h3p70ulc are MIPI-DSI panels, rocktech,rk050hr345-ct106a is an SPI-controlled DPI/RGB panel (driven by panel-ilitek-ili9806e-spi.c with DRM_MODE_CONNECTOR_DPI). Because it sits under an SPI controller node, the RGB display controller still needs the OF graph port to link to the panel.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Maxime Ripard
maintainerQuoted 3 lines · Krzysztof Kozlowski
DSI panels can be placed under DSI bus directly and many Linux DRM drivers will work fine with it:
mipi_dsi_host_register()adds device for such panel and DRM driver does not use OF graph to configure lanes.
That's not true. We do use the endpoints to configure the lanes through the data-lanes property. See drm_of_get_data_lanes*
Quoted 9 lines
The affected here Linux panel drivers do not use OF graph, either.
Requiring graph port for such panels is tying the binding to one specific implementation of Linux DRM drivers, e.g. Qualcomm DRM which requires the port. The port is not needed for the hardware to operate and for some of the Linux drivers, so it should be optional.
Suggested-by Romain TISSERAND <[email protected]>Signed-off-by Krzysztof Kozlowski <[email protected]>
DSI busses can handle multiple devices, and multiple data types. If we were to drop the port node, how does the upstream video device know which device it should send its video output to?
Maxime
Quoted 7 lines · Maxime Ripard
Quoted 3 lines · Krzysztof Kozlowski
DSI panels can be placed under DSI bus directly and many Linux DRM drivers will work fine with it:
mipi_dsi_host_register()adds device for such panel and DRM driver does not use OF graph to configure lanes.That's not true. We do use the endpoints to configure the lanes through the data-lanes property. See drm_of_get_data_lanes*
Some drivers use endpoints, some not. As discussed on other thread, there are more than which do not.
Quoted 8 lines
Quoted 8 lines
The affected here Linux panel drivers do not use OF graph, either.
Requiring graph port for such panels is tying the binding to one specific implementation of Linux DRM drivers, e.g. Qualcomm DRM which requires the port. The port is not needed for the hardware to operate and for some of the Linux drivers, so it should be optional.
Quoted 7 lines
Quoted 2 lines
Suggested-by Romain TISSERAND <[email protected]>Signed-off-by Krzysztof Kozlowski <[email protected]>DSI busses can handle multiple devices, and multiple data types. If we were to drop the port node, how does the upstream video device know which device it should send its video output to?
We do not drop the port node, who suggested that?
You do get, that we are not talking about the DSI host, but the panel?
Best regards,
Krzysztof
Quoted 11 lines · Krzysztof Kozlowski
Quoted 7 lines · Maxime Ripard
Quoted 3 lines · Krzysztof Kozlowski
DSI panels can be placed under DSI bus directly and many Linux DRM drivers will work fine with it:
mipi_dsi_host_register()adds device for such panel and DRM driver does not use OF graph to configure lanes.That's not true. We do use the endpoints to configure the lanes through the data-lanes property. See drm_of_get_data_lanes*
Some drivers use endpoints, some not. As discussed on other thread, there are more than which do not.
"there are more than one which do not."
Quoted 12 lines
Quoted 12 lines
Quoted 11 lines
The affected here Linux panel drivers do not use OF graph, either.
Requiring graph port for such panels is tying the binding to one specific implementation of Linux DRM drivers, e.g. Qualcomm DRM which requires the port. The port is not needed for the hardware to operate and for some of the Linux drivers, so it should be optional.
Suggested-by Romain TISSERAND <[email protected]>Signed-off-by Krzysztof Kozlowski <[email protected]>
Quoted 8 lines
Quoted 4 lines
DSI busses can handle multiple devices, and multiple data types. If we were to drop the port node, how does the upstream video device know which device it should send its video output to?
We do not drop the port node, who suggested that?
You do get, that we are not talking about the DSI host, but the panel?
Best regards,
Krzysztof
Quoted 7 lines · Krzysztof Kozlowski
Quoted 6 lines · Krzysztof Kozlowski
Quoted 5 lines · Maxime Ripard
Quoted 3 lines · Krzysztof Kozlowski
DSI panels can be placed under DSI bus directly and many Linux DRM drivers will work fine with it:
mipi_dsi_host_register()adds device for such panel and DRM driver does not use OF graph to configure lanes.
Quoted 7 lines
Quoted 5 lines
Quoted 2 lines
That's not true. We do use the endpoints to configure the lanes through the data-lanes property. See drm_of_get_data_lanes*
Some drivers use endpoints, some not. As discussed on other thread, there are more than which do not.
"there are more than one which do not."
Which means that those should be fixed. We have legacy cases where the drivers assumed that, but we should not target legacy.
Quoted 13 lines
Quoted 13 lines
Quoted 13 lines
Quoted 12 lines
The affected here Linux panel drivers do not use OF graph, either.
Requiring graph port for such panels is tying the binding to one specific implementation of Linux DRM drivers, e.g. Qualcomm DRM which requires the port. The port is not needed for the hardware to operate and for some of the Linux drivers, so it should be optional.
Suggested-by Romain TISSERAND <[email protected]>Signed-off-by Krzysztof Kozlowski <[email protected]>
Quoted 8 lines
Quoted 8 lines
Quoted 4 lines
DSI busses can handle multiple devices, and multiple data types. If we were to drop the port node, how does the upstream video device know which device it should send its video output to?
We do not drop the port node, who suggested that?
You do get, that we are not talking about the DSI host, but the panel?
The panel might be driven by the host directly or there can be other chips on the bus (someboby has been asking about the retimer or something else sitting on the DSI bus between the host and the panel).
Signature · 2 lines
With best wishes Dmitry
ср, 11 лист. 2026 р. о 13:03 Krzysztof Kozlowski
<[email protected]> пише:
Quoted 51 lines
DSI panels can be placed under DSI bus directly and many Linux DRM drivers will work fine with it:
mipi_dsi_host_register()adds device for such panel and DRM driver does not use OF graph to configure lanes. The affected here Linux panel drivers do not use OF graph, either.Requiring graph port for such panels is tying the binding to one specific implementation of Linux DRM drivers, e.g. Qualcomm DRM which requires the port. The port is not needed for the hardware to operate and for some of the Linux drivers, so it should be optional.
Suggested-by Romain TISSERAND <[email protected]>Signed-off-by Krzysztof Kozlowski <[email protected]>---
Remaining one Ilitek is fixed in:
https://lore.kernel.org/all/[email protected]/--- .../devicetree/bindings/display/panel/anbernic,td4310.yaml | 1 - Documentation/devicetree/bindings/display/panel/boe,td4320.yaml | 1 - .../devicetree/bindings/display/panel/boe,tv101wum-ll2.yaml | 1 - Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml | 1 - .../devicetree/bindings/display/panel/elida,kd35t133.yaml | 1 - .../bindings/display/panel/feiyang,fy07024di26a30d.yaml | 1 - .../devicetree/bindings/display/panel/himax,hx83112a.yaml | 1 - .../devicetree/bindings/display/panel/himax,hx83112b.yaml | 1 - .../devicetree/bindings/display/panel/himax,hx8394.yaml | 1 - .../devicetree/bindings/display/panel/ilitek,ili7807s.yaml | 1 - .../devicetree/bindings/display/panel/ilitek,ili9805.yaml | 1 - .../devicetree/bindings/display/panel/ilitek,ili9806e.yaml | 1 - Documentation/devicetree/bindings/display/panel/lxd,m9189a.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt35532.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt36672a.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt36672e.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt37801.yaml | 1 - .../devicetree/bindings/display/panel/novatek,nt51021.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm67191.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm67200.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm69220.yaml | 1 - .../devicetree/bindings/display/panel/raydium,rm692e5.yaml | 1 - .../devicetree/bindings/display/panel/renesas,r61307.yaml | 1 - .../devicetree/bindings/display/panel/renesas,r69328.yaml | 1 - .../devicetree/bindings/display/panel/ronbo,rb070d30.yaml | 1 - .../devicetree/bindings/display/panel/samsung,ams581vf01.yaml | 1 - .../devicetree/bindings/display/panel/samsung,ams639rq08.yaml | 1 - .../bindings/display/panel/samsung,s6e88a0-ams452ef01.yaml | 1 - .../devicetree/bindings/display/panel/samsung,sofef01-m.yaml | 1 - .../devicetree/bindings/display/panel/sony,td4353-jdi.yaml | 1 - .../bindings/display/panel/sony,tulip-truly-nt35521.yaml | 1 - .../devicetree/bindings/display/panel/startek,kd070fhfid015.yaml | 1 -
Quoted 9 lines
.../devicetree/bindings/display/panel/synaptics,r63353.yaml | 1 - .../devicetree/bindings/display/panel/visionox,g2647fb105.yaml | 1 - .../devicetree/bindings/display/panel/visionox,r66451.yaml | 1 - .../devicetree/bindings/display/panel/visionox,rm69299.yaml | 1 - .../devicetree/bindings/display/panel/visionox,rm692e5.yaml | 1 - .../devicetree/bindings/display/panel/visionox,vtdr6130.yaml | 1 - .../devicetree/bindings/display/panel/xinpeng,xpp055c272.yaml | 1 - 39 files changed, 39 deletions(-)
Thanks!
r61307 and r69328