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

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

?? ili9325.c

?? ili9325 Frame Buffer 驅動。
?? C
?? 第 1 頁 / 共 2 頁
字號:
	ili9325_pow_on(dev);	ili9325_gamma_adjust(dev);	/* Set GRAM area */	ili932x_write_reg(dev, ILI9325_HOR_ADDR_START, 0x0000); /* Horizontal GRAM Start Address. */	ili932x_write_reg(dev, ILI9325_HOR_ADDR_END, 0x00EF); /* Horizontal GRAM End Address. */	ili932x_write_reg(dev, ILI9325_VET_ADDR_START, 0x0000); /* Vertical GRAM Start Address. */	ili932x_write_reg(dev, ILI9325_VET_ADDR_END, 0x013F); /* Vertical GRAM End Address. */	ili932x_write_reg(dev, ILI9325_DRV_OUTPUT_CTRL_2, 0xA700); /* Gate Scan Line. */	ili932x_write_reg(dev, ILI9325_BASE_IMG_CTRL, 0x0001); /* NDL,VLE, REV. */	ili932x_write_reg(dev, ILI9325_VSCROLL_CTRL, 0x0000); /* set scrolling line. */	ili9325_par_dis_ctrl(dev);	ili9325_pan_ctrl(dev);	ili932x_write_reg(dev, ILI9325_GRAM_HADDR, 0x0000); /* GRAM horizontal Address. */	ili932x_write_reg(dev, ILI9325_GRAM_VADDR, 0x0000); /* GRAM Vertical Address. */	ILI9325_SET_INDEX(dev, ILI9325_GRAM_DATA);	return;}static void ili9320_chip_init(struct ili932x_device *dev){	/* printk("===>%s.\n", __FUNCTION__); */	ili932x_reset();	ili932x_write_reg(dev,0x00E5,0x8000);// Set the Vcore voltage and this setting is must.        	ili932x_write_reg(dev,0x0000,0x0001);// Start internal OSC.                                  	ili932x_write_reg(dev,0x0001,0x0100);// set SS and SM bit                                    	ili932x_write_reg(dev,0x0002,0x0700);// set 1 line inversion                                 	ili932x_write_reg(dev,0x0003,0x9030);// TRI=1, DFM=0, set GRAM write direction and BGR=1.                  	ili932x_write_reg(dev,0x0004,0x0000);// Resize register                                      	ili932x_write_reg(dev,0x0008,0x0202);// set the back porch and front porch                   	ili932x_write_reg(dev,0x0009,0x0000);// set non-display area refresh cycle ISC[3:0]          	ili932x_write_reg(dev,0x000A,0x0000);// FMARK function                                       	ili932x_write_reg(dev,0x000C,0x0000);// RGB interface setting                                	ili932x_write_reg(dev,0x000D,0x0000);// Frame marker Position                                	ili932x_write_reg(dev,0x000F,0x0000);// RGB interface polarity                               	ili932x_write_reg(dev,0x0010,0x0000);// Power On sequence  //SAP, BT[3:0], AP, DSTB, SLP, STB	ili932x_write_reg(dev,0x0011,0x0007);// DC1[2:0], DC0[2:0], VC[2:0]	ili932x_write_reg(dev,0x0012,0x0000);// VREG1OUT voltage	ili932x_write_reg(dev,0x0013,0x0000);// VDV[4:0] for VCOM amplitude	msleep(200);	ili932x_write_reg(dev,0x0010,0x17B0);// SAP, BT[3:0], AP, DSTB, SLP, STB 	ili932x_write_reg(dev,0x0011,0x0007);// R11h=0x0001 at VCI=3.3V DC1[2:0], DC0[2: 	msleep(50); 	ili932x_write_reg(dev,0x0012,0x013E);// R11h=0x0138 at VCI=3.3V VREG1OUT voltage	msleep(50); 	ili932x_write_reg(dev,0x0013,0x1F00);// R11h=0x1800 at VCI=2.8V VDV[4:0] for VCO  	ili932x_write_reg(dev,0x0029,0x0013);// setting VCM for VCOMH  0018-0012          	msleep(50); 	ili932x_write_reg(dev,0x0020,0x0000);// GRAM horizontal Address          	ili932x_write_reg(dev,0x0021,0x0000);// GRAM Vertical Address            	ili932x_write_reg(dev,0x0030,0x0000);// - Adjust the Gamma Curve -//     	ili932x_write_reg(dev,0x0031,0x0404);                                    	ili932x_write_reg(dev,0x0032,0x0404);                                    	ili932x_write_reg(dev,0x0035,0x0004);                              	ili932x_write_reg(dev,0x0036,0x0404);                                    	ili932x_write_reg(dev,0x0037,0x0404);                                    	ili932x_write_reg(dev,0x0038,0x0404);                                    	ili932x_write_reg(dev,0x0039,0x0707);                                    	ili932x_write_reg(dev,0x003C,0x0500);                                    	ili932x_write_reg(dev,0x003D,0x0607);// - Adjust the Gamma Curve -//     	//msleep(15); 	ili932x_write_reg(dev,0x0050,0x0000);// Horizontal GRAM Start Address    	ili932x_write_reg(dev,0x0051,0x00EF);// Horizontal GRAM End Address      	ili932x_write_reg(dev,0x0052,0x0000);// Vertical GRAM Start Address      	ili932x_write_reg(dev,0x0053,0x013F);// Vertical GRAM Start Address      	ili932x_write_reg(dev,0x0060,0x2700);// Gate Scan Line                   	ili932x_write_reg(dev,0x0061,0x0001);// NDL,VLE, REV                     	ili932x_write_reg(dev,0x006A,0x0000);// set scrolling line               	ili932x_write_reg(dev,0x0080,0x0000);//- Partial Display Control -//     	ili932x_write_reg(dev,0x0081,0x0000);	ili932x_write_reg(dev,0x0082,0x0000);	ili932x_write_reg(dev,0x0083,0x0000);	ili932x_write_reg(dev,0x0084,0x0000);	ili932x_write_reg(dev,0x0085,0x0000);	ili932x_write_reg(dev,0x0090,0x0010);//- Panel Control -//            	ili932x_write_reg(dev,0x0092,0x0000);                                 	ili932x_write_reg(dev,0x0093,0x0003);                                 	ili932x_write_reg(dev,0x0095,0x0110);                                 	ili932x_write_reg(dev,0x0097,0x0000);                                 	ili932x_write_reg(dev,0x0098,0x0000);//- Panel Control -//            	ili932x_write_reg(dev,0x0007,0x0173);//Display Control and display ON 	msleep(50); 	return ;}static inline void ili932x_write_gram(struct ili932x_device *dev, u8 *buf, size_t size){	size_t i = 0;	#if ILI9325_BPP		== 16	u16 *pixel_buf = (u16 *) buf;	u8 bpp = sizeof(u16);#elif ILI9325_BPP	== 32	u32 *pixel_buf = (u32 *) buf;	u8 bpp = sizeof(u32);#endif	ili932x_write_reg(dev,0x0020,0x0000);// GRAM horizontal Address          	ili932x_write_reg(dev,0x0021,0x0000);// GRAM Vertical Address            	ILI9325_SET_INDEX(dev, 0x22);	/* printk("==> write %d words.\n", size); */	for (i=0; i<(size/bpp); i++) {		ili9325_write_pixel(dev, pixel_buf[i]);	}	return;	return;}static void ili932x_update(struct work_struct *work){	if (memcmp(ili932x_cache, ili932x_buffer, ILI9325_FB_SIZE)) {		ili932x_write_gram(lcd_ili932x, ili932x_buffer,				ILI9325_FB_SIZE);			memcpy(ili932x_cache, ili932x_buffer, ILI9325_FB_SIZE);	}	if (ili932x_updating) {		ili932x_queue();	}	return;}/* * ili932x Exported Symbols */EXPORT_SYMBOL_GPL(ili932x_buffer);EXPORT_SYMBOL_GPL(ili932x_getrate);EXPORT_SYMBOL_GPL(ili932x_enable);EXPORT_SYMBOL_GPL(ili932x_disable);EXPORT_SYMBOL_GPL(ili932x_isenabled);/* * Is the module inited? */static unsigned char ili932x_inited;unsigned char ili932x_isinited(void){	return ili932x_inited;}EXPORT_SYMBOL_GPL(ili932x_isinited);static int ili932x_chip_probe(struct ili932x_device *dev){	u16 chip_id = 0;#if 0	ili932x_reset();	msleep(150);#endif	/* Get chip ID. */	chip_id = ili932x_read_reg(dev, ILI9325_DRV_CODE);#if 1	printk("%s: read addr %08x, chip_id = %04x.\n",			__FUNCTION__, dev->membase, chip_id);	if (ILI9325_CHIP_ID == (u16) chip_id) {		ili9325_chip_init(dev);	} else if (ILI9320_CHIP_ID == (u16) chip_id) {		ili9320_chip_init(dev);	} else {		WFOS_DEBUG_INFO("No Chip ILI9325/9320 found.\n");		return -1;	}#endif	WFOS_DEBUG_INFO("Chip ILI%4x found.\n", chip_id);	return 0;}/* * Module Init & Exit */static int __init ili932x_init(void){	int ret = -EINVAL;	void __iomem *membase = NULL;	lcd_ili932x = kmalloc(sizeof(struct ili932x_device), GFP_KERNEL);	if (!lcd_ili932x) {		ret = -ENOMEM;		goto alloc_failed; 	}	memset(lcd_ili932x, 0, sizeof(struct ili932x_device));	#if 0	if (!request_mem_region(ILI9325_BASE_INDEX, ILI9325_IOMEM_SIZE, "ili932x")) {		printk("%s: request mem region error.\n", __FUNCTION__);		ret = -1;		goto region_failed;	}#endif	membase = ioremap(ILI9325_BASE_INDEX, ILI9325_IOMEM_SIZE);	if (!membase) {		printk(KERN_ERR "Can NOT remap address 0x%08x\n", 				(unsigned int)ILI9325_BASE_INDEX);		ret = -1;		goto remap_failed;	}	lcd_ili932x->membase = membase;	printk("%s: phy addr %08x ==> virt %08x.\n", 			__FUNCTION__, (unsigned int)ILI9325_BASE_INDEX, 			(unsigned int)lcd_ili932x->membase);		ili932x_buffer = (unsigned char *) vmalloc_32(ILI9325_FB_SIZE);	if (ili932x_buffer == NULL) {		printk(KERN_ERR ILI932X_NAME": ERROR: "			"can't get a free page\n");		ret = -ENOMEM;		goto page_err;	}	/* printk("===> Get pages for ili932x_buffer.\n"); */	ili932x_cache = kmalloc(sizeof(unsigned char) *		ILI9325_FB_SIZE, GFP_KERNEL);	if (ili932x_cache == NULL) {		printk(KERN_ERR ILI932X_NAME ": ERROR: "			"can't alloc cache buffer (%i bytes)\n",			ILI9325_FB_SIZE);		ret = -ENOMEM;		goto bufferalloced;	}	ili932x_workqueue = create_singlethread_workqueue(ILI932X_NAME);	if (ili932x_workqueue == NULL) {		goto cachealloced;	}	memset(ili932x_buffer, 0, ILI9325_FB_SIZE);	memset(ili932x_cache, 0, ILI9325_FB_SIZE);		if (ili932x_chip_probe(lcd_ili932x)< 0) {		goto cachealloced;	}	ili932x_inited = 1;	return 0;cachealloced:	kfree(ili932x_cache);bufferalloced://	free_pages ((unsigned long)ili932x_buffer, 6);	vfree(ili932x_buffer);	page_err:	iounmap(lcd_ili932x->membase);	lcd_ili932x->membase = NULL;	remap_failed://	release_mem_region(ILI9325_BASE_INDEX, ILI9325_IOMEM_SIZE);region_failed:	kfree(lcd_ili932x);alloc_failed:	return ret;}static void __exit ili932x_exit(void){	ili932x_disable();	destroy_workqueue(ili932x_workqueue);	kfree(ili932x_cache);	free_page ((unsigned long)ili932x_buffer);	//kfree(ili932x_buffer);	iounmap(lcd_ili932x->membase);	//release_mem_region(ILI9325_BASE_INDEX, ILI9325_IOMEM_SIZE);	kfree(lcd_ili932x);	lcd_ili932x = NULL;}module_init(ili932x_init);module_exit(ili932x_exit);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看精品| 欧美午夜在线观看| 欧美日韩精品欧美日韩精品一| 欧美一区二区在线观看| 综合自拍亚洲综合图不卡区| 精品一区二区免费视频| 在线观看欧美精品| 亚洲色图一区二区| 豆国产96在线|亚洲| ww亚洲ww在线观看国产| 五月天欧美精品| 欧美羞羞免费网站| 亚洲美女一区二区三区| 99视频热这里只有精品免费| 国产无遮挡一区二区三区毛片日本| 日韩精品1区2区3区| 欧美网站大全在线观看| 亚洲靠逼com| 91视频.com| 亚洲视频小说图片| aaa欧美日韩| 亚洲欧美自拍偷拍色图| 成人午夜视频在线观看| 久久精品男人天堂av| 国产精品一区二区果冻传媒| 91精品国产91久久久久久一区二区| 亚洲柠檬福利资源导航| 色综合久久久久| 一区二区三区四区中文字幕| 99国产精品久久久| 亚洲视频一区在线| 欧美性做爰猛烈叫床潮| 亚洲国产三级在线| 欧美一区二区三级| 久久99精品久久久久久动态图| 91精品国产91久久久久久最新毛片| 首页亚洲欧美制服丝腿| 日韩视频一区二区| 国产精品一区二区在线播放| 久久日韩粉嫩一区二区三区| 国产成人精品免费一区二区| 国产精品美女久久久久久久久| 99视频精品全部免费在线| 亚洲视频一区二区在线| 精品1区2区3区| 久久99精品国产.久久久久久 | 在线亚洲欧美专区二区| 亚洲日本va在线观看| 欧美午夜一区二区三区 | 3d动漫精品啪啪| 久久国产尿小便嘘嘘尿| 国产欧美日韩综合| 色悠悠亚洲一区二区| 亚洲成a人v欧美综合天堂下载 | 色诱亚洲精品久久久久久| 亚洲一区二区在线播放相泽 | 国模冰冰炮一区二区| 国产精品青草综合久久久久99| 91精品办公室少妇高潮对白| 图片区日韩欧美亚洲| 久久伊人蜜桃av一区二区| 99久久综合国产精品| 午夜欧美大尺度福利影院在线看 | 欧美挠脚心视频网站| 经典三级视频一区| 亚洲女性喷水在线观看一区| 日韩欧美国产一二三区| 成人小视频在线| 舔着乳尖日韩一区| 亚洲视频资源在线| 欧美v亚洲v综合ⅴ国产v| 色综合天天性综合| 黄网站免费久久| 亚洲一区二区三区中文字幕在线| 亚洲精品一区二区三区蜜桃下载| 色成人在线视频| 久久66热偷产精品| 亚洲国产精品视频| 中文字幕视频一区二区三区久| 欧美酷刑日本凌虐凌虐| 一本久久a久久精品亚洲| 国产一区二区三区在线观看免费 | 国产成人av电影在线观看| 亚洲激情校园春色| 国产日韩亚洲欧美综合| 日韩欧美国产综合一区| 欧美日韩亚洲综合在线 | 国产激情精品久久久第一区二区 | 自拍偷拍亚洲欧美日韩| 久久久久久久久岛国免费| 欧美女孩性生活视频| 91福利资源站| 91在线国产观看| 国产不卡一区视频| 国产九九视频一区二区三区| 美女视频一区二区| 亚洲成人黄色小说| 亚洲一区二区av电影| 亚洲人123区| 中文字幕在线一区二区三区| 久久综合国产精品| 亚洲精品一区二区三区四区高清| 欧美精品黑人性xxxx| 91激情五月电影| 日本精品一级二级| 91日韩精品一区| 93久久精品日日躁夜夜躁欧美| 成人免费看黄yyy456| 国产成人在线视频网址| 国内成人自拍视频| 国产老女人精品毛片久久| 国产一区二区三区香蕉| 国产一区二区三区在线看麻豆| 激情综合色播激情啊| 另类小说视频一区二区| 精品制服美女丁香| 精品中文字幕一区二区小辣椒| 黄色成人免费在线| 国产一区二区三区四区五区入口| 国产乱一区二区| 91精品国产乱码| 国产一级精品在线| 亚洲天堂网中文字| 亚洲色欲色欲www| √…a在线天堂一区| 国产精品护士白丝一区av| 亚洲三级在线播放| 亚洲综合丝袜美腿| 蜜桃91丨九色丨蝌蚪91桃色| 免费成人在线网站| 成人午夜激情视频| 色欧美乱欧美15图片| 91精品国产综合久久精品| 精品欧美久久久| 自拍偷自拍亚洲精品播放| 亚洲一区二区欧美日韩| 精东粉嫩av免费一区二区三区| 国产91对白在线观看九色| 99精品热视频| 日韩视频一区二区在线观看| 国产精品三级av| 亚洲一区在线观看视频| 美女mm1313爽爽久久久蜜臀| 成人网在线免费视频| 在线观看免费一区| 久久精品一区二区三区不卡牛牛 | 国产成人综合在线观看| 91激情在线视频| 久久影院午夜论| 亚洲激情图片小说视频| 精品一二三四区| 日本高清不卡视频| 精品国产一区二区精华| 综合久久久久久| 精品一区二区精品| 欧美日韩在线直播| 国产欧美一区二区精品性色超碰| 亚洲午夜三级在线| 成人美女在线观看| 日韩视频永久免费| 亚洲黄一区二区三区| 国产在线精品一区二区不卡了| 91国产精品成人| 欧美国产乱子伦| 男人的j进女人的j一区| 91在线观看一区二区| 精品国产乱码久久久久久夜甘婷婷 | 中文字幕高清一区| 免费成人在线网站| 欧美色涩在线第一页| 亚洲欧美综合另类在线卡通| 久久成人精品无人区| 欧美精品aⅴ在线视频| 亚洲图片激情小说| 成人涩涩免费视频| 欧美不卡一区二区三区| 午夜精品成人在线视频| 91官网在线免费观看| 亚洲欧美视频在线观看| 国产99久久精品| 久久久91精品国产一区二区精品| 青青青爽久久午夜综合久久午夜 | 91丝袜国产在线播放| 国产午夜精品福利| 国产精品一区二区不卡| 精品久久久网站| 久久国产麻豆精品| 日韩欧美在线综合网| 日韩成人精品在线| 欧美日韩一区国产| 亚洲国产精品一区二区久久 | 91麻豆国产福利精品| 欧美国产激情一区二区三区蜜月| 国内外精品视频| 日韩女优制服丝袜电影| 蜜桃视频在线观看一区二区| 91精品国产麻豆国产自产在线 | 亚洲图片一区二区| 欧美在线一区二区三区| 亚洲午夜一区二区|