亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? toto.c

?? 根據fs2410移植過后的mtd驅動源碼
?? C
字號:
/* *  drivers/mtd/nand/toto.c * *  Copyright (c) 2003 Texas Instruments * *  Derived from drivers/mtd/autcpu12.c * *  Copyright (c) 2002 Thomas Gleixner <tgxl@linutronix.de> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * *  Overview: *   This is a device driver for the NAND flash device found on the *   TI fido board. It supports 32MiB and 64MiB cards * * $Id: toto.c,v 1.5 2005/11/07 11:14:31 gleixner Exp $ */#include <linux/slab.h>#include <linux/init.h>#include <linux/module.h>#include <linux/delay.h>#include <linux/mtd/mtd.h>#include <linux/mtd/nand.h>#include <linux/mtd/partitions.h>#include <asm/io.h>#include <asm/arch/hardware.h>#include <asm/sizes.h>#include <asm/arch/toto.h>#include <asm/arch-omap1510/hardware.h>#include <asm/arch/gpio.h>/* * MTD structure for TOTO board */static struct mtd_info *toto_mtd = NULL;static unsigned long toto_io_base = OMAP_FLASH_1_BASE;#define CONFIG_NAND_WORKAROUND 1#define NAND_NCE 0x4000#define NAND_CLE 0x1000#define NAND_ALE 0x0002#define NAND_MASK (NAND_CLE | NAND_ALE | NAND_NCE)#define T_NAND_CTL_CLRALE(iob)  gpiosetout(NAND_ALE, 0)#define T_NAND_CTL_SETALE(iob)  gpiosetout(NAND_ALE, NAND_ALE)#ifdef CONFIG_NAND_WORKAROUND     /* "some" dev boards busted, blue wired to rts2 :( */#define T_NAND_CTL_CLRCLE(iob)  gpiosetout(NAND_CLE, 0); rts2setout(2, 2)#define T_NAND_CTL_SETCLE(iob)  gpiosetout(NAND_CLE, NAND_CLE); rts2setout(2, 0)#else#define T_NAND_CTL_CLRCLE(iob)  gpiosetout(NAND_CLE, 0)#define T_NAND_CTL_SETCLE(iob)  gpiosetout(NAND_CLE, NAND_CLE)#endif#define T_NAND_CTL_SETNCE(iob)  gpiosetout(NAND_NCE, 0)#define T_NAND_CTL_CLRNCE(iob)  gpiosetout(NAND_NCE, NAND_NCE)/* * Define partitions for flash devices */static struct mtd_partition partition_info64M[] = {	{ .name =	"toto kernel partition 1",	  .offset =	0,	  .size	=	2 * SZ_1M },	{ .name =	"toto file sys partition 2",	  .offset =	2 * SZ_1M,	  .size =	14 * SZ_1M },	{ .name =	"toto user partition 3",	  .offset =	16 * SZ_1M,	  .size =	16 * SZ_1M },	{ .name =	"toto devboard extra partition 4",	  .offset =	32 * SZ_1M,	  .size =	32 * SZ_1M },};static struct mtd_partition partition_info32M[] = {	{ .name =	"toto kernel partition 1",	  .offset =	0,	  .size =	2 * SZ_1M },	{ .name =	"toto file sys partition 2",	  .offset =	2 * SZ_1M,	  .size =	14 * SZ_1M },	{ .name =	"toto user partition 3",	  .offset =	16 * SZ_1M,	  .size =	16 * SZ_1M },};#define NUM_PARTITIONS32M 3#define NUM_PARTITIONS64M 4/* *	hardware specific access to control-lines*/static void toto_hwcontrol(struct mtd_info *mtd, int cmd){	udelay(1); /* hopefully enough time for tc make proceding write to clear */	switch(cmd){		case NAND_CTL_SETCLE: T_NAND_CTL_SETCLE(cmd); break;		case NAND_CTL_CLRCLE: T_NAND_CTL_CLRCLE(cmd); break;		case NAND_CTL_SETALE: T_NAND_CTL_SETALE(cmd); break;		case NAND_CTL_CLRALE: T_NAND_CTL_CLRALE(cmd); break;		case NAND_CTL_SETNCE: T_NAND_CTL_SETNCE(cmd); break;		case NAND_CTL_CLRNCE: T_NAND_CTL_CLRNCE(cmd); break;	}	udelay(1); /* allow time to ensure gpio state to over take memory write */}/* * Main initialization routine */int __init toto_init (void){	struct nand_chip *this;	int err = 0;	/* Allocate memory for MTD device structure and private data */	toto_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip),				GFP_KERNEL);	if (!toto_mtd) {		printk (KERN_WARNING "Unable to allocate toto NAND MTD device structure.\n");		err = -ENOMEM;		goto out;	}	/* Get pointer to private data */	this = (struct nand_chip *) (&toto_mtd[1]);	/* Initialize structures */	memset((char *) toto_mtd, 0, sizeof(struct mtd_info));	memset((char *) this, 0, sizeof(struct nand_chip));	/* Link the private data with the MTD structure */	toto_mtd->priv = this;	/* Set address of NAND IO lines */	this->IO_ADDR_R = toto_io_base;	this->IO_ADDR_W = toto_io_base;	this->hwcontrol = toto_hwcontrol;	this->dev_ready = NULL;	/* 25 us command delay time */	this->chip_delay = 30;	this->eccmode = NAND_ECC_SOFT;        /* Scan to find existance of the device */	if (nand_scan (toto_mtd, 1)) {		err = -ENXIO;		goto out_mtd;	}	/* Register the partitions */	switch(toto_mtd->size){		case SZ_64M: add_mtd_partitions(toto_mtd, partition_info64M, NUM_PARTITIONS64M); break;		case SZ_32M: add_mtd_partitions(toto_mtd, partition_info32M, NUM_PARTITIONS32M); break;		default: {			printk (KERN_WARNING "Unsupported Nand device\n");			err = -ENXIO;			goto out_buf;		}	}    	gpioreserve(NAND_MASK);  /* claim our gpios */    	archflashwp(0,0);	 /* open up flash for writing */	goto out;out_buf:	kfree (this->data_buf);out_mtd:	kfree (toto_mtd);out:	return err;}module_init(toto_init);/* * Clean up routine */static void __exit toto_cleanup (void){	/* Release resources, unregister device */	nand_release (toto_mtd);	/* Free the MTD device structure */	kfree (toto_mtd);	/* stop flash writes */	 archflashwp(0,1);	/* release gpios to system */	 gpiorelease(NAND_MASK);}module_exit(toto_cleanup);MODULE_LICENSE("GPL");MODULE_AUTHOR("Richard Woodruff <r-woodruff2@ti.com>");MODULE_DESCRIPTION("Glue layer for NAND flash on toto board");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲av在线精品| 成人99免费视频| 亚洲欧美激情视频在线观看一区二区三区 | 国产丝袜美腿一区二区三区| 这里只有精品电影| 亚洲精品一区二区三区蜜桃下载 | 中文在线免费一区三区高中清不卡| 久久综合九色欧美综合狠狠| 日韩欧美国产精品| 欧美国产欧美综合| 亚洲一区二区成人在线观看| 亚洲午夜激情av| 精品一区二区免费| 国产成人免费av在线| 色综合网站在线| 日韩一区二区不卡| √…a在线天堂一区| 五月激情综合婷婷| 亚洲色图欧美偷拍| 国产91丝袜在线18| 欧美性大战久久久久久久蜜臀 | 国产欧美一区二区精品婷婷| 最新国产成人在线观看| 精品亚洲成av人在线观看| 97久久精品人人做人人爽| 欧美理论在线播放| 亚洲色欲色欲www在线观看| 性欧美疯狂xxxxbbbb| a亚洲天堂av| 日韩精品1区2区3区| 国产精品理论片| 久久成人久久爱| 97久久精品人人做人人爽| 91精品欧美一区二区三区综合在| 精品sm捆绑视频| 秋霞电影网一区二区| 欧美性色黄大片| 国产精品的网站| 韩国视频一区二区| 国产精品一线二线三线| 奇米精品一区二区三区四区| 国产成人av福利| 激情综合色播五月| 日韩和欧美一区二区| 9i在线看片成人免费| 精品国产一区二区三区忘忧草 | 91在线小视频| 亚洲人成人一区二区在线观看| 久久精品99国产精品日本| 91精品国产综合久久香蕉的特点 | av亚洲精华国产精华精华| 在线免费视频一区二区| 国产三级欧美三级日产三级99| 一区二区三区在线观看欧美| 欧美日韩一区小说| 亚洲第四色夜色| 色婷婷av一区二区三区gif| 中文字幕在线播放不卡一区| 91网站最新地址| 石原莉奈在线亚洲二区| 久久亚洲一级片| 91免费观看视频在线| 欧美a级理论片| 久久久91精品国产一区二区精品| 99久久国产综合精品女不卡| 三级欧美韩日大片在线看| 日韩精品一区二区三区视频播放| 久久91精品久久久久久秒播| 综合久久给合久久狠狠狠97色| 日本乱码高清不卡字幕| 国内久久婷婷综合| 亚洲人成人一区二区在线观看 | 最新成人av在线| 久久―日本道色综合久久| 色婷婷精品久久二区二区蜜臂av | 一区二区欧美在线观看| 91精品国产aⅴ一区二区| 成人动漫一区二区在线| 男女激情视频一区| 亚洲成a人片在线不卡一二三区| 亚洲天天做日日做天天谢日日欢| 精品久久久久香蕉网| 欧美一区二区成人6969| 欧美日韩美少妇| 欧美三级日本三级少妇99| 日本大香伊一区二区三区| 色综合久久久久久久久久久| 日韩二区三区在线观看| 亚洲成av人影院| 日韩精品一二三四| 久久国产婷婷国产香蕉| 东方aⅴ免费观看久久av| 国产精品萝li| 久久精品在这里| 56国语精品自产拍在线观看| 欧美精品高清视频| 久久蜜桃av一区二区天堂 | 国产精品成人一区二区三区夜夜夜| 久久综合色婷婷| 91精品国产欧美一区二区| 琪琪久久久久日韩精品| 麻豆91精品91久久久的内涵| 九九精品视频在线看| 粉嫩欧美一区二区三区高清影视| 国产盗摄视频一区二区三区| 色综合天天综合网天天狠天天 | 久久看人人爽人人| 中文字幕中文乱码欧美一区二区| 亚洲欧美色一区| 国产高清一区日本| 91精品国产综合久久精品| 一区精品在线播放| 久久97超碰色| 91成人免费网站| 欧美激情一区在线| 久久97超碰色| 欧美变态tickle挠乳网站| 中文字幕一区在线| 久久精工是国产品牌吗| 在线观看日产精品| 国产精品女主播av| 国产精品小仙女| 日韩精品一区二区三区视频| 亚洲资源在线观看| 91欧美激情一区二区三区成人| 国产女同性恋一区二区| 国产精一品亚洲二区在线视频| 91精品国产全国免费观看| 亚洲va欧美va人人爽| 欧美视频自拍偷拍| 亚洲高清免费观看高清完整版在线观看| 福利一区二区在线观看| 久久美女艺术照精彩视频福利播放| 男男视频亚洲欧美| 精品福利一二区| 岛国精品在线播放| 亚洲三级在线免费| 777欧美精品| 精品一区二区三区在线播放| 久久久国产精品午夜一区ai换脸| 国产一区亚洲一区| 国产精品久久久久久久裸模| 99视频精品在线| 午夜精品在线看| 日本一区二区三区久久久久久久久不| 奇米一区二区三区| 一区二区三区中文在线观看| 91在线观看下载| 亚洲一区二区三区免费视频| 日韩一区二区视频| 成人精品鲁一区一区二区| 亚洲成人免费电影| 国产视频亚洲色图| 日韩一区二区三区高清免费看看| 久久爱另类一区二区小说| 亚洲免费成人av| 精品国产髙清在线看国产毛片| 97久久超碰国产精品| 日韩成人精品在线观看| 亚洲久草在线视频| 国产亚洲一区字幕| 日韩午夜精品电影| 色综合久久天天| 亚洲成人av福利| 亚洲欧美中日韩| 久久久精品影视| 欧美丰满美乳xxx高潮www| 在线观看中文字幕不卡| aaa欧美大片| 99国产精品视频免费观看| 麻豆一区二区三区| 91精品国产综合久久福利软件 | 亚洲另类春色校园小说| 国产偷国产偷亚洲高清人白洁| 日韩一区二区三区三四区视频在线观看| av在线播放一区二区三区| 国产精品中文字幕日韩精品| 亚洲国产中文字幕| 日本亚洲电影天堂| 另类小说一区二区三区| 国产一区二区三区免费观看| 老司机精品视频线观看86| 免费看精品久久片| 国产精品888| 91美女视频网站| 欧美午夜在线观看| 日韩欧美一级片| 1024国产精品| 日韩影视精彩在线| 福利电影一区二区| 日本高清视频一区二区| 欧美日韩午夜在线| 久久午夜电影网| 亚洲午夜久久久久久久久电影院| 秋霞成人午夜伦在线观看| 丰满放荡岳乱妇91ww| 911精品产国品一二三产区| 国产性天天综合网| 日韩福利电影在线| 91亚洲精品一区二区乱码|