The MIPI Display Serial Interface (MIPI DSI) connects the LCDIF (LCD controller) to an external MIPI display or bridge interface.
The ConnectCore 93 Development Kit includes a simple MIPI bridge to provide an HDMI interface. The LVDS interface is native, provided directly by the CPU.
-
HDMI is provided with the default configuration (DT and jumper) of the development kit.
-
LVDS is available by using the corresponding overlay.
-
MIPI DSI display is selected by the corresponding overlay and closing J28 jumper.
Kernel configuration
You can manage the video support through the following kernel configuration options:
-
i.MX LCDIFV3 core support (
CONFIG_IMX_LCDIFV3_CORE
) -
i.MX LCDIFV3 controller DRM driver (
CONFIG_DRM_IMX_LCDIFV3
) -
Freescale i.MX DRM Synopsys DesignWare MIPI DSI (
CONFIG_DRM_IMX_DW_MIPI_DSI
)
These options are enabled as built-in on the default ConnectCore 93 kernel configuration file.
Kernel driver
The driver for the video interface is located at:
File | Description |
---|---|
i.MX LCDIFV3 core support |
|
i.MX LCDIFV3 controller DRM drivers |
|
Freescale i.MX DRM Synopsys DesignWare MIPI DSI |
Device tree bindings and customization
The i.MX93 LCDIF controller is documented at
Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt
.
The i.MX93 MIPI DSI interface is documented at
Documentation/devicetree/bindings/display/imx/fsl,imx93-mipi-dsi.yaml
.
The LCDIF controller and MIPI DSI interface are defined in the i.MX93 CPU device tree file.
Definition of the LCDIF and MIPI DSI
dsi: dsi@4ae10000 {
compatible = "fsl,imx93-mipi-dsi";
reg = <0x4ae10000 0x4000>;
interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_MIPI_TEST_BYTE>,
<&clk IMX93_CLK_MIPI_DSI_GATE>,
<&clk IMX93_CLK_MEDIA_DISP_PIX>;
clock-names = "byte", "pclk", "pixel";
assigned-clocks = <&clk IMX93_CLK_MIPI_TEST_BYTE>,
<&clk IMX93_CLK_MEDIA_APB>;
assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD0>,
<&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
assigned-clock-rates = <20000000>, <133333333>;
phys = <&dphy>;
phy-names = "dphy";
power-domains = <&media_blk_ctrl IMX93_MEDIABLK_PD_MIPI_DSI>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi_to_lcdif: endpoint {
remote-endpoint = <&lcdif_to_dsi>;
};
};
};
};
lcdif: lcd-controller@4ae30000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx93-lcdif";
reg = <0x4ae30000 0x10000>;
interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
fsl,gpr = <&media_blk_ctrl>;
clocks = <&clk IMX93_CLK_MEDIA_DISP_PIX>,
<&clk IMX93_CLK_MEDIA_AXI>,
<&clk IMX93_CLK_LCDIF_GATE>;
clock-names = "pix", "disp-axi", "disp-apb";
assigned-clocks = <&clk IMX93_CLK_VIDEO_PLL>,
<&clk IMX93_CLK_MEDIA_DISP_PIX>,
<&clk IMX93_CLK_MEDIA_AXI>,
<&clk IMX93_CLK_MEDIA_APB>;
assigned-clock-parents = <&clk IMX93_CLK_24M>,
<&clk IMX93_CLK_VIDEO_PLL>,
<&clk IMX93_CLK_SYS_PLL_PFD1>,
<&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
power-domains = <&media_blk_ctrl IMX93_MEDIABLK_PD_LCDIF>;
status = "disabled";
lcdif_disp: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
lcdif_to_dsi: endpoint@0 {
reg = <0>;
remote-endpoint = <&dsi_to_lcdif>;
};
lcdif_to_ldb: endpoint@1 {
reg = <1>;
remote-endpoint = <&ldb_ch0>;
};
lcdif_to_dpi: endpoint@2 {
reg = <2>;
remote-endpoint = <&dpi_to_lcdif>;
};
};
};
IOMUX configuration
The MIPI DSI interface uses dedicated pins. No IOMUX configuration is necessary.
Display options
The MIPI-to-HDMI bridge available on the ConnectCore 93 Development Kit is enabled with default kernel and device tree configurations.
Use the video interface
When the video interface is available, a bootup logo displays on the screen. For XWayland images, a Weston desktop launches after Linux starts.
Play a video
To play a video using Gstreamer:
# gplay-1.0 /tmp/myvideo.mp4