11f0d40d8SJagan Teki# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
21f0d40d8SJagan Teki%YAML 1.2
31f0d40d8SJagan Teki---
41f0d40d8SJagan Teki$id: http://devicetree.org/schemas/display/bridge/samsung,mipi-dsim.yaml#
51f0d40d8SJagan Teki$schema: http://devicetree.org/meta-schemas/core.yaml#
61f0d40d8SJagan Teki
71f0d40d8SJagan Tekititle: Samsung MIPI DSIM bridge controller
81f0d40d8SJagan Teki
91f0d40d8SJagan Tekimaintainers:
101f0d40d8SJagan Teki  - Inki Dae <inki.dae@samsung.com>
111f0d40d8SJagan Teki  - Jagan Teki <jagan@amarulasolutions.com>
121f0d40d8SJagan Teki  - Marek Szyprowski <m.szyprowski@samsung.com>
131f0d40d8SJagan Teki
141f0d40d8SJagan Tekidescription: |
151f0d40d8SJagan Teki  Samsung MIPI DSIM bridge controller can be found it on Exynos
161f0d40d8SJagan Teki  and i.MX8M Mini/Nano/Plus SoC's.
171f0d40d8SJagan Teki
181f0d40d8SJagan Tekiproperties:
191f0d40d8SJagan Teki  compatible:
201f0d40d8SJagan Teki    oneOf:
211f0d40d8SJagan Teki      - enum:
221f0d40d8SJagan Teki          - samsung,exynos3250-mipi-dsi
231f0d40d8SJagan Teki          - samsung,exynos4210-mipi-dsi
241f0d40d8SJagan Teki          - samsung,exynos5410-mipi-dsi
251f0d40d8SJagan Teki          - samsung,exynos5422-mipi-dsi
261f0d40d8SJagan Teki          - samsung,exynos5433-mipi-dsi
271f0d40d8SJagan Teki          - fsl,imx8mm-mipi-dsim
281f0d40d8SJagan Teki          - fsl,imx8mp-mipi-dsim
291f0d40d8SJagan Teki      - items:
301f0d40d8SJagan Teki          - const: fsl,imx8mn-mipi-dsim
311f0d40d8SJagan Teki          - const: fsl,imx8mm-mipi-dsim
321f0d40d8SJagan Teki
331f0d40d8SJagan Teki  reg:
341f0d40d8SJagan Teki    maxItems: 1
351f0d40d8SJagan Teki
361f0d40d8SJagan Teki  interrupts:
371f0d40d8SJagan Teki    maxItems: 1
381f0d40d8SJagan Teki
391f0d40d8SJagan Teki  '#address-cells':
401f0d40d8SJagan Teki    const: 1
411f0d40d8SJagan Teki
421f0d40d8SJagan Teki  '#size-cells':
431f0d40d8SJagan Teki    const: 0
441f0d40d8SJagan Teki
451f0d40d8SJagan Teki  clocks:
461f0d40d8SJagan Teki    minItems: 2
471f0d40d8SJagan Teki    maxItems: 5
481f0d40d8SJagan Teki
491f0d40d8SJagan Teki  clock-names:
501f0d40d8SJagan Teki    minItems: 2
511f0d40d8SJagan Teki    maxItems: 5
521f0d40d8SJagan Teki
531f0d40d8SJagan Teki  samsung,phy-type:
541f0d40d8SJagan Teki    $ref: /schemas/types.yaml#/definitions/uint32
551f0d40d8SJagan Teki    description: phandle to the samsung phy-type
561f0d40d8SJagan Teki
571f0d40d8SJagan Teki  power-domains:
581f0d40d8SJagan Teki    maxItems: 1
591f0d40d8SJagan Teki
601f0d40d8SJagan Teki  samsung,power-domain:
611f0d40d8SJagan Teki    $ref: /schemas/types.yaml#/definitions/phandle
621f0d40d8SJagan Teki    description: phandle to the associated samsung power domain
631f0d40d8SJagan Teki
641f0d40d8SJagan Teki  vddcore-supply:
651f0d40d8SJagan Teki    description: MIPI DSIM Core voltage supply (e.g. 1.1V)
661f0d40d8SJagan Teki
671f0d40d8SJagan Teki  vddio-supply:
681f0d40d8SJagan Teki    description: MIPI DSIM I/O and PLL voltage supply (e.g. 1.8V)
691f0d40d8SJagan Teki
701f0d40d8SJagan Teki  samsung,burst-clock-frequency:
711f0d40d8SJagan Teki    $ref: /schemas/types.yaml#/definitions/uint32
721f0d40d8SJagan Teki    description:
735769b45aSAdam Ford      DSIM high speed burst mode frequency.  If absent,
745769b45aSAdam Ford      the pixel clock from the attached device or bridge
755769b45aSAdam Ford      will be used instead.
761f0d40d8SJagan Teki
771f0d40d8SJagan Teki  samsung,esc-clock-frequency:
781f0d40d8SJagan Teki    $ref: /schemas/types.yaml#/definitions/uint32
791f0d40d8SJagan Teki    description:
801f0d40d8SJagan Teki      DSIM escape mode frequency.
811f0d40d8SJagan Teki
821f0d40d8SJagan Teki  samsung,pll-clock-frequency:
831f0d40d8SJagan Teki    $ref: /schemas/types.yaml#/definitions/uint32
841f0d40d8SJagan Teki    description:
855769b45aSAdam Ford      DSIM oscillator clock frequency. If absent, the clock frequency
865769b45aSAdam Ford      of sclk_mipi will be used instead.
871f0d40d8SJagan Teki
881f0d40d8SJagan Teki  phys:
891f0d40d8SJagan Teki    maxItems: 1
901f0d40d8SJagan Teki
911f0d40d8SJagan Teki  phy-names:
921f0d40d8SJagan Teki    const: dsim
931f0d40d8SJagan Teki
941f0d40d8SJagan Teki  ports:
951f0d40d8SJagan Teki    $ref: /schemas/graph.yaml#/properties/ports
961f0d40d8SJagan Teki
971f0d40d8SJagan Teki    properties:
981f0d40d8SJagan Teki      port@0:
991f0d40d8SJagan Teki        $ref: /schemas/graph.yaml#/properties/port
1001f0d40d8SJagan Teki        description:
1011f0d40d8SJagan Teki          Input port node to receive pixel data from the
1021f0d40d8SJagan Teki          display controller. Exactly one endpoint must be
1031f0d40d8SJagan Teki          specified.
1041f0d40d8SJagan Teki
1051f0d40d8SJagan Teki      port@1:
106*54df4868SFabio Estevam        $ref: /schemas/graph.yaml#/$defs/port-base
107*54df4868SFabio Estevam        unevaluatedProperties: false
1081f0d40d8SJagan Teki        description:
1091f0d40d8SJagan Teki          DSI output port node to the panel or the next bridge
1101f0d40d8SJagan Teki          in the chain.
1111f0d40d8SJagan Teki
112ec7743c9SFabio Estevam        properties:
113ec7743c9SFabio Estevam          endpoint:
114ec7743c9SFabio Estevam            $ref: /schemas/media/video-interfaces.yaml#
115ec7743c9SFabio Estevam            unevaluatedProperties: false
116ec7743c9SFabio Estevam
117ec7743c9SFabio Estevam            properties:
118ec7743c9SFabio Estevam              data-lanes:
119ec7743c9SFabio Estevam                minItems: 1
120ec7743c9SFabio Estevam                maxItems: 4
121ec7743c9SFabio Estevam                uniqueItems: true
122ec7743c9SFabio Estevam                items:
123ec7743c9SFabio Estevam                  enum: [ 1, 2, 3, 4 ]
124ec7743c9SFabio Estevam
125ec7743c9SFabio Estevam              lane-polarities:
126ec7743c9SFabio Estevam                minItems: 1
127ec7743c9SFabio Estevam                maxItems: 5
128ec7743c9SFabio Estevam                description:
129ec7743c9SFabio Estevam                  The Samsung MIPI DSI IP requires that all the data lanes have
130ec7743c9SFabio Estevam                  the same polarity.
131ec7743c9SFabio Estevam
132ec7743c9SFabio Estevam            dependencies:
133ec7743c9SFabio Estevam              lane-polarities: [data-lanes]
134ec7743c9SFabio Estevam
1351f0d40d8SJagan Tekirequired:
1361f0d40d8SJagan Teki  - clock-names
1371f0d40d8SJagan Teki  - clocks
1381f0d40d8SJagan Teki  - compatible
1391f0d40d8SJagan Teki  - interrupts
1401f0d40d8SJagan Teki  - reg
1411f0d40d8SJagan Teki  - samsung,esc-clock-frequency
1421f0d40d8SJagan Teki
1431f0d40d8SJagan TekiallOf:
1441f0d40d8SJagan Teki  - $ref: ../dsi-controller.yaml#
1451f0d40d8SJagan Teki  - if:
1461f0d40d8SJagan Teki      properties:
1471f0d40d8SJagan Teki        compatible:
1481f0d40d8SJagan Teki          contains:
1491f0d40d8SJagan Teki            const: samsung,exynos5433-mipi-dsi
1501f0d40d8SJagan Teki
1511f0d40d8SJagan Teki    then:
1521f0d40d8SJagan Teki      properties:
1531f0d40d8SJagan Teki        clocks:
1541f0d40d8SJagan Teki          minItems: 5
1551f0d40d8SJagan Teki
1561f0d40d8SJagan Teki        clock-names:
1571f0d40d8SJagan Teki          items:
1581f0d40d8SJagan Teki            - const: bus_clk
1591f0d40d8SJagan Teki            - const: phyclk_mipidphy0_bitclkdiv8
1601f0d40d8SJagan Teki            - const: phyclk_mipidphy0_rxclkesc0
1611f0d40d8SJagan Teki            - const: sclk_rgb_vclk_to_dsim0
1621f0d40d8SJagan Teki            - const: sclk_mipi
1631f0d40d8SJagan Teki
1641f0d40d8SJagan Teki        ports:
1651f0d40d8SJagan Teki          required:
1661f0d40d8SJagan Teki            - port@0
1671f0d40d8SJagan Teki
1681f0d40d8SJagan Teki      required:
1691f0d40d8SJagan Teki        - ports
1701f0d40d8SJagan Teki        - vddcore-supply
1711f0d40d8SJagan Teki        - vddio-supply
1721f0d40d8SJagan Teki
1731f0d40d8SJagan Teki  - if:
1741f0d40d8SJagan Teki      properties:
1751f0d40d8SJagan Teki        compatible:
1761f0d40d8SJagan Teki          contains:
1771f0d40d8SJagan Teki            const: samsung,exynos5410-mipi-dsi
1781f0d40d8SJagan Teki
1791f0d40d8SJagan Teki    then:
1801f0d40d8SJagan Teki      properties:
1811f0d40d8SJagan Teki        clocks:
1821f0d40d8SJagan Teki          minItems: 2
1831f0d40d8SJagan Teki
1841f0d40d8SJagan Teki        clock-names:
1851f0d40d8SJagan Teki          items:
1861f0d40d8SJagan Teki            - const: bus_clk
1871f0d40d8SJagan Teki            - const: pll_clk
1881f0d40d8SJagan Teki
1891f0d40d8SJagan Teki      required:
1901f0d40d8SJagan Teki        - vddcore-supply
1911f0d40d8SJagan Teki        - vddio-supply
1921f0d40d8SJagan Teki
1931f0d40d8SJagan Teki  - if:
1941f0d40d8SJagan Teki      properties:
1951f0d40d8SJagan Teki        compatible:
1961f0d40d8SJagan Teki          contains:
1971f0d40d8SJagan Teki            const: samsung,exynos4210-mipi-dsi
1981f0d40d8SJagan Teki
1991f0d40d8SJagan Teki    then:
2001f0d40d8SJagan Teki      properties:
2011f0d40d8SJagan Teki        clocks:
2021f0d40d8SJagan Teki          minItems: 2
2031f0d40d8SJagan Teki
2041f0d40d8SJagan Teki        clock-names:
2051f0d40d8SJagan Teki          items:
2061f0d40d8SJagan Teki            - const: bus_clk
2071f0d40d8SJagan Teki            - const: sclk_mipi
2081f0d40d8SJagan Teki
2091f0d40d8SJagan Teki      required:
2101f0d40d8SJagan Teki        - vddcore-supply
2111f0d40d8SJagan Teki        - vddio-supply
2121f0d40d8SJagan Teki
2131f0d40d8SJagan Teki  - if:
2141f0d40d8SJagan Teki      properties:
2151f0d40d8SJagan Teki        compatible:
2161f0d40d8SJagan Teki          contains:
2171f0d40d8SJagan Teki            const: samsung,exynos3250-mipi-dsi
2181f0d40d8SJagan Teki
2191f0d40d8SJagan Teki    then:
2201f0d40d8SJagan Teki      properties:
2211f0d40d8SJagan Teki        clocks:
2221f0d40d8SJagan Teki          minItems: 2
2231f0d40d8SJagan Teki
2241f0d40d8SJagan Teki        clock-names:
2251f0d40d8SJagan Teki          items:
2261f0d40d8SJagan Teki            - const: bus_clk
2271f0d40d8SJagan Teki            - const: pll_clk
2281f0d40d8SJagan Teki
2291f0d40d8SJagan Teki      required:
2301f0d40d8SJagan Teki        - vddcore-supply
2311f0d40d8SJagan Teki        - vddio-supply
2321f0d40d8SJagan Teki        - samsung,phy-type
2331f0d40d8SJagan Teki
2341f0d40d8SJagan TekiadditionalProperties:
2351f0d40d8SJagan Teki  type: object
2361f0d40d8SJagan Teki
2371f0d40d8SJagan Tekiexamples:
2381f0d40d8SJagan Teki  - |
2391f0d40d8SJagan Teki    #include <dt-bindings/clock/exynos5433.h>
2401f0d40d8SJagan Teki    #include <dt-bindings/gpio/gpio.h>
2411f0d40d8SJagan Teki    #include <dt-bindings/interrupt-controller/arm-gic.h>
2421f0d40d8SJagan Teki
2431f0d40d8SJagan Teki    dsi@13900000 {
2441f0d40d8SJagan Teki       compatible = "samsung,exynos5433-mipi-dsi";
2451f0d40d8SJagan Teki       reg = <0x13900000 0xC0>;
2461f0d40d8SJagan Teki       interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
2471f0d40d8SJagan Teki       phys = <&mipi_phy 1>;
2481f0d40d8SJagan Teki       phy-names = "dsim";
2491f0d40d8SJagan Teki       clocks = <&cmu_disp CLK_PCLK_DSIM0>,
2501f0d40d8SJagan Teki                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8>,
2511f0d40d8SJagan Teki                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0>,
2521f0d40d8SJagan Teki                <&cmu_disp CLK_SCLK_RGB_VCLK_TO_DSIM0>,
2531f0d40d8SJagan Teki                <&cmu_disp CLK_SCLK_DSIM0>;
2541f0d40d8SJagan Teki       clock-names = "bus_clk",
2551f0d40d8SJagan Teki                     "phyclk_mipidphy0_bitclkdiv8",
2561f0d40d8SJagan Teki                     "phyclk_mipidphy0_rxclkesc0",
2571f0d40d8SJagan Teki                     "sclk_rgb_vclk_to_dsim0",
2581f0d40d8SJagan Teki                     "sclk_mipi";
2591f0d40d8SJagan Teki       power-domains = <&pd_disp>;
2601f0d40d8SJagan Teki       vddcore-supply = <&ldo6_reg>;
2611f0d40d8SJagan Teki       vddio-supply = <&ldo7_reg>;
2621f0d40d8SJagan Teki       samsung,burst-clock-frequency = <512000000>;
2631f0d40d8SJagan Teki       samsung,esc-clock-frequency = <16000000>;
2641f0d40d8SJagan Teki       samsung,pll-clock-frequency = <24000000>;
2651f0d40d8SJagan Teki       pinctrl-names = "default";
2661f0d40d8SJagan Teki       pinctrl-0 = <&te_irq>;
2671f0d40d8SJagan Teki
2681f0d40d8SJagan Teki       ports {
2691f0d40d8SJagan Teki          #address-cells = <1>;
2701f0d40d8SJagan Teki          #size-cells = <0>;
2711f0d40d8SJagan Teki
2721f0d40d8SJagan Teki          port@0 {
2731f0d40d8SJagan Teki             reg = <0>;
2741f0d40d8SJagan Teki
2751f0d40d8SJagan Teki             dsi_to_mic: endpoint {
2761f0d40d8SJagan Teki                remote-endpoint = <&mic_to_dsi>;
2771f0d40d8SJagan Teki             };
2781f0d40d8SJagan Teki          };
2791f0d40d8SJagan Teki       };
2801f0d40d8SJagan Teki    };
281