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

title: Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel

maintainers:
  - Douglas Anderson <dianders@chromium.org>

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

properties:
  compatible:
    oneOf:
      # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
      - const: samsung,atna33xc20
      - items:
          - enum:
              # Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
              - samsung,atna45af01
              # Samsung 14.5" 3K (2944x1840 pixels) eDP AMOLED panel
              - samsung,atna45dc02
          - const: samsung,atna33xc20

  enable-gpios: true
  port: true
  power-supply: true
  no-hpd: true
  hpd-gpios: true

additionalProperties: false

required:
  - compatible
  - enable-gpios
  - power-supply

examples:
  - |
    #include <dt-bindings/clock/qcom,rpmh.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

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

      bridge@2d {
        compatible = "ti,sn65dsi86";
        reg = <0x2d>;

        interrupt-parent = <&tlmm>;
        interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;

        enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;

        vpll-supply = <&src_pp1800_s4a>;
        vccio-supply = <&src_pp1800_s4a>;
        vcca-supply = <&src_pp1200_l2a>;
        vcc-supply = <&src_pp1200_l2a>;

        clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
        clock-names = "refclk";

        no-hpd;

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

          port@0 {
            reg = <0>;
            endpoint {
              remote-endpoint = <&dsi0_out>;
            };
          };

          port@1 {
            reg = <1>;
            sn65dsi86_out: endpoint {
              remote-endpoint = <&panel_in_edp>;
            };
          };
        };

        aux-bus {
          panel {
            compatible = "samsung,atna33xc20";
            enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
            power-supply = <&pp3300_dx_edp>;
            hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;

            port {
              panel_in_edp: endpoint {
                remote-endpoint = <&sn65dsi86_out>;
              };
            };
          };
        };
      };
    };
