diff options
author | Ye Li <ye.li@nxp.com> | 2016-03-02 11:13:51 +0800 |
---|---|---|
committer | guoyin.chen <guoyin.chen@freescale.com> | 2016-03-04 15:35:57 +0800 |
commit | 0980df53fb5ba44e84f7b2d9cb95b806242e144c (patch) | |
tree | 9653c4355ab1d59c53cba120c216a48aa0743fca /drivers/video | |
parent | c90fde3679d3022fb12b3f24ada19240349592eb (diff) | |
download | u-boot-imx-0980df53fb5ba44e84f7b2d9cb95b806242e144c.zip u-boot-imx-0980df53fb5ba44e84f7b2d9cb95b806242e144c.tar.gz u-boot-imx-0980df53fb5ba44e84f7b2d9cb95b806242e144c.tar.bz2 |
MLK-12483-4 mx6: Modify drivers to disable fused modules
Add the fuse checking in drivers, when the module is disabled in fuse,
the driver will not work.
Changed drivers: BEE, GPMI, APBH-DMA, ESDHC, FEC, QSPI, ECSPI, I2C,
USB-EHCI, GIS, LCDIF.
Signed-off-by: Ye Li <ye.li@nxp.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/mxc_gis.c | 14 | ||||
-rw-r--r-- | drivers/video/mxsfb.c | 11 |
2 files changed, 25 insertions, 0 deletions
diff --git a/drivers/video/mxc_gis.c b/drivers/video/mxc_gis.c index 01befb3..3d98cc2 100644 --- a/drivers/video/mxc_gis.c +++ b/drivers/video/mxc_gis.c @@ -301,6 +301,20 @@ void mxc_enable_gis(void) u32 csimemsize, pxpmemsize; char const *gis_input = getenv("gis"); +#ifdef CONFIG_MX6 + if (check_module_fused(MX6_MODULE_CSI)) { + printf("CSI@0x%x is fused, disable it\n", CSI1_BASE_ADDR); + return; + } +#endif + +#ifdef CONFIG_MX6 + if (check_module_fused(MX6_MODULE_PXP)) { + printf("PXP@0x%x is fused, disable it\n", PXP_BASE_ADDR); + return; + } +#endif + gis_regs = (struct mxs_gis_regs *)GIS_BASE_ADDR; pxp_regs = (struct mxs_pxp_regs *)PXP_BASE_ADDR; csi_regs = (struct mxs_csi_regs *)CSI1_BASE_ADDR; diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 44004b1..270a31a 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -170,6 +170,11 @@ void lcdif_power_down() struct mxs_lcdif_regs *regs = (struct mxs_lcdif_regs *)(panel.isaBase); int timeout = WAIT_FOR_VSYNC_TIMEOUT; +#ifdef CONFIG_MX6 + if (check_module_fused(MX6_MODULE_LCDIF)) { + return; + } +#endif writel(panel.frameAdrs, ®s->hw_lcdif_cur_buf); writel(panel.frameAdrs, ®s->hw_lcdif_next_buf); writel(LCDIF_CTRL1_VSYNC_EDGE_IRQ, ®s->hw_lcdif_ctrl1_clr); @@ -216,6 +221,12 @@ void *video_hw_init(void) bpp = depth; } +#ifdef CONFIG_MX6 + if (check_module_fused(MX6_MODULE_LCDIF)) { + printf("LCDIF@0x%x is fused, disable it\n", MXS_LCDIF_BASE); + return NULL; + } +#endif /* fill in Graphic device struct */ sprintf(panel.modeIdent, "%dx%dx%d", mode.xres, mode.yres, bpp); |