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

title: MIPI DSI to eDP Video Format Converter

maintainers:
  - Nicolas Boichat <drinkcat@chromium.org>

description: |
  The PS8640 is a low power MIPI-to-eDP video format converter supporting
  mobile devices with embedded panel resolutions up to 2048 x 1536. The
  device accepts a single channel of MIPI DSI v1.1, with up to four lanes
  plus clock, at a transmission rate up to 1.5Gbit/sec per lane. The
  device outputs eDP v1.4, one or two lanes, at a link rate of up to
  3.24Gbit/sec per lane.

properties:
  compatible:
    const: parade,ps8640

  reg:
    maxItems: 1
    description: Base I2C address of the device.

  powerdown-gpios:
    maxItems: 1
    description: GPIO connected to active low powerdown.

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active low reset.

  vdd12-supply:
    description: Regulator for 1.2V digital core power.

  vdd33-supply:
    description: Regulator for 3.3V digital core power.

  aux-bus:
    $ref: /schemas/display/dp-aux-bus.yaml#

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Video port for DSI input

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Video port for eDP output (panel or connector).

    required:
      - port@0

required:
  - compatible
  - reg
  - powerdown-gpios
  - reset-gpios
  - vdd12-supply
  - vdd33-supply
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        ps8640: edp-bridge@18 {
            compatible = "parade,ps8640";
            reg = <0x18>;
            powerdown-gpios = <&pio 116 GPIO_ACTIVE_LOW>;
            reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>;
            vdd12-supply = <&ps8640_fixed_1v2>;
            vdd33-supply = <&mt6397_vgp2_reg>;

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

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

                port@1 {
                    reg = <1>;
                    ps8640_out: endpoint {
                        remote-endpoint = <&panel_in>;
                    };
                };
            };

            aux-bus {
                panel {
                    compatible = "boe,nv133fhm-n62";
                    power-supply = <&pp3300_dx_edp>;
                    backlight = <&backlight>;

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