As per this I added lcdif clocks in init-on-array
This is my rootcell dtb init-on-array
&clk {
init-on-array = <IMX8MP_CLK_USDHC3_ROOT
IMX8MP_CLK_NAND_USDHC_BUS
IMX8MP_CLK_HSIO_ROOT
IMX8MP_CLK_UART4_ROOT
IMX8MP_CLK_I2C3_ROOT
IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT
IMX8MP_CLK_MEDIA_AXI_ROOT
IMX8MP_CLK_MEDIA_APB_ROOT
IMX8MP_CLK_MEDIA_MIPI_PHY1_REF
IMX8MP_CLK_OCOTP_ROOT>;
};
based on the im8mp-evk-inmate.dts UART4 example, I added fixed clocks for the lcdif1 node in inmate dtb as follows
.....
clk_500m:clock@11{
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <500000000>;
clock-output-names = "clk_500m";
};
......
lcdif1: lcd-controller@32e80000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx8mp-lcdif1";
reg = <0x32e80000 0x10000>;
/**
clocks = <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>,
<&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
<&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
*/
clocks = <&clk_250m>,<&clk_500m>,<&clk_200m>;
clock-names = "pix", "disp-axi", "disp-apb";
/**
assigned-clocks = <&clk IMX8MP_CLK_MEDIA_DISP1_PIX>,
<&clk IMX8MP_CLK_MEDIA_AXI>,
<&clk IMX8MP_CLK_MEDIA_APB>;
assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>,
<&clk IMX8MP_SYS_PLL2_1000M>,
<&clk IMX8MP_SYS_PLL1_800M>;
assigned-clock-rates = <0>, <500000000>, <200000000>;
*/
assigned-clocks = <&clk_250m>,<&clk_500pm>,<&clk_200pm>;
assigned-clock-parents = <&osc_24m>,<&osc_24m>,<&osc_24m>;
assigned-clock-rates = <0>, <500000000>, <200000000>;
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
blk-ctl = <&mediamix_blk_ctl>;
power-domains = <&mediamix_pd>;
status = "okay";
lcdif1_disp: port@0 {
reg = <0>;
lcdif_to_dsim: endpoint {
remote-endpoint = <&dsim_from_lcdif>;
};
};
};
But I'm still not getting my secondary LCD working on the inmate cell, also when I enable lcdif1, the primary LCD screen (which belongs to the root cell ) goes down as soon as I start inmate cell.
How do properly configure LCDIF1 clocks in root cell and use them in inmate?