Cobalt LCD driver

上传人:c****d 文档编号:137801496 上传时间:2022-08-19 格式:DOC 页数:18 大小:52.50KB
收藏 版权申诉 举报 下载
Cobalt LCD driver_第1页
第1页 / 共18页
Cobalt LCD driver_第2页
第2页 / 共18页
Cobalt LCD driver_第3页
第3页 / 共18页
资源描述:

《Cobalt LCD driver》由会员分享,可在线阅读,更多相关《Cobalt LCD driver(18页珍藏版)》请在装配图网上搜索。

1、Remove ld brokenCobaC driver。Signeofy:oichiYuaa ncudelinx/pot.h-ilude linux/nhncd linux/mc14818tc。hinclude lnu/netdvice。#icludelschd。hnclude lnux/smp_ck。#inclde inux/dela.h-include aso。iclude -#inlude -iclud ”l。-atic ntlcd_il(trut inode*inoe, stct iie,- nsiged int m, signdlog arg);tati nsigne it cd_

2、preset=;-/* used i arch/mis/cobaltset。 */int ldtate= 0;-#ifefined(CONFIG_TULP) -deieMAX_INERFAES8stai linceck_fuc_ linkchek_calbacksMAX_INTERACE;-staticvoid linkcheck_coesAX_INTERFES;-itlcdretr_likchk_fc(intaenu, void fuc,voidokie)if(ifacenu 0|- ifc_num MA_INTERFES linheck_calackice_nu != ULL)-retur

3、n 1;linchck_cllacksace_um = (likheckfuc_t) func;-lince_ookeiacu coie;retun 0;-difstaicint diotl(structinode*inode, tct fle file,- unsigne int cd, nigned long arg)tut lcddislay btton_dspy;-usigned londdress, ;-witch (cm)case D_On:udlay(15);-uyChec();LDWriteIns(00F);-break;-cas LDOf:-udelay();usyCheck

4、();-LDriIst(00);-break;case LCD_Reet:udeay(150);LDWrieInst(0x3F);uelay(50);CDrteI(3F);udea(150);-LCDrteIns(xF);dely(15);LWrieInst(0F);-udelay(15);LCWiteIst(0x01);elay(15);-LCDrin(06);reak;cas LCD_Cla:-delay(150);BusyCheck();LDiteInst(001);bre;-cs LCD_Cuso_ft:udelay(150);BsyCe();LDrteIn(x10);-brea;-c

5、e DCuror_Right:-udelay(150);-BusChck();LCDWrteIns(0x14);brak;-case L_Curso_f:-udeay(10);-BsCheck();-CDWrites(0x0);break;cas C_uro_On:udela(10);BusCeck();LDWrieInst(0x0);beak;cae LCBikOff:eay(150);syCheck();LDriteInt(0x0E);reak;-cse LCD_Get_Cursor_os:strt lcddspla dspy;udely(150);BsyCeck();dsplay.cur

6、sor_ddres= (LDRedst);-isplay.crsor_adrs = (dilay。cursor_rss & 0x07F);i (opy_to_use (structcd_iplay)arg, iplay, szeo(truct ld_dpla)trn EFAULT;ak;-case LCD_Set_Cuso_Pos:struct lc_dislay displa;-f (copy_from_use- (&display, (truc c_dipy*) r, sizeof(sruct ld_disply)))rtrEAULT;-a (dipl.curs_ddress |kDAdr

7、);delay(15);-BusCheck();CDWriteIns(a);break;-case L_GetCursor:suct lcd_dslay display;-ueay(50);-BusyChc();dspla.charaer LCDReaat;-if (copy_to_uer (suct lc_slay) ar, &display,- ieof(stuc cdispay)rtn -EUT;dela(150);Busyhec();-CDritens(0x10);brk;ae LCD_Set_ror:strut cd_disly display;if (coy_frm_ur (dis

8、pla, (struct lcd_dspla ) arg, szof(su cd_disply)-rtrn EULT;uela(10);-BusyCheck();LCDWriteDat(display.caracter);delay(15);-Byhek();-LCiteInst(x10);-beak;-case LC_Dis_eft:udel(15);-BusyCek();-CDWrteIs(0x1);break;-cae LD_Dis_Right:udely(50);BsyChek();DieInst(0x1C);-break;-cae LCD_me:uelay();BusyCheck()

9、;-LWrieIst(02);-brak;-cse LC_Wrie:struct lc_diplay play;unsigned it index;-i(copyfro_usr (&disply, (tr ld_display *) ag, izeo(struct lcd_ispay))-retunFAULT;la(15);Buyheck();LCDWriInst(080);-deay(50);usyhec();-fr(idex = 0; idx (disply.se1);ind+) udlay(150);-BusyChk();CDWrData(ispyine1nde);BusyCheck()

10、;-udelay(5);usyeck();LCDWteIns(0xC0);udelay(15);usChe();for (index =0; idx (displaysize2); index+) udela(150);usyChck();LCrteData(displa。line2index);-bak;-cae LD_ead:-trt lcdiplysla;-BusyChek();fr(ddrss = DDR00; addres = kDDR1; dds+)-a (ars kLCD_Adr);delay(150);BuyCheck();-LCDWritIt();udeay(5);-heck

11、();-dsplaylie1ddres = LCDRdD;-dislayl10x27 = 0;-for (addes =kDD_R0; ddres DD_R1;- adss+) a(adress| kLC_Adr);-uel(1);Buyhek();-LDriteInst(a);-uelay(150);-usyChek();isplyline2dress -0 = CDeadDa;-dispa。line2027 = ;-f (opy_touser ((rutlcddisla) g, &dslay, izeof(struct lcd_display)))retur -AL;-bk;-/ et a

12、l PI s to ledsply.leds-aeLED_Set:stuct cd_dsplale_disply;-if(copy_ro_usr- (l_dipla, (sct lc_diplay )ar, sze(struc lcd_dply)))-tun EFU;ed_state = ed_displlds;EDS(led_state);reak;-/ s only eddiplayleds-cseLED_Bit_Set:-usninti;t bit 1;-sruc cddisplay led_disply;-if (_rom_sr (l_lay,(struct lcd_isl ) arg

13、, ize(srctlcd_display)))retun EFAULT;-for(i ; i (int) l_display.leds; i+) bit = * bit;-led_tae = d_stae i;LEDSet(led_state);rek;-/ clear only t le_display.lds-a LD_Bit_Cler:-sigednt ;int it=;struct d_dilay led_isplay;-i (py_fom_usr (leddisply, (struct cd_isla ) arg,- sizeo(tuct lcddiplay))retur -FAU

14、LT;-o (i = ; i(it)le_dislay。ld;i) b = 2 bt;-led_ste = le_state & it;LEDet(le_tat);rek;-ce BUTON_ead:-tton_dila.butons= GPIed;i (oy_t_ur- ((strct ld_dsplay *) rg, bonspla, ieof(trc lc_dsay)))reun EFAUT;-bak;-cse INK_Chck:-bton_dplauts =- *(volatleusigned long*) (0xB00060); (opy_usr (srct lddisplay )a

15、r, &buttn_diplay,- seof(sruccd_dsly))-renEFUT;break;-c INK_hk_2:it fenu;/ pne-til shud pass in the desid nerface stas s nted fr * in ttos of thstructure. ill set tis toonzero the- lnkisin ac p for te reese ite。 DvM /if(co_ro_sr- (&btto_diplay, (truct lcd_dipy )arg, sizeo(buttonipay))return EFULT;-ia

16、cenm button_dsly。btos;-i deine(NFIG_TULIP) & 0f(ifa_num =0 - ifac_num MXINTEFAS linkcheck_callbacsifac_n != NLL)uttn_lay.utts = lnchekcallbkice_num (linkchec_ookisfac_n); ele#endifbuttpl。buttns 0;-f(op_t_user- ((struc lc_disply ) a, &uton_lay, sizeof(strut lcddisay)return-EAULT;brek;-efult:retun -EI

17、NVAL;-return ;-stti it cdopn(ruct no*ino, struct il*e)-cyclekrnellock();-f(!lcd_pest)-reurn ENI;elsetun ;* yRESET or NT cnasbttn ressd */-static inline int buton_rssed(void)unsige longbutns = GPIea;-i ((buttns = BUTTON_ex) | (buttos= BUTO_Next) | (bttons= BUTTON_set_B))-retur button;reu 0;-/*EDdamos

18、its nhis and e wake hip onc spresed */-stti in lcd_watrs ;-sta ssie_lcdread(suc ile *e, char *buf, sz_tcount, lof_t )-ongttn_ow;if(lcd_waiter 0)retur-EINV;-lcd_waiters+;while ((bttonnow = (long) btton_esed())= 0)&- !(sgal_end(urrent)) msleepinerrupbl(20);-lcd_its;-if (sinal_pendig(current)-eturn-RET

19、ATYS;-retun bons_nw;-/*- he vaous we uport。-*-stic cons strct lc_fops -。read = d_read,ioc = lcd_ioctl,-.open= ldo,-;-sttic srucmiscevce ld_dev = MIDNAMC_MINOR,-lc,-&l_fops-;-saic int ld_init(oi)-t ret;unsige long dta;prifo(sn”, LCD_RVE);-rt = msc_register(&cddev);f (ret)prit(KERWARNIN LCD ”Unable to

20、rester misc device。n);rturn ret;- Check regio? Naaah! Jut narf it up。 */equest_egio(RTC_PORT(0), RCIO_XTET, ”lc);/-udelay(10);-data = LDeaData; (dat 0x000FF) =(000))lcd_present = ;p_if(LCD”LC No Presentn”);else -cdpresent= 1;-WRITE_GAL(kGal_evanP, kGal_DevBank2fg);ITEGA(kGaevBankReg,kalevBak3Cf);-re

21、turn ;stticvod _xit _ei(void)-misc_drgister(ld_dev);-modue_iit(lc_ini);modulexit(cd_xit);-ODUE_ATHOR(nre Bose);-MODUL_LICENE(GP”);diff -puN X oe/uas/Mem/dontif iux-org/drivrs/char/lcd。h lin/drivers/cha/cd.h- linuxorig/diers/har/lcd208071520:03:.134050+900+ linux/rivers/ccd19001-01 09:00:0。00000000 0

22、90 1,154 +0,0 /*- LE, L and Bttonael drver fo Cobalt- * This bect tothe ems an nitions of he NU Genra Plc- *iense. Se file OPYIG in temaindietrofhs achiv- * fmoredils.- *- oyrght ()16,1997byAndrew Bos- * Lnux enel vrion hisoy: March 001:Port fom 2.0。34 yLiamves */-/functionedrs-dene LC_CHARS_PELNE40

23、-dfne MA_IDE_TME120-strut l_dispa unsignedutons; nt size1;- intsz2;- nsgnedchar line1L_CHAR_PER_LINE;- ungned chr line2D_CHAS_PERE; nsined c curorddess; unsined cha character;- ungne char ds; unsined car RomImage;-efine LCD_DRIVE”Cobalt LCD Driver v2.10-#deine LD”lc: -#efineLD_I0x00000-efinekD_D0x0F

24、0010#finekGIx0000000fiekLED0000000-#deie kDD0 000-dfiekDDR01 0x7-#efine kD_R10 x4defekDD_R1 -defne kLD_Adr 0x000-#dfin LCDTimetVaeff/ Mros#define CDWieDat(x)oul(x 24), CDDR)dfinCWriteIt(x)otl(x 4)#defeLEDe(x)ob(ha)x, ED)-deineWRIT_AL(,y)out(, 0000000 (x)-#defie uyck()wil(ReaIn x80) = 080)-/*Fcti oma

25、nd codesfo _tl */defineCDOn1-#define LCD_Of2define LCD_Cler3#dfne LCD_Reset4defeLD_CursoLeftefine C_Cursor_Right6#defe LC_Disp_L7#defiLCD_Disp_Rig8defineLCD_Get_Cursor9#dfie LD_Set_Cusor10#defe LC_Hoe11#deine LDRe12-efine CD_rite13efn L_CroOff4-dfne CD_ursor_O15#den C_Get_usor_os1defineLCD_SetCrsr_P

26、os7-efineLCDBln_Of 18-defne LD_et40-defi LD_B_et41#deiLED_Bit_lear42/ Buo esdef BUTTO_ed 50/ Ethernet LNK heckhackro#eie NK_Chec 90-efinKCec_291-/Butonpter B - sig ayer lcdboardsfine BTO_NO x3FefneBUTTON_ONE_B 0FE-ei BUTTNft x3Bdfin UTON_eftB 0xFA-#fie BUTTONRght 03-#defineTON_Right_B 0DEn UTN_ 0xFd

27、efine TTO_B 0xFdefBUTTON_Dwn 0x1F#defie BUTO_DonB xE-#dfnBUTTONe 0xDdefneBUTTON_Next 0E-efe BUTON_Ente 0x3-#ineBUTON_EnteB 0xBE-eine BTTN_ReseB xdebounce cnstns-#deine BTON_SENSE 600#dine BODOUNC00/ Galileo registrtf-dein kal_DevBan2Cfg 0x1466DB3#defiekG_DevBankRe 0x6defie Gl_eBak3Cfg x146FDFB#defe kGaleBank3PRe x468/etwork-defie IDDR1-dfine kNETMAS2#defne kGATWAY3#dfn DN4-dfine kCasA5defin klass6#defne klassC-文中不足之处,请您见谅!18 / 18

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!