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

title: STMicroelectronics STM32 DSI host controller

maintainers:
  - Philippe Cornu <philippe.cornu@st.com>
  - Yannick Fertre <yannick.fertre@st.com>

description:
  The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI-DSI host controller.

properties:
  compatible:
    const: st,stm32-dsi

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Module Clock
      - description: DSI bus clock
      - description: Pixel clock
    minItems: 2
    maxItems: 3

  clock-names:
    items:
      - const: pclk
      - const: ref
      - const: px_clk
    minItems: 2
    maxItems: 3

  resets:
    maxItems: 1

  reset-names:
    items:
      - const: apb

  phy-dsi-supply:
    description:
      Phandle of the regulator that provides the supply voltage.

  ports:
    type: object
    description:
      A node containing DSI input & output port nodes with endpoint
      definitions as documented in
      Documentation/devicetree/bindings/media/video-interfaces.txt
      Documentation/devicetree/bindings/graph.txt
    properties:
      port@0:
        type: object
        description:
          DSI input port node, connected to the ltdc rgb output port.

      port@1:
        type: object
        description:
          DSI output port node, connected to a panel or a bridge input port"

patternProperties:
  "^(panel|panel-dsi)@[0-9]$":
    type: object
    description:
      A node containing the panel or bridge description as documented in
      Documentation/devicetree/bindings/display/mipi-dsi-bus.txt
    properties:
      port:
        type: object
        description:
          Panel or bridge port node, connected to the DSI output port (port@1)

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

required:
  - "#address-cells"
  - "#size-cells"
  - compatible
  - reg
  - clocks
  - clock-names
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/stm32mp1-clks.h>
    #include <dt-bindings/reset/stm32mp1-resets.h>
    #include <dt-bindings/gpio/gpio.h>
    dsi: dsi@5a000000 {
        compatible = "st,stm32-dsi";
        reg = <0x5a000000 0x800>;
        clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
        clock-names = "pclk", "ref", "px_clk";
        resets = <&rcc DSI_R>;
        reset-names = "apb";
        phy-dsi-supply = <&reg18>;

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

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

              port@0 {
                    reg = <0>;
                    dsi_in: endpoint {
                        remote-endpoint = <&ltdc_ep1_out>;
                    };
              };

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

        panel-dsi@0 {
              compatible = "orisetech,otm8009a";
              reg = <0>;
              reset-gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
              power-supply = <&v3v3>;

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

...

