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

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

?? commproc[1].c

?? 一個非常有用的SPI驅動程序,是在LINUX平臺下的,但也可以一直到其他平臺
?? C
字號:
/* * General Purpose functions for the global management of the * 8260 Communication Processor Module. * Copyright (c) 1999 Dan Malek (dmalek@jlc.net) * Copyright (c) 2000 MontaVista Software, Inc (source@mvista.com) *	2.3.99 Updates * * In addition to the individual control of the communication * channels, there are a few functions that globally affect the * communication processor. * * Buffer descriptors must be allocated from the dual ported memory * space.  The allocator for that is here.  When the communication * process is reset, we reclaim the memory available.  There is * currently no deallocator for this memory. */#include <linux/errno.h>#include <linux/sched.h>#include <linux/kernel.h>#include <linux/param.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/interrupt.h>#include <linux/bootmem.h>#include <asm/irq.h>#include <asm/mpc8260.h>#include <asm/page.h>#include <asm/pgtable.h>#include <asm/immap_8260.h>#include <asm/cpm_8260.h>static	uint	dp_alloc_base;	/* Starting offset in DP ram */static	uint	dp_alloc_top;	/* Max offset + 1 */static	uint	host_buffer;	/* One page of host buffer */static	uint	host_end;	/* end + 1 */cpm8260_t	*cpmp;		/* Pointer to comm processor space *//* We allocate this here because it is used almost exclusively for * the communication processor devices. */immap_t		*immr;voidm8260_cpm_reset(void){	volatile immap_t	 *imp;	volatile cpm8260_t	*commproc;	uint			vpgaddr;	immr = imp = (volatile immap_t *)IMAP_ADDR;	commproc = &imp->im_cpm;	/* Reclaim the DP memory for our use.	*/	dp_alloc_base = CPM_DATAONLY_BASE;	dp_alloc_top = dp_alloc_base + CPM_DATAONLY_SIZE;	/* Set the host page for allocation.	*/	host_buffer =		(uint) alloc_bootmem_pages(PAGE_SIZE * NUM_CPM_HOST_PAGES);	host_end = host_buffer + (PAGE_SIZE * NUM_CPM_HOST_PAGES);	vpgaddr = host_buffer;	/* Tell everyone where the comm processor resides.	*/	cpmp = (cpm8260_t *)commproc;}/* Allocate some memory from the dual ported ram. * To help protocols with object alignment restrictions, we do that * if they ask. */uintm8260_cpm_dpalloc(uint size, uint align){	uint	retloc;	uint	align_mask, off;	uint	savebase;	align_mask = align - 1;	savebase = dp_alloc_base;	if ((off = (dp_alloc_base & align_mask)) != 0)		dp_alloc_base += (align - off);	if ((dp_alloc_base + size) >= dp_alloc_top) {		dp_alloc_base = savebase;		return(CPM_DP_NOSPACE);	}	retloc = dp_alloc_base;	dp_alloc_base += size;	return(retloc);}/* We also own one page of host buffer space for the allocation of * UART "fifos" and the like. */uintm8260_cpm_hostalloc(uint size, uint align){	uint	retloc;	uint	align_mask, off;	uint	savebase;	align_mask = align - 1;	savebase = host_buffer;	if ((off = (host_buffer & align_mask)) != 0)		host_buffer += (align - off);	if ((host_buffer + size) >= host_end) {		host_buffer = savebase;		return(0);	}	retloc = host_buffer;	host_buffer += size;	return(retloc);}/* Set a baud rate generator.  This needs lots of work.  There are * eight BRGs, which can be connected to the CPM channels or output * as clocks.  The BRGs are in two different block of internal * memory mapped space. * The baud rate clock is the system clock divided by something. * It was set up long ago during the initial boot phase and is * is given to us. * Baud rate clocks are zero-based in the driver code (as that maps * to port numbers).  Documentation uses 1-based numbering. */#define BRG_INT_CLK	(((bd_t *)__res)->bi_brgfreq)#define BRG_UART_CLK	(BRG_INT_CLK/16)/* This function is used by UARTS, or anything else that uses a 16x * oversampled clock. */voidm8260_cpm_setbrg(uint brg, uint rate){	volatile uint	*bp;	/* This is good enough to get SMCs running.....	*/	if (brg < 4) {		bp = (uint *)&immr->im_brgc1;	}	else {		bp = (uint *)&immr->im_brgc5;		brg -= 4;	}	bp += brg;	*bp = ((BRG_UART_CLK / rate) << 1) | CPM_BRG_EN;}/* This function is used to set high speed synchronous baud rate * clocks. */voidm8260_cpm_fastbrg(uint brg, uint rate, int div16){	volatile uint	*bp;	if (brg < 4) {		bp = (uint *)&immr->im_brgc1;	}	else {		bp = (uint *)&immr->im_brgc5;		brg -= 4;	}	bp += brg;	*bp = ((BRG_INT_CLK / rate) << 1) | CPM_BRG_EN;	if (div16)		*bp |= CPM_BRG_DIV16;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美图区在线视频| 精品亚洲porn| 韩国在线一区二区| 午夜精品久久久久久久99樱桃| 久久久av毛片精品| 亚洲精品一区二区精华| 2022国产精品视频| 中文字幕av在线一区二区三区| 久久久久国产一区二区三区四区| 久久综合资源网| 国产偷国产偷精品高清尤物| 国产精品素人一区二区| 国产精品国产成人国产三级| 亚洲欧美影音先锋| 亚洲狠狠爱一区二区三区| 日本一区中文字幕| 国产精品一区二区三区四区| 9i在线看片成人免费| 欧美影院一区二区| 日韩女优电影在线观看| 国产日韩精品视频一区| 亚洲精品菠萝久久久久久久| 亚洲成人一区在线| 国产一区二区剧情av在线| 高清不卡在线观看| 欧美在线不卡视频| 精品人在线二区三区| 中文字幕av资源一区| 亚洲成av人片观看| 国产成人精品免费网站| 在线亚洲高清视频| 久久日韩粉嫩一区二区三区| 亚洲免费视频成人| 理论电影国产精品| 在线视频一区二区三区| 精品美女一区二区三区| 亚洲精品免费在线| 韩国视频一区二区| 欧美在线综合视频| 欧美激情一区在线观看| 日韩高清在线不卡| 99国产精品久久久久久久久久久| 欧美精品电影在线播放| 国产精品久久毛片a| 免费观看91视频大全| 色婷婷综合在线| 久久久久久久久97黄色工厂| 三级在线观看一区二区| av中文字幕不卡| 精品国内二区三区| 丝袜美腿亚洲色图| 91久久精品一区二区三| 国产欧美一区二区三区在线老狼 | 日韩国产高清在线| 99精品一区二区| 精品国产乱码久久久久久闺蜜| 亚洲综合在线免费观看| 成人丝袜视频网| 26uuu国产电影一区二区| 日本在线不卡视频一二三区| 欧美亚洲国产怡红院影院| 国产精品久久久久久久久晋中 | 午夜亚洲国产au精品一区二区| 国产在线观看一区二区| 欧美日韩国产首页在线观看| 中文字幕av一区二区三区高| 国产精品99久久久久久宅男| 欧美tickle裸体挠脚心vk| 蜜臀av性久久久久蜜臀aⅴ四虎| 日本久久电影网| 国产精品成人免费在线| 高清不卡在线观看| 中文字幕不卡一区| a美女胸又www黄视频久久| 中文在线资源观看网站视频免费不卡 | 日韩你懂的在线观看| 偷窥国产亚洲免费视频| 欧美三级乱人伦电影| 亚洲一区二区三区四区在线| 国产呦精品一区二区三区网站| 欧美日韩成人在线一区| 亚洲一区二区三区中文字幕| 欧美专区日韩专区| 亚洲第一主播视频| 91精品国产福利在线观看| 美日韩一级片在线观看| 精品国产乱码久久久久久1区2区| 精品一区二区三区免费| 国产欧美一区二区精品性色超碰| 国产精品一线二线三线| 欧美韩日一区二区三区| av动漫一区二区| 午夜精品在线视频一区| 制服.丝袜.亚洲.另类.中文 | 91福利小视频| 午夜国产不卡在线观看视频| 成人av网站在线| ...av二区三区久久精品| 欧美视频在线观看一区| 日韩高清一级片| 国产亚洲欧美色| 色一情一乱一乱一91av| 日本亚洲天堂网| 国产欧美精品一区二区色综合朱莉| www.av亚洲| 免费高清在线一区| 亚洲国产激情av| 欧美天堂一区二区三区| 激情小说亚洲一区| 一区二区三区四区在线| 日韩一区二区三免费高清| 成人av电影在线网| 日本亚洲三级在线| 国产精品美女久久久久久久网站| 欧美日韩mp4| 波多野结衣中文字幕一区| 日本欧美一区二区在线观看| 国产精品久久久久久久久免费丝袜| 欧美裸体bbwbbwbbw| 欧美成人精品高清在线播放| 欧美不卡一区二区| 波多野结衣中文字幕一区二区三区| 亚洲五月六月丁香激情| 国产嫩草影院久久久久| 欧美日韩一区二区三区在线 | 粉嫩av一区二区三区在线播放| 一区二区三区国产豹纹内裤在线| 久久你懂得1024| 91精品国产91久久综合桃花 | 亚洲成人精品在线观看| 中文字幕精品三区| 久久久久久久免费视频了| 欧美日韩一区二区三区四区五区 | 欧美日韩和欧美的一区二区| 成人福利电影精品一区二区在线观看 | 国产日韩欧美精品在线| 4438成人网| 欧美日韩国产片| 91黄色免费看| 色综合久久综合网97色综合| 国产91精品一区二区麻豆网站| 另类的小说在线视频另类成人小视频在线| 亚洲免费色视频| 亚洲欧美一区二区不卡| 中国av一区二区三区| 久久久不卡影院| 久久亚洲欧美国产精品乐播| 欧美一级一区二区| 欧美电影影音先锋| 日韩亚洲欧美一区| 日韩精品一区二区三区视频播放 | 亚洲欧美激情插| 亚洲天堂久久久久久久| 亚洲欧洲www| 成人欧美一区二区三区小说| 国产精品美女久久久久av爽李琼| 久久久91精品国产一区二区精品 | 欧美一区二区视频免费观看| 欧美日本在线一区| 欧美二区乱c少妇| 日韩一区二区在线看片| 欧美成va人片在线观看| wwwwww.欧美系列| 日本一区二区三区四区| 国产精品久久久久久久久免费樱桃 | 精品日韩欧美一区二区| 欧美精品一区二区三区久久久| 欧美不卡一区二区三区| 国产欧美精品在线观看| 亚洲欧美日韩中文播放| 一区av在线播放| 蜜臀av亚洲一区中文字幕| 老司机免费视频一区二区| 国产精品一二三区| 日本高清不卡视频| 成人av网址在线| 一本大道久久a久久综合| 欧美艳星brazzers| 精品久久久网站| 成人欧美一区二区三区小说 | 亚洲小说欧美激情另类| 天堂午夜影视日韩欧美一区二区| 麻豆国产一区二区| 成人app软件下载大全免费| 91黄色免费网站| 精品黑人一区二区三区久久 | 一本大道久久a久久精品综合| 欧美熟乱第一页| 久久新电视剧免费观看| 亚洲人妖av一区二区| 奇米888四色在线精品| 成人小视频免费观看| 欧美人伦禁忌dvd放荡欲情| 国产亚洲人成网站| 亚洲一级二级在线| 日本成人在线电影网| 99国产精品视频免费观看| 日韩精品一区二区在线观看| 亚洲欧美日韩国产中文在线| 久久99精品一区二区三区 |