# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/allwinner,sun6i-a31-mipi-dsi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 MIPI-DSI Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <mripard@kernel.org>

properties:
  compatible:
    enum:
      - allwinner,sun6i-a31-mipi-dsi
      - allwinner,sun50i-a64-mipi-dsi

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: Bus Clock
      - description: Module Clock

  clock-names:
    items:
      - const: bus
      - const: mod

  resets:
    maxItems: 1

  vcc-dsi-supply:
    description: VCC-DSI power supply of the DSI encoder

  phys:
    maxItems: 1

  phy-names:
    const: dphy

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      The port should be the input endpoint, usually coming from the
      associated TCON.

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - phys
  - phy-names
  - resets
  - vcc-dsi-supply
  - port

allOf:
  - $ref: dsi-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun6i-a31-mipi-dsi

    then:
      properties:
        clocks:
          minItems: 2

      required:
        - clock-names

  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun50i-a64-mipi-dsi

    then:
      properties:
        clocks:
          minItems: 1

unevaluatedProperties: false

examples:
  - |
    dsi0: dsi@1ca0000 {
        compatible = "allwinner,sun6i-a31-mipi-dsi";
        reg = <0x01ca0000 0x1000>;
        interrupts = <0 89 4>;
        clocks = <&ccu 23>, <&ccu 96>;
        clock-names = "bus", "mod";
        resets = <&ccu 4>;
        phys = <&dphy0>;
        phy-names = "dphy";
        vcc-dsi-supply = <&reg_dcdc1>;
        #address-cells = <1>;
        #size-cells = <0>;

        panel@0 {
                compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
                reg = <0>;
                power-supply = <&reg_display>;
                reset-gpios = <&r_pio 0 5 1>; /* PL05 */
                backlight = <&pwm_bl>;
        };

        port {
            dsi0_in_tcon0: endpoint {
                remote-endpoint = <&tcon0_out_dsi0>;
            };
        };
    };

...
