MLK-13602-2 epdc: Add disable fuse checking
authorYe Li <ye.li@nxp.com>
Tue, 13 Dec 2016 07:32:20 +0000 (15:32 +0800)
committerYe Li <ye.li@nxp.com>
Wed, 5 Apr 2017 06:06:25 +0000 (14:06 +0800)
Add fuse checking for EPDC module. Once the fused is programmed, the
EPDC module is disabled, can't to access it.

Signed-off-by: Ye Li <ye.li@nxp.com>
Tested-by: Bai Ping <ping.bai@nxp.com>
(cherry picked from commit ea7429b70c1eb2cf475028ee8df2ac9ed18b3c82)

drivers/video/mxc_epdc_fb.c

index 421c90e..d569c0e 100644 (file)
@@ -16,6 +16,7 @@
 #include <malloc.h>
 
 #include <mxc_epdc_fb.h>
+#include <asm/arch/sys_proto.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -350,6 +351,12 @@ static void draw_splash_screen(void)
 
 void lcd_enable(void)
 {
+#ifdef CONFIG_MX6
+       if (check_module_fused(MX6_MODULE_EPDC)) {
+               return;
+       }
+#endif
+
        if (board_setup_logo_file(lcd_base)) {
                debug("Load logo failed!\n");
                return;
@@ -367,6 +374,12 @@ void lcd_enable(void)
 
 void lcd_disable(void)
 {
+#ifdef CONFIG_MX6
+       if (check_module_fused(MX6_MODULE_EPDC)) {
+               return;
+       }
+#endif
+
        debug("lcd_disable\n");
 
        /* Disable clocks to EPDC */
@@ -382,6 +395,13 @@ void lcd_ctrl_init(void *lcdbase)
 {
        unsigned int val;
 
+#ifdef CONFIG_MX6
+       if (check_module_fused(MX6_MODULE_EPDC)) {
+               printf("EPDC@0x%x is fused, disable it\n", EPDC_BASE_ADDR);
+               return;
+       }
+#endif
+
        /*
         * We rely on lcdbase being a physical address, i.e., either MMU off,
         * or 1-to-1 mapping. Might want to add some virt2phys here.