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

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

?? vgg2432a4.c

?? Linux環境下視頻顯示卡設備的驅動程序源代碼
?? C
字號:
/* drivers/video/backlight/vgg2432a4.c * * VGG2432A4 (ILI9320) LCD controller driver. * * Copyright 2007 Simtec Electronics *	http://armlinux.simtec.co.uk/ *	Ben Dooks <ben@simtec.co.uk> * * 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.*/#include <linux/delay.h>#include <linux/err.h>#include <linux/fb.h>#include <linux/init.h>#include <linux/lcd.h>#include <linux/module.h>#include <linux/spi/spi.h>#include <video/ili9320.h>#include "ili9320.h"/* Device initialisation sequences */static struct ili9320_reg vgg_init1[] = {	{		.address = ILI9320_POWER1,		.value	 = ILI9320_POWER1_AP(0) | ILI9320_POWER1_BT(0),	}, {		.address = ILI9320_POWER2,		.value	 = (ILI9320_POWER2_VC(7) |			    ILI9320_POWER2_DC0(0) | ILI9320_POWER2_DC1(0)),	}, {		.address = ILI9320_POWER3,		.value	 = ILI9320_POWER3_VRH(0),	}, {		.address = ILI9320_POWER4,		.value	 = ILI9320_POWER4_VREOUT(0),	},};static struct ili9320_reg vgg_init2[] = {	{		.address = ILI9320_POWER1,		.value   = (ILI9320_POWER1_AP(3) | ILI9320_POWER1_APE |			    ILI9320_POWER1_BT(7) | ILI9320_POWER1_SAP),	}, {		.address = ILI9320_POWER2,		.value   = ILI9320_POWER2_VC(7) | ILI9320_POWER2_DC0(3),	}};static struct ili9320_reg vgg_gamma[] = {	{		.address = ILI9320_GAMMA1,		.value	 = 0x0000,	}, {		.address = ILI9320_GAMMA2,		.value   = 0x0505,	}, {		.address = ILI9320_GAMMA3,		.value	 = 0x0004,	}, {		.address = ILI9320_GAMMA4,		.value	 = 0x0006,	}, {		.address = ILI9320_GAMMA5,		.value	 = 0x0707,	}, {		.address = ILI9320_GAMMA6,		.value	 = 0x0105,	}, {		.address = ILI9320_GAMMA7,		.value	 = 0x0002,	}, {		.address = ILI9320_GAMMA8,		.value	 = 0x0707,	}, {		.address = ILI9320_GAMMA9,		.value	 = 0x0704,	}, {		.address = ILI9320_GAMMA10,		.value	 = 0x807,	}};static struct ili9320_reg vgg_init0[] = {	[0]	= {		/* set direction and scan mode gate */		.address = ILI9320_DRIVER,		.value	 = ILI9320_DRIVER_SS,	}, {		.address = ILI9320_DRIVEWAVE,		.value	 = (ILI9320_DRIVEWAVE_MUSTSET |			    ILI9320_DRIVEWAVE_EOR | ILI9320_DRIVEWAVE_BC),	}, {		.address = ILI9320_ENTRYMODE,		.value	 = ILI9320_ENTRYMODE_ID(3) | ILI9320_ENTRYMODE_BGR,	}, {		.address = ILI9320_RESIZING,		.value	 = 0x0,	},};static int vgg2432a4_lcd_init(struct ili9320 *lcd,			      struct ili9320_platdata *cfg){	unsigned int addr;	int ret;	/* Set VCore before anything else (VGG243237-6UFLWA) */	ret = ili9320_write(lcd, 0x00e5, 0x8000);	if (ret)		goto err_initial;	/* Start the oscillator up before we can do anything else. */	ret = ili9320_write(lcd, ILI9320_OSCILATION, ILI9320_OSCILATION_OSC);	if (ret)		goto err_initial;	/* must wait at-lesat 10ms after starting */	mdelay(15);	ret = ili9320_write_regs(lcd, vgg_init0, ARRAY_SIZE(vgg_init0));	if (ret != 0)		goto err_initial;	ili9320_write(lcd, ILI9320_DISPLAY2, cfg->display2);	ili9320_write(lcd, ILI9320_DISPLAY3, cfg->display3);	ili9320_write(lcd, ILI9320_DISPLAY4, cfg->display4);	ili9320_write(lcd, ILI9320_RGB_IF1, cfg->rgb_if1);	ili9320_write(lcd, ILI9320_FRAMEMAKER, 0x0);	ili9320_write(lcd, ILI9320_RGB_IF2, cfg->rgb_if2);	ret = ili9320_write_regs(lcd, vgg_init1, ARRAY_SIZE(vgg_init1));	if (ret != 0)		goto err_vgg;	mdelay(300);	ret = ili9320_write_regs(lcd, vgg_init2, ARRAY_SIZE(vgg_init2));	if (ret != 0)		goto err_vgg2;	mdelay(100);	ili9320_write(lcd, ILI9320_POWER3, 0x13c);	mdelay(100);	ili9320_write(lcd, ILI9320_POWER4, 0x1c00);	ili9320_write(lcd, ILI9320_POWER7, 0x000e);	mdelay(100);	ili9320_write(lcd, ILI9320_GRAM_HORIZ_ADDR, 0x00);	ili9320_write(lcd, ILI9320_GRAM_VERT_ADD, 0x00);	ret = ili9320_write_regs(lcd, vgg_gamma, ARRAY_SIZE(vgg_gamma));	if (ret != 0)		goto err_vgg3;	ili9320_write(lcd, ILI9320_HORIZ_START, 0x0);	ili9320_write(lcd, ILI9320_HORIZ_END, cfg->hsize - 1);	ili9320_write(lcd, ILI9320_VERT_START, 0x0);	ili9320_write(lcd, ILI9320_VERT_END, cfg->vsize - 1);	ili9320_write(lcd, ILI9320_DRIVER2,		      ILI9320_DRIVER2_NL(((cfg->vsize - 240) / 8) + 0x1D));	ili9320_write(lcd, ILI9320_BASE_IMAGE, 0x1);	ili9320_write(lcd, ILI9320_VERT_SCROLL, 0x00);	for (addr = ILI9320_PARTIAL1_POSITION; addr <= ILI9320_PARTIAL2_END;	     addr++) {		ili9320_write(lcd, addr, 0x0);	}	ili9320_write(lcd, ILI9320_INTERFACE1, 0x10);	ili9320_write(lcd, ILI9320_INTERFACE2, cfg->interface2);	ili9320_write(lcd, ILI9320_INTERFACE3, cfg->interface3);	ili9320_write(lcd, ILI9320_INTERFACE4, cfg->interface4);	ili9320_write(lcd, ILI9320_INTERFACE5, cfg->interface5);	ili9320_write(lcd, ILI9320_INTERFACE6, cfg->interface6);	lcd->display1 = (ILI9320_DISPLAY1_D(3) | ILI9320_DISPLAY1_DTE |			 ILI9320_DISPLAY1_GON | ILI9320_DISPLAY1_BASEE |			 0x40);	ili9320_write(lcd, ILI9320_DISPLAY1, lcd->display1);	return 0; err_vgg3: err_vgg2: err_vgg: err_initial:	return ret;}#ifdef CONFIG_PMstatic int vgg2432a4_suspend(struct spi_device *spi, pm_message_t state){	return ili9320_suspend(dev_get_drvdata(&spi->dev), state);}static int vgg2432a4_resume(struct spi_device *spi){	return ili9320_resume(dev_get_drvdata(&spi->dev));}#else#define vgg2432a4_suspend	NULL#define vgg2432a4_resume 	NULL#endifstatic struct ili9320_client vgg2432a4_client = {	.name	= "VGG2432A4",	.init	= vgg2432a4_lcd_init,};/* Device probe */static int __devinit vgg2432a4_probe(struct spi_device *spi){	int ret;	ret = ili9320_probe_spi(spi, &vgg2432a4_client);	if (ret != 0) {		dev_err(&spi->dev, "failed to initialise ili9320\n");		return ret;	}	return 0;}static int __devexit vgg2432a4_remove(struct spi_device *spi){	return ili9320_remove(dev_get_drvdata(&spi->dev));}static void vgg2432a4_shutdown(struct spi_device *spi){	ili9320_shutdown(dev_get_drvdata(&spi->dev));}static struct spi_driver vgg2432a4_driver = {	.driver = {		.name		= "VGG2432A4",		.owner		= THIS_MODULE,	},	.probe		= vgg2432a4_probe,	.remove		= __devexit_p(vgg2432a4_remove),	.shutdown	= vgg2432a4_shutdown,	.suspend	= vgg2432a4_suspend,	.resume		= vgg2432a4_resume,};/* Device driver initialisation */static int __init vgg2432a4_init(void){	return spi_register_driver(&vgg2432a4_driver);}static void __exit vgg2432a4_exit(void){	spi_unregister_driver(&vgg2432a4_driver);}module_init(vgg2432a4_init);module_exit(vgg2432a4_exit);MODULE_AUTHOR("Ben Dooks <ben-linux@fluff.org>");MODULE_DESCRIPTION("VGG2432A4 LCD Driver");MODULE_LICENSE("GPL v2");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久在线观看免费| 精品亚洲国内自在自线福利| 日韩va亚洲va欧美va久久| 精品亚洲porn| 欧美写真视频网站| 国产精品欧美久久久久无广告| 日韩电影在线一区| 91免费看`日韩一区二区| 2022国产精品视频| 天天操天天综合网| 91麻豆精东视频| 国产精品入口麻豆原神| 国产一区二区精品久久99| 欧美精品视频www在线观看| 综合激情成人伊人| kk眼镜猥琐国模调教系列一区二区| 日韩欧美国产精品| 日韩国产高清影视| 欧美日本乱大交xxxxx| 一区2区3区在线看| 99精品国产视频| 亚洲欧洲99久久| 91色婷婷久久久久合中文| 国产精品青草综合久久久久99| 国内久久精品视频| 精品欧美黑人一区二区三区| 日韩高清电影一区| 制服.丝袜.亚洲.中文.综合| 亚洲国产欧美在线人成| 91久久奴性调教| 一个色在线综合| 色综合久久久久久久久久久| 亚洲男同1069视频| 色天天综合色天天久久| 亚洲精品视频在线观看网站| 972aa.com艺术欧美| 中文字幕一区二区三区色视频 | 色综合久久久久网| 亚洲少妇中出一区| 在线看日韩精品电影| 亚洲h精品动漫在线观看| 欧美肥大bbwbbw高潮| 日本美女视频一区二区| 日韩欧美一级精品久久| 国产一区二区三区黄视频| 久久久久久**毛片大全| 不卡一卡二卡三乱码免费网站| 国产精品的网站| 欧美午夜电影网| 美女网站一区二区| 欧美韩国日本一区| 欧美羞羞免费网站| 免费在线看成人av| 国产欧美精品区一区二区三区| 成人午夜私人影院| 亚洲妇女屁股眼交7| 日韩视频一区二区三区在线播放| 国精产品一区一区三区mba视频| 久久精品一区二区| 欧美在线免费观看视频| 久久精品国产亚洲高清剧情介绍 | 波多野结衣一区二区三区 | 精品一区二区三区香蕉蜜桃| 国产欧美一区视频| 欧美丝袜丝交足nylons图片| 老司机精品视频导航| 亚洲色图视频网| 欧美一区二区日韩一区二区| 国产精品69久久久久水密桃 | 国产精品久久毛片| 在线不卡免费av| 成人av资源网站| 青娱乐精品视频在线| 亚洲欧美在线观看| 日韩欧美国产高清| 欧洲精品在线观看| 国产精品99久久久久久有的能看 | 亚洲国产精品精华液网站| xf在线a精品一区二区视频网站| 色综合婷婷久久| 国产尤物一区二区| 日韩成人av影视| 亚洲人吸女人奶水| 国产亚洲成aⅴ人片在线观看| 欧美日韩久久久| 色综合亚洲欧洲| 丁香网亚洲国际| 精品一区免费av| 天天综合色天天| 亚洲在线视频免费观看| 亚洲欧美综合在线精品| 国产欧美一区二区在线| 欧美一区二区三级| 8v天堂国产在线一区二区| 色婷婷精品久久二区二区蜜臂av| 岛国av在线一区| 国产乱码精品一区二区三区忘忧草 | 午夜精品久久久久久久99樱桃| 国产精品美女一区二区三区 | 欧美精品在线一区二区| 欧洲国内综合视频| 色美美综合视频| 97久久精品人人做人人爽| 成人黄色综合网站| 夫妻av一区二区| 国产成都精品91一区二区三| 精品一区二区三区在线观看国产 | 26uuu精品一区二区| 91精品午夜视频| 欧美高清www午色夜在线视频| 97se亚洲国产综合自在线| 国产成人午夜视频| 成人免费看的视频| 北条麻妃一区二区三区| 99国产欧美久久久精品| 一本色道亚洲精品aⅴ| 在线视频综合导航| 欧美色涩在线第一页| 欧美久久久久久蜜桃| 欧美一区二区免费观在线| 91精品欧美一区二区三区综合在| 51精品国自产在线| 日韩久久精品一区| 久久久精品综合| 国产精品传媒在线| 夜夜嗨av一区二区三区中文字幕| 亚洲另类色综合网站| 五月激情综合网| 久久激情综合网| 国产91对白在线观看九色| 99精品国产91久久久久久| 欧美亚洲一区二区三区四区| 欧美日韩国产首页| 26uuu另类欧美亚洲曰本| 国产精品卡一卡二卡三| 亚洲国产色一区| 九九久久精品视频| 成人99免费视频| 欧美人伦禁忌dvd放荡欲情| 精品毛片乱码1区2区3区| 欧美激情一区三区| 亚洲不卡在线观看| 激情小说亚洲一区| 91亚洲男人天堂| 日韩欧美一二三四区| 亚洲三级在线播放| 麻豆一区二区三| 色婷婷久久一区二区三区麻豆| 欧美一二三四在线| 国产精品三级电影| 美国欧美日韩国产在线播放| 成人免费高清在线观看| 制服丝袜在线91| 亚洲色图.com| 国内外成人在线| 欧美乱妇15p| 国产精品视频免费| 久久99精品国产麻豆婷婷洗澡| 色综合天天综合网国产成人综合天| 4438x亚洲最大成人网| 国产精品进线69影院| 美美哒免费高清在线观看视频一区二区 | 91成人免费在线视频| 精品国产1区二区| 亚洲成人激情综合网| 成人免费视频播放| 日韩视频在线永久播放| 一区av在线播放| 成人一区在线看| 久久婷婷综合激情| 丝袜亚洲精品中文字幕一区| av电影天堂一区二区在线观看| 日韩一区二区在线看| 一区二区三区鲁丝不卡| 成人性生交大片免费看中文网站| 欧美一区二区播放| 亚洲国产va精品久久久不卡综合| 国产·精品毛片| 精品国产91亚洲一区二区三区婷婷 | 5858s免费视频成人| 亚洲精品国产a久久久久久| 国产夫妻精品视频| 精品国产一二三区| 捆绑调教美女网站视频一区| 欧美体内she精视频| 洋洋av久久久久久久一区| 成人黄色国产精品网站大全在线免费观看| 日韩久久免费av| 美美哒免费高清在线观看视频一区二区 | 综合久久一区二区三区| 成人午夜电影小说| 国产欧美日本一区二区三区| 国产毛片精品视频| 久久久不卡网国产精品一区| 激情综合色综合久久| 精品国产青草久久久久福利| 蜜桃av噜噜一区| 精品国产91久久久久久久妲己 | 国产一区二区在线观看免费| 日韩天堂在线观看|