Message ID | 20190801061818.23585-2-peng.fan@nxp.com |
---|---|
State | Accepted |
Delegated to: | Stefano Babic |
Headers | show |
Series | [U-Boot,1/2] imx: mx6ul_14x14_evk: Fix SPL boot | expand |
Hi Peng, On Thu, Aug 1, 2019 at 3:02 AM Peng Fan <peng.fan@nxp.com> wrote: > + display0: display@0 { > + bits-per-pixel = <16>; > + bus-width = <24>; > + > + display-timings { > + native-mode = <&timing0>; > + > + timing0: timing0 { > + clock-frequency = <9200000>; > + hactive = <480>; > + vactive = <272>; > + hfront-porch = <8>; > + hback-porch = <4>; > + hsync-len = <41>; > + vback-porch = <2>; > + vfront-porch = <4>; > + vsync-len = <10>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <0>; So here we have the LCD timings in the device tree, which differs from the the devicetree in mainline. This is based on the old mxsfb fbdev driver, which has been removed in 5.3-rc. In mainline we pass the innolux,at043tn24 LCD compatible. Shouldn't U-Boot be able to handle the same dt-bindings as in the kernel?
HI, > Subject: Re: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > Hi Peng, > > On Thu, Aug 1, 2019 at 3:02 AM Peng Fan <peng.fan@nxp.com> wrote: > > > + display0: display@0 { > > + bits-per-pixel = <16>; > > + bus-width = <24>; > > + > > + display-timings { > > + native-mode = <&timing0>; > > + > > + timing0: timing0 { > > + clock-frequency = <9200000>; > > + hactive = <480>; > > + vactive = <272>; > > + hfront-porch = <8>; > > + hback-porch = <4>; > > + hsync-len = <41>; > > + vback-porch = <2>; > > + vfront-porch = <4>; > > + vsync-len = <10>; > > + hsync-active = <0>; > > + vsync-active = <0>; > > + de-active = <1>; > > + pixelclk-active = <0>; > > So here we have the LCD timings in the device tree, which differs from the the > devicetree in mainline. > > This is based on the old mxsfb fbdev driver, which has been removed in 5.3-rc. > > In mainline we pass the innolux,at043tn24 LCD compatible. > > Shouldn't U-Boot be able to handle the same dt-bindings as in the kernel? I added this node in x-u-boot.dtsi, not in common dts. If drop this display-timings, we need add a similar structure inside code just as kernel did. And need to restructure mxsfb driver. For simple, we could leave this in u-boot.dtsi. Anatolij, what's your suggestion? Thanks, Peng.
On Fri, Aug 2, 2019 at 12:05 PM Peng Fan <peng.fan@nxp.com> wrote: > > HI, > > > Subject: Re: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > > > Hi Peng, > > > > On Thu, Aug 1, 2019 at 3:02 AM Peng Fan <peng.fan@nxp.com> wrote: > > > > > + display0: display@0 { > > > + bits-per-pixel = <16>; > > > + bus-width = <24>; > > > + > > > + display-timings { > > > + native-mode = <&timing0>; > > > + > > > + timing0: timing0 { > > > + clock-frequency = <9200000>; > > > + hactive = <480>; > > > + vactive = <272>; > > > + hfront-porch = <8>; > > > + hback-porch = <4>; > > > + hsync-len = <41>; > > > + vback-porch = <2>; > > > + vfront-porch = <4>; > > > + vsync-len = <10>; > > > + hsync-active = <0>; > > > + vsync-active = <0>; > > > + de-active = <1>; > > > + pixelclk-active = <0>; > > > > So here we have the LCD timings in the device tree, which differs from the the > > devicetree in mainline. > > > > This is based on the old mxsfb fbdev driver, which has been removed in 5.3-rc. > > > > In mainline we pass the innolux,at043tn24 LCD compatible. > > > > Shouldn't U-Boot be able to handle the same dt-bindings as in the kernel? > > I added this node in x-u-boot.dtsi, not in common dts. If drop this display-timings, > we need add a similar structure inside code just as kernel did. > And need to restructure mxsfb driver. > > For simple, we could leave this in u-boot.dtsi. How about adding panel timings in panel-simple we have similar in u-boot and sync equivalent dts changes from Linux?
> Subject: Re: [U-Boot] [PATCH 2/2] imx: mx6ul_14x14_evk: convert to > DM_VIDEO > > On Fri, Aug 2, 2019 at 12:05 PM Peng Fan <peng.fan@nxp.com> wrote: > > > > HI, > > > > > Subject: Re: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > > > > > Hi Peng, > > > > > > On Thu, Aug 1, 2019 at 3:02 AM Peng Fan <peng.fan@nxp.com> wrote: > > > > > > > + display0: display@0 { > > > > + bits-per-pixel = <16>; > > > > + bus-width = <24>; > > > > + > > > > + display-timings { > > > > + native-mode = <&timing0>; > > > > + > > > > + timing0: timing0 { > > > > + clock-frequency = <9200000>; > > > > + hactive = <480>; > > > > + vactive = <272>; > > > > + hfront-porch = <8>; > > > > + hback-porch = <4>; > > > > + hsync-len = <41>; > > > > + vback-porch = <2>; > > > > + vfront-porch = <4>; > > > > + vsync-len = <10>; > > > > + hsync-active = <0>; > > > > + vsync-active = <0>; > > > > + de-active = <1>; > > > > + pixelclk-active = <0>; > > > > > > So here we have the LCD timings in the device tree, which differs > > > from the the devicetree in mainline. > > > > > > This is based on the old mxsfb fbdev driver, which has been removed in > 5.3-rc. > > > > > > In mainline we pass the innolux,at043tn24 LCD compatible. > > > > > > Shouldn't U-Boot be able to handle the same dt-bindings as in the kernel? > > > > I added this node in x-u-boot.dtsi, not in common dts. If drop this > > display-timings, we need add a similar structure inside code just as kernel > did. > > And need to restructure mxsfb driver. > > > > For simple, we could leave this in u-boot.dtsi. > > How about adding panel timings in panel-simple we have similar in u-boot and > sync equivalent dts changes from Linux? The panel timings needs to be passed to display driver, kernel has drm-crtc for this, but uboot does not have it. The method is to let display driver to find the panel node/device to get the timings. Will this work? Thanks, Peng.
> Subject: RE: [U-Boot] [PATCH 2/2] imx: mx6ul_14x14_evk: convert to > DM_VIDEO > > > Subject: Re: [U-Boot] [PATCH 2/2] imx: mx6ul_14x14_evk: convert to > > DM_VIDEO > > > > On Fri, Aug 2, 2019 at 12:05 PM Peng Fan <peng.fan@nxp.com> wrote: > > > > > > HI, > > > > > > > Subject: Re: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > > > > > > > Hi Peng, > > > > > > > > On Thu, Aug 1, 2019 at 3:02 AM Peng Fan <peng.fan@nxp.com> wrote: > > > > > > > > > + display0: display@0 { > > > > > + bits-per-pixel = <16>; > > > > > + bus-width = <24>; > > > > > + > > > > > + display-timings { > > > > > + native-mode = <&timing0>; > > > > > + > > > > > + timing0: timing0 { > > > > > + clock-frequency = <9200000>; > > > > > + hactive = <480>; > > > > > + vactive = <272>; > > > > > + hfront-porch = <8>; > > > > > + hback-porch = <4>; > > > > > + hsync-len = <41>; > > > > > + vback-porch = <2>; > > > > > + vfront-porch = <4>; > > > > > + vsync-len = <10>; > > > > > + hsync-active = <0>; > > > > > + vsync-active = <0>; > > > > > + de-active = <1>; > > > > > + pixelclk-active = <0>; > > > > > > > > So here we have the LCD timings in the device tree, which differs > > > > from the the devicetree in mainline. > > > > > > > > This is based on the old mxsfb fbdev driver, which has been > > > > removed in > > 5.3-rc. > > > > > > > > In mainline we pass the innolux,at043tn24 LCD compatible. > > > > > > > > Shouldn't U-Boot be able to handle the same dt-bindings as in the > kernel? > > > > > > I added this node in x-u-boot.dtsi, not in common dts. If drop this > > > display-timings, we need add a similar structure inside code just as > > > kernel > > did. > > > And need to restructure mxsfb driver. > > > > > > For simple, we could leave this in u-boot.dtsi. > > > > How about adding panel timings in panel-simple we have similar in > > u-boot and sync equivalent dts changes from Linux? > > The panel timings needs to be passed to display driver, kernel has drm-crtc for > this, but uboot does not have it. > > The method is to let display driver to find the panel node/device to get the > timings. > > Will this work? An issue is where to get bits-per-pixel? Thanks, Peng. > > Thanks, > Peng.
Hi Peng, On Thu, Aug 1, 2019 at 9:03 AM Peng Fan <peng.fan@nxp.com> wrote: > > To support DM_VIDEO, > Add display node for lcdif > Drop board iomuxc settings. > Enable DM_VIDEO > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > > V1: > This patch could be applied directly, but it needs > https://patchwork.ozlabs.org/patch/1133224/ patchset work let > DM VIDEO work. > > arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi | 49 ++++++++++++++++++- > board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 57 ++++++++--------------- > configs/mx6ul_14x14_evk_defconfig | 2 +- > include/configs/mx6ul_14x14_evk.h | 2 +- > 4 files changed, 70 insertions(+), 40 deletions(-) > > diff --git a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > index 77cb461a21..e9efdb9831 100644 > --- a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > +++ b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > @@ -3,8 +3,55 @@ > * Copyright 2018 NXP > */ > > +&{/aliases} { > + u-boot,dm-pre-reloc; > + display0 = &lcdif; > +}; > + > &qspi { > flash0: n25q256a@0 { > compatible = "jedec,spi-nor"; > }; > -}; > \ No newline at end of file > +}; > + > +&{/soc} { > + u-boot,dm-pre-reloc; > +}; > + > +&aips2 { > + u-boot,dm-pre-reloc; > +}; > + > +&iomuxc { > + u-boot,dm-pre-reloc; > +}; > + > +&lcdif { > + display = <&display0>; > + u-boot,dm-pre-reloc; > + > + display0: display@0 { > + bits-per-pixel = <16>; > + bus-width = <24>; > + > + display-timings { > + native-mode = <&timing0>; > + > + timing0: timing0 { > + clock-frequency = <9200000>; > + hactive = <480>; > + vactive = <272>; > + hfront-porch = <8>; > + hback-porch = <4>; > + hsync-len = <41>; > + vback-porch = <2>; > + vfront-porch = <4>; > + vsync-len = <10>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <0>; > + }; > + }; > + }; > +}; > diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > index af5af4d50a..126a805163 100644 > --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > @@ -27,6 +27,10 @@ > #include "../common/pfuze.h" > #include <usb.h> > #include <usb/ehci-ci.h> > +#ifdef CONFIG_DM_VIDEO > +#include <bmp_logo_data.h> > +#include <video.h> > +#endif > > DECLARE_GLOBAL_DATA_PTR; > > @@ -420,40 +424,8 @@ int board_phy_config(struct phy_device *phydev) > } > #endif > > -#ifdef CONFIG_VIDEO_MXS > +#ifdef CONFIG_DM_VIDEO > static iomux_v3_cfg_t const lcd_pads[] = { > - MX6_PAD_LCD_CLK__LCDIF_CLK | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_ENABLE__LCDIF_ENABLE | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_HSYNC__LCDIF_HSYNC | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_VSYNC__LCDIF_VSYNC | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA00__LCDIF_DATA00 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA01__LCDIF_DATA01 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA02__LCDIF_DATA02 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA03__LCDIF_DATA03 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA04__LCDIF_DATA04 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA05__LCDIF_DATA05 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA06__LCDIF_DATA06 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA07__LCDIF_DATA07 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA08__LCDIF_DATA08 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA09__LCDIF_DATA09 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA10__LCDIF_DATA10 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA11__LCDIF_DATA11 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA12__LCDIF_DATA12 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA13__LCDIF_DATA13 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA14__LCDIF_DATA14 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA15__LCDIF_DATA15 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA16__LCDIF_DATA16 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA17__LCDIF_DATA17 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA18__LCDIF_DATA18 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA19__LCDIF_DATA19 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA20__LCDIF_DATA20 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA21__LCDIF_DATA21 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA22__LCDIF_DATA22 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA23__LCDIF_DATA23 | MUX_PAD_CTRL(LCD_PAD_CTRL), > - > - /* LCD_RST */ > - MX6_PAD_SNVS_TAMPER9__GPIO5_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL), > - > /* Use GPIO for Brightness adjustment, duty cycle = period. */ > MX6_PAD_GPIO1_IO08__GPIO1_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL), > }; > @@ -504,10 +476,6 @@ int board_init(void) > board_qspi_init(); > #endif > > -#ifdef CONFIG_VIDEO_MXS > - setup_lcd(); > -#endif > - > return 0; > } > > @@ -536,6 +504,21 @@ int board_late_init(void) > env_set("board_rev", "14X14"); > #endif > > +#if defined(CONFIG_DM_VIDEO) > + struct udevice *dev; > + int ret; > + > + ret = uclass_get_device(UCLASS_VIDEO, 0, &dev); > + if (ret) > + return ret; > + > + setup_lcd(); > + > + ret = video_bmp_display(dev, (ulong)bmp_logo_bitmap, 0, 0, true); > + if (ret) > + return ret; > +#endif > + What about this approach [1] for showing boot logo? Now it also works for DM_VIDEO=y setups. > return 0; > } > > diff --git a/configs/mx6ul_14x14_evk_defconfig b/configs/mx6ul_14x14_evk_defconfig > index 1d777b5fb2..10fb07dd2c 100644 > --- a/configs/mx6ul_14x14_evk_defconfig > +++ b/configs/mx6ul_14x14_evk_defconfig > @@ -67,4 +67,4 @@ CONFIG_FSL_QSPI=y > CONFIG_USB=y > CONFIG_DM_USB=y > CONFIG_USB_STORAGE=y > -CONFIG_VIDEO=y > +CONFIG_DM_VIDEO=y > diff --git a/include/configs/mx6ul_14x14_evk.h b/include/configs/mx6ul_14x14_evk.h > index 42e511591c..f8a5fd30f3 100644 > --- a/include/configs/mx6ul_14x14_evk.h > +++ b/include/configs/mx6ul_14x14_evk.h > @@ -196,7 +196,7 @@ > #define CONFIG_IMX_THERMAL > > #ifndef CONFIG_SPL_BUILD > -#ifdef CONFIG_VIDEO > +#if defined(CONFIG_DM_VIDEO) > #define CONFIG_VIDEO_MXS > #define CONFIG_VIDEO_LOGO > #define CONFIG_SPLASH_SCREEN > -- > 2.16.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot [1] https://patchwork.ozlabs.org/patch/1106985/
> Subject: Re: [U-Boot] [PATCH 2/2] imx: mx6ul_14x14_evk: convert to > DM_VIDEO > > Hi Peng, > > On Thu, Aug 1, 2019 at 9:03 AM Peng Fan <peng.fan@nxp.com> wrote: > > > > To support DM_VIDEO, > > Add display node for lcdif > > Drop board iomuxc settings. > > Enable DM_VIDEO > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > > > V1: > > This patch could be applied directly, but it needs > > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch > work.ozlabs.org%2Fpatch%2F1133224%2F&data=02%7C01%7Cpeng.fan > %40nxp.com%7Ce7e18c4c27e24cf1a12508d71741b2bf%7C686ea1d3bc2b4c > 6fa92cd99c5c301635%7C0%7C0%7C637003443252765100&sdata=ZuS > 8cCWMGCxr7PEPT2xe6cqAIz7Bqd38176FCUc2jsk%3D&reserved=0 > patchset work let DM VIDEO work. > > > > arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi | 49 > ++++++++++++++++++- > > board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 57 > ++++++++--------------- > > configs/mx6ul_14x14_evk_defconfig | 2 +- > > include/configs/mx6ul_14x14_evk.h | 2 +- > > 4 files changed, 70 insertions(+), 40 deletions(-) > > > > diff --git a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > > b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > > index 77cb461a21..e9efdb9831 100644 > > --- a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > > +++ b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > > @@ -3,8 +3,55 @@ > > * Copyright 2018 NXP > > */ > > > > +&{/aliases} { > > + u-boot,dm-pre-reloc; > > + display0 = &lcdif; > > +}; > > + > > &qspi { > > flash0: n25q256a@0 { > > compatible = "jedec,spi-nor"; > > }; > > -}; > > \ No newline at end of file > > +}; > > + > > +&{/soc} { > > + u-boot,dm-pre-reloc; > > +}; > > + > > +&aips2 { > > + u-boot,dm-pre-reloc; > > +}; > > + > > +&iomuxc { > > + u-boot,dm-pre-reloc; > > +}; > > + > > +&lcdif { > > + display = <&display0>; > > + u-boot,dm-pre-reloc; > > + > > + display0: display@0 { > > + bits-per-pixel = <16>; > > + bus-width = <24>; > > + > > + display-timings { > > + native-mode = <&timing0>; > > + > > + timing0: timing0 { > > + clock-frequency = <9200000>; > > + hactive = <480>; > > + vactive = <272>; > > + hfront-porch = <8>; > > + hback-porch = <4>; > > + hsync-len = <41>; > > + vback-porch = <2>; > > + vfront-porch = <4>; > > + vsync-len = <10>; > > + hsync-active = <0>; > > + vsync-active = <0>; > > + de-active = <1>; > > + pixelclk-active = <0>; > > + }; > > + }; > > + }; > > +}; > > diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > > b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > > index af5af4d50a..126a805163 100644 > > --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > > +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > > @@ -27,6 +27,10 @@ > > #include "../common/pfuze.h" > > #include <usb.h> > > #include <usb/ehci-ci.h> > > +#ifdef CONFIG_DM_VIDEO > > +#include <bmp_logo_data.h> > > +#include <video.h> > > +#endif > > > > DECLARE_GLOBAL_DATA_PTR; > > > > @@ -420,40 +424,8 @@ int board_phy_config(struct phy_device *phydev) > > } #endif > > > > -#ifdef CONFIG_VIDEO_MXS > > +#ifdef CONFIG_DM_VIDEO > > static iomux_v3_cfg_t const lcd_pads[] = { > > - MX6_PAD_LCD_CLK__LCDIF_CLK | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_ENABLE__LCDIF_ENABLE | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_HSYNC__LCDIF_HSYNC | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_VSYNC__LCDIF_VSYNC | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA00__LCDIF_DATA00 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA01__LCDIF_DATA01 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA02__LCDIF_DATA02 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA03__LCDIF_DATA03 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA04__LCDIF_DATA04 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA05__LCDIF_DATA05 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA06__LCDIF_DATA06 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA07__LCDIF_DATA07 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA08__LCDIF_DATA08 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA09__LCDIF_DATA09 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA10__LCDIF_DATA10 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA11__LCDIF_DATA11 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA12__LCDIF_DATA12 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA13__LCDIF_DATA13 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA14__LCDIF_DATA14 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA15__LCDIF_DATA15 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA16__LCDIF_DATA16 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA17__LCDIF_DATA17 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA18__LCDIF_DATA18 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA19__LCDIF_DATA19 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA20__LCDIF_DATA20 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA21__LCDIF_DATA21 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA22__LCDIF_DATA22 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - MX6_PAD_LCD_DATA23__LCDIF_DATA23 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > > - > > - /* LCD_RST */ > > - MX6_PAD_SNVS_TAMPER9__GPIO5_IO09 | > MUX_PAD_CTRL(NO_PAD_CTRL), > > - > > /* Use GPIO for Brightness adjustment, duty cycle = period. */ > > MX6_PAD_GPIO1_IO08__GPIO1_IO08 | > MUX_PAD_CTRL(NO_PAD_CTRL), > > }; @@ -504,10 +476,6 @@ int board_init(void) > > board_qspi_init(); > > #endif > > > > -#ifdef CONFIG_VIDEO_MXS > > - setup_lcd(); > > -#endif > > - > > return 0; > > } > > > > @@ -536,6 +504,21 @@ int board_late_init(void) > > env_set("board_rev", "14X14"); #endif > > > > +#if defined(CONFIG_DM_VIDEO) > > + struct udevice *dev; > > + int ret; > > + > > + ret = uclass_get_device(UCLASS_VIDEO, 0, &dev); > > + if (ret) > > + return ret; > > + > > + setup_lcd(); > > + > > + ret = video_bmp_display(dev, (ulong)bmp_logo_bitmap, 0, 0, true); > > + if (ret) > > + return ret; > > +#endif > > + > What about this approach [1] for showing boot logo? Now it also works for > DM_VIDEO=y setups. It needs a bmp file in filesystem, however the current patch use bmp built in U-Boot image. Thanks, Peng. > > > return 0; > > } > > > > diff --git a/configs/mx6ul_14x14_evk_defconfig > > b/configs/mx6ul_14x14_evk_defconfig > > index 1d777b5fb2..10fb07dd2c 100644 > > --- a/configs/mx6ul_14x14_evk_defconfig > > +++ b/configs/mx6ul_14x14_evk_defconfig > > @@ -67,4 +67,4 @@ CONFIG_FSL_QSPI=y > > CONFIG_USB=y > > CONFIG_DM_USB=y > > CONFIG_USB_STORAGE=y > > -CONFIG_VIDEO=y > > +CONFIG_DM_VIDEO=y > > diff --git a/include/configs/mx6ul_14x14_evk.h > > b/include/configs/mx6ul_14x14_evk.h > > index 42e511591c..f8a5fd30f3 100644 > > --- a/include/configs/mx6ul_14x14_evk.h > > +++ b/include/configs/mx6ul_14x14_evk.h > > @@ -196,7 +196,7 @@ > > #define CONFIG_IMX_THERMAL > > > > #ifndef CONFIG_SPL_BUILD > > -#ifdef CONFIG_VIDEO > > +#if defined(CONFIG_DM_VIDEO) > > #define CONFIG_VIDEO_MXS > > #define CONFIG_VIDEO_LOGO > > #define CONFIG_SPLASH_SCREEN > > -- > > 2.16.4 > > > > _______________________________________________ > > U-Boot mailing list > > U-Boot@lists.denx.de > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist > > > s.denx.de%2Flistinfo%2Fu-boot&data=02%7C01%7Cpeng.fan%40nxp.co > m%7C > > > e7e18c4c27e24cf1a12508d71741b2bf%7C686ea1d3bc2b4c6fa92cd99c5c301 > 635%7C > > > 0%7C0%7C637003443252765100&sdata=MSb7v7%2BB8yes3A3OLBhl3 > Kw5hyHX%2B > > 9aHBZQC43ZK93E%3D&reserved=0 > > [1] > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch > work.ozlabs.org%2Fpatch%2F1106985%2F&data=02%7C01%7Cpeng.fan > %40nxp.com%7Ce7e18c4c27e24cf1a12508d71741b2bf%7C686ea1d3bc2b4c > 6fa92cd99c5c301635%7C0%7C0%7C637003443252765100&sdata=bbR > e%2BdOa3pj1y1EzjnqwCJvsgcNwMJQ4zz%2BZMOoI%2Brk%3D&reserve > d=0 > > -- > Best regards - Freundliche GrĂ¼sse - Meilleures salutations > > Igor Opaniuk > > mailto: igor.opaniuk@gmail.com > skype: igor.opanyuk > +380 (93) 836 40 67 > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fua.linke > din.com%2Fin%2Fiopaniuk&data=02%7C01%7Cpeng.fan%40nxp.com%7 > Ce7e18c4c27e24cf1a12508d71741b2bf%7C686ea1d3bc2b4c6fa92cd99c5c3 > 01635%7C0%7C0%7C637003443252765100&sdata=k1nlPVknC5zyKy8io > OsbiE4J1WJGJoVxlDlGWEHdVEM%3D&reserved=0
Hi Anatolij, > Subject: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > To support DM_VIDEO, > Add display node for lcdif > Drop board iomuxc settings. > Enable DM_VIDEO Would you please help review this patch? Thanks, Peng. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > > V1: > This patch could be applied directly, but it needs > https://patchwork.ozlabs.org/patch/1133224/ patchset work let DM VIDEO > work. > > arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi | 49 > ++++++++++++++++++- > board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 57 > ++++++++--------------- > configs/mx6ul_14x14_evk_defconfig | 2 +- > include/configs/mx6ul_14x14_evk.h | 2 +- > 4 files changed, 70 insertions(+), 40 deletions(-) > > diff --git a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > index 77cb461a21..e9efdb9831 100644 > --- a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > +++ b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi > @@ -3,8 +3,55 @@ > * Copyright 2018 NXP > */ > > +&{/aliases} { > + u-boot,dm-pre-reloc; > + display0 = &lcdif; > +}; > + > &qspi { > flash0: n25q256a@0 { > compatible = "jedec,spi-nor"; > }; > -}; > \ No newline at end of file > +}; > + > +&{/soc} { > + u-boot,dm-pre-reloc; > +}; > + > +&aips2 { > + u-boot,dm-pre-reloc; > +}; > + > +&iomuxc { > + u-boot,dm-pre-reloc; > +}; > + > +&lcdif { > + display = <&display0>; > + u-boot,dm-pre-reloc; > + > + display0: display@0 { > + bits-per-pixel = <16>; > + bus-width = <24>; > + > + display-timings { > + native-mode = <&timing0>; > + > + timing0: timing0 { > + clock-frequency = <9200000>; > + hactive = <480>; > + vactive = <272>; > + hfront-porch = <8>; > + hback-porch = <4>; > + hsync-len = <41>; > + vback-porch = <2>; > + vfront-porch = <4>; > + vsync-len = <10>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <0>; > + }; > + }; > + }; > +}; > diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > index af5af4d50a..126a805163 100644 > --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c > @@ -27,6 +27,10 @@ > #include "../common/pfuze.h" > #include <usb.h> > #include <usb/ehci-ci.h> > +#ifdef CONFIG_DM_VIDEO > +#include <bmp_logo_data.h> > +#include <video.h> > +#endif > > DECLARE_GLOBAL_DATA_PTR; > > @@ -420,40 +424,8 @@ int board_phy_config(struct phy_device *phydev) } > #endif > > -#ifdef CONFIG_VIDEO_MXS > +#ifdef CONFIG_DM_VIDEO > static iomux_v3_cfg_t const lcd_pads[] = { > - MX6_PAD_LCD_CLK__LCDIF_CLK | MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_ENABLE__LCDIF_ENABLE | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_HSYNC__LCDIF_HSYNC | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_VSYNC__LCDIF_VSYNC | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA00__LCDIF_DATA00 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA01__LCDIF_DATA01 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA02__LCDIF_DATA02 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA03__LCDIF_DATA03 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA04__LCDIF_DATA04 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA05__LCDIF_DATA05 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA06__LCDIF_DATA06 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA07__LCDIF_DATA07 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA08__LCDIF_DATA08 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA09__LCDIF_DATA09 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA10__LCDIF_DATA10 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA11__LCDIF_DATA11 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA12__LCDIF_DATA12 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA13__LCDIF_DATA13 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA14__LCDIF_DATA14 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA15__LCDIF_DATA15 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA16__LCDIF_DATA16 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA17__LCDIF_DATA17 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA18__LCDIF_DATA18 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA19__LCDIF_DATA19 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA20__LCDIF_DATA20 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA21__LCDIF_DATA21 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA22__LCDIF_DATA22 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - MX6_PAD_LCD_DATA23__LCDIF_DATA23 | > MUX_PAD_CTRL(LCD_PAD_CTRL), > - > - /* LCD_RST */ > - MX6_PAD_SNVS_TAMPER9__GPIO5_IO09 | > MUX_PAD_CTRL(NO_PAD_CTRL), > - > /* Use GPIO for Brightness adjustment, duty cycle = period. */ > MX6_PAD_GPIO1_IO08__GPIO1_IO08 | > MUX_PAD_CTRL(NO_PAD_CTRL), }; @@ -504,10 +476,6 @@ int > board_init(void) > board_qspi_init(); > #endif > > -#ifdef CONFIG_VIDEO_MXS > - setup_lcd(); > -#endif > - > return 0; > } > > @@ -536,6 +504,21 @@ int board_late_init(void) > env_set("board_rev", "14X14"); > #endif > > +#if defined(CONFIG_DM_VIDEO) > + struct udevice *dev; > + int ret; > + > + ret = uclass_get_device(UCLASS_VIDEO, 0, &dev); > + if (ret) > + return ret; > + > + setup_lcd(); > + > + ret = video_bmp_display(dev, (ulong)bmp_logo_bitmap, 0, 0, true); > + if (ret) > + return ret; > +#endif > + > return 0; > } > > diff --git a/configs/mx6ul_14x14_evk_defconfig > b/configs/mx6ul_14x14_evk_defconfig > index 1d777b5fb2..10fb07dd2c 100644 > --- a/configs/mx6ul_14x14_evk_defconfig > +++ b/configs/mx6ul_14x14_evk_defconfig > @@ -67,4 +67,4 @@ CONFIG_FSL_QSPI=y > CONFIG_USB=y > CONFIG_DM_USB=y > CONFIG_USB_STORAGE=y > -CONFIG_VIDEO=y > +CONFIG_DM_VIDEO=y > diff --git a/include/configs/mx6ul_14x14_evk.h > b/include/configs/mx6ul_14x14_evk.h > index 42e511591c..f8a5fd30f3 100644 > --- a/include/configs/mx6ul_14x14_evk.h > +++ b/include/configs/mx6ul_14x14_evk.h > @@ -196,7 +196,7 @@ > #define CONFIG_IMX_THERMAL > > #ifndef CONFIG_SPL_BUILD > -#ifdef CONFIG_VIDEO > +#if defined(CONFIG_DM_VIDEO) > #define CONFIG_VIDEO_MXS > #define CONFIG_VIDEO_LOGO > #define CONFIG_SPLASH_SCREEN > -- > 2.16.4
On Thu, 1 Aug 2019 06:02:49 +0000 Peng Fan peng.fan@nxp.com wrote: ... > arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi | 49 ++++++++++++++++++- > board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 57 ++++++++--------------- > configs/mx6ul_14x14_evk_defconfig | 2 +- > include/configs/mx6ul_14x14_evk.h | 2 +- > 4 files changed, 70 insertions(+), 40 deletions(-) Reviewed-by: Anatolij Gustschin <agust@denx.de>
On Fri, 2 Aug 2019 06:35:26 +0000 Peng Fan peng.fan@nxp.com wrote: > > Shouldn't U-Boot be able to handle the same dt-bindings as in the kernel? > > I added this node in x-u-boot.dtsi, not in common dts. If drop this display-timings, > we need add a similar structure inside code just as kernel did. > And need to restructure mxsfb driver. > > For simple, we could leave this in u-boot.dtsi. > > Anatolij, what's your suggestion? We do not have a panel driver with timing database in U-Boot. For now I'd accept if you add timing info in U-Boot specific dts. -- Anatolij
Hi Peng, On Mon, 5 Aug 2019 09:28:01 +0000 Peng Fan peng.fan@nxp.com wrote: ... > > To support DM_VIDEO, > > Add display node for lcdif > > Drop board iomuxc settings. > > Enable DM_VIDEO > > Would you please help review this patch? Done. This should be applied with other i.mx6ul patches via u-boot-imx tree. Thanks! -- Anatolij
Hi Anatolij, > Subject: Re: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > Hi Peng, > > On Mon, 5 Aug 2019 09:28:01 +0000 > Peng Fan peng.fan@nxp.com wrote: > ... > > > To support DM_VIDEO, > > > Add display node for lcdif > > > Drop board iomuxc settings. > > > Enable DM_VIDEO > > > > Would you please help review this patch? > > Done. This should be applied with other i.mx6ul patches via u-boot-imx tree. > Thanks! Thanks. Get you R-b tag means you agree the display-timings approach from DM VIDEO point. Thanks, Peng. > > -- > Anatolij
> Subject: [PATCH 2/2] imx: mx6ul_14x14_evk: convert to DM_VIDEO > > To support DM_VIDEO, > Add display node for lcdif > Drop board iomuxc settings. > Enable DM_VIDEO > > Signed-off-by: Peng Fan <peng.fan@nxp.com> Applied to nxp-imx-8-13, https://github.com/MrVan/u-boot/tree/nxp-imx-8-13 Regards, Peng.
diff --git a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi index 77cb461a21..e9efdb9831 100644 --- a/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi +++ b/arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi @@ -3,8 +3,55 @@ * Copyright 2018 NXP */ +&{/aliases} { + u-boot,dm-pre-reloc; + display0 = &lcdif; +}; + &qspi { flash0: n25q256a@0 { compatible = "jedec,spi-nor"; }; -}; \ No newline at end of file +}; + +&{/soc} { + u-boot,dm-pre-reloc; +}; + +&aips2 { + u-boot,dm-pre-reloc; +}; + +&iomuxc { + u-boot,dm-pre-reloc; +}; + +&lcdif { + display = <&display0>; + u-boot,dm-pre-reloc; + + display0: display@0 { + bits-per-pixel = <16>; + bus-width = <24>; + + display-timings { + native-mode = <&timing0>; + + timing0: timing0 { + clock-frequency = <9200000>; + hactive = <480>; + vactive = <272>; + hfront-porch = <8>; + hback-porch = <4>; + hsync-len = <41>; + vback-porch = <2>; + vfront-porch = <4>; + vsync-len = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <0>; + }; + }; + }; +}; diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c index af5af4d50a..126a805163 100644 --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c @@ -27,6 +27,10 @@ #include "../common/pfuze.h" #include <usb.h> #include <usb/ehci-ci.h> +#ifdef CONFIG_DM_VIDEO +#include <bmp_logo_data.h> +#include <video.h> +#endif DECLARE_GLOBAL_DATA_PTR; @@ -420,40 +424,8 @@ int board_phy_config(struct phy_device *phydev) } #endif -#ifdef CONFIG_VIDEO_MXS +#ifdef CONFIG_DM_VIDEO static iomux_v3_cfg_t const lcd_pads[] = { - MX6_PAD_LCD_CLK__LCDIF_CLK | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_ENABLE__LCDIF_ENABLE | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_HSYNC__LCDIF_HSYNC | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_VSYNC__LCDIF_VSYNC | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA00__LCDIF_DATA00 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA01__LCDIF_DATA01 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA02__LCDIF_DATA02 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA03__LCDIF_DATA03 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA04__LCDIF_DATA04 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA05__LCDIF_DATA05 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA06__LCDIF_DATA06 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA07__LCDIF_DATA07 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA08__LCDIF_DATA08 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA09__LCDIF_DATA09 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA10__LCDIF_DATA10 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA11__LCDIF_DATA11 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA12__LCDIF_DATA12 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA13__LCDIF_DATA13 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA14__LCDIF_DATA14 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA15__LCDIF_DATA15 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA16__LCDIF_DATA16 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA17__LCDIF_DATA17 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA18__LCDIF_DATA18 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA19__LCDIF_DATA19 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA20__LCDIF_DATA20 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA21__LCDIF_DATA21 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA22__LCDIF_DATA22 | MUX_PAD_CTRL(LCD_PAD_CTRL), - MX6_PAD_LCD_DATA23__LCDIF_DATA23 | MUX_PAD_CTRL(LCD_PAD_CTRL), - - /* LCD_RST */ - MX6_PAD_SNVS_TAMPER9__GPIO5_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL), - /* Use GPIO for Brightness adjustment, duty cycle = period. */ MX6_PAD_GPIO1_IO08__GPIO1_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL), }; @@ -504,10 +476,6 @@ int board_init(void) board_qspi_init(); #endif -#ifdef CONFIG_VIDEO_MXS - setup_lcd(); -#endif - return 0; } @@ -536,6 +504,21 @@ int board_late_init(void) env_set("board_rev", "14X14"); #endif +#if defined(CONFIG_DM_VIDEO) + struct udevice *dev; + int ret; + + ret = uclass_get_device(UCLASS_VIDEO, 0, &dev); + if (ret) + return ret; + + setup_lcd(); + + ret = video_bmp_display(dev, (ulong)bmp_logo_bitmap, 0, 0, true); + if (ret) + return ret; +#endif + return 0; } diff --git a/configs/mx6ul_14x14_evk_defconfig b/configs/mx6ul_14x14_evk_defconfig index 1d777b5fb2..10fb07dd2c 100644 --- a/configs/mx6ul_14x14_evk_defconfig +++ b/configs/mx6ul_14x14_evk_defconfig @@ -67,4 +67,4 @@ CONFIG_FSL_QSPI=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_STORAGE=y -CONFIG_VIDEO=y +CONFIG_DM_VIDEO=y diff --git a/include/configs/mx6ul_14x14_evk.h b/include/configs/mx6ul_14x14_evk.h index 42e511591c..f8a5fd30f3 100644 --- a/include/configs/mx6ul_14x14_evk.h +++ b/include/configs/mx6ul_14x14_evk.h @@ -196,7 +196,7 @@ #define CONFIG_IMX_THERMAL #ifndef CONFIG_SPL_BUILD -#ifdef CONFIG_VIDEO +#if defined(CONFIG_DM_VIDEO) #define CONFIG_VIDEO_MXS #define CONFIG_VIDEO_LOGO #define CONFIG_SPLASH_SCREEN
To support DM_VIDEO, Add display node for lcdif Drop board iomuxc settings. Enable DM_VIDEO Signed-off-by: Peng Fan <peng.fan@nxp.com> --- V1: This patch could be applied directly, but it needs https://patchwork.ozlabs.org/patch/1133224/ patchset work let DM VIDEO work. arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi | 49 ++++++++++++++++++- board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 57 ++++++++--------------- configs/mx6ul_14x14_evk_defconfig | 2 +- include/configs/mx6ul_14x14_evk.h | 2 +- 4 files changed, 70 insertions(+), 40 deletions(-)