# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/samsung,ld9040.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung LD9040 AMOLED LCD parallel RGB panel with SPI control bus

description: |
  The panel must obey the rules for a SPI slave device as specified in
  spi/spi-controller.yaml

maintainers:
  - Andrzej Hajda <a.hajda@samsung.com>

allOf:
  - $ref: panel-common.yaml#

properties:
  compatible:
    const: samsung,ld9040

  display-timings: true
  port: true
  reg: true
  reset-gpios: true

  vdd3-supply:
    description: core voltage supply

  vci-supply:
    description: voltage supply for analog circuits

  power-on-delay:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: delay after turning regulators on [ms]

  reset-delay:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: delay after reset sequence [ms]

  panel-width-mm:
    description: physical panel width [mm]

  panel-height-mm:
    description: physical panel height [mm]

required:
  - compatible
  - reg
  - vdd3-supply
  - vci-supply
  - reset-gpios
  - display-timings

unevaluatedProperties: false

examples:
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        lcd@0 {
            compatible = "samsung,ld9040";
            #address-cells = <1>;
            #size-cells = <0>;

            reg = <0>;
            vdd3-supply = <&ldo7_reg>;
            vci-supply = <&ldo17_reg>;
            reset-gpios = <&gpy4 5 0>;
            spi-max-frequency = <1200000>;
            spi-cpol;
            spi-cpha;
            power-on-delay = <10>;
            reset-delay = <10>;
            panel-width-mm = <90>;
            panel-height-mm = <154>;

            display-timings {
                timing {
                    clock-frequency = <23492370>;
                    hactive = <480>;
                    vactive = <800>;
                    hback-porch = <16>;
                    hfront-porch = <16>;
                    vback-porch = <2>;
                    vfront-porch = <28>;
                    hsync-len = <2>;
                    vsync-len = <1>;
                    hsync-active = <0>;
                    vsync-active = <0>;
                    de-active = <0>;
                    pixelclk-active = <0>;
                };
            };

            port {
                lcd_ep: endpoint {
                    remote-endpoint = <&fimd_dpi_ep>;
                };
            };
        };
    };

...
