# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/samsung,s6e3fc2x01.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S6E3FC2X01 AMOLED DDIC

description: The S6E3FC2X01 is display driver IC with connected panel.

maintainers:
  - David Heidelberg <david@ixit.cz>

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

properties:
  compatible:
    items:
      - enum:
            # Samsung 6.41 inch, 1080x2340 pixels, 19.5:9 ratio
          - samsung,s6e3fc2x01-ams641rw
      - const: samsung,s6e3fc2x01

  reg:
    maxItems: 1

  reset-gpios: true

  port: true

  vddio-supply:
    description: VDD regulator

  vci-supply:
    description: VCI regulator

  poc-supply:
    description: POC regulator

required:
  - compatible
  - reset-gpios
  - vddio-supply
  - vci-supply
  - poc-supply

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    dsi {
        #address-cells = <1>;
        #size-cells = <0>;

        panel@0 {
            compatible = "samsung,s6e3fc2x01-ams641rw", "samsung,s6e3fc2x01";
            reg = <0>;

            vddio-supply = <&vreg_l14a_1p88>;
            vci-supply = <&s2dos05_buck1>;
            poc-supply = <&s2dos05_ldo1>;

            te-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;

            pinctrl-0 = <&sde_dsi_active &sde_te_active_sleep>;
            pinctrl-1 = <&sde_dsi_suspend &sde_te_active_sleep>;
            pinctrl-names = "default", "sleep";

            port {
                panel_in: endpoint {
                    remote-endpoint = <&mdss_dsi0_out>;
                };
            };
        };
    };

...
