| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174 |
- --
- -- Copyright (C) 2004-2007 by egnite Software GmbH. All rights reserved.
- --
- -- Redistribution and use in source and binary forms, with or without
- -- modification, are permitted provided that the following conditions
- -- are met:
- --
- -- 1. Redistributions of source code must retain the above copyright
- -- notice, this list of conditions and the following disclaimer.
- -- 2. Redistributions in binary form must reproduce the above copyright
- -- notice, this list of conditions and the following disclaimer in the
- -- documentation and/or other materials provided with the distribution.
- -- 3. Neither the name of the copyright holders nor the names of
- -- contributors may be used to endorse or promote products derived
- -- from this software without specific prior written permission.
- --
- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- -- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- -- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- -- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- -- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- -- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- -- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- -- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- -- AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- -- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- -- THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- -- SUCH DAMAGE.
- --
- -- For additional information see http://www.ethernut.de/
- --
- -- Operating system functions
- --
- -- $Log$
- -- Revision 1.54 2009/02/13 14:46:19 haraldkipp
- -- Using the VS10xx driver as a template for redesign.
- --
- -- Revision 1.53 2009/02/06 15:48:08 haraldkipp
- -- New audio driver for VLSI chips uses the SPI bus.
- --
- -- Revision 1.52 2009/01/30 08:57:16 haraldkipp
- -- Added auto detected VS10xx.
- -- Default audio decoder reset recover times changed to 0.
- --
- -- Revision 1.51 2009/01/19 10:38:54 haraldkipp
- -- Configuration of the AT45D non-volatile memory support was not useable.
- --
- -- Revision 1.50 2009/01/18 16:44:07 haraldkipp
- -- Added GPIO based bit banging SPI bus driver.
- --
- -- Revision 1.49 2009/01/09 17:59:05 haraldkipp
- -- Added target independent AT45D block device drivers and non-volatile
- -- memory support based on the new bus controllers.
- --
- -- Revision 1.48 2008/12/24 14:52:10 thiagocorrea
- -- Improve Serial Bit Bang drivers dependency check in nutconf.
- --
- -- Revision 1.47 2008/10/23 08:52:20 haraldkipp
- -- New software SPI MMC routines added.
- --
- -- Revision 1.46 2008/10/05 16:56:15 haraldkipp
- -- Added Helix audio device.
- --
- -- Revision 1.45 2008/10/03 11:31:27 haraldkipp
- -- Added TWI support for the AT91SAM9260.
- --
- -- Revision 1.44 2008/09/23 07:26:51 haraldkipp
- -- Made early watchdog setting configurable.
- --
- -- Revision 1.43 2008/09/02 14:27:15 haraldkipp
- -- Added platform independent reset functions.
- -- Disabled the old vs1001k driver.
- --
- -- Revision 1.42 2008/08/28 16:11:31 haraldkipp
- -- Fixed bitbanging SPI for ARM targets.
- --
- -- Revision 1.41 2008/08/28 11:07:06 haraldkipp
- -- Added platform independant driver for LAN91 chips, currently LAN91C111
- -- only. This is also the first Ethernet driver with ioctl support.
- --
- -- Revision 1.40 2008/07/29 07:30:57 haraldkipp
- -- Added VS1053B.
- --
- -- Revision 1.39 2008/07/09 14:25:06 haraldkipp
- -- Made EEPROM_PAGE_SIZE configurable. Does it really make sense?
- --
- -- Revision 1.38 2008/02/15 16:55:43 haraldkipp
- -- Added support for VS1033/53 codec.
- --
- -- Revision 1.37 2007/08/30 12:15:06 haraldkipp
- -- Configurable MMC timings.
- --
- -- Revision 1.36 2007/04/12 08:57:19 haraldkipp
- -- New VS10XX decoder support. It will replace the old VS1001K driver, but
- -- hasn't been tested for this chip yet. For the time being, please add the
- -- vs10xx.c to your application code when using the VS1011E.
- -- New API added, which allows to program external AVR devices via SPI.
- -- Configurable SPI support added. Polled hardware SPI only, which is
- -- currently limited to AVR. Header files are available for up to 4 software
- -- SPI devices, but the API routines had been implemented for device 0 only.
- --
- -- Revision 1.35 2007/03/22 08:23:41 haraldkipp
- -- Added the user (green) LED settings for Ethernut 3.0.
- --
- -- Revision 1.34 2007/02/15 16:17:27 haraldkipp
- -- Configurable port bits for bit-banging I2C. Should work now on all
- -- AT91 MCUs.
- --
- -- Revision 1.33 2006/10/05 17:16:50 haraldkipp
- -- Hardware independant RTC layer added.
- --
- -- Revision 1.32 2006/09/29 12:41:55 haraldkipp
- -- Added support for AT45 serial DataFlash memory chips. Currently limited
- -- to AT91 builds.
- --
- -- Revision 1.31 2006/08/05 12:00:39 haraldkipp
- -- Added clock settings for Ethernut 3.0 Rev-E.
- --
- -- Revision 1.30 2006/06/30 22:08:23 christianwelzel
- -- DS1307 RTC Driver added.
- --
- -- Revision 1.29 2006/06/28 17:22:34 haraldkipp
- -- Make it compile for AT91SAM7X256.
- --
- -- Revision 1.28 2006/06/28 14:31:55 haraldkipp
- -- Null device added to Configurator build.
- --
- -- Revision 1.27 2006/05/25 09:13:23 haraldkipp
- -- Platform independent watchdog API added.
- --
- -- Revision 1.26 2006/04/07 12:26:59 haraldkipp
- -- Removing requirement for non-volatile hardware solves link problem
- -- if no such hardware is available.
- --
- -- Revision 1.25 2006/02/23 15:42:26 haraldkipp
- -- MMC low level bit banging SPI added.
- --
- -- Revision 1.24 2006/01/23 17:29:14 haraldkipp
- -- X1226/X1286 EEPROM now available for system configuration storage.
- --
- -- Revision 1.23 2006/01/22 17:35:22 haraldkipp
- -- Baudrate calculation for Ethernut 3 failed if MCU Clock was not specified.
- --
- -- Revision 1.22 2006/01/05 16:49:06 haraldkipp
- -- Mulimedia Card Block Device Driver added.
- -- Programmable Logic Device added, which supports the CPLD
- -- implementation of the Ethernut 3 design.
- -- New options added for CY2239x support.
- --
- -- Revision 1.21 2005/10/24 09:54:55 haraldkipp
- -- New i2C bit banging driver.
- -- New Xicor RTC driver.
- -- New Cypress programmable clock driver.
- --
- -- Revision 1.20 2005/10/04 05:48:11 hwmaier
- -- Added CAN driver for AT90CAN128
- --
- -- Revision 1.19 2005/07/26 15:41:06 haraldkipp
- -- All target dependent code is has been moved to a new library named
- -- libnutarch. Each platform got its own script.
- --
- -- Revision 1.18 2005/05/27 13:51:07 olereinhardt
- -- Added new Display sizes for hd44780 and hd44780_bus
- -- Ports used for display connection still need's to be added.
- --
- -- Revision 1.17 2005/04/05 17:44:56 haraldkipp
- -- Made stack space configurable.
- --
- -- Revision 1.16 2005/02/21 00:56:59 hwmaier
- -- New CAN int vectors ivect35.c and ivect36 added, removed "makedefs" entry for RTL_IRQ_RISING_EDGE.
- --
- -- Revision 1.15 2005/02/19 22:47:54 hwmaier
- -- no message
- --
- -- Revision 1.14 2005/02/07 19:05:25 haraldkipp
- -- ATmega 103 compile errors fixed
- --
- -- Revision 1.13 2005/02/02 19:46:53 haraldkipp
- -- Port configuration was completely broken, because no AVRPORT values
- -- had been defined for the preprocessor. To fix this without modifying
- -- too many sourcefiles we change the name of AVR port config file and
- -- include this new file in the old avr.h.
- --
- -- Revision 1.12 2005/01/22 19:22:42 haraldkipp
- -- Changed AVR port configuration names from PORTx to AVRPORTx.
- -- Removed uartspi devices.
- --
- -- Revision 1.11 2004/12/17 15:31:28 haraldkipp
- -- Support of rising edge interrupts for hardware w/o inverter gate.
- -- Fixed compilation issue for hardware with RTL reset port.
- -- Thanks to FOCUS Software Engineering Pty Ltd.
- --
- -- Revision 1.10 2004/11/24 14:48:34 haraldkipp
- -- crt/crt.nut
- --
- -- Revision 1.9 2004/10/03 18:39:12 haraldkipp
- -- GBA debug output on screen
- --
- -- Revision 1.8 2004/09/25 15:43:54 drsung
- -- Light change for separate interrupt stack. Now it depends also
- -- on macro HW_MCU_AVR.
- --
- -- Revision 1.7 2004/09/22 08:21:43 haraldkipp
- -- No ATmega103 support for LAN91C111. Is there any hardware?
- -- List of devices sorted by platform.
- -- Separate IRQ stack for AVR is configurable.
- -- Configurable ports for digital I/O shift register.
- -- Configurable handshake ports for AVR USART.
- --
- -- Revision 1.6 2004/09/07 19:11:15 haraldkipp
- -- Simplified IRQ handling to get it done for EB40A
- --
- -- Revision 1.5 2004/09/01 14:04:57 haraldkipp
- -- Added UART handshake and EEPROM emulation port bits
- --
- -- Revision 1.4 2004/08/18 16:05:38 haraldkipp
- -- Use consistent directory structure
- --
- -- Revision 1.3 2004/08/18 13:46:09 haraldkipp
- -- Fine with avr-gcc
- --
- -- Revision 1.2 2004/08/03 15:09:31 haraldkipp
- -- Another change of everything
- --
- -- Revision 1.1 2004/06/07 16:35:53 haraldkipp
- -- First release
- --
- --
- nutdev =
- {
- --
- -- General device helper routines.
- --
- {
- name = "nutdev_ihndlr",
- brief = "Interrupt Handler",
- description = "Interrupt registration and distribution.",
- sources = { "ihndlr.c" },
- },
- {
- name = "nutdev_uart_poll",
- brief = "UART Polling Driver",
- description = "Simple UART driver without interrupt handler.",
- requires = { "DEV_UART" },
- options =
- {
- {
- macro = "NUT_DEV_DEBUG_READ",
- brief = "Enable Debug Input",
- description = "By default the serial debug port can be used for output only. "..
- "This option enables usage of this port for input too.\n\n"..
- "Note, that the debug driver is not interrupt driven, it "..
- "uses polling. Therefore, standard output functions "..
- "may be even called in interrupt context. This is not "..
- "true for input, where the driver calls NutSleep while "..
- "waiting for incoming data.\n\n"..
- "Further note, that incoming characters are not handled in "..
- "the background and may get lost, if the application is not "..
- "actively listening for input data.",
- requires = { "DEV_UART" },
- flavor = "boolean",
- file = "include/cfg/uart.h"
- }
- }
- },
- {
- name = "nutdev_usartcb",
- brief = "USART Driver Framework (Experimental)",
- description = "Experimental USART driver framework.",
- requires = { "CRT_HEAPMEM", "DEV_UART_CBRXTX", "DEV_CIRCBUF" },
- provides = { "DEV_UART_GENERIC", "DEV_FILE", "DEV_READ", "DEV_WRITE" },
- sources = { "usart_cb.c" },
- },
- {
- name = "nutdev_usart",
- brief = "USART Driver Framework",
- description = "Generic USART driver framework.",
- requires = { "CRT_HEAPMEM", "DEV_UART_SPECIFIC" },
- provides = { "DEV_UART_GENERIC", "DEV_FILE", "DEV_READ", "DEV_WRITE" },
- sources = { "usart.c" },
- options =
- {
- {
- macro = "UART0_RXTX_ONLY",
- brief = "USART0 Receive/Transmit Only",
- description = "When selected, the driver will not use any built-in hardware handshake.\n\n"..
- "Select this option, if you want to use hardware handshake via GPIO or if "..
- "the target specific UART0 driver doesn't support built-in hardware handshake.",
- flavor = "boolean",
- exclusivity = { "UART0_RXTX_ONLY", "UART0_HARDWARE_HANDSHAKE", "UART0_MODEM_CONTROL" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART0_HARDWARE_HANDSHAKE",
- brief = "USART0 Hardware Handshake",
- description = "When selected, the driver will support built-in RTS/CTS hardware handshake. "..
- "This includes half duplex mode, using RTS for direction control.\n\n"..
- "Make sure, that the related peripheral pins are available.\n\n"..
- "Do not select this option if you want to use hardware handshake "..
- "via GPIO pins.",
- flavor = "boolean",
- exclusivity = { "UART0_RXTX_ONLY", "UART0_HARDWARE_HANDSHAKE", "UART0_MODEM_CONTROL" },
- requires = { "HW_UART0_RTSCTS" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART0_MODEM_CONTROL",
- brief = "USART0 Full Modem Control",
- description = "When selected, the driver will support built-in full modem control. "..
- "This includes RTS/CTS handshake and half duplex mode.\n\n"..
- "Make sure, that all related peripheral pins are available.\n\n"..
- "Do not select this option if you want to use modem control "..
- "via GPIO pins.",
- flavor = "boolean",
- exclusivity = { "UART0_RXTX_ONLY", "UART0_HARDWARE_HANDSHAKE", "UART0_MODEM_CONTROL" },
- requires = { "HW_UART0_MODEM" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART0_INIT_BAUDRATE",
- brief = "USART0 Initial Baudrate",
- description = "Default is 115200. Currently supported on the AT91 driver only.",
- requires = { "HW_MCU_AT91" },
- flavor = "integer",
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART0_RTS_BIT",
- brief = "USART0 RTS Port Bit",
- description = "Port bit used for RTS handshake output. If enabled, "..
- "the driver provides RTS transmit handshake via GPIO.\n\n"..
- "Do not activate this option if you want to use the "..
- "UART's built-in hardware handshake.",
- provides = { "UART0_RTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "booldata",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_RTS_PIO_ID",
- brief = "USART0 RTS Port",
- description = "ID of the port used for RTS handshake output.",
- requires = { "UART0_RTS_BIT", "DEV_UART0_GPIO_RTS" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_RTS_AVRPORT",
- brief = "USART0 RTS Port (AVR)",
- description = "AVR port register name of UART0 RTS handshake output.",
- requires = { "UART0_RTS_BIT", "HW_UART_AVR" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART0_RTS_FLIP_BIT",
- brief = "USART0 RTS Bit Inverted",
- description = "If enabled, the RTS output will be inverted.",
- requires = { "UART0_RTS_BIT", "DEV_UART0_GPIO_RTS" },
- flavor = "boolean",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_CTS_BIT",
- brief = "USART0 CTS Port Bit",
- description = "Port bit used for CTS handshake input. If enabled, "..
- "the driver provides CTS transmit handshake via GPIO.\n\n"..
- "Do not activate this option if you want to use the "..
- "UART's built-in hardware handshake.",
- requires = { "DEV_UART0_GPIO_CTS" },
- provides = { "UART0_CTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "booldata",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_CTS_PIO_ID",
- brief = "USART0 CTS Port",
- description = "ID of the port used for CTS handshake output.",
- requires = { "UART0_CTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_CTS_IRQ",
- brief = "USART0 CTS Interrupt (AVR)",
- description = "AVR interrupt number of UART0 CTS handshake input. If enabled, "..
- "the driver provides RS 232 output hardware handshake.\n\n",
- requires = { "HW_UART_AVR" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_irq_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART0_DTR_BIT",
- brief = "USART0 DTR Bit (AVR)",
- description = "Bit number of UART0 DTR handshake output. If enabled, "..
- "the driver provides RS 232 output hardware handshake.\n\n",
- requires = { "HW_UART_AVR" },
- provides = { "UART0_DTR_BIT" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_bit_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART0_DTR_AVRPORT",
- brief = "USART0 DTR Port (AVR)",
- description = "Port register name of UART0 DTR handshake output.",
- requires = { "UART0_DTR_BIT" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART0_HDX_BIT",
- brief = "USART0 Half Duplex Bit",
- description = "Bit number of UART0 half duplex control output. If enabled, "..
- "the driver provides RS-485 half duplex mode control via GPIO."..
- "Do not activate this option if you want to use the "..
- "UART's built-in hardware handshake.",
- provides = { "UART0_HDX_BIT" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_bit_choice,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_HDX_PIO_ID",
- brief = "USART0 Half Duplex Port",
- description = "ID of the port used for UART0 half duplex control output.",
- requires = { "UART0_HDX_BIT", "DEV_UART0_GPIO_HDX" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART0_HDX_AVRPORT",
- brief = "USART0 Half Duplex Port (AVR)",
- description = "AVR port register name of UART0 half duplex control output.",
- requires = { "UART0_HDX_BIT", "HW_UART_AVR" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART0_HDX_FLIP_BIT",
- brief = "USART0 Half Duplex Bit Inverted",
- description = "If enabled, the half duplex control output will be inverted.",
- requires = { "UART0_HDX_BIT", "DEV_UART0_GPIO_HDX" },
- flavor = "boolean",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_RXTX_ONLY",
- brief = "USART1 Receive/Transmit Only",
- description = "When selected, the driver will not use any built-in hardware handshake.\n\n"..
- "Select this option, if you want to use hardware handshake via GPIO or if "..
- "the target specific UART1 driver doesn't support built-in hardware handshake.",
- flavor = "boolean",
- exclusivity = { "UART1_RXTX_ONLY", "UART1_HARDWARE_HANDSHAKE", "UART1_MODEM_CONTROL" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART1_HARDWARE_HANDSHAKE",
- brief = "USART1 Hardware Handshake",
- description = "When selected, the driver will support built-in RTS/CTS hardware handshake. "..
- "This includes half duplex mode, using RTS for direction control.\n\n"..
- "Make sure, that the related peripheral pins are available.\n\n"..
- "Do not select this option if you want to use hardware handshake "..
- "via GPIO pins.",
- flavor = "boolean",
- exclusivity = { "UART1_RXTX_ONLY", "UART1_HARDWARE_HANDSHAKE", "UART1_MODEM_CONTROL" },
- requires = { "HW_UART1_RTSCTS" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART1_MODEM_CONTROL",
- brief = "USART1 Full Modem Control",
- description = "When selected, the driver will support built-in full modem control. "..
- "This includes RTS/CTS handshake and half duplex mode.\n\n"..
- "Make sure, that all related peripheral pins are available.\n\n"..
- "Do not select this option if you want to use modem control "..
- "via GPIO pins.",
- flavor = "boolean",
- exclusivity = { "UART1_RXTX_ONLY", "UART1_HARDWARE_HANDSHAKE", "UART1_MODEM_CONTROL" },
- requires = { "HW_UART1_MODEM" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART1_INIT_BAUDRATE",
- brief = "USART1 Initial Baudrate",
- description = "Default is 115200. Currently supported on the AT91 driver only.",
- requires = { "HW_MCU_AT91" },
- flavor = "integer",
- file = "include/cfg/uart.h"
- },
- {
- macro = "UART1_RTS_BIT",
- brief = "USART1 RTS Port Bit",
- description = "Port bit used for RTS handshake output. If enabled, "..
- "the driver provides RTS transmit handshake via GPIO.\n\n"..
- "Do not activate this option if you want to use the "..
- "UART's built-in hardware handshake.",
- provides = { "UART1_RTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "booldata",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_RTS_PIO_ID",
- brief = "USART1 RTS Port",
- description = "ID of the port used for RTS handshake output.",
- requires = { "UART1_RTS_BIT", "DEV_UART1_GPIO_RTS" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_RTS_AVRPORT",
- brief = "USART1 RTS Port (AVR)",
- description = "AVR port register name of UART1 RTS handshake output.",
- requires = { "UART1_RTS_BIT", "HW_UART_AVR" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART1_RTS_FLIP_BIT",
- brief = "USART1 RTS Bit Inverted",
- description = "If enabled, the RTS output will be inverted.",
- requires = { "UART1_RTS_BIT", "DEV_UART1_GPIO_RTS" },
- flavor = "boolean",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_CTS_BIT",
- brief = "USART1 CTS Port Bit",
- description = "Port bit used for CTS handshake input. If enabled, "..
- "the driver provides CTS transmit handshake via GPIO.\n\n"..
- "Do not activate this option if you want to use the "..
- "UART's built-in hardware handshake.",
- requires = { "DEV_UART1_GPIO_CTS" },
- provides = { "UART1_CTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "booldata",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_CTS_PIO_ID",
- brief = "USART1 CTS Port",
- description = "ID of the port used for CTS handshake output.",
- requires = { "UART1_CTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_CTS_IRQ",
- brief = "USART1 CTS Interrupt (AVR)",
- description = "AVR interrupt number of UART1 CTS handshake input. If enabled, "..
- "the driver provides RS 232 output hardware handshake.\n\n",
- requires = { "HW_UART_AVR" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_irq_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART1_DTR_BIT",
- brief = "USART1 DTR Bit (AVR)",
- description = "Bit number of UART1 DTR handshake output. If enabled, "..
- "the driver provides RS 232 output hardware handshake.\n\n",
- requires = { "HW_UART_AVR" },
- provides = { "UART1_DTR_BIT" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_bit_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART1_DTR_AVRPORT",
- brief = "USART1 DTR Port (AVR)",
- description = "Port register name of UART1 DTR handshake output.",
- requires = { "UART1_DTR_BIT" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART1_HDX_BIT",
- brief = "USART1 Half Duplex Bit",
- description = "Bit number of UART1 half duplex control output. If enabled, "..
- "the driver provides RS-485 half duplex mode control via GPIO."..
- "Do not activate this option if you want to use the "..
- "UART's built-in hardware handshake.",
- provides = { "UART1_HDX_BIT" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_bit_choice,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_HDX_PIO_ID",
- brief = "USART1 Half Duplex Port",
- description = "ID of the port used for UART1 half duplex control output.",
- requires = { "UART1_HDX_BIT", "DEV_UART1_GPIO_HDX" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UART1_HDX_AVRPORT",
- brief = "USART1 Half Duplex Port (AVR)",
- description = "AVR port register name of UART1 half duplex control output.",
- requires = { "UART1_HDX_BIT", "HW_UART_AVR" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "UART1_HDX_FLIP_BIT",
- brief = "USART1 Half Duplex Bit Inverted",
- description = "If enabled, the half duplex control output will be inverted.",
- requires = { "UART1_HDX_BIT", "DEV_UART1_GPIO_HDX" },
- flavor = "boolean",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_RXTX_ONLY",
- brief = "DBGU Receive/Transmit Only",
- description = "When selected, the driver will not use any built-in hardware handshake.\n\n"..
- "Select this option, if you want to use hardware handshake via GPIO.\n\n"..
- "The DBGU unit does not support any other way of handshake.",
- flavor = "boolean",
- -- exclusivity = { "UARTD_RXTX_ONLY", "UARTD_HARDWARE_HANDSHAKE", "UARTD_MODEM_CONTROL" },
- file = "include/cfg/uart.h"
- },
- {
- macro = "UARTD_INIT_BAUDRATE",
- brief = "DBGU Initial Baudrate",
- description = "Default is 115200. Currently supported on the AT91 driver only.",
- requires = { "HW_MCU_AT91" },
- flavor = "integer",
- file = "include/cfg/uart.h"
- },
- {
- macro = "UARTD_RTS_BIT",
- brief = "DBGU RTS Port Bit",
- description = "Port bit used for RTS handshake output. If enabled, "..
- "the driver provides RTS transmit handshake via GPIO.",
- provides = { "UARTD_RTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "booldata",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_RTS_PIO_ID",
- brief = "DBGU RTS Port",
- description = "ID of the port used for RTS handshake output.",
- requires = { "UARTD_RTS_BIT", "DEV_UARTD_GPIO_RTS" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_RTS_FLIP_BIT",
- brief = "DBGU RTS Bit Inverted",
- description = "If enabled, the RTS output will be inverted.",
- requires = { "UARTD_RTS_BIT", "DEV_UARTD_GPIO_RTS" },
- flavor = "boolean",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_CTS_BIT",
- brief = "DBGU CTS Port Bit",
- description = "Port bit used for CTS handshake input. If enabled, "..
- "the driver provides CTS transmit handshake via GPIO.\n\n"..
- "Select this option, if you want to use hardware handshake via GPIO.\n\n"..
- "The DBGU unit does not support any other way of handshake.",
- requires = { "DEV_UARTD_GPIO_CTS" },
- provides = { "UARTD_CTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "booldata",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_CTS_PIO_ID",
- brief = "DBGU CTS Port",
- description = "ID of the port used for CTS handshake output.",
- requires = { "UARTD_CTS_BIT" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_HDX_BIT",
- brief = "DBGU Half Duplex Bit",
- description = "Bit number of UART0 half duplex control output. If enabled, "..
- "the driver provides RS-485 half duplex mode control via GPIO."..
- "Select this option, if you want to use software half-duplex.\n\n"..
- "The DBGU unit does not support any other way.",
- provides = { "UARTD_HDX_BIT" },
- flavor = "booldata",
- type = "enumerated",
- choices = avr_bit_choice,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_HDX_PIO_ID",
- brief = "DBGU Half Duplex Port",
- description = "ID of the port used for UART0 half duplex control output.",
- requires = { "UARTD_HDX_BIT", "DEV_UARTD_GPIO_HDX" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "UARTD_HDX_FLIP_BIT",
- brief = "DBGU Half Duplex Bit Inverted",
- description = "If enabled, the half duplex control output will be inverted.",
- requires = { "UARTD_HDX_BIT", "DEV_UARTD_GPIO_HDX" },
- flavor = "boolean",
- file = function() return GetGpioHeaderPath() end
- },
- }
- },
- {
- name = "nutdev_chat",
- brief = "UART Chat",
- description = "Executes a conversational exchange with a serial device."..
- "Typically used for modem dial commands and login scripts.",
- requires = { "CRT_HEAPMEM", "DEV_UART", "NUT_TIMER" },
- provides = { "UART_CHAT" },
- sources = { "chat.c" },
- options =
- {
- {
- macro = "CHAT_MAX_ABORTS",
- brief = "Max. Number of Aborts",
- description = "Default is 10.",
- file = "include/cfg/chat.h"
- },
- {
- macro = "CHAT_MAX_REPORT_SIZE",
- brief = "Max. Size of Reports",
- description = "Default is 32",
- file = "include/cfg/chat.h"
- },
- {
- macro = "CHAT_DEFAULT_TIMEOUT",
- brief = "Default Timeout",
- description = "Specify the number of seconds. "..
- "Default is 45",
- file = "include/cfg/chat.h"
- },
- {
- macro = "NUTDEBUG_CHAT",
- brief = "Debug Output",
- flavor = "boolean",
- description = "Enables debug output.\n\n"..
- "Applications must call NutTraceChat() to activate it.",
- file = "include/cfg/chat.h"
- }
- }
- },
- {
- name = "nutdev_term",
- brief = "Terminal Emulation",
- requires = { "CRT_HEAPMEM" },
- sources = { "term.c" }
- },
- {
- name = "nutdev_circbuf",
- brief = "Circular Buffers",
- requires = { "TOOL_GCC" },
- provides = { "DEV_CIRCBUF" },
- sources = { "circbuff.c" }
- },
- {
- name = "nutdev_netbuf",
- brief = "Network Buffers",
- provides = { "DEV_NETBUF" },
- sources = { "netbuf.c" }
- },
- {
- name = "nutdev_can",
- brief = "CAN Driver Framework",
- description = "Generic CAN driver framework.",
- requires = { "DEV_CAN_SPECIFIC" },
- provides = { "DEV_CAN_GENERIC"},
- sources = { "can_dev.c" },
- },
- {
- name = "nutdev_canbus",
- brief = "CANBUS Driver Framework",
- description = "Generic CANBUS driver framework.",
- requires = { "DEV_CANBUS" },
- options =
- {
- {
- macro = "DEV_CANBUS",
- brief = "CANBUS Driver",
- description = "Enable use of the CANBUS drivers",
- requires = { "DEV_CANBUS" },
- type = "integer",
- default = 1,
- file = "include/cfg/can_dev.h"
- },
- }
- },
- {
- name = "nutdev_nvmem",
- brief = "Non Volatile Memory",
- description = "The Nut/OS API provides routines for platform independent access "..
- "to non-volatile memory. A part of this memory is used by the system "..
- "to store global settings like the host name or network parameters, "..
- "while the remaining part is available for application settings.",
- sources = { "nvmem.c" },
- options =
- {
- {
- macro = "NUT_CONFIG_AT45D",
- brief = "Atmel AT45D DataFlash",
- description = "If enabled, the Atmel AT45D DataFlash is used for non-volatile memory."..
- "Additionally specify the chip index as 0 for the first, 1 for the second etc.\n\n"..
- "For the AVR family the on-chip EEPROM is used by default.",
- provides = { "DEV_NVMEM", "DEV_NVMEM_AT45D" },
- flavor = "booldata",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- default = "0",
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT45DB",
- brief = "Atmel AT45DB DataFlash",
- description = "Deprecated, uses old SPI routines.",
- provides = { "DEV_NVMEM", "DEV_NVMEM_AT45DB" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT49BV",
- brief = "Atmel AT49BV NOR Flash",
- description = "If enabled, Nut/OS and Nut/Net configurations will "..
- "be stored in this chip.",
- provides = { "DEV_NVMEM", "DEV_NVMEM_NORFLASH" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT91EFC",
- brief = "AT91 On-Chip Flash",
- description = "If enabled, Nut/OS and Nut/Net configurations will "..
- "be stored in on-chip flash memory.",
- requires = { "HW_EFC_AT91" },
- provides = { "DEV_NVMEM", "DEV_NVMEM_NORFLASH" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_STM32_IAP",
- brief = "STM32 On-Chip Flash",
- description = "If enabled, Nut/OS and Nut/Net configurations will "..
- "be stored in last sector of on-chip flash memory.",
- requires = { "HW_FLASH_STM32" },
- provides = { "DEV_NVMEM", "DEV_NVMEM_NORFLASH" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_STM32L1_EEPROM",
- brief = "STM32L1 On-Chip EEPROM",
- description = "If enabled, Nut/OS and Nut/Net configurations will "..
- "be stored in on-chip eeprom memory.",
- requires = { "HW_EEPROM_STM32L1" },
- provides = { "DEV_NVMEM" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_LPC177x_8x_EEPROM",
- brief = "LPC177x_8x On-Chip EEPROM",
- description = "If enabled, Nut/OS and Nut/Net configurations will "..
- "be stored in on-chip eeprom memory.",
- requires = { "HW_EEPROM_LPC177x_8x" },
- provides = { "DEV_NVMEM" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_LPC17xx_IAP",
- brief = "LPC17xx On-Chip Flash",
- description = "If enabled, Nut/OS and Nut/Net configurations will "..
- "be stored in on-chip flash memory.",
- requires = { "HW_FLASH_LPC17xx" },
- provides = { "DEV_NVMEM", "DEV_NVMEM_NORFLASH" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_X12RTC",
- brief = "Intersil X12x6 EEPROM",
- description = "If enabled, the EEPROM on the Intersil X1226/X1286 chip is used for non-volatile memory.",
- provides = { "DEV_NVMEM" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT24",
- brief = "Standard EEPROM",
- description = "If enabled, a standard EEPROM chip is used for non-volatile memory.",
- provides = { "DEV_NVMEM", "DEV_NVMEM_I2C" },
- flavor = "boolean",
- exclusivity =
- {
- "NUT_CONFIG_AT24",
- "NUT_CONFIG_X12RTC",
- "NUT_CONFIG_AT45D",
- "NUT_CONFIG_AT45DB",
- "NUT_CONFIG_AT49BV",
- "NUT_CONFIG_AT91EFC",
- "NUT_CONFIG_STM32_IAP",
- "NUT_CONFIG_STM32L1_EEPROM",
- "NUT_CONFIG_LPC177x_8x_EEPROM",
- "NUT_CONFIG_LPC17xx_IAP"
- },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT24_ADR",
- brief = "EEPROM Bus address",
- description = "Address of the EEPROM on the I2C Bus.",
- requires = { "DEV_NVMEM_I2C" },
- default = "0x50",
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT45D_CS",
- brief = "AT45D Chip Select",
- description = "Chip select number.",
- requires = { "DEV_NVMEM_AT45D" },
- default = "0",
- type = "enumerated",
- choices = { "0", "1", "2", "3" },
- file = "include/cfg/eeprom.h"
- },
- {
- macro = "NUT_CONFIG_AT45D_PAGE",
- brief = "AT45D Start Page",
- description = "First page used by the configuration data area. "..
- "By default the last page will be used.",
- requires = { "DEV_NVMEM_AT45D" },
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "NUT_CONFIG_AT45D_SIZE",
- brief = "AT45D Area Size",
- description = "Size of the configuration data area."..
- "By default one full page will be used.",
- requires = { "DEV_NVMEM_AT45D" },
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "AT45_CONF_SIZE",
- brief = "Configuration Area Size",
- description = "During write operations a buffer with this size is allocated "..
- "from heap and may cause memory problems with large sectors. "..
- "Thus, this value may be less than the size of the configuration "..
- "sector, in which case the rest of the sector is unused.",
- requires = { "DEV_NVMEM_AT45DB" },
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_CONF_SECTOR",
- brief = "Flash Sector Address",
- description = "Address of the sector used for configuration data.\n\n"..
- "Specify the relative memory address, e.g. 0x0000 for the first sector.",
- requires = { "DEV_NVMEM_NORFLASH" },
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_CONF_SIZE",
- brief = "Configuration Area Size",
- description = "During write operations a buffer with this size is allocated "..
- "from heap and may cause memory problems with large sectors. "..
- "Thus, this value may be less than the size of the configuration "..
- "sector, in which case the rest of the sector is unused.",
- requires = { "DEV_NVMEM_NORFLASH" },
- default = "256",
- flavor = "integer",
- file = "include/cfg/memory.h"
- },
- }
- },
- {
- name = "nutdev_reset",
- brief = "System Reset",
- sources = { "reset.c" },
- },
- {
- name = "nutdev_watchdog",
- brief = "Watchdog Timer",
- description = "Platform independent watchdog API.\n\n"..
- "The watchdog timer prevents system lock-up.",
- sources = { "watchdog.c" },
- options =
- {
- {
- macro = "NUT_WDT_START",
- brief = "Start Value",
- description = "If enabled, the watchdog timer will be started during system "..
- "initialization with the specified register value.\n\n"..
- "On some systems, e.g. the AT91SAM7, the watchdog timer is "..
- "enabled by default. If the start value is zero, the watchdog "..
- "register is not touched. If this option is disabled, the "..
- "watchdog timer will be disabled during system initialization. "..
- "It is typically not possible to re-enable the watchdog timer.\n\n"..
- "Note, that this setting is optional and may not be available "..
- "for all targets.",
- requires = { "HW_GPIO" },
- flavor = "booldata",
- file = "include/cfg/clock.h"
- }
- }
- },
- --
- -- Simple Interface Drivers.
- --
- {
- name = "nutdev_sbbif0",
- brief = "Serial Bit Banged Interface 0",
- description = "Software SPI0, master mode only.",
- provides = { "DEV_SPI" },
- requires = { "HW_GPIO" },
- sources = {
- "sbbif0.c",
- "spibus_gpio.c",
- "spibus0gpio.c"
- },
- options =
- {
- {
- macro = "SBBI0_SCK_PORT",
- brief = "SCK Port",
- description = "ID of the port used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_SCK_BIT",
- brief = "SCK Port Bit",
- description = "Port bit used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_MOSI_PORT",
- brief = "MOSI Port",
- description = "ID of the port used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_MOSI_BIT",
- brief = "MOSI Port Bit",
- description = "Port bit used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_MISO_PORT",
- brief = "MISO Port",
- description = "ID of the port used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_MISO_BIT",
- brief = "MISO Port Bit",
- description = "Port bit used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS0_PORT",
- brief = "CS0 Port",
- description = "ID of the port used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS0_BIT",
- brief = "CS0 Port Bit",
- description = "Port bit used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS1_PORT",
- brief = "CS1 Port",
- description = "ID of the port used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS1_BIT",
- brief = "CS1 Port Bit",
- description = "Port bit used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS2_PORT",
- brief = "CS2 Port",
- description = "ID of the port used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS2_BIT",
- brief = "CS2 Port Bit",
- description = "Port bit used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS3_PORT",
- brief = "CS3 Port",
- description = "ID of the port used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_CS3_BIT",
- brief = "CS3 Port Bit",
- description = "Port bit used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST0_PORT",
- brief = "RESET0 Port",
- description = "ID of the port used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST0_BIT",
- brief = "RESET0 Port Bit",
- description = "Port bit used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST1_PORT",
- brief = "RESET1 Port",
- description = "ID of the port used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST1_BIT",
- brief = "RESET1 Port Bit",
- description = "Port bit used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST2_PORT",
- brief = "RESET2 Port",
- description = "ID of the port used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST2_BIT",
- brief = "RESET2 Port Bit",
- description = "Port bit used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST3_PORT",
- brief = "RESET3 Port",
- description = "ID of the port used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI0_RST3_BIT",
- brief = "RESET3 Port Bit",
- description = "Port bit used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- },
- },
- {
- name = "nutdev_sbbif1",
- brief = "Serial Bit Banged Interface 1",
- description = "Software SPI1, master mode only.",
- provides = { "DEV_SPI" },
- requires = { "HW_GPIO" },
- options =
- {
- {
- macro = "SBBI1_SCK_PORT",
- brief = "SCK Port",
- description = "ID of the port used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_SCK_BIT",
- brief = "SCK Port Bit",
- description = "Port bit used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_MOSI_PORT",
- brief = "MOSI Port",
- description = "ID of the port used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_MOSI_BIT",
- brief = "MOSI Port Bit",
- description = "Port bit used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_MISO_PORT",
- brief = "MISO Port",
- description = "ID of the port used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_MISO_BIT",
- brief = "MISO Port Bit",
- description = "Port bit used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS0_PORT",
- brief = "CS0 Port",
- description = "ID of the port used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS0_BIT",
- brief = "CS0 Port Bit",
- description = "Port bit used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS1_PORT",
- brief = "CS1 Port",
- description = "ID of the port used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS1_BIT",
- brief = "CS1 Port Bit",
- description = "Port bit used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS2_PORT",
- brief = "CS2 Port",
- description = "ID of the port used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS2_BIT",
- brief = "CS2 Port Bit",
- description = "Port bit used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS3_PORT",
- brief = "CS3 Port",
- description = "ID of the port used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_CS3_BIT",
- brief = "CS3 Port Bit",
- description = "Port bit used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST0_PORT",
- brief = "RESET0 Port",
- description = "ID of the port used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST0_BIT",
- brief = "RESET0 Port Bit",
- description = "Port bit used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST1_PORT",
- brief = "RESET1 Port",
- description = "ID of the port used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST1_BIT",
- brief = "RESET1 Port Bit",
- description = "Port bit used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST2_PORT",
- brief = "RESET2 Port",
- description = "ID of the port used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST2_BIT",
- brief = "RESET2 Port Bit",
- description = "Port bit used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST3_PORT",
- brief = "RESET3 Port",
- description = "ID of the port used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI1_RST3_BIT",
- brief = "RESET3 Port Bit",
- description = "Port bit used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- },
- },
- {
- name = "nutdev_sbbif2",
- brief = "Serial Bit Banged Interface 2",
- description = "Software SPI2, master mode only.",
- provides = { "DEV_SPI" },
- requires = { "HW_GPIO" },
- options =
- {
- {
- macro = "SBBI2_SCK_PORT",
- brief = "SCK Port",
- description = "ID of the port used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_SCK_BIT",
- brief = "SCK Port Bit",
- description = "Port bit used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_MOSI_PORT",
- brief = "MOSI Port",
- description = "ID of the port used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_MOSI_BIT",
- brief = "MOSI Port Bit",
- description = "Port bit used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_MISO_PORT",
- brief = "MISO Port",
- description = "ID of the port used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_MISO_BIT",
- brief = "MISO Port Bit",
- description = "Port bit used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS0_PORT",
- brief = "CS0 Port",
- description = "ID of the port used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS0_BIT",
- brief = "CS0 Port Bit",
- description = "Port bit used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS1_PORT",
- brief = "CS1 Port",
- description = "ID of the port used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS1_BIT",
- brief = "CS1 Port Bit",
- description = "Port bit used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS2_PORT",
- brief = "CS2 Port",
- description = "ID of the port used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS2_BIT",
- brief = "CS2 Port Bit",
- description = "Port bit used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS3_PORT",
- brief = "CS3 Port",
- description = "ID of the port used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_CS3_BIT",
- brief = "CS3 Port Bit",
- description = "Port bit used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST0_PORT",
- brief = "RESET0 Port",
- description = "ID of the port used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST0_BIT",
- brief = "RESET0 Port Bit",
- description = "Port bit used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST1_PORT",
- brief = "RESET1 Port",
- description = "ID of the port used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST1_BIT",
- brief = "RESET1 Port Bit",
- description = "Port bit used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST2_PORT",
- brief = "RESET2 Port",
- description = "ID of the port used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST2_BIT",
- brief = "RESET2 Port Bit",
- description = "Port bit used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST3_PORT",
- brief = "RESET3 Port",
- description = "ID of the port used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI2_RST3_BIT",
- brief = "RESET3 Port Bit",
- description = "Port bit used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- },
- },
- {
- name = "nutdev_sbbif3",
- brief = "Serial Bit Banged Interface 3",
- description = "Software SPI3, master mode only.",
- provides = { "DEV_SPI" },
- requires = { "HW_GPIO" },
- options =
- {
- {
- macro = "SBBI3_SCK_PORT",
- brief = "SCK Port",
- description = "ID of the port used for SPI clock.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_SCK_BIT",
- brief = "SCK Port Bit",
- description = "Port bit used for SPI clock.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_MOSI_PORT",
- brief = "MOSI Port",
- description = "ID of the port used for SPI data output.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_MOSI_BIT",
- brief = "MOSI Port Bit",
- description = "Port bit used for SPI data output.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_MISO_PORT",
- brief = "MISO Port",
- description = "ID of the port used for SPI data input.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_MISO_BIT",
- brief = "MISO Port Bit",
- description = "Port bit used for SPI data input.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS0_PORT",
- brief = "CS0 Port",
- description = "ID of the port used for SPI chip select 0.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS0_BIT",
- brief = "CS0 Port Bit",
- description = "Port bit used for SPI chip select 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS1_PORT",
- brief = "CS1 Port",
- description = "ID of the port used for SPI chip select 1.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS1_BIT",
- brief = "CS1 Port Bit",
- description = "Port bit used for SPI chip select 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS2_PORT",
- brief = "CS2 Port",
- description = "ID of the port used for SPI chip select 2.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS2_BIT",
- brief = "CS2 Port Bit",
- description = "Port bit used for SPI chip select 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS3_PORT",
- brief = "CS3 Port",
- description = "ID of the port used for SPI chip select 3.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_CS3_BIT",
- brief = "CS3 Port Bit",
- description = "Port bit used for SPI chip select 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST0_PORT",
- brief = "RESET0 Port",
- description = "ID of the port used for SPI chip reset 0.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST0_BIT",
- brief = "RESET0 Port Bit",
- description = "Port bit used for SPI chip reset 0.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST1_PORT",
- brief = "RESET1 Port",
- description = "ID of the port used for SPI chip reset 1.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST1_BIT",
- brief = "RESET1 Port Bit",
- description = "Port bit used for SPI chip reset 1.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST2_PORT",
- brief = "RESET2 Port",
- description = "ID of the port used for SPI chip reset 2.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST2_BIT",
- brief = "RESET2 Port Bit",
- description = "Port bit used for SPI chip reset 2.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST3_PORT",
- brief = "RESET3 Port",
- description = "ID of the port used for SPI chip reset 3.",
- type = "enumerated",
- choices = avr_port_choice,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "SBBI3_RST3_BIT",
- brief = "RESET3 Port Bit",
- description = "Port bit used for SPI chip reset 3.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- },
- },
- {
- name = "nutdev_spibus_npl",
- brief = "NPL SPI Bus Controller",
- description = "Programmable logic SPI bus master controller.",
- requires = { "DEV_PLL" },
- provides = { "SPIBUS_CONTROLLER" },
- sources = { "spibus_npl.c" }
- },
- {
- name = "nutdev_twbbif",
- brief = "Bit Banging Two Wire",
- description = "Tested on AT91 only.",
- requires = { "HW_MCU_SWTWI" },
- provides = { "DEV_TWI" },
- sources = { "twbbif.c" },
- options =
- {
- {
- macro = "TWI_PIO_ID",
- brief = "GPIO ID (AT91)",
- description = "Data and clock line must be connected to the same GPIO port.",
- type = "enumerated",
- choices = at91_pio_id_choice,
- flavor = "integer",
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "TWI_SDA_BIT",
- brief = "GPIO Data Bit (AT91)",
- description = "Port bit number of the TWI data line.",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "TWI_SCL_BIT",
- brief = "GPIO Clock Bit (AT91)",
- description = "Port bit number of the TWI clock line.\n",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "TWI_DELAY",
- brief = "Delay Loops",
- description = "The number of dummy loops executed after falling and raising clock.",
- default = "16",
- flavor = "integer",
- file = "include/cfg/twi.h"
- },
- },
- },
- {
- name = "nutdev_i2cbus0gpio",
- brief = "Bit Banging I2C bus driver 0",
- description = "Tested on STM32 only.",
- provides = { "I2CBUS_CONTROLLER" },
- sources = { "i2cbus0gpio.c" },
- options =
- {
- {
- macro = "GPIO0_SDA_PORT",
- brief = "GPIO SDA Port",
- type = "enumerated",
- description = "Port of the GPIO0 SDA line.",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = "include/cfg/twi.h"
- },
- {
- macro = "GPIO0_SDA_PIN",
- brief = "GPIO SDA Pin",
- description = "Pin of the GPIO0 SDA line.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- file = "include/cfg/twi.h"
- },
- {
- macro = "GPIO0_SCL_PORT",
- brief = "GPIO SCL Port",
- type = "enumerated",
- description = "Port of the GPIO0 SCL line.",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = "include/cfg/twi.h"
- },
- {
- macro = "GPIO0_SCL_PIN",
- brief = "GPIO SCL Pin",
- description = "Pin of the GPIO0 SCL line.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- file = "include/cfg/twi.h"
- },
- },
- },
- {
- name = "nutdev_owibus0gpio",
- brief = "Bit Banging OWI bus driver 0",
- requires = { "HW_GPIO"},
- provides = { "OWIBUS_CONTROLLER" },
- sources = { "owibus0gpio.c"},
- options =
- {
- {
- macro = "OWI0_PIN",
- brief = "OWI0 PIN",
- description = "Port bit used for OWI Bus 0.",
- provides = { "OWI0_PIN" },
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "OWI0_PORT",
- brief = "OWI0 Port",
- description = "Port used for OWI Bus 0.",
- requries = { "OWI0_PIN" },
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- }
- },
- {
- name = "nutdev_owibusuartif",
- brief = "Run Time configurable OWI bus driver using uart",
- -- requires = { "HW_UART"}, -- definition not yet provided
- provides = { "OWIBUS_CONTROLLER" },
- sources = { "owibus_uart.c", "owibus_uartif.c"},
- },
- {
- name = "nutdev_owibus0uart",
- brief = "Library compiled time configured OWI bus driver using uart",
- -- requires = { "HW_UART"}, -- definition not yet provided
- provides = { "OWIBUS_CONTROLLER" },
- sources = { "owibus_uart.c", "owibus0uart.c"},
- options =
- {
- {
- macro = "OWIBUS0_HALDUPLEX",
- brief = "OWIBUS0_HALDUPLEX",
- description = "Use RX connected internally to TX for OWI Bus 0."..
- "Hardware must supports this mode.",
- requries = { "HW_UART_OWIMODE" },
- flavor = "boolean",
- file = "include/cfg/owi.h",
- },
- }
- },
- --
- -- Character Device Drivers.
- --
- {
- name = "nutdev_null",
- brief = "Null",
- description = "This can be useful if your application might write unwanted "..
- "output to stdout. With this device you can redirect stdout "..
- "to the nullDev which discards any output.",
- sources = { "null.c" }
- },
- --
- -- Character Device Drivers.
- --
- {
- name = "nutdev_semihosting",
- brief = "Virtual Serial Device using ARM semihosting",
- description = "IO on virtual serial device using ARM semihosting. "..
- "Program will only run with debugger attached.",
- requires = { "ARM_SEMIHOSTING" };
- sources = { "semihosting.c" }
- },
- -- {
- -- name = "nutdev_sc16is752",
- -- brief = "SC16IS752 Dual USART",
- -- description = "TWI driver for SC16IS752 dual USART chip. "..
- -- "Currently SAM7X256 is tested only. "..
- -- "ICCAVR disabled due to compiler errors.",
- -- sources =
- -- {
- -- "usart0sc16is752.c",
- -- "usart1sc16is752.c",
- -- "usart2sc16is752.c",
- -- "usart3sc16is752.c",
- -- "usartsc16is752.c"
- -- },
- -- requires = { "DEV_TWI", "TOOL_GCC" },
- -- provides = { "DEV_UART_SPECIFIC" },
- -- },
- {
- name = "nutdev_hxcodec",
- brief = "Helix Audio Device",
- sources = { "hxcodec.c" },
- requires = { "AUDIO_DECODER_HELIX", "HW_AUDIO_DAC" },
- options =
- {
- {
- macro = "HXCODEC0_OUTPUT_BUFSIZ",
- brief = "Decoder Buffer Size",
- description = "Number of bytes for the decoder buffer.\n\n"..
- "If not specified, half of available data RAM is used, "..
- "up to a maximum of 16k.",
- flavor = "booldata",
- file = "include/cfg/audio.h"
- },
- {
- macro = "NUT_THREAD_HXCODEC0STACK",
- brief = "Thread Stack Size",
- description = "Number of bytes for the decoder thread.",
- flavor = "booldata",
- file = "include/cfg/audio.h"
- },
- {
- macro = "HXCODEC0_RESAMPLER",
- brief = "Resampler",
- description = "Enables the Hermite resampler.",
- flavor = "boolean",
- file = "include/cfg/audio.h"
- }
- }
- },
- {
- name = "nutdev_spi_mlcd",
- brief = "Mega LCD",
- description = "Currently a dummy without any function.",
- sources = { "spi_mlcd.c" },
- requires = { "SPIBUS_CONTROLLER", "HW_GPIO" },
- },
- {
- name = "nutdev_spi_lcd_st7565r",
- brief = "ST7565R / C12832A1Z LCD Controller framebuffer driver",
- description = "LCD framebuffer driver for LCD C12832A1Z with ST7565R controller."..
- "Such an LCD display is e.g. used on the MBED application board.",
- sources = { "spi_lcd_st7565r.c" },
- requires = { "SPIBUS_CONTROLLER", "HW_GPIO" },
- },
- {
- name = "nutdev_spi_vscodec0",
- brief = "VLSI Audio Codec",
- description = "Early release tested with VS1053B on SAM7SE.",
- sources = { "spi_vscodec.c", "spi_vscodec0.c" },
- requires = { "SPIBUS_CONTROLLER", "HW_GPIO" },
- options =
- {
- {
- macro = "AUDIO0_VSAUTO",
- brief = "Auto Detect",
- description = "Generates significantly more code. Untested.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1001K",
- brief = "VS1001K",
- description = "Untested.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1011E",
- brief = "VS1011E",
- description = "Untested.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1002D",
- brief = "VS1002D",
- description = "Untested.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1003B",
- brief = "VS1003B",
- description = "Untested.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1033C",
- brief = "VS1033C",
- description = "Untested.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1053B",
- brief = "VS1053B",
- description = "Tested with SAM7SE.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "AUDIO0_VS1063A",
- brief = "VS1063A",
- description = "Tested with SAM7SE.",
- flavor = "boolean",
- exclusivity =
- {
- "AUDIO0_VSAUTO",
- "AUDIO0_VS1001K",
- "AUDIO0_VS1011E",
- "AUDIO0_VS1002D",
- "AUDIO0_VS1003B",
- "AUDIO0_VS1033C",
- "AUDIO0_VS1053B",
- "AUDIO0_VS1063A"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC0_FREQ",
- brief = "Crystal Clock Frequency",
- description = "Frequency of the crystal clock in Hz.\n\n"..
- "Tested with default of 12,288 MHz only",
- default = "12288000",
- flavor = "booldata",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC0_SPI_MODE",
- brief = "SPI Mode",
- description = "SPI mode of command channel, 0 is default.",
- type = "integer",
- default = "0",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC0_SPI_RATE",
- brief = "SPI Bitrate",
- description = "Interface speed in bits per second, default is VSCODEC_FREQ/6.",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC0_XRESET_PORT",
- brief = "XRESET GPIO Port",
- description = "ID of the port used for VS10XX hardware reset.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_XRESET_BIT",
- brief = "XRESET GPIO Bit",
- description = "Port bit used for VS10XX hardware.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_SIGNAL_IRQ",
- brief = "Decoder Interrupt",
- description = "External interrupt line used for DREQ interrupt. "..
- "Must match DREQ port and bit settings.",
- type = "enumerated",
- choices = gpio_irq_choice,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_DREQ_PORT",
- brief = "DREQ GPIO Port",
- description = "ID of the port used for VS10XX DREQ.\n\n"..
- "Must correspond with the selected interrupt input.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_DREQ_BIT",
- brief = "DREQ GPIO Bit",
- description = "Port bit used for VS10XX DREQ.\n\n"..
- "Must correspond with the selected interrupt input.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_XCS_PORT",
- brief = "XCS GPIO Port",
- description = "ID of the port used for VS10XX XCS.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_XCS_BIT",
- brief = "XCS GPIO Bit",
- description = "Port bit used for VS10XX XCS.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_XDCS_PORT",
- brief = "XDCS GPIO Port",
- description = "ID of the port used for VS10XX XDCS.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_XDCS_BIT",
- brief = "XDCS GPIO Bit",
- description = "Port bit used for VS10XX XDCS.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_VSCS_PORT",
- brief = "VSCS GPIO Port",
- description = "ID of the port used for VS10XX general select.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_VSCS_BIT",
- brief = "VSCS GPIO Bit",
- description = "Port bit used for VS10XX general select.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_BSYNC_PORT",
- brief = "BSYNC GPIO Port",
- description = "Unsupported. ID of the port used for optional VS10XX BSYNC.",
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_BSYNC_BIT",
- brief = "BSYNC GPIO Bit",
- description = "Unsupported. Port bit used for optional VS10XX BSYNC.\n\n"..
- "Required for the VS1001. Other decoders are driven "..
- "in VS1001 mode, if this bit is defined. However, "..
- "it is recommended to use this option for the VS1001 "..
- "only and run newer chips in so called VS1002 native mode.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VSCODEC0_HWRST_DURATION",
- brief = "Hardware Reset Duration",
- description = "Minimum time in milliseconds to held hardware reset low.",
- default = "1",
- flavor = "integer",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC0_HWRST_RECOVER",
- brief = "Hardware Reset Recover",
- description = "Milliseconds to wait after hardware reset.",
- default = "0",
- flavor = "integer",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC_SWRST_RECOVER",
- brief = "Software Reset Recover",
- description = "Milliseconds to wait after software reset.",
- default = "0",
- flavor = "integer",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VSCODEC0_OUTPUT_BUFSIZ",
- brief = "Decoder Buffer Size",
- description = "Number of bytes for the decoder buffer.\n\n"..
- "If not specified, half of available data RAM is used, "..
- "up to a maximum of 16k.",
- flavor = "booldata",
- file = "include/cfg/audio.h"
- },
- {
- macro = "NUT_THREAD_VSCODEC0STACK",
- brief = "Thread Stack Size",
- description = "Number of bytes for the decoder thread.",
- flavor = "booldata",
- file = "include/cfg/audio.h"
- },
- },
- },
- {
- name = "nutdev_vscodec",
- brief = "VS10XX Audio Device",
- description = "Tested with VS1033 and VS1053 on a SAM7SE system. "..
- "Most options are currently hard coded.",
- sources = { "vscodec.c" },
- requires = { "NOT_AVAILABLE" },
- },
- --
- -- Ethernet Device Drivers.
- --
- {
- name = "nutdev_lan91",
- brief = "SMSC LAN91x Driver",
- description = "LAN driver for SMSC LAN91. Currently supports LAN91C111 only.",
- requires = { "NUT_EVENT", "NUT_TIMER", "HW_GPIOxx" },
- provides = { "NET_MAC" },
- sources = { "lan91.c" },
- options =
- {
- {
- macro = "LAN91_BASE_ADDR",
- brief = "Controller Base Address",
- description = "The driver supports memory mapped controllers only, using "..
- "the specified based address.\n\n"..
- "The Ethernut 2 reference design uses 0xC000.",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "LAN91_SIGNAL_IRQ",
- brief = "Interrupt",
- description = "Ethernet controller interrupt.",
- default = "INT5",
- type = "enumerated",
- choices = avr_irq_choice,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "LAN91_RESET_GPIO_BIT",
- brief = "Reset Bit",
- description = "Bit number of the Ethernet controller reset output.\n\n"..
- "Should be disabled when the LAN91 hardware reset "..
- "is not connected to a port pin.\n",
- provides = { "LAN91_RESET_BIT" },
- flavor = "booldata",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "LAN91_RESET_GPIO_BANK",
- brief = "Reset Port",
- description = "Port register name of the Ethernet controller reset output.",
- requires = { "LAN91_RESET_BIT" },
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- file = function() return GetGpioHeaderPath() end
- },
- }
- },
- {
- name = "nutdev_dm9000",
- brief = "Davicom DM9000 Driver",
- description = "LAN driver for Davicom DM9000A and DM9000E.",
- requires = { "NUT_EVENT", "NUT_TIMER" },
- provides = { "NET_MAC" },
- sources = { "dm9000.c" },
- options =
- {
- {
- macro = "DM9000_BASE_ADDR",
- brief = "Controller Base Address",
- description = "The driver supports memory mapped controllers only, using "..
- "the specified based address.\n\n"..
- "The Ethernut 3 reference design uses 0x20000000.\n"..
- "The ELEKTOR Internet Radio uses 0x30000000.\n",
- file = "include/cfg/memory.h"
- },
- {
- macro = "DM9000_SIGNAL_IRQ",
- brief = "Ethernet Interrupt",
- description = "Ethernet controller interrupt.",
- type = "enumerated",
- choices = avr_irq_choice,
- file = function() return GetGpioHeaderPath() end
- }
- }
- },
- {
- name = "nutdev_null_ether",
- brief = "Ethernet Null Device",
- description = "This virtual device discards all outgoing data and never delivers any "..
- "incoming data.\n\n"..
- "All targets without supported Ethernet hardware will use this driver "..
- "by default. The main purpose of this driver is to build network applications "..
- "without compiler and linker errors, even if no Ethernet hardware is available.",
- provides = { "NET_MAC" },
- sources = { "null_ether.c" },
- },
- {
- name = "nutnet_ether_phy",
- brief = "Ethernet PHYceiver",
- requires = { "NET_MAC" },
- provides = { "NET_PHY" },
- sources = { "phy.c" },
- options =
- {
- {
- macro = "NIC_PHY_TYPE",
- brief = "PHY Chip",
- description = "Select the Physical Layer Tranceiver (PHYter) for your board.\n\n"..
- "Commonly used chips and their IDs:\n"..
- "AUTO: Autodetect chip\n"..
- "AMD:\n"..
- "AM79C875: 0x00225540\n"..
- "DACOM\n"..
- "DM9161: 0x0181B880 (ATMEL EK)\n"..
- "DM9161A: 0x0181B8A0 (ATMEL EK)\n"..
- "DM9161B: 0x0181B8B0\n"..
- "DM9000: 0x0181B8C0 (EIR)\n"..
- "DM9000A: 0x0181B8A0\n"..
- "DM9000B: 0x0181B8B0\n"..
- "National Semiconductors\n"..
- "DP83838: 0x20005C90 (EVK1100, EVK1105)\n"..
- "DP83848: 0x20005CA0\n"..
- "Micrel\n"..
- "KS8721: 0x00221610 (Olimex SAM7-EX256)\n"..
- "KS8851: 0x00008870\n"..
- "STMicroelectronics\n"..
- "STE100P: 0x1C040010 (Hitex STM32-comStick)\n"..
- "SMSC\n"..
- "LAN8700: 0x0007C0C0\n"..
- "LAN8710: 0x0007C0F0\n"..
- "LAN8720: 0x0007C0F0\n"..
- "ANY: 0xFFFFFFFF (Disable PHY ID check - not recommended)",
- type = "enumerated",
- choices =
- {
- "AUTO",
- "AM79C875",
- "DM9161",
- "DM9161A",
- "DM9161B",
- "DM9000",
- "DM9000A",
- "DM9000B",
- "DP83838",
- "DP83848",
- "KS8721",
- "KS8851",
- "STE100P",
- "LAN8700",
- "LAN8710",
- "LAN8720",
- "ANY"
- },
- file = "include/cfg/phycfg.h"
- },
- {
- macro = "NIC_PHY_ADDR",
- brief = "PHY Address",
- description = "Default is 1 for EVK1100 and EVK1105.\n\n",
- flavor = "integer",
- file = "include/cfg/phycfg.h"
- },
- {
- macro = "NIC_PHY_UID",
- brief = "PHY ID",
- description = "Override ID for the PHY connected to the Ethernet MAC.\n"..
- "Pick the right ID out of the list of PHY chips or datasheet.\n"..
- "Normally this should be left blank.",
- flavor = "integer",
- file = "include/cfg/phycfg.h"
- },
- {
- macro = "PHY_MODE_RMII",
- brief = "PHY_MODE_RMII",
- description = "Use RMII mode for the phy, default is MII mode",
- flavor = "boolean",
- file = "include/cfg/phycfg.h"
- },
- }
- },
- --
- -- Block Device Drivers.
- --
- {
- name = "nutdev_blockdev",
- brief = "Block I/O",
- description = "Generic block I/O driver support routines.",
- sources = { "blockdev.c" }
- },
- {
- name = "nutdev_spi_at45d",
- brief = "AT45D DataFlash Block I/O",
- description = "Block I/O driver for up to four AT45D chips or cards.\n\n"..
- "This new driver is based on the device independent "..
- "bus interface and may replace older ones.\n\n"..
- "Tested with non-volatile memory routines and "..
- "the raw file system only. This early release will "..
- "definitely not work with the PHAT file system.",
- requires = { "SPIBUS_CONTROLLER" },
- provides = { "DEV_BLOCKIO" },
- sources =
- {
- "spi_at45d.c",
- "spi_at45d0.c",
- "spi_at45d1.c",
- "spi_at45d2.c",
- "spi_at45d3.c"
- },
- options =
- {
- {
- macro = "MOUNT_OFFSET_AT45D0",
- brief = "Reserved Bottom Pages (First Device)",
- description = "Number of pages reserved at the bottom.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume and may be used for "..
- "other purposes like storing configuration data or boot loader images.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_TOP_RESERVE_AT45D0",
- brief = "Reserved Top Pages (First Device)",
- description = "Number of pages reserved at the top.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume. On some targets the "..
- "top page is used to store internal Nut/OS settings.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_RATE_AT45D0",
- brief = "Transfer Rate (First Device)",
- description = "Interface speed in bits per second, default is 33000000 (33Mbps).\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- default = "33000000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_MODE_AT45D0",
- brief = "Transfer Mode (First Device)",
- description = "Either mode 3 (default) or mode 0 is supported.",
- default = "SPI_MODE_3",
- type = "enumerated",
- choices = { "SPI_MODE_3", "SPI_MODE_0" },
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_CSHIGH_AT45D0",
- brief = "Pos. Chip Select (First Device)",
- description = "When set, the chip select is driven high to activate the device. "..
- "By default chip selects are low active.",
- flavor = "boolean",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_OFFSET_AT45D1",
- brief = "Reserved Bottom Pages (Second Device)",
- description = "Number of pages reserved at the bottom.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume and may be used for "..
- "other purposes like storing configuration data or boot loader images.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_TOP_RESERVE_AT45D1",
- brief = "Reserved Top Pages (Second Device)",
- description = "Number of pages reserved at the top.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume. On some targets the "..
- "top page is used to store internal Nut/OS settings.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_RATE_AT45D1",
- brief = "Transfer Rate (Second Device)",
- description = "Interface speed in bits per second, default is 33000000 (33Mbps).\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- description = ".",
- default = "33000000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_CSHIGH_AT45D1",
- brief = "Pos. Chip Select (Second Device)",
- description = "When set, the chip select is driven high to activate the device. "..
- "By default chip selects are low active.",
- flavor = "boolean",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_OFFSET_AT45D2",
- brief = "Reserved Bottom Pages (Third Device)",
- description = "Number of pages reserved at the bottom.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume and may be used for "..
- "other purposes like storing configuration data or boot loader images.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_TOP_RESERVE_AT45D2",
- brief = "Reserved Top Pages (Third Device)",
- description = "Number of pages reserved at the top.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume. On some targets the "..
- "top page is used to store internal Nut/OS settings.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_RATE_AT45D2",
- brief = "Transfer Rate (Third Device)",
- description = "Interface speed in bits per second, default is 33000000 (33Mbps).\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- description = ".",
- default = "33000000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_CSHIGH_AT45D2",
- brief = "Pos. Chip Select (Third Device)",
- description = "When set, the chip select is driven high to activate the device. "..
- "By default chip selects are low active.",
- flavor = "boolean",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_OFFSET_AT45D3",
- brief = "Reserved Bottom Pages (Fourth Device)",
- description = "Number of pages reserved at the bottom.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume and may be used for "..
- "other purposes like storing configuration data or boot loader images.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "MOUNT_TOP_RESERVE_AT45D3",
- brief = "Reserved Top Pages (Fourth Device)",
- description = "Number of pages reserved at the top.\n\n"..
- "When a file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume. On some targets the "..
- "top page is used to store internal Nut/OS settings.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_RATE_AT45D3",
- brief = "Transfer Rate (Fourth Device)",
- description = "Interface speed in bits per second, default is 33000000 (33Mbps).\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- description = ".",
- default = "33000000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "SPI_CSHIGH_AT45D3",
- brief = "Pos. Chip Select (Fourth Device)",
- description = "When set, the chip select is driven high to activate the device. "..
- "By default chip selects are low active.",
- flavor = "boolean",
- file = "include/cfg/memory.h"
- },
- {
- macro = "AT45_WRITE_POLLS",
- brief = "Max. Write Poll Number",
- description = "Maximum number of polling loops for page write.",
- default = "1000",
- file = "include/cfg/memory.h"
- }
- }
- },
- {
- name = "nutdev_spi_at45dib",
- brief = "AT45D Serial Flash Driver",
- description = "Although the implemented routines are quite similar to other device drivers, "..
- "this is not a standard block I/O driver.\n\n",
- -- "The implemented functions offer access to AT45D DataFlash devices "..
- -- "without the need to allocate page buffers from heap memory. Instead, "..
- -- "the chip's internal RAM buffers are used.\n\n"..
- -- "This module also uses the options from the block I/O driver.",
- requires = { "SPIBUS_CONTROLLER" },
- provides = { "SERIALFLASH_INTERFACE" },
- sources =
- {
- "spi_at45dib.c",
- "spi_flash_at45d.c",
- "spi_blkio_at45d.c",
- "spi_node_at45d.c",
- "spi_at45d_info.c"
- },
- options =
- {
- {
- macro = "AT45D_CRC_PAGE",
- brief = "Use Page CRC",
- description = "If enabled, each page is protected by a 16 bit CRC ",
- flavor = "boolean",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_OFFSET_AT45D0",
- brief = "FFS Reserved Bottom Pages (First Device)",
- description = "Number of pages reserved at the bottom, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D0 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_TOP_RESERVE_AT45D0",
- brief = "FFS Reserved Top Pages (First Device)",
- description = "Number of pages reserved at the top, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D0 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_OFFSET_AT45D0",
- brief = "Block I/O Reserved Bottom Pages (First Device)",
- description = "Number of pages reserved at the bottom, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D0 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_TOP_RESERVE_AT45D0",
- brief = "Block I/O Reserved Top Pages (First Device)",
- description = "Number of pages reserved at the top, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D0 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_OFFSET_AT45D1",
- brief = "FFS Reserved Bottom Pages (Second Device)",
- description = "Number of pages reserved at the bottom, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D1 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_TOP_RESERVE_AT45D1",
- brief = "FFS Reserved Top Pages (Second Device)",
- description = "Number of pages reserved at the top, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D1 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_OFFSET_AT45D1",
- brief = "Block I/O Reserved Bottom Pages (Second Device)",
- description = "Number of pages reserved at the bottom, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D1 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_TOP_RESERVE_AT45D1",
- brief = "Block I/O Reserved Top Pages (Second Device)",
- description = "Number of pages reserved at the top, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D1 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_OFFSET_AT45D2",
- brief = "FFS Reserved Bottom Pages (Third Device)",
- description = "Number of pages reserved at the bottom, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D2 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_TOP_RESERVE_AT45D2",
- brief = "FFS Reserved Top Pages (Third Device)",
- description = "Number of pages reserved at the top, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D2 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_OFFSET_AT45D2",
- brief = "Block I/O Reserved Bottom Pages (Third Device)",
- description = "Number of pages reserved at the bottom, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D2 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_TOP_RESERVE_AT45D2",
- brief = "Block I/O Reserved Top Pages (Third Device)",
- description = "Number of pages reserved at the top, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D2 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_OFFSET_AT45D3",
- brief = "FFS Reserved Bottom Pages (Forth Device)",
- description = "Number of pages reserved at the bottom, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D3 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_MOUNT_TOP_RESERVE_AT45D3",
- brief = "FFS Reserved Top Pages (Forth Device)",
- description = "Number of pages reserved at the top, when mounting a flash file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D3 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_OFFSET_AT45D3",
- brief = "Block I/O Reserved Bottom Pages (Forth Device)",
- description = "Number of pages reserved at the bottom, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_OFFSET_AT45D3 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- },
- {
- macro = "BLKIO_MOUNT_TOP_RESERVE_AT45D3",
- brief = "Block I/O Reserved Top Pages (Forth Device)",
- description = "Number of pages reserved at the top, when mounting a block I/O based file system.\n\n"..
- "When a flash file system driver mounts this device, the specified number "..
- "of pages at the top will be excluded from the volume.\n\n"..
- "If not defined, the value of MOUNT_TOP_RESERVE_AT45D3 is used.",
- flavor = "booldata",
- file = "include/cfg/memory.h"
- }
- }
- },
- {
- name = "nutdev_spi_mmc",
- brief = "SPI Bus MMC Driver",
- description = "Block I/O driver for Multimedia cards attached to the SPI bus.\n\n"..
- "The included routines provide generic access to memory cards to "..
- "be used by hardware specifc MMC drivers, which are typically "..
- "defined by an MMC support module.\n\n"..
- "Replaces the older basic MMC driver. Tested on AT91 only.",
- requires = { "DEV_MMCSUPPORT", "SPIBUS_CONTROLLER" },
- provides = { "DEV_BLOCK" },
- sources = { "spi_mmc.c" },
- options =
- {
- {
- macro = "MMC_BLOCK_SIZE",
- brief = "Block Size",
- description = "Block size in bytes. Do not change unless you are "..
- "sure that both, the file system and the hardware support it.",
- default = "512",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_INIT_POLLS",
- brief = "Card Init Timeout",
- description = "Max. number of loops waiting for card's idle mode "..
- "after initialization. An additional delay of 1 ms is "..
- "added to each loop after one quarter of this value "..
- "elapsed.",
- default = "512",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_RESET_POLLS",
- brief = "Card Reset Timeout",
- description = "Max. number of loops waiting for card's idle mode "..
- "after resetting it.",
- default = "255",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_WRITE_POLLS",
- brief = "Card Write Timeout",
- description = "Max. number of loops waiting for card's idle mode "..
- "after resetting it. An additional delay of 1 ms is "..
- "added to each loop after 31/32 of this value "..
- "elapsed.",
- default = "1024",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_WRITE_RETRIES",
- brief = "Card Write Retries",
- description = "Max. number of retries while writing.",
- default = "32",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_READ_RETRIES",
- brief = "Card Read Retries",
- description = "Max. number of retries while reading.",
- default = "8",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_REG_POLLS",
- brief = "Register Read Timeout",
- description = "Max. number of loops while reading a card's register.",
- default = "512",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_MAX_CMDACK_POLLS",
- brief = "Command Acknowledge Timeout",
- description = "Max. number of loops waiting for card's acknowledge "..
- "of a command. An additional delay of 1 ms is "..
- "added to each loop after three quarter of this value "..
- "elapsed.",
- default = "1024",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- },
- },
- {
- name = "nutdev_spi_mmc_gpio",
- brief = "SPI bus based Multimedia Card Support",
- description = "SPI bus implementation of MMC support with GPIO based CD and WP detection.\n\n"..
- "This package provides additional routines, which "..
- "are needed when using MultiMedia Cards with an SPI "..
- "bus driver. Main functions are card change detection "..
- "and write SD Card write protect switch sensing.\n\n"..
- "Tested on AT91 only but should work with every SPI bus driver.",
- requires = { "SPIBUS_CONTROLLER" },
- provides = { "DEV_MMCSUPPORT" },
- sources = { "spi_mmc_gpio.c" },
- options =
- {
- {
- macro = "SPI_MMC_CLK",
- brief = "SPI Bus Transfer Rate",
- description = "Interface speed in bits per second, default is 33000000 (33Mbps).\n\n"..
- "If the exact value can't be set, the driver will choose the \n"..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- default = "33000000",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "SPI_MMC_CS",
- brief = "SPI Bus Chip Select Number",
- default = "0",
- type = "enumerated",
- choices = { "0", "1", "2", "3" },
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_CD_PIN",
- brief = "Card detect GPIO pin number",
- description = "Number of GPIO pin where the card detect signal is connected.\n\n"..
- "If disabled it is assumed that the card is always present\n",
- provides = { "MMC_CD_PIN" },
- flavor = "booldata",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_CD_PORT",
- brief = "Card detect GPIO Port",
- description = "Port register name of the GPIO pin where the carddetect signal is connected.",
- requires = { "MMC_CD_PIN" },
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_WP_PIN",
- brief = "Card write protect GPIO pin number",
- description = "Number of GPIO pin where the card write protect signal is connected.\n\n"..
- "If disabled it is assumed that the card is always writable\n",
- provides = { "MMC_WP_PIN" },
- flavor = "booldata",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_WP_PORT",
- brief = "Card detect GPIO Port",
- description = "Port register name of the GPIO pin where the write protect signal is connected.",
- requires = { "MMC_WP_PIN" },
- type = "enumerated",
- choices = function() return GetGpioBanks() end,
- file = "include/cfg/mmci.h"
- },
- },
- },
- {
- name = "nutdev_mmcard",
- brief = "Basic MMC Driver",
- description = "Basic Multimedia card driver. To run this driver, a few low "..
- "level routines are required for direct hardware access.\n\n"..
- "SPI bus sharing is not available with this early driver "..
- "and it has been replaced by the newer SPI bus driver.\n"..
- "Tested on AT91 only.",
- requires = { "DEV_MMCLL" },
- provides = { "DEV_BLOCK" },
- sources = { "mmcard.c" },
- options =
- {
- {
- macro = "MMC_MAX_R1_POLLS",
- brief = "R1 Response Timeout",
- description = "Max. number of loops waiting for card's R1 response. "..
- "Increase on fast systems and old cards, decrease for "..
- "faster timeout. ",
- default = "1024",
- flavor = "integer",
- file = "include/cfg/mmci.h"
- },
- {
- macro = "MMC_VERIFY_AFTER",
- brief = "Verify Read/Write",
- description = "If enabled, an additional read will be done to verify "..
- "each read or written sector. This is useful for testing.",
- flavor = "boolean",
- file = "include/cfg/mmci.h"
- }
- }
- },
- --
- -- RTC Support.
- --
- {
- name = "nutdev_rtc",
- brief = "RTC API",
- description = "Hardware independant RTC routines.",
- provides = { "DEV_RTC" },
- sources = { "rtc.c" },
- },
- {
- name = "nutdev_ds1307",
- brief = "DS1307 Driver",
- description = "Dallas DS1307 RTC driver. Tested on AVR (MMnet02) only.",
- requires = { "HW_MCU_AVR" },
- provides = { "DEV_RTC" },
- sources = { "ds1307rtc.c" },
- },
- {
- name = "nutdev_pcf8563",
- brief = "PCF8563 Driver",
- description = "Philips PCF8563 RTC driver. Tested on AT91 only.",
- requires = { "HW_MCU_AT91" },
- provides = { "DEV_RTC" },
- sources = { "pcf8563.c" },
- },
- {
- name = "nutdev_i2c_pcf85xx",
- brief = "PCF85XX Driver",
- description = "Early NXP RTC bus controller based driver, tested on Ethernut 5.",
- requires = { "I2CBUS_CONTROLLER" },
- provides = { "DEV_RTC" },
- sources = { "i2c_pcf85xx.c" },
- },
- {
- name = "nutdev_x12rtc",
- brief = "X12xx Driver",
- description = "Intersil X12xx RTC and EEPROM driver. Tested on AT91 only.",
- requires = { "HW_MCU_AT91" },
- provides = { "DEV_RTC" },
- sources = { "x12rtc.c" },
- options =
- {
- {
- macro = "EEPROM_PAGE_SIZE",
- brief = "EEPROM Page Size",
- description = "If enabled, a different page size may be specified.\n\n"..
- "Do we really need this?",
- flavor = "booldata",
- file = "include/cfg/eeprom.h"
- },
- },
- },
- --
- -- Bus Controller Drivers.
- --
- {
- name = "nutdev_spibus",
- brief = "SPI Bus",
- requires = { "SPIBUS_CONTROLLER" },
- description = "Generic SPI bus routines, which may be used "..
- "by bus controller implementations.",
- sources = { "spibus.c" }
- },
- {
- name = "nutdev_i2cbus",
- brief = "I2C Bus",
- requires = { "I2CBUS_CONTROLLER" },
- description = "Hardware independent I2C bus API.",
- sources = { "i2cbus.c" }
- },
- {
- name = "nutdev_owibus",
- brief = "OWI Bus",
- requires = { "OWIBUS_CONTROLLER" },
- description = "Hardware independent I2C bus API.",
- sources = { "owibus.c" }
- },
- --
- -- Special Chip Drivers.
- --
- {
- name = "nutdev_twi_at24c",
- brief = "AT24C Serial EEPROM",
- description = "Serial eeprom driver for AT24C chips.\n\n",
- requires = { "DEV_TWI" },
- sources = { "at24c.c", "eeprom.c" },
- options =
- {
- {
- macro = "AT24C_SLAVE_ADDR",
- brief = "Address of Slave",
- description = "EEPROMs Slave address on the bus.\n"..
- "No convetions here, so the address should be given without R/W bit.\n"..
- "For a AT24C64 it usually will be 0x50.",
- flavour = "integer",
- default = "0x50",
- file = "include/cfg/eeprom.h",
- },
- {
- macro = "AT24C_CHIP_SIZE",
- brief = "Memory Size",
- description = "Size of your EEPROM.\n"..
- "As manufacturers like to give sizes in bits, as it sound like more "..
- "this value is usually the chips name divided by 8\n"..
- "For a AT24C64 it will be 8192 bytes",
- flavour = "integer",
- default = "8192",
- file = "include/cfg/eeprom.h",
- },
- {
- macro = "AT24C_ADR_SIZE",
- brief = "Address Size",
- description = "Number of bytes send as internal address.\n",
- flavour = "integer",
- default = "2",
- file = "include/cfg/eeprom.h",
- },
- {
- macro = "AT24C_ROW_SIZE",
- brief = "Row Size",
- description = "Row size of the EEPROM.\n"..
- "This is equal to the ammount of bytes that can be written in one "..
- "programming cycle. Addtitionally this is the base for correct "..
- "alignment of programming addresses.\n\n"..
- "On most EEPROMs this value is 32 bytes.",
- flavour = "integer",
- default = "32",
- file = "include/cfg/eeprom.h",
- },
- {
- macro = "AT24C_BLOCK_ADDR",
- brief = "Block Addressing Mode",
- description = "This is a special addressing mode found on small end cheap chips "..
- "of manufacturers that cannot understand I2C specification at all.\n\n"..
- "Normally the Slave-Address is used to select the right slave on the bus. "..
- "Some chips allow to appear on different addresses by pulling some of their pins high or low.\n"..
- "Now, these EEPROMs needing this item checked, have their address pins internally not "..
- "connected but use the lower three address bits for the high byte of the internal address...\n"..
- "For these chips, the address length must be 1 even they are larger than 256 bytes.",
- flavor = "booldata",
- file = "include/cfg/eeprom.h",
- }
- }
- },
- {
- name = "nutdev_sht21",
- brief = "SHT21 Driver",
- description = "Sensirion SHT21 temperature and humidity sensor driver.\n"..
- "Should work with new SHT25 device too, but not tested.",
- provides = { "DEV_SHT21" },
- requires = { "DEV_TWI" },
- sources = { "sht21.c" },
- options =
- {
- {
- macro = "I2C_SLA_SHT21",
- brief = "Slave Address",
- description = "SHT21 slave address. This is fixed and cannot be altered.",
- type = "enumerated",
- flavor = "integer",
- default = "0x40",
- file = "include/cfg/sht21.h"
- },
- {
- macro = "SHT_ACK_POLLING",
- brief = "SHT21 ACK-Polling",
- description = "The SHT2x supports operation modes: ACK polling or ACK-Stretching.\n"..
- "ACK Polling: The driver will poll the SHT2x every about 10ms for a result.\n"..
- "ACK Stretching: The SHT2x will held SCL low until measurement finished. "..
- "This will block the complete bus for other devices too but requires less code.",
- flavor = "booldata",
- file = "include/cfg/sht21.h"
- },
- {
- macro = "SHT21_PRECISION",
- brief = "SHT21 precision",
- description = "The SHT21 supports several different precisons for measurement:\n"..
- "Possible values are:\n"..
- "0x00: rH=12bit, T=14bit\n"..
- "0x01: rH= 8bit, T=12bit\n"..
- "0x80: rH=10bit, T=13bit\n"..
- "0x81: rH=11bit, T=11bit\n",
- type = "enumerated",
- flavor = "integer",
- choices = { "0x00", "0x01", "0x80", "0x81" },
- default = "0x00",
- file = "include/cfg/sht21.h"
- }
- }
- },
- {
- name = "nutdev_mma745x",
- brief = "MMA745x Driver",
- description = "Freescale MMA745x velocity sensor driver.\n",
- provides = { "DEV_MMA745X" },
- requires = { "DEV_TWI" },
- sources = { "mma745x.c" },
- options =
- {
- {
- macro = "MMA745X_MODE",
- brief = "Operating Mode",
- description = "The MMA745x supports measurement modes:\n"..
- "The driver initializes to the given mode. The user can switch the mode at any time.\n"..
- "Possible values are:\n"..
- "0x00: Standby\n"..
- "0x01: Measurement\n"..
- "0x02: Level detection\n"..
- "0x02: Pulse detection\n"..
- "Note that for Measurement Mode INT1/DRDY can only serve as DRDY signal or interrupt.\n"..
- "Level and pulse interrupts are not available.\n",
- type = "enumerated",
- flavor = "integer",
- choices = { "0x00", "0x01", "0x02", "0x03" },
- default = "0x00",
- file = "include/cfg/mma745x.h"
- },
- {
- macro = "MMA745X_RANGE",
- brief = "Range",
- description = "The MMA745x supports several different measurement ranges:\n"..
- "Possible values are:\n"..
- "0x00: +/- 8g\n"..
- "0x08: +/- 4g\n"..
- "0x04: +/- 2g\n",
- type = "enumerated",
- flavor = "integer",
- choices = { "0x00", "0x08", "0x04" },
- default = "0x00",
- file = "include/cfg/mma745x.h"
- },
- {
- macro = "MMA745X_8BIT",
- brief = "8 Bit Width",
- description = "The MMA745x supports 10bit and 8 bit data format. Select this to use 8 bit information.\n",
- type = "enumerated",
- flavor = "boolean",
- file = "include/cfg/mma745x.h"
- },
- {
- macro = "MMA745X_IRQ1_PORT",
- brief = "INT1/DRDY Port",
- description = "Port for interrupt 1 / data ready signal.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = "include/cfg/mma745x.h"
- },
- {
- macro = "MMA745X_IRQ1_PIN",
- brief = "INT1/DRDY Pin",
- description = "Pin for interrupt 1 / data ready signal.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = "include/cfg/mma745x.h"
- },
- {
- macro = "MMA745X_IRQ2_PORT",
- brief = "INT2 Port",
- description = "Port for interrupt 2 signal.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = "include/cfg/mma745x.h"
- },
- {
- macro = "MMA745X_IRQ2_PIN",
- brief = "INT2 Pin",
- description = "Pin for interrupt 2 signal.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = "include/cfg/mma745x.h"
- },
- }
- },
- {
- name = "nutdev_pca9555",
- brief = "PCA9555 Driver",
- description = "Philips PCA9555 I/O expander. Uses TwMasterRegRead(), which is "..
- "currently available on AT91 hardware TWI only.",
- provides = { "DEV_IOEXP" },
- requires = { "HW_TWI_AT91", "HW_MCU_AT91" },
- sources = { "pca9555.c" },
- options =
- {
- {
- macro = "I2C_SLA_IOEXP",
- brief = "Slave Address",
- description = "PCA9555 slave address (0x20..0x27)",
- type = "enumerated",
- flavor = "integer",
- default = "0x23",
- file = "include/cfg/pca9555.h"
- },
- {
- macro = "IOEXP_IRQ_PORT",
- brief = "Interrupt Port",
- description = "Port for interrupt",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = "include/cfg/pca9555.h"
- },
- {
- macro = "IOEXP_IRQ_PIN",
- brief = "Interrupt Pin",
- description = "Port for Interrupty",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = "include/cfg/pca9555.h"
- },
- },
- },
- {
- name = "led",
- brief = "LED Driver",
- description = "Provides controlling of LEDs connected to GPIO.\n"..
- "In addition with a PCA9555 I2C IO-Expander a special range of GPIO Ports\n"..
- "can be used to address LEDs connected to this chip instead of CPU's GPIOs",
- provides = { "DEV_LED" },
- sources = { "led.c" },
- options =
- {
- {
- macro = "LED_SUPPORT_IOEXP",
- brief = "LEDs on external GPIOs",
- description = "Enable control of LEDs connected to an external GPIO expanders "..
- "like PCA9555.",
- type = "enumerated",
- flavor = "boolean",
- requires = { "DEV_IOEXP" },
- file = "include/cfg/pca9555.h",
- },
- {
- macro = "LED_ON_HIGH",
- brief = "LEDs On on GPIO is high",
- description = "Enable this option if the LEDs are on on a logic 1 level of the port pin.",
- flavor = "boolean",
- requires = { "DEV_LED" },
- file = "include/cfg/led.h",
- },
- },
- },
- {
- name = "keys",
- brief = "Key Driver",
- description = "Provides controlling of keys / pushbuttons and switches connected to GPIO.\n"..
- "In addition with a PCA9555 I2C IO-Expander a special range of GPIO Ports\n"..
- "can be used to address keys connected to this chip instead of CPU's GPIOs",
- provides = { "DEV_KEY" },
- sources = { "keys.c" },
- options =
- {
- {
- macro = "KEY_SUPPORT_IOEXP",
- brief = "Keys on external GPIOs",
- description = "Enable control of Keys connected to an external GPIO expanders "..
- "like PCA9555.",
- type = "enumerated",
- flavor = "boolean",
- requires = { "DEV_IOEXP" },
- file = "include/cfg/pca9555.h",
- },
- },
- },
- {
- name = "nutdev_vs10xx",
- brief = "VS10XX Audio Decoder",
- description = "Tested with Medianut 2 attached to Ethernut 3.\n\n"..
- "In the current implementation this file may conflict with "..
- "the previous VS1001K driver. For now add this to your "..
- "application's Makefile. ",
- sources = { "vs10xx.c" },
- requires = { "DEV_SPI", "HW_GPIOxx" },
- options =
- {
- {
- macro = "VS10XX_FREQ",
- brief = "Crystal Clock Frequency",
- description = "Frequency of the crystal clock in Hz.\n\n"..
- "The clock doubler will be enabled if this value is "..
- "lower than 20,000,000 Hz.",
- default = "12288000",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_SPI0_DEVICE",
- brief = "Command Hardware SPI (AVR)",
- description = "Hardware SPI 0 device index (chip select) used for command channel.\n\n"..
- "Specify device index 0, 1, 2 or 3.\n\n"..
- "Currently supported on the AVR platform only.",
- requires = { "HW_MCU_AVR" },
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SCI_SPI0_DEVICE",
- "VS10XX_SCI_SBBI0_DEVICE",
- "VS10XX_SCI_SBBI1_DEVICE",
- "VS10XX_SCI_SBBI2_DEVICE",
- "VS10XX_SCI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_SBBI0_DEVICE",
- brief = "Command Software SPI0",
- description = "Software SPI 0 device index (chip select) used for command channel.\n\n"..
- "Specify device index 0, 1, 2 or 3.\n\n"..
- "Currently supported on the AVR platform only.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SCI_SPI0_DEVICE",
- "VS10XX_SCI_SBBI0_DEVICE",
- "VS10XX_SCI_SBBI1_DEVICE",
- "VS10XX_SCI_SBBI2_DEVICE",
- "VS10XX_SCI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_SBBI1_DEVICE",
- brief = "Command Software SPI1",
- description = "Software SPI 1 device index (chip select) used for command channel.\n\n"..
- "Specify device index 0, 1, 2 or 3.\n\n"..
- "Currently supported on the AVR platform only.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SCI_SPI0_DEVICE",
- "VS10XX_SCI_SBBI0_DEVICE",
- "VS10XX_SCI_SBBI1_DEVICE",
- "VS10XX_SCI_SBBI2_DEVICE",
- "VS10XX_SCI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_SBBI2_DEVICE",
- brief = "Command Software SPI2",
- description = "Software SPI 2 device index (chip select) used for command channel.\n\n"..
- "Specify device index 0, 1, 2 or 3.\n\n"..
- "Currently supported on the AVR platform only.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SCI_SPI0_DEVICE",
- "VS10XX_SCI_SBBI0_DEVICE",
- "VS10XX_SCI_SBBI1_DEVICE",
- "VS10XX_SCI_SBBI2_DEVICE",
- "VS10XX_SCI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_SBBI3_DEVICE",
- brief = "Command Software SPI3",
- description = "Software SPI 3 device index (chip select) used for command channel.\n\n"..
- "Specify device index 0, 1, 2 or 3.\n\n"..
- "Currently supported on the AVR platform only.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SCI_SPI0_DEVICE",
- "VS10XX_SCI_SBBI0_DEVICE",
- "VS10XX_SCI_SBBI1_DEVICE",
- "VS10XX_SCI_SBBI2_DEVICE",
- "VS10XX_SCI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_MODE",
- brief = "Command SPI Mode",
- description = "SPI mode of command channel, 0 is default.\n\n"..
- "Mode 0: Leading edge is rising, data sampled on rising edge.\n"..
- "Mode 1: Leading edge is rising, data sampled on falling edge.\n"..
- "Mode 2: Leading edge is falling, data sampled on falling edge.\n"..
- "Mode 3: Leading edge is falling, data sampled on rising edge.\n",
- type = "integer",
- default = "0",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SCI_RATE",
- brief = "Command SPI Bitrate",
- description = "Interface speed in bits per second, default is VS10XX_FREQ/4.\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_SPI0_DEVICE",
- brief = "Data Hardware SPI (AVR)",
- description = "Use hardware SPI for data channel.\n\n"..
- "Currently supported on the AVR platform only.",
- requires = { "HW_MCU_AVR" },
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SDI_SPI0_DEVICE",
- "VS10XX_SDI_SBBI0_DEVICE",
- "VS10XX_SDI_SBBI1_DEVICE",
- "VS10XX_SDI_SBBI2_DEVICE",
- "VS10XX_SDI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_SBBI0_DEVICE",
- brief = "Data Software SPI0",
- description = "Use software SPI 0 for data channel.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SDI_SPI0_DEVICE",
- "VS10XX_SDI_SBBI0_DEVICE",
- "VS10XX_SDI_SBBI1_DEVICE",
- "VS10XX_SDI_SBBI2_DEVICE",
- "VS10XX_SDI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_SBBI1_DEVICE",
- brief = "Data Software SPI1",
- description = "Use software SPI 1 for data channel.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SDI_SPI0_DEVICE",
- "VS10XX_SDI_SBBI0_DEVICE",
- "VS10XX_SDI_SBBI1_DEVICE",
- "VS10XX_SDI_SBBI2_DEVICE",
- "VS10XX_SDI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_SBBI2_DEVICE",
- brief = "Data Software SPI2",
- description = "Use software SPI 2 for data channel.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SDI_SPI0_DEVICE",
- "VS10XX_SDI_SBBI0_DEVICE",
- "VS10XX_SDI_SBBI1_DEVICE",
- "VS10XX_SDI_SBBI2_DEVICE",
- "VS10XX_SDI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_SBBI3_DEVICE",
- brief = "Data Software SPI3",
- description = "Use software SPI 3 for data channel.",
- flavor = "booldata",
- exclusivity =
- {
- "VS10XX_SDI_SPI0_DEVICE",
- "VS10XX_SDI_SBBI0_DEVICE",
- "VS10XX_SDI_SBBI1_DEVICE",
- "VS10XX_SDI_SBBI2_DEVICE",
- "VS10XX_SDI_SBBI3_DEVICE"
- },
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_MODE",
- brief = "Data SPI Mode",
- description = "SPI mode of data channel, 0 is default.\n\n"..
- "Mode 0: Leading edge is rising, data sampled on rising edge.\n"..
- "Mode 1: Leading edge is rising, data sampled on falling edge.\n"..
- "Mode 2: Leading edge is falling, data sampled on falling edge.\n"..
- "Mode 3: Leading edge is falling, data sampled on rising edge.\n",
- type = "integer",
- default = "0",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SDI_RATE",
- brief = "Data SPI Bitrate",
- description = "Interface speed in bits per second, default is VS10XX_FREQ/4.\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SELECT_ACTIVE_HIGH",
- brief = "Active High Chip Select",
- description = "Select this option if the chip select is active high.",
- flavor = "boolean",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_RESET_ACTIVE_HIGH",
- brief = "Active High Reset",
- description = "Select this option if the reset is active high.",
- flavor = "boolean",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SIGNAL_IRQ",
- brief = "Decoder Interrupt",
- description = "Audio decoder interrupt, default is INT0.",
- default = "INT0",
- type = "enumerated",
- choices = avr_irq_choice,
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_DREQ_PIO_ID",
- brief = "DREQ GPIO Port ID (AT91)",
- description = "ID of the port used for VS10XX DREQ.\n\n"..
- "Must correspond with the selected interrupt input.",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = at91_pio_id_choice,
- flavor = "integer",
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "VS10XX_DREQ_BIT",
- brief = "DREQ GPIO Bit (AT91)",
- description = "Port bit used for VS10XX DREQ.\n\n"..
- "Must correspond with the selected interrupt input.",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- flavor = "integer",
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "VS10XX_XCS_PORT",
- brief = "XCS Port",
- description = "ID of the port used for VS10XX XCS.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_XCS_BIT",
- brief = "XCS Port Bit",
- description = "Port bit used for VS10XX XCS.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_XDCS_PORT",
- brief = "XDCS Port",
- description = "ID of the port used for VS10XX XDCS.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_XDCS_BIT",
- brief = "XDCS Port Bit",
- description = "Port bit used for VS10XX XDCS.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_BSYNC_PORT",
- brief = "BSYNC Port",
- description = "ID of the port used for optional VS10XX BSYNC.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_BSYNC_BIT",
- brief = "BSYNC Port Bit",
- description = "Port bit used for optional VS10XX BSYNC.\n\n"..
- "Required for the VS1001. Other decoders are driven "..
- "in VS1001 mode, if this bit is defined. However, "..
- "it is recommended to use this option for the VS1001 "..
- "only and run newer chips in so called VS1002 native mode.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "VS10XX_HWRST_DURATION",
- brief = "Hardware Reset Duration",
- description = "Minimum time in milliseconds to held hardware reset low.",
- default = "1",
- flavor = "integer",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_HWRST_RECOVER",
- brief = "Hardware Reset Recover",
- description = "Milliseconds to wait after hardware reset.",
- default = "5",
- flavor = "integer",
- file = "include/cfg/audio.h"
- },
- {
- macro = "VS10XX_SWRST_RECOVER",
- brief = "Software Reset Recover",
- description = "Milliseconds to wait after software reset.",
- default = "5",
- flavor = "integer",
- file = "include/cfg/audio.h"
- },
- },
- },
- {
- name = "nutdev_jtag_tap",
- brief = "JTAG TAP Controller",
- sources = { "jtag_tap.c" },
- requires = { "DEV_JTAG_CABLE" },
- options =
- {
- {
- macro = "JTAG0_CLOCK_RATE",
- brief = "Cable 0 Clock Rate",
- description = "Maximum TCK frequency in Hertz.",
- file = "include/cfg/progif.h"
- },
- }
- },
- {
- name = "nutdev_jtag_gpio",
- brief = "JTAG GPIO Cable Driver 0",
- sources = { "jtag_gpio0.c" },
- provides = { "DEV_JTAG_CABLE" },
- options =
- {
- {
- macro = "JTAG0_TDO_PIO_ID",
- brief = "TDO Port",
- description = "Port ID of the TDO input.\n",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TDO_PIO_BIT",
- brief = "TDO Bit",
- description = "Port bit number of the TDO input.\n",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TDI_PIO_ID",
- brief = "TDI Port",
- description = "Port ID of the TDI output.\n",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TDI_PIO_BIT",
- brief = "TDI Bit",
- description = "Port bit number of the TDI output.\n",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TMS_PIO_ID",
- brief = "TMS Port",
- description = "Port ID of the TMS output.\n",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TMS_PIO_BIT",
- brief = "TMS Bit",
- description = "Port bit number of the TMS output.\n",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TCK_PIO_ID",
- brief = "TCK Port",
- description = "Port ID of the TCK output.\n",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "JTAG0_TCK_PIO_BIT",
- brief = "TCK Bit",
- description = "Port bit number of the TCK output.\n",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- }
- },
- {
- name = "nutdev_avrtarget",
- brief = "AVR Serial Programming",
- description = "Routines for programming AVR targets via SPI.\n",
- provides = { "DEV_SPI" },
- sources = { "avrtarget.c" },
- options =
- {
- {
- macro = "AVRTARGET_PAGESIZE",
- brief = "Program Flash Page Size",
- description = "Specify the number of bytes.\n\n"..
- "Later we will determine this automatically.",
- type = "integer",
- default = "128",
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_CHIPERASE_TIMEOUT",
- brief = "Chip Erase Timeout",
- description = "Specify the number of milliseconds.\n\n"..
- "Later we will determine this automatically.",
- type = "integer",
- default = "200",
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_PAGEWRITE_TIMEOUT",
- brief = "Page Write Timeout",
- description = "Specify the number of milliseconds.\n\n"..
- "Later we will determine this automatically.",
- type = "integer",
- default = "10",
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SPI0_DEVICE",
- brief = "Polled Hardware SPI0 Device (AVR)",
- description = "Use hardware SPI0 for programming.\n\n"..
- "Specify device index 0, 1, 2 or 3.",
- requires = { "HW_MCU_AVR" },
- flavor = "booldata",
- exclusivity =
- {
- "AVRTARGET_SPI",
- "AVRTARGET_SBBI0",
- "AVRTARGET_SBBI1",
- "AVRTARGET_SBBI2",
- "AVRTARGET_SBBI3"
- },
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SBBI0_DEVICE",
- brief = "Software SPI0 Device",
- description = "Use software SPI 0 for programming.\n\n"..
- "Specify device index 0, 1, 2 or 3.",
- flavor = "booldata",
- exclusivity =
- {
- "AVRTARGET_SPI",
- "AVRTARGET_SBBI0",
- "AVRTARGET_SBBI1",
- "AVRTARGET_SBBI2",
- "AVRTARGET_SBBI3"
- },
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SBBI1_DEVICE",
- brief = "Software SPI1 Device",
- description = "Use software SPI 1 for programming.\n\n"..
- "Specify device index 0, 1, 2 or 3.",
- flavor = "booldata",
- exclusivity =
- {
- "AVRTARGET_SPI",
- "AVRTARGET_SBBI0",
- "AVRTARGET_SBBI1",
- "AVRTARGET_SBBI2",
- "AVRTARGET_SBBI3"
- },
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SBBI2_DEVICE",
- brief = "Software SPI2 Device",
- description = "Use software SPI 2 for programming.\n\n"..
- "Specify device index 0, 1, 2 or 3.",
- flavor = "booldata",
- exclusivity =
- {
- "AVRTARGET_SPI",
- "AVRTARGET_SBBI0",
- "AVRTARGET_SBBI1",
- "AVRTARGET_SBBI2",
- "AVRTARGET_SBBI3"
- },
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SBBI3_DEVICE",
- brief = "Software SPI3 Device",
- description = "Use software SPI 3 for programming.\n\n"..
- "Specify device index 0, 1, 2 or 3.",
- flavor = "booldata",
- exclusivity =
- {
- "AVRTARGET_SPI",
- "AVRTARGET_SBBI0",
- "AVRTARGET_SBBI1",
- "AVRTARGET_SBBI2",
- "AVRTARGET_SBBI3"
- },
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SELECT_ACTIVE_HIGH",
- brief = "Active High Chip Select",
- description = "Select this option if the chip select is active high.",
- flavor = "boolean",
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_RESET_ACTIVE_HIGH",
- brief = "Active High Reset",
- description = "Select this option if the reset is active high.",
- flavor = "boolean",
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SPI_MODE",
- brief = "SPI Mode",
- description = "SPI mode, 0 is default.\n\n"..
- "Mode 0: Leading edge is rising, data sampled on rising edge.\n"..
- "Mode 1: Leading edge is rising, data sampled on falling edge.\n"..
- "Mode 2: Leading edge is falling, data sampled on falling edge.\n"..
- "Mode 3: Leading edge is falling, data sampled on rising edge.\n",
- type = "integer",
- default = "0",
- file = "include/cfg/progif.h"
- },
- {
- macro = "AVRTARGET_SPI_RATE",
- brief = "SPI Bitrate",
- description = "Interface speed in bits per second, default is 100000.\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- default = "100000",
- file = "include/cfg/progif.h"
- },
- },
- },
- {
- name = "nutdev_nvmem_at45d",
- brief = "AT45D Non-Volatile Memory",
- description = "DataFlash chips and cards may be used to store any kind of configuration "..
- "data, including internal Nut/OS and Nut/Net settings.\n\n"..
- "This new module will replace existing ones, which either depend "..
- "on specific target CPUs or which may interfere with other SPI devices.",
- sources = { "nvmem_at45d.c" }
- },
- {
- name = "nutdev_at45db",
- brief = "AT45DB Serial DataFlash Memory",
- description = "Supports multiple chips.\n\n"..
- "Tested with AT91SAM9260-EK.",
- sources = { "at45db.c" },
- requires = { "HW_MCU_AT91", "HW_SPI_AT91" },
- options =
- {
- {
- macro = "MAX_AT45_DEVICES",
- brief = "Number of Chips",
- description = "Maximum number of chips, which can be used concurrently.",
- default = "1",
- file = "include/cfg/memory.h"
- },
- {
- macro = "AT45_ERASE_WAIT",
- brief = "Max. Page Erase Wait Time",
- description = "Maximum number of milliseconds to wait until the chip "..
- "becomes ready again after a sector erase command.",
- default = "3000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "AT45_CHIP_ERASE_WAIT",
- brief = "Max. Chip Erase Wait Time",
- description = "Maximum number of milliseconds to wait until the chip "..
- "becomes ready again after a chip erase command.",
- default = "50000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "AT45_WRITE_POLLS",
- brief = "Max. Write Poll Number",
- description = "Maximum number of polling loops for page write.",
- default = "1000",
- file = "include/cfg/memory.h"
- },
- },
- },
- {
- name = "nutdev_at49bv",
- brief = "AT49BV Flash Memory",
- description = "Currently supports a single chip only.\n\n"..
- "Tested with AT49BV322A and AT49BV002A.",
- sources = { "at49bv.c" },
- options =
- {
- {
- macro = "FLASH_CHIP_BASE",
- brief = "Base Address",
- description = "First memory address of the chip.",
- default = "0x10000000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_8BIT",
- brief = "8-Bit Flash",
- description = "If enabled, flash is driven in 8-bit mode. "..
- "By default Nut/OS supports 16-bit flash.",
- flavor = "boolean",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_ERASE_WAIT",
- brief = "Max. Sector Erase Wait Time",
- description = "Maximum number of milliseconds to wait until the chip "..
- "becomes ready again after a sector erase command.",
- default = "3000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_CHIP_ERASE_WAIT",
- brief = "Max. Chip Erase Wait Time",
- description = "Maximum number of milliseconds to wait until the chip "..
- "becomes ready again after a chip erase command.",
- default = "50000",
- file = "include/cfg/memory.h"
- },
- {
- macro = "FLASH_WRITE_POLLS",
- brief = "Max. Write Poll Number",
- description = "Maximum number of polling loops for a byte/word write.",
- default = "1000",
- file = "include/cfg/memory.h"
- },
- },
- },
- {
- name = "nutdev_cy2239x",
- brief = "CY2239x Driver",
- description = "Cypress CY22393/4/5 PLL clock. Tested on AT91 only.",
- requires = { "HW_MCU_AT91" },
- provides = { "DEV_PLL" },
- sources = { "cy2239x.c" },
- options =
- {
- {
- macro = "NUT_PLL_FREF",
- brief = "Reference Clock",
- description = "Frequency of the PLL reference clock in Hz. If enabled and "..
- "if NUT_CPU_FREQ is not defined, this value will be used to "..
- "determine the CPU clock as well.",
- flavor = "booldata",
- file = "include/cfg/os.h"
- },
- {
- macro = "NUT_PLL_CPUCLK",
- brief = "CPU Clock Output",
- description = "PLL output used for the CPU Clock\n\n"..
- "If an output is selected and if NUT_CPU_FREQ is not defined, "..
- "then the CPU Clock Value will be queried from the PLL Clock "..
- "Chip.\n\n"..
- "Select\n"..
- "0 for for the CLKA Pin\n"..
- "1 for for the CLKB Pin (Ethernut 3.0 Rev-E)\n"..
- "2 for for the CLKC Pin (Ethernut 3.0 Rev-D)\n"..
- "3 for for the CLKD Pin\n"..
- "4 for for the CLKE Pin",
- type = "enumerated",
- choices = pll_clk_choice,
- file = "include/cfg/clock.h"
- },
- {
- macro = "NUT_PLL_ETHCLK",
- brief = "Ethernet Clock Output",
- description = "PLL output used to drive the Ethernet Controller\n\n"..
- "Select\n"..
- "0 for for the CLKA Pin (Ethernut 3.0 Rev-D)\n"..
- "1 for for the CLKB Pin\n"..
- "2 for for the CLKC Pin (Ethernut 3.0 Rev-E)\n"..
- "3 for for the CLKD Pin\n"..
- "4 for for the CLKE Pin",
- type = "enumerated",
- choices = pll_clk_choice,
- file = "include/cfg/clock.h"
- },
- {
- macro = "NUT_PLL_NPLCLK1",
- brief = "NPL Clock 1 Output",
- description = "PLL output connected to the CPLD GCK1 Pin\n\n"..
- "Select\n"..
- "0 for for the CLKA Pin (Ethernut 3.0 Rev-E)\n"..
- "1 for for the CLKB Pin (Ethernut 3.0 Rev-D)\n"..
- "2 for for the CLKC Pin\n"..
- "3 for for the CLKD Pin\n"..
- "4 for for the CLKE Pin",
- type = "enumerated",
- choices = pll_clk_choice,
- file = "include/cfg/clock.h"
- },
- {
- macro = "NUT_PLL_NPLCLK3",
- brief = "NPL Clock 3 Output",
- description = "PLL output connected to the CPLD GCK3 Pin\n\n"..
- "Select\n"..
- "0 for for the CLKA Pin\n"..
- "1 for for the CLKB Pin\n"..
- "2 for for the CLKC Pin\n"..
- "3 for for the CLKD Pin (Ethernut 3.0)\n"..
- "4 for for the CLKE Pin",
- type = "enumerated",
- choices = pll_clk_choice,
- file = "include/cfg/clock.h"
- }
- }
- },
- {
- name = "nutdev_npl",
- brief = "Nut Programmable Logic",
- description = "CPLD interrupt handling.\n"..
- "The CPLD on the Ethernut 3 reference design monitors "..
- "a number of status lines and activates IRQ0 on certain "..
- "status changes. This includes RS232 handshake inputs, "..
- "multimedia card detection, RTC alarms and LAN wakeup. "..
- "Tested on AT91 only.",
- requires = { "DEV_IRQ_AT91" },
- provides = { "DEV_NPL" },
- sources = { "npl.c" },
- },
- {
- name = "nutdev_nplmmc",
- brief = "NPL Multimedia Card Access",
- description = "CPLD implementation of a low level MMC interface.\n\n"..
- "This early driver doesn't support SPI bus sharing and "..
- "has been replaced by the SPI bus driver.\n\n"..
- "Tested on AT91 only.",
- requires = { "DEV_NPL" },
- provides = { "DEV_MMCLL" },
- sources = { "nplmmc.c" },
- },
- {
- name = "nutdev_spi_mmc_npl",
- brief = "NPL Multimedia Card Support",
- description = "CPLD implementation of MMC support.\n\n"..
- "This package provides additional routines, which "..
- "are needed when using MultiMedia Cards with an SPI "..
- "bus driver. Main functions are card change detection "..
- "and write SD Card write protect switch sensing.\n\n",
- "Tested on AT91 only.",
- requires = { "DEV_NPL" },
- provides = { "DEV_MMCSUPPORT" },
- sources = { "spi_mmc_npl.c" },
- options =
- {
- {
- macro = "NPL_MMC0_ULED",
- brief = "LED Indicator",
- description = "If enabled, the NPL user LED will be used to "..
- "inidcate card access.",
- flavor = "boolean",
- file = "include/cfg/mmci.h"
- }
- }
- },
- {
- name = "nutdev_npluled",
- brief = "NPL User (green) LED Access",
- description = "CPLD implementation of a user (green) LED interface. "..
- "Tested on AT91 only.",
- requires = { "DEV_NPL" },
- provides = { "DEV_NPLULED" },
- sources = { "npluled.c" },
- },
- {
- name = "nutdev_sbi0mmc",
- brief = "MMC Software SPI 0 Driver",
- description = "Bit banging implementation of a low level MMC interface. "..
- "Tested on AT91 only, but should work on most targets.",
- requires = { "HW_GPIO" },
- provides = { "DEV_MMCLL" },
- sources = { "sbi0mmc0.c", "sbi0mmc1.c" },
- options =
- {
- {
- macro = "MMC0_CLK_PIO_ID",
- brief = "Clock Port",
- description = "Port ID of the clock line.\n"..
- "SD-Card Pin 5, CLK",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CLK_PIO_BIT",
- brief = "Clock Bit",
- description = "Port bit number of the clock line.\n"..
- "SD-Card Pin 5, CLK",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_MOSI_PIO_ID",
- brief = "MOSI Port",
- description = "Port ID of the MOSI line.\n"..
- "SD-Card Pin 2, CMD",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_MOSI_PIO_BIT",
- brief = "MOSI Bit",
- description = "Port bit number of the MOSI line.\n"..
- "SD-Card Pin 2, CMD",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_MISO_PIO_ID",
- brief = "MISO Port",
- description = "Port ID of the MISO line.\n"..
- "SD-Card Pin 7, DAT0",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_MISO_PIO_BIT",
- brief = "MISO Bit",
- description = "Port bit number of the MISO line.\n"..
- "SD-Card Pin 7, DAT0",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CS0_PIO_ID",
- brief = "Card 0 Select Port",
- description = "Port ID of the first card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CS0_PIO_BIT",
- brief = "Card 0 Select Bit",
- description = "Port bit number of the first card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CD0_PIO_ID",
- brief = "Card 0 Detect Port",
- description = "Port ID of the first card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CD0_PIO_BIT",
- brief = "Card 0 Detect Bit",
- description = "Port bit number of the first card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_WP0_PIO_ID",
- brief = "Card 0 Write Protect Port",
- description = "Port ID of the first card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_WP0_PIO_BIT",
- brief = "Card 0 Write Protect Bit",
- description = "Port bit number of the first card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CS1_PIO_ID",
- brief = "Card 1 Select Port",
- description = "Port ID of the second card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CS1_PIO_BIT",
- brief = "Card 1 Select Bit",
- description = "Port bit number of the second card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CD1_PIO_ID",
- brief = "Card 1 Detect Port",
- description = "Port ID of the second card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_CD1_PIO_BIT",
- brief = "Card 1 Detect Bit",
- description = "Port bit number of the second card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_WP1_PIO_ID",
- brief = "Card 1 Write Protect Port",
- description = "Port ID of the second card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC0_WP1_PIO_BIT",
- brief = "Card 1 Write Protect Bit",
- description = "Port bit number of the second card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- },
- },
- {
- name = "nutdev_sbi1mmc",
- brief = "MMC Software SPI 1 Driver",
- description = "Bit banging implementation of a low level MMC interface. "..
- "Tested on AT91 only, but should work on most targets.",
- requires = { "HW_GPIO" },
- provides = { "DEV_MMCLL" },
- sources = { "sbi1mmc0.c", "sbi1mmc1.c" },
- options =
- {
- {
- macro = "MMC1_CLK_PIO_ID",
- brief = "Clock Port",
- description = "Port ID of the clock line.\n"..
- "SD-Card Pin 5, CLK",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CLK_PIO_BIT",
- brief = "Clock Bit",
- description = "Port bit number of the clock line.\n"..
- "SD-Card Pin 5, CLK",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_MOSI_PIO_ID",
- brief = "MOSI Port",
- description = "Port ID of the MOSI line.\n"..
- "SD-Card Pin 2, CMD",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_MOSI_PIO_BIT",
- brief = "MOSI Bit",
- description = "Port bit number of the MOSI line.\n"..
- "SD-Card Pin 2, CMD",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_MISO_PIO_ID",
- brief = "MISO Port",
- description = "Port ID of the MISO line.\n"..
- "SD-Card Pin 7, DAT0",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_MISO_PIO_BIT",
- brief = "MISO Bit",
- description = "Port bit number of the MISO line.\n"..
- "SD-Card Pin 7, DAT0",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CS0_PIO_ID",
- brief = "Card 0 Select Port",
- description = "Port ID of the first card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CS0_PIO_BIT",
- brief = "Card 0 Select Bit",
- description = "Port bit number of the first card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CD0_PIO_ID",
- brief = "Card 0 Detect Port",
- description = "Port ID of the first card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CD0_PIO_BIT",
- brief = "Card 0 Detect Bit",
- description = "Port bit number of the first card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_WP0_PIO_ID",
- brief = "Card 0 Write Protect Port",
- description = "Port ID of the first card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_WP0_PIO_BIT",
- brief = "Card 0 Write Protect Bit",
- description = "Port bit number of the first card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CS1_PIO_ID",
- brief = "Card 1 Select Port",
- description = "Port ID of the second card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CS1_PIO_BIT",
- brief = "Card 1 Select Bit",
- description = "Port bit number of the second card select line.\n"..
- "SD-Card Pin 1, DAT3",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CD1_PIO_ID",
- brief = "Card 1 Detect Port",
- description = "Port ID of the second card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_CD1_PIO_BIT",
- brief = "Card 1 Detect Bit",
- description = "Port bit number of the second card's detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_WP1_PIO_ID",
- brief = "Card 1 Write Protect Port",
- description = "Port ID of the second card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioPortIds() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- {
- macro = "MMC1_WP1_PIO_BIT",
- brief = "Card 1 Write Protect Bit",
- description = "Port bit number of the second card's write protect line.\n"..
- "Currently ignored.",
- type = "enumerated",
- choices = function() return GetGpioBits() end,
- flavor = "integer",
- file = function() return GetGpioHeaderPath() end
- },
- },
- },
- {
- name = "nutdev_sbimmc",
- brief = "Bit Banging Multimedia Card Access",
- description = "Old driver, use the one above!\n\n"..
- "Bit banging implementation of a low level MMC interface. "..
- "Tested on AT91 only.",
- requires = { "HW_GPIO", "HW_MCU_AT91R40008" },
- provides = { "DEV_MMCLL" },
- sources = { "sbimmc.c" },
- options =
- {
- {
- macro = "SPI0_CS_BIT",
- brief = "SPI0 Chip Select (AT91)",
- description = "Bit number of the chip select line.\n"..
- "SD-Card Pin 1, DAT3",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "SPI0_CLK_BIT",
- brief = "SPI0 Clock (AT91)",
- description = "Bit number of the clock line.\n"..
- "SD-Card Pin 5, CLK",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "SPI0_MOSI_BIT",
- brief = "SPI0 MOSI (AT91)",
- description = "Bit number of the MOSI line.\n"..
- "SD-Card Pin 2, CMD",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "SPI0_MISO_BIT",
- brief = "SPI0 MISO (AT91)",
- description = "Bit number of the MISO line.\n"..
- "SD-Card Pin 7, DAT0",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "MMC0_CD_BIT",
- brief = "MMC0 Card Detect (AT91)",
- description = "Bit number of the card detect line.\n"..
- "Must use an external interrupt pin. If left "..
- "empty, then card change detection is disabled.",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "MMC0_WP_BIT",
- brief = "MMC0 Write Protect (AT91)",
- description = "Bit number of the write protect line.\n"..
- "Currently ignored.",
- requires = { "HW_MCU_AT91" },
- type = "enumerated",
- choices = mcu_32bit_choice,
- file = "include/cfg/arch/armpio.h"
- },
- {
- macro = "SPI0_PORT",
- brief = "SPI0 Port (AVR)",
- description = "Port register name, AVRPORTB by default.",
- requires = { "HW_MCU_AVR" },
- type = "enumerated",
- choices = avr_port_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "SPI0_CS_BIT",
- brief = "SPI0 Chip Select (AVR)",
- description = "Bit number of the chip select line.",
- requires = { "HW_MCU_AVR" },
- type = "enumerated",
- choices = avr_bit_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "SPI0_CLK_BIT",
- brief = "SPI0 Clock (AVR)",
- description = "Bit number of the clock line.",
- requires = { "HW_MCU_AVR" },
- type = "enumerated",
- choices = avr_bit_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "SPI0_MOSI_BIT",
- brief = "SPI0 MOSI (AVR)",
- description = "Bit number of the MOSI line.",
- requires = { "HW_MCU_AVR" },
- type = "enumerated",
- choices = avr_bit_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- {
- macro = "SPI0_MISO_BIT",
- brief = "SPI0 MISO (AVR)",
- description = "Bit number of the MISO line.",
- requires = { "HW_MCU_AVR" },
- type = "enumerated",
- choices = avr_bit_choice,
- file = "include/cfg/arch/avrpio.h"
- },
- },
- },
- --
- -- WAN Drivers.
- --
- {
- name = "nutdev_ppp_hdlc",
- brief = "PPP HDLC Driver",
- requires = { "DEV_UART_GENERIC", "NUT_TIMER" },
- provides = { "PROTO_HDLC" },
- sources = { "ppp_hdlc.c" }
- },
- {
- name = "nutdev_ppp",
- brief = "PPP Driver",
- requires = { "PROTO_HDLC", "NUT_TIMER", "PROTO_HDLC" },
- provides = { "NET_MAC" },
- sources = { "ppp.c" }
- },
- {
- name = "nutdev_flash",
- brief = "Flash self programming",
- description = "Portable interface for flash self programming supplied" ..
- "by platform",
- options =
- {
- {
- macro = "IAP_FLASH",
- brief = "Platform flash self programming",
- description = "Portable IAP flash programming interface.",
- type = "integer",
- default = "1",
- requires = { "HW_FLASH" },
- file= "include/cfg/memory.h"
- }
- },
- },
- --
- -- Disabled components.
- --
- {
- name = "nutdev_spiflash_avr",
- brief = "SPI Flashing (AVR)",
- sources = { "spiflash.c" },
- requires = { "NOT_AVAILABLE" }
- },
- {
- name = "nutdev_3_7SEG",
- brief = "3x7 segment driver",
- description = "3x7 segment driver with SPI",
- sources = { "spi_7seg.c" },
- options =
- {
- {
- macro = "SEG7_SPI_RATE",
- brief = "SPI Transfer Rate",
- description = "Interface speed in bits per second, default is 4000000 (4Mbps).\n\n"..
- "If the exact value can't be set, the driver will choose the "..
- "next lower one. Bit banging interfaces always run at maximum speed.",
- default = "4000000",
- file = "include/cfg/spi_7seg.h"
- },
- {
- macro = "SEG7_DIGITS",
- brief = "Number of Digits",
- description = "Select Number of Digits connected to the AS110x chain.",
- type = "integer",
- default = "4",
- file = "include/cfg/spi_7seg.h"
- },
- {
- macro = "SEG7_REVERSE",
- brief = "Reverse Digits",
- description = "Select if Digits are connected reverse ( for upside down mounting).",
- flavor = "boolean",
- file = "include/cfg/spi_7seg.h"
- },
- },
- },
- }
|