Re: [PATCH v2 2/3] dt-bindings: display: panel: Add some generic MIPI-DSI/DPI panels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 26, 2025 at 08:25:49PM +0900, Hironori KIKUCHI wrote:
> This is a binding for generic MIPI-DSI/DPI panels that require
> initialization with a simple command sequence before use.
> 
> The initialization of the panel requires a firmware binary which can be
> made with the Panel Firmware Generator[1] on the web.
> 
> Add 4 new panels, as they are available on the same page[1] as a preset
> (excluding already included ones).
> 
> Note that the "xx" in the panel name is taken from a product's name,
> not a wildcard.
> 
> [1]: https://kikuchan.github.io/panel-firmware-generator/
> 
> Signed-off-by: Hironori KIKUCHI <kikuchan98@xxxxxxxxx>
> ---
>  .../bindings/display/panel/panel-mipi.yaml    | 121 ++++++++++++++++++
>  1 file changed, 121 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..d70cf0063fa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-mipi.yaml
> @@ -0,0 +1,121 @@
> +# 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:
> +      - items:
> +          - enum:
> +              # Unknown 3.35" 720x480 24-bit IPS LCD panel
> +              # used in Anbernic RG 34XX
> +              - anbernic,rg34xx-panel
> +              # Unknown 4.00" 640x480 24-bit IPS LCD panel (YLM-LBV0400001X-V1)
> +              # used in Anbernic RG40XX series
> +              - anbernic,rg40xx-panel
> +              # Unknown 3.95" 720x720 24-bit IPS LCD panel (YLM-LBN0395004H-V1)
> +              # used in Anbernic RG CubeXX
> +              - anbernic,rgcubexx-panel
> +          - const: panel-mipi-dpi-spi

We already have a schema for this: panel-mipi-dpi-spi.yaml

> +      - items:
> +          - enum:
> +              # HOTHMI TFT-H028B23VGIST7G40-V1 2.80" 480x640 TFT LCD panel
> +              - hothmi,tft-h028b23vgist7g40-v1
> +          - const: panel-mipi-dsi

We have lots of DSI panels already and they don't have a generic 
fallback. What exactly would "panel-mipi-dsi" mean to the OS? It's got 
to be useful on its own or it should be dropped.

> +
> +  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.
> +
> +  port: true
> +  reset-gpios: true
> +
> +  backlight: true
> +
> +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#
> +
> +  - 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 = "hothmi,tft-h028b23vgist7g40-v1", "panel-mipi-dsi";
> +            reg = <0>;
> +
> +            port {
> +                mipi_in_panel: endpoint {
> +                    remote-endpoint = <&mipi_out_panel>;
> +                };
> +            };
> +        };
> +    };
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    spi {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        panel@0 {
> +            compatible = "anbernic,rg40xx-panel", "panel-mipi-dpi-spi";
> +            reg = <0>;
> +
> +            spi-max-frequency = <40000000>;
> +
> +            dc-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
> +            reset-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
> +
> +            backlight = <&backlight>;
> +        };
> +    };
> -- 
> 2.48.1
> 



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux