# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/samsung/samsung,exynos5433-mic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung Exynos5433 SoC Mobile Image Compressor (MIC)

maintainers:
  - Inki Dae <inki.dae@samsung.com>
  - Seung-Woo Kim <sw0312.kim@samsung.com>
  - Kyungmin Park <kyungmin.park@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  MIC (Mobile Image Compressor) resides between DECON and MIPI DSI. MIPI DSI is
  not capable of transferring high resoltuion frame data as DECON can send. MIC
  solves this problem by compressing the frame data by 1/2 before it is
  transferred through MIPI DSI. The compressed frame data must be uncompressed
  in the panel PCB.

properties:
  compatible:
    const: samsung,exynos5433-mic

  clocks:
    maxItems: 2

  clock-names:
    items:
      - const: pclk_mic0
      - const: sclk_rgb_vclk_to_mic0

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description:
      Contains a port which is connected to mic node.

  power-domains:
    maxItems: 1

  reg:
    maxItems: 1

  samsung,disp-syscon:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to DISP system controller interface.

required:
  - compatible
  - clocks
  - clock-names
  - ports
  - reg
  - samsung,disp-syscon

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/exynos5433.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    image-processor@13930000 {
        compatible = "samsung,exynos5433-mic";
        reg = <0x13930000 0x48>;
        clocks = <&cmu_disp CLK_PCLK_MIC0>,
                 <&cmu_disp CLK_SCLK_RGB_VCLK_TO_MIC0>;
        clock-names = "pclk_mic0",
                      "sclk_rgb_vclk_to_mic0";
        power-domains = <&pd_disp>;
        samsung,disp-syscon = <&syscon_disp>;

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

            port@0 {
                reg = <0>;
                mic_to_decon: endpoint {
                    remote-endpoint = <&decon_to_mic>;
                };
            };

            port@1 {
                reg = <1>;
                mic_to_dsi: endpoint {
                    remote-endpoint = <&dsi_to_mic>;
                };
            };
        };
    };