1561b036aSLadislav Michl /* 2561b036aSLadislav Michl * Flash support for OMAP1 3561b036aSLadislav Michl * 4561b036aSLadislav Michl * This program is free software; you can redistribute it and/or modify 5561b036aSLadislav Michl * it under the terms of the GNU General Public License version 2 as 6561b036aSLadislav Michl * published by the Free Software Foundation. 7561b036aSLadislav Michl */ 8561b036aSLadislav Michl 9561b036aSLadislav Michl #include <linux/mtd/mtd.h> 10561b036aSLadislav Michl #include <linux/mtd/map.h> 11561b036aSLadislav Michl 12561b036aSLadislav Michl #include <plat/io.h> 13561b036aSLadislav Michl #include <plat/tc.h> 14561b036aSLadislav Michl 15561b036aSLadislav Michl void omap1_set_vpp(struct map_info *map, int enable) 16561b036aSLadislav Michl { 17561b036aSLadislav Michl static int count; 18561b036aSLadislav Michl u32 l; 19561b036aSLadislav Michl 20561b036aSLadislav Michl if (enable) { 21561b036aSLadislav Michl if (count++ == 0) { 22561b036aSLadislav Michl l = omap_readl(EMIFS_CONFIG); 23561b036aSLadislav Michl l |= OMAP_EMIFS_CONFIG_WP; 24561b036aSLadislav Michl omap_writel(l, EMIFS_CONFIG); 25561b036aSLadislav Michl } 26561b036aSLadislav Michl } else { 27561b036aSLadislav Michl if (count && (--count == 0)) { 28561b036aSLadislav Michl l = omap_readl(EMIFS_CONFIG); 29561b036aSLadislav Michl l &= ~OMAP_EMIFS_CONFIG_WP; 30561b036aSLadislav Michl omap_writel(l, EMIFS_CONFIG); 31561b036aSLadislav Michl } 32561b036aSLadislav Michl } 33561b036aSLadislav Michl } 34