Hello Krzysztof, Thank you for your feedback. On Fri, Jan 31, 2025 at 4:47 PM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote: > > On Fri, Jan 31, 2025 at 03:43:53PM +0900, Hironori KIKUCHI wrote: > > This is a binding for generic MIPI-DSI/DPI panels that require > > initialization with a simple command sequence before use. > > > > Although the `panel-simple` binding exists for generic panels, it is not > > suitable for panels that require initialization via their communication > > bus, as such panels cannot be considered "simple". > > > > While many dedicated bindings exist for such panels, the generic panels > > are not complex enough to warrant a dedicated binding because they only > > require a "simple" initialization before use. > > All hardware warrants a dedicated binding. I don't get from where did > you take such rule that you can skip actual hardware specific aspects. > > > > > This binding addresses that gap. > > > > Signed-off-by: Hironori KIKUCHI <kikuchan98@xxxxxxxxx> > > --- > > .../bindings/display/panel/panel-mipi.yaml | 244 ++++++++++++++++++ > > 1 file changed, 244 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/display/panel/panel-mipi.yaml > > > > diff --git a/Documentation/devicetree/bindings/display/panel/panel-mipi.yaml b/Documentation/devicetree/bindings/display/panel/panel-mipi.yaml > > new file mode 100644 > > index 00000000000..681614333d8 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/panel/panel-mipi.yaml > > @@ -0,0 +1,244 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/panel/panel-mipi.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Generic MIPI-DSI/DPI Panels Requiring Initialization > > + > > +maintainers: > > + - Hironori KIKUCHI <kikuchan98@xxxxxxxxx> > > + > > +description: > > + This is a binding for generic MIPI-DSI/DPI panels that require > > + initialization with a simple command sequence before use. > > + > > +properties: > > + compatible: > > + oneOf: > > + - enum: > > + - panel-mipi-dsi > > + - panel-mipi-dpi-spi > > Missing device specific compatibles. > > > + - items: > > + - {} > > + - enum: > > + - panel-mipi-dsi > > + - panel-mipi-dpi-spi > > + > > + reg: > > + description: DSI / SPI channel used by that screen > > + maxItems: 1 > > + > > + power-supply: true > > + > > + io-supply: > > + description: I/O system regulator. > > + No need to set if this is the same as polwer-supply. > > + > > + dc-gpios: > > + maxItems: 1 > > + description: Controller data/command selection (D/CX) in 4-line SPI mode. > > + If not set, the controller is in 3-line SPI mode. > > + Disallowed for DSI. > > + > > + width-mm: true > > + height-mm: true > > + panel-timing: true > > + display-timings: true > > + > > + reset-delay: > > + description: Delay (in ms) after the reset command > > So use proper unit suffixes. Everywhere. > > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + init-delay: > > + description: Delay (in ms) for sending the initial command sequence > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + sleep-delay: > > + description: Delay (in ms) after the sleep command > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + backlight-delay: > > + description: Delay (in ms) for enabling the backlight > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + port: true > > + reset-gpios: true > > + rotation: true > > + > > + backlight: true > > + > > + init-sequence: > > + description: Encoded initial command sequence. > > + $ref: /schemas/types.yaml#/definitions/uint8-array > > + > > + firmware-name: > > + maxItems: 1 > > + > > + dsi-mode-video: > > + description: Enable MIPI_DSI_MODE_VIDEO. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-burst: > > + description: Enable MIPI_DSI_MODE_VIDEO_BURST. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-sync-pulse: > > + description: Enable MIPI_DSI_MODE_VIDEO_SYNC_PULSE. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-auto-vert: > > + description: Enable MIPI_DSI_MODE_VIDEO_AUTO_VERT. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-hse: > > + description: Enable MIPI_DSI_MODE_VIDEO_HSE. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-no-hfp: > > + description: Enable MIPI_DSI_MODE_VIDEO_NO_HFP. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-no-hbp: > > + description: Enable MIPI_DSI_MODE_VIDEO_NO_HBP. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-video-no-hsa: > > + description: Enable MIPI_DSI_MODE_VIDEO_NO_HSA. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-vsync-flush: > > + description: Enable MIPI_DSI_MODE_VSYNC_FLUSH. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-no-eot-packet: > > + description: Enable MIPI_DSI_MODE_NO_EOT_PACKET. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-clock-non-continuous: > > + description: Enable MIPI_DSI_CLOCK_NON_CONTINUOUS. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-mode-lpm: > > + description: Enable MIPI_DSI_MODE_LPM. > > + Disallowed for SPI. > > + type: boolean > > + > > + dsi-hs-pkt-end-aligned: > > All this must be deduced from the compatible which makes this binding > redundant. This binding is a no-go for me for obvious reasons: is not > specific and you try to bypass the exact rule of bindings to be specific > about hardware. Ok, I'll delete these redundant properties, and deduce from the compatible. > > > + description: Enable MIPI_DSI_HS_PKT_END_ALIGNED. > > + Disallowed for SPI. > > + type: boolean > > + > > +required: > > + - compatible > > + - reg > > + > > +allOf: > > + - $ref: panel-common.yaml# > > + - if: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - panel-mipi-dpi-spi > > + then: > > + # SPI mode > > + $ref: /schemas/spi/spi-peripheral-props.yaml# > > + properties: > > + dsi-mode-video: false > > + dsi-mode-video-burst: false > > + dsi-mode-video-sync-pulse: false > > + dsi-mode-video-auto-vert: false > > + dsi-mode-video-hse: false > > + dsi-mode-video-no-hfp: false > > + dsi-mode-video-no-hbp: false > > + dsi-mode-video-no-hsa: false > > + dsi-mode-vsync-flush: false > > + dsi-mode-no-eot-packet: false > > + dsi-clock-non-continuous: false > > + dsi-mode-lpm: false > > + dsi-hs-pkt-end-aligned: false > > + > > + - if: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - panel-mipi-dsi > > + then: > > + # DSI mode > > + properties: > > + dc-gpios: false > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + dsi { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + panel@0 { > > + compatible = "vendor,some-panel", "panel-mipi-dsi"; > > Undocumented compatible. > > Best regards, > Krzysztof > Regards, kikuchan.