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

title: Novatek NT36523 based DSI display Panels

maintainers:
  - Jianhua Lu <lujianhua000@gmail.com>

description: |
  The Novatek NT36523 is a generic DSI Panel IC used to drive dsi
  panels. Support video mode panels from China Star Optoelectronics
  Technology (CSOT) and BOE Technology.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - xiaomi,elish-boe-nt36523
              - xiaomi,elish-csot-nt36523
          - const: novatek,nt36523
      - items:
          - enum:
              - lenovo,j606f-boe-nt36523w
          - const: novatek,nt36523w

  reg:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description: phandle of gpio for reset line - This should be 8mA

  vddio-supply:
    description: regulator that supplies the I/O voltage

  rotation: true
  backlight: true

required:
  - compatible
  - reg
  - vddio-supply
  - reset-gpios

allOf:
  - $ref: panel-common-dual.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - novatek,nt36523w
    then:
      properties:
        ports:
          properties:
            port@1: false
    else:
      properties:
        port: false
        ports:
          required:
            - port@1

unevaluatedProperties: false

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

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

        panel@0 {
            compatible = "xiaomi,elish-csot-nt36523", "novatek,nt36523";
            reg = <0>;

            vddio-supply = <&vreg_l14a_1p88>;
            reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
            backlight = <&backlight>;

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

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

                port@1{
                    reg = <1>;
                    panel_in_1: endpoint {
                        remote-endpoint = <&dsi1_out>;
                    };
                };
            };
        };
    };

...
