131cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley/* 231cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * linux/arch/arm/mach-omap1/board-nand.c 331cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * 431cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * Common OMAP1 board NAND code 531cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * 631cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * Copyright (C) 2004, 2012 Texas Instruments, Inc. 731cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * Copyright (C) 2002 MontaVista Software, Inc. 831cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * Copyright (C) 2001 RidgeRun, Inc. 931cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * Author: RidgeRun, Inc. 1031cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * Greg Lonnon (glonnon@ridgerun.com) or info@ridgerun.com 1131cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * 1231cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * This program is free software; you can redistribute it and/or modify 1331cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * it under the terms of the GNU General Public License version 2 as 1431cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley * published by the Free Software Foundation. 1531cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley */ 1631cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley#include <linux/kernel.h> 1731cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley#include <linux/io.h> 1831cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley#include <linux/mtd/mtd.h> 1931cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley#include <linux/mtd/nand.h> 2031cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley 2131cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley#include "common.h" 2231cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley 2331cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsleyvoid omap1_nand_cmd_ctl(struct mtd_info *mtd, int cmd, unsigned int ctrl) 2431cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley{ 2531cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley struct nand_chip *this = mtd->priv; 2631cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley unsigned long mask; 2731cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley 2831cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley if (cmd == NAND_CMD_NONE) 2931cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley return; 3031cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley 3131cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley mask = (ctrl & NAND_CLE) ? 0x02 : 0; 3231cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley if (ctrl & NAND_ALE) 3331cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley mask |= 0x04; 3431cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley 3531cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley writeb(cmd, this->IO_ADDR_W + mask); 3631cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley} 3731cde0447d779c1b4ae9feb51dc917d6e287de2bPaul Walmsley 38