]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: exynos7870: add DSI support
authorKaustabh Chakraborty <kauschluss@disroot.org>
Thu, 30 Oct 2025 19:20:16 +0000 (00:50 +0530)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Wed, 5 Nov 2025 07:23:35 +0000 (08:23 +0100)
Add devicetree nodes for MIPI PHYs, Samsung's DECON and DSIM blocks, and
DECON IOMMU devicetree nodes. Enables SoC support for hardware to be
able to drive a MIPI DSI display.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Link: https://patch.msgid.link/20251031-exynos7870-drm-dts-v4-2-c1f77fb16b87@disroot.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
arch/arm64/boot/dts/exynos/exynos7870.dtsi

index d5d347623b9038b71da55dccdc9084aeaf71618c..2827e10d69625a22328eb20183dc354c9acbfb8e 100644 (file)
                                     "samsung,exynos7-pmu", "syscon";
                        reg = <0x10480000 0x10000>;
 
+                       mipi_phy: mipi-phy {
+                               compatible = "samsung,exynos7870-mipi-video-phy";
+                               #phy-cells = <1>;
+
+                               samsung,cam0-sysreg = <&syscon_cam0>;
+                               samsung,disp-sysreg = <&syscon_disp>;
+                       };
+
                        reboot-mode {
                                compatible = "syscon-reboot-mode";
                                offset = <0x080c>;
                                 <&cmu_mif CLK_GOUT_MIF_CMU_ISP_VRA>;
                };
 
+               syscon_cam0: system-controller@144f1040 {
+                       compatible = "samsung,exynos7870-cam0-sysreg", "syscon";
+                       reg = <0x144f1040 0x04>;
+               };
+
+               dsi: dsi@14800000 {
+                       compatible = "samsung,exynos7870-mipi-dsi";
+                       reg = <0x14800000 0x100>;
+                       interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&cmu_dispaud CLK_GOUT_DISPAUD_BUS_DISP>,
+                                <&cmu_dispaud CLK_GOUT_DISPAUD_APB_DISP>,
+                                <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_MIPIPHY_TXBYTECLKHS_USER>,
+                                <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_MIPIPHY_RXCLKESC0_USER>;
+                       clock-names = "bus", "pll", "byte", "esc";
+
+                       phys = <&mipi_phy 1>;
+                       phy-names = "dsim";
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       dsi_to_decon: endpoint {
+                                               remote-endpoint = <&decon_to_dsi>;
+                                       };
+                               };
+                       };
+               };
+
+               decon: display-controller@14830000 {
+                       compatible = "samsung,exynos7870-decon";
+                       reg = <0x14830000 0x8000>;
+                       interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "fifo", "vsync", "lcd_sys";
+
+                       clocks = <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_PLL>,
+                                <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_BUS_USER>,
+                                <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_DECON_ECLK>,
+                                <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_DECON_VCLK>;
+                       clock-names = "pclk_decon0", "aclk_decon0",
+                                     "decon0_eclk", "decon0_vclk";
+
+                       iommus = <&sysmmu_decon>;
+
+                       status = "disabled";
+
+                       port {
+                               decon_to_dsi: endpoint {
+                                       remote-endpoint = <&dsi_to_decon>;
+                               };
+                       };
+               };
+
+               sysmmu_decon: iommu@14860000 {
+                       compatible = "samsung,exynos-sysmmu";
+                       reg = <0x14860000 0x1000>;
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <0>;
+
+                       clocks = <&cmu_dispaud CLK_GOUT_DISPAUD_MUX_BUS_USER>;
+                       clock-names = "sysmmu";
+               };
+
                pinctrl_dispaud: pinctrl@148c0000 {
                        compatible = "samsung,exynos7870-pinctrl";
                        reg = <0x148c0000 0x1000>;
                                 <&cmu_mif CLK_GOUT_MIF_CMU_DISPAUD_DECON_ECLK>,
                                 <&cmu_mif CLK_GOUT_MIF_CMU_DISPAUD_DECON_VCLK>;
                };
+
+               syscon_disp: system-controller@148f100c {
+                       compatible = "samsung,exynos7870-disp-sysreg", "syscon";
+                       reg = <0x148f100c 0x04>;
+               };
        };
 
        timer {