1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445 |
- /******************************************************************************
- *
- * Copyright 2010, Dream Chip Technologies GmbH. All rights reserved.
- *
- ****************************************************************************
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2020 VeriSilicon Holdings Co., Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- *****************************************************************************
- *
- * The GPL License (GPL)
- *
- * Copyright (c) 2020 VeriSilicon Holdings Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program;
- *
- *****************************************************************************
- *
- * Note: This software is released under dual MIT and GPL licenses. A
- * recipient may use this file under the terms of either the MIT license or
- * GPL License. If you wish to use only one license not the other, you can
- * indicate your decision by deleting one of the above license notices in your
- * version of this file.
- *
- *****************************************************************************/
- #ifndef __MRV_ALL_BITS_H__
- #define __MRV_ALL_BITS_H__
- /*****************************************************************************/
- /* this includes the registermap generated by SIG-flow */
- /*****************************************************************************/
- #ifndef __KERNEL__
- #include <stdint.h>
- #else
- #include <linux/types.h>
- #endif
- #include "mrv_all_regs.h"
- /*****************************************************************************/
- /* this includes the hw version information */
- /*****************************************************************************/
- #include "isp_version.h"
- /*****************************************************************************/
- /* Marvin Main Control Registers */
- /*****************************************************************************/
- #define ALIGN_16BYTE(width) (((width) + (0xF - 1)) & (~(0xF - 1)))
- /*****************************************************************************/
- /**
- * register: vi_ccl: Data path control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: vi_ccl_dis:*/
- /* Clock Control Logic disable */
- /* 0: processing/cfg-clocks for all marvin sub modules enabled */
- /* 1: processing/cfg-clocks for all marvin sub modules disabled w/o access to ID and VI_CCL register */
- #ifdef MRV_VI_CCL_DIS
- #define MRV_VI_CCL_ENABLE_CLOCKS 0
- #define MRV_VI_CCL_DISABLE_CLOCKS 1
- #endif /* MRV_VI_CCL_DIS */
- /*****************************************************************************/
- /**
- * register: vi_id: Revision identification register (0x0008)
- *
- *****************************************************************************/
- /* Slice: rev_id:*/
- /* MARVIN5 revision IDs */
- #ifdef MRV_REV_ID
- #endif /* MRV_REV_ID */
- /*****************************************************************************/
- /**
- * register: vi_iccl: Internal clock control register (0x0010)
- *
- *****************************************************************************/
- /* Slice: vi_mipi_clk_enable: */
- /* MIPI interface clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_MIPI_CLK_ENABLE
- #endif /* MRV_VI_MIPI_CLK_ENABLE */
- /* Slice: vi_smia_clk_enable:*/
- /* SMIA interface clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_SMIA_CLK_ENABLE
- #endif /* MRV_VI_SMIA_CLK_ENABLE */
- /* Slice: vi_simp_clk_enable:*/
- /* Superimpose clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_SIMP_CLK_ENABLE
- #endif /* MRV_VI_SIMP_CLK_ENABLE */
- /* Slice: vi_ie_clk_enable:*/
- /* Image effect clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_IE_CLK_ENABLE
- #endif /* MRV_VI_IE_CLK_ENABLE */
- /* Slice: vi_mi_clk_enable:*/
- /* memory interface clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_MI_CLK_ENABLE
- #endif /* MRV_VI_MI_CLK_ENABLE */
- /* Slice: vi_jpeg_clk_enable:*/
- /* JPEG encoder clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_JPEG_CLK_ENABLE
- #endif /* MRV_VI_JPEG_CLK_ENABLE */
- /* Slice: vi_srsz_clk_enable:*/
- /* main resize clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_SRSZ_CLK_ENABLE
- #endif /* MRV_VI_SRSZ_CLK_ENABLE */
- /* Slice: vi_mrsz_clk_enable:*/
- /* main resize clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_MRSZ_CLK_ENABLE
- #endif /* MRV_VI_MRSZ_CLK_ENABLE */
- /* Slice: vi_cp_clk_enable:*/
- /* color processing clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_CP_CLK_ENABLE
- #endif /* MRV_VI_CP_CLK_ENABLE */
- /* Slice: vi_isp_clk_enable:*/
- /* isp processing clock enable */
- /* 1: processing mode */
- /* 0: power safe */
- #ifdef MRV_VI_ISP_CLK_ENABLE
- #endif /* MRV_VI_ISP_CLK_ENABLE */
- /*****************************************************************************/
- /**
- * register: vi_ircl: Internal reset control register (0x0014)
- *
- *****************************************************************************/
- /* Slice: vi_mipi_soft_rst:*/
- /* MIPI Interface software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_MIPI_SOFT_RST
- #endif /* MRV_VI_MIPI_SOFT_RST */
- /* Slice: vi_smia_soft_rst:*/
- /* SMIA Interface software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_SMIA_SOFT_RST
- #endif /* MRV_VI_SMIA_SOFT_RST */
- /* Slice: vi_simp_soft_rst:*/
- /* Superimpose software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_SIMP_SOFT_RST
- #endif /* MRV_VI_SIMP_SOFT_RST */
- /* Slice: vi_ie_soft_rst:*/
- /* Image effect software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_IE_SOFT_RST
- #endif /* MRV_VI_IE_SOFT_RST */
- /* Slice: vi_marvin_rst:*/
- /* Soft reset of entire marvin */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_MARVIN_RST
- #endif /* MRV_VI_MARVIN_RST */
- /* Slice: vi_mi_soft_rst:*/
- /* memory interface software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_MI_SOFT_RST
- #endif /* MRV_VI_MI_SOFT_RST */
- /* Slice: vi_jpeg_soft_rst:*/
- /* JPEG encoder software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_JPEG_SOFT_RST
- #endif /* MRV_VI_JPEG_SOFT_RST */
- /* Slice: vi_srsz_soft_rst:*/
- /* Self-picture resize software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_SRSZ_SOFT_RST
- #endif /* MRV_VI_SRSZ_SOFT_RST */
- /* Slice: vi_mrsz_soft_rst:*/
- /* Main-picture resize software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_MRSZ_SOFT_RST
- #endif /* MRV_VI_MRSZ_SOFT_RST */
- /* Slice: vi_ycs_soft_rst:*/
- /* y/c splitter software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_YCS_SOFT_RST
- #endif /* MRV_VI_YCS_SOFT_RST */
- /* Slice: vi_cp_soft_rst:*/
- /* color processing software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_CP_SOFT_RST
- #endif /* MRV_VI_CP_SOFT_RST */
- /* Slice: vi_isp_soft_rst:*/
- /* isp software reset */
- /* 0: processing mode */
- /* 1: reset state */
- #ifdef MRV_VI_ISP_SOFT_RST
- #endif /* MRV_VI_ISP_SOFT_RST */
- /*****************************************************************************/
- /**
- * register: vi_dpcl: Data path control register (0x0018)
- *
- *****************************************************************************/
- /* Slice: vi_dma_spmux:*/
- /* 0: data from camera interface to self resize */
- /* 1: data from DMA read port to self resize */
- #ifdef MRV_VI_DMA_SPMUX
- #define MRV_VI_DMA_SPMUX_CAM 0 /* 0: data from camera interface to self resize */
- #define MRV_VI_DMA_SPMUX_DMA 1 /* 1: data from DMA read port to self resize */
- #endif /* MRV_VI_DMA_SPMUX */
- /* Slice: vi_dma_iemux:*/
- /* 0: data from camera interface to image effects */
- /* 1: data from DMA read port to image effects */
- #ifdef MRV_VI_DMA_IEMUX
- #define MRV_VI_DMA_IEMUX_CAM 0 /* 0: data from camera interface to image effects */
- #define MRV_VI_DMA_IEMUX_DMA 1 /* 1: data from DMA read port to image effects */
- #endif /* MRV_VI_DMA_IEMUX */
- /* Slice: if_select:*/
- /* selects input interface */
- /* 0: parallel interface */
- /* 1: SMIA-interface */
- /* 2: MIPI-interface */
- #ifdef MRV_IF_SELECT
- #define MRV_IF_SELECT_PAR 0 /* 0: parallel interface */
- #define MRV_IF_SELECT_SMIA 1 /* 1: SMIA-interface */
- #define MRV_IF_SELECT_MIPI 2 /* 2: MIPI-interface */
- #define MRV_IF_SELECT_HDR 3 /* 2: HDR-interface */
- #endif /* MRV_IF_SELECT */
- /* Slice: vi_dma_switch:*/
- /* DMA read data path selector */
- /* 0: path to SPMUX */
- /* 1: path to Superimpose */
- /* 2: path to Image Effects */
- /* 3: reserved (for path to JPEG)*/
- /* 4..7: reserved */
- #ifdef MRV_VI_DMA_SWITCH
- #define MRV_VI_DMA_SWITCH_SELF 0 /* 0: path to SPMUX */
- #define MRV_VI_DMA_SWITCH_SIMP 1 /* 1: path to Superimpose */
- #define MRV_VI_DMA_SWITCH_IE 2 /* 2: path to Image Effects */
- #define MRV_VI_DMA_SWITCH_JPG 3 /* 3: path to JPEG */
- #define MRV_VI_DMA_SWITCH_ISP 4 /* 4: path to ISP */
- #endif /* MRV_VI_DMA_SWITCH */
- /* Slice: vi_chan_mode:*/
- /* Y/C splitter channel mode */
- /* 0: disabled */
- /* 1: main path and raw data mode */
- /* 2: self path mode */
- /* 3: main and self path mode */
- #ifdef MRV_VI_CHAN_MODE
- #define MRV_VI_CHAN_MODE_OFF 0x00 /* 0: disabled */
- #define MRV_VI_CHAN_MODE_Y 0xFF /* not supported */
- #define MRV_VI_CHAN_MODE_MP_RAW 0x01 /* 1: main path and raw data mode */
- #define MRV_VI_CHAN_MODE_MP 0x01 /* 1: main path and raw data mode */
- #define MRV_VI_CHAN_MODE_SP 0x02 /* 2: self path mode */
- #define MRV_VI_CHAN_MODE_MP_SP 0x03 /* 3: main and self path mode */
- #define MRV_VI_CHAN_MODE_SP2 0x04 /* 4: self2 path mode */
- #define MRV_VI_CHAN_MODE_MP_SP2 0x05 /* 5: main and self2 path mode */
- #define MRV_VI_CHAN_MODE_SP_SP2 0x06 /* 6: self and self2 path mode */
- #define MRV_VI_CHAN_MODE_MP_SP_SP2 0x07 /* 7: main self and self2 path mode */
- #endif /* MRV_VI_CHAN_MODE */
- /* Slice: vi_mp_mux:*/
- /* data path selector for main path */
- /* 00: reserved (future: data from DMA read port to JPEG encoder)*/
- /* 01: data from main resize to MI, uncompressed */
- /* 10: data from main resize to JPEG encoder */
- /* 11: reserved */
- #ifdef MRV_VI_MP_MUX
- #define MRV_VI_MP_MUX_JPGDIRECT 0x00 /* 00: reserved (future: data from DMA read port to JPEG encoder) */
- #define MRV_VI_MP_MUX_MP 0x01 /* 01: data from main resize to MI, uncompressed */
- #define MRV_VI_MP_MUX_RAW 0x01 /* (now also used for RAW data bypass) */
- #define MRV_VI_MP_MUX_JPEG 0x02 /* 10: data from main resize to JPEG encoder */
- #endif /* MRV_VI_MP_MUX */
- /*****************************************************************************/
- /* Image Effects Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: img_eff_ctrl: Global control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: full_range:*/
- /* write 0: pixel value range according to BT.601 */
- /* write 1: YCbCr full range 0...255 */
- #ifdef MRV_IMGEFF_FULL_RANGE
- #define MRV_IMGEFF_FULL_RANGE_FULL 1 /* 1: YCbCr full range 0...255 */
- #define MRV_IMGEFF_FULL_RANGE_BT601 0 /* 0: pixel value range according to BT.601 */
- #endif /* MRV_IMGEFF_FULL_RANGE */
- /* Slice: cfg_upd:*/
- /* write 0: nothing happens */
- /* write 1: update shadow registers */
- /* read: always 0 */
- #ifdef MRV_IMGEFF_CFG_UPD
- #define MRV_IMGEFF_CFG_UPD_NOTHING 0 /* 0: nothing happens */
- #define MRV_IMGEFF_CFG_UPD_UPDATE 1 /* 1: update shadow registers */
- #endif /* MRV_IMGEFF_CFG_UPD */
- /* Slice: effect_mode:*/
- /* effect mode */
- /* 000: black & white effect (grayscale)*/
- /* 001: negative effect */
- /* 010: sepia effect */
- /* 011: color selection effect */
- /* 100: emboss effect */
- /* 101: sketch effect */
- /* 110: sharpen effect */
- /* 111: reserved */
- #ifdef MRV_IMGEFF_EFFECT_MODE
- #define MRV_IMGEFF_EFFECT_MODE_GRAY 0 /* 000: black & white effect (grayscale) */
- #define MRV_IMGEFF_EFFECT_MODE_NEGATIVE 1 /* 001: negative effect */
- #define MRV_IMGEFF_EFFECT_MODE_SEPIA 2 /* 010: sepia effect */
- #define MRV_IMGEFF_EFFECT_MODE_COLOR_SEL 3 /* 011: color selection effect */
- #define MRV_IMGEFF_EFFECT_MODE_EMBOSS 4 /* 100: emboss effect */
- #define MRV_IMGEFF_EFFECT_MODE_SKETCH 5 /* 101: sketch effect */
- #define MRV_IMGEFF_EFFECT_MODE_SHARPEN 6 /* 110: sharpen effect */
- #endif /* MRV_IMGEFF_EFFECT_MODE */
- /* Slice: bypass_mode:*/
- /* bypass mode */
- /* 1: processing is activated */
- /* 0: processing is deactivated, bypass mode is selected */
- #ifdef MRV_IMGEFF_BYPASS_MODE
- #define MRV_IMGEFF_BYPASS_MODE_PROCESS 1 /* 1: processing is activated */
- #define MRV_IMGEFF_BYPASS_MODE_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
- #endif /* MRV_IMGEFF_BYPASS_MODE */
- /*****************************************************************************/
- /**
- * register: img_eff_color_sel: Color selection register (for
- * color selection effect) (0x0004)
- *
- *****************************************************************************/
- /* Slice: color_threshold:*/
- /* Threshold value of the RGB colors for the color selection effect.*/
- #ifdef MRV_IMGEFF_COLOR_THRESHOLD
- #endif /* MRV_IMGEFF_COLOR_THRESHOLD */
- /* Slice: color_selection:*/
- /* Defining the maintained color:*/
- /* 000: red green and blue */
- /* 001: blue */
- /* 010: green */
- /* 011: green and blue */
- /* 100: red */
- /* 101: red and blue */
- /* 110: red and green */
- /* 111: red green and blue */
- #ifdef MRV_IMGEFF_COLOR_SELECTION
- #define MRV_IMGEFF_COLOR_SELECTION_RGB 0 /* 000: red green and blue */
- #define MRV_IMGEFF_COLOR_SELECTION_B 1 /* 001: blue */
- #define MRV_IMGEFF_COLOR_SELECTION_G 2 /* 010: green */
- #define MRV_IMGEFF_COLOR_SELECTION_BG 3 /* 011: green and blue */
- #define MRV_IMGEFF_COLOR_SELECTION_R 4 /* 100: red */
- #define MRV_IMGEFF_COLOR_SELECTION_RB 5 /* 101: red and blue */
- #define MRV_IMGEFF_COLOR_SELECTION_RG 6 /* 110: red and green */
- #define MRV_IMGEFF_COLOR_SELECTION_BGR 7 /* 111: red green and blue */
- #endif /* MRV_IMGEFF_COLOR_SELECTION */
- /* Slice: emb_coef_21_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_21_EN
- #endif /* MRV_IMGEFF_EMB_COEF_21_EN */
- /* Slice: emb_coef_21:*/
- /* second line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_21
- #define MRV_IMGEFF_EMB_COEF_21_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_21_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_21_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_21_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_21_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_21_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_21_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_21_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_21 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_21_4
- #define MRV_IMGEFF_EMB_COEF_21_4_MASK 0x0000F000
- #define MRV_IMGEFF_EMB_COEF_21_4_SHIFT 12
- /* Slice: emb_coef_13_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_13_EN
- #endif /* MRV_IMGEFF_EMB_COEF_13_EN */
- /* Slice: emb_coef_13:*/
- /* first line, right entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_13
- #define MRV_IMGEFF_EMB_COEF_13_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_13_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_13_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_13_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_13_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_13_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_13_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_13_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_13 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_13_4
- #define MRV_IMGEFF_EMB_COEF_13_4_MASK 0x00000F00
- #define MRV_IMGEFF_EMB_COEF_13_4_SHIFT 8
- /* Slice: emb_coef_12_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_12_EN
- #endif /* MRV_IMGEFF_EMB_COEF_12_EN */
- /* Slice: emb_coef_12:*/
- /* first line, middle entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_12
- #define MRV_IMGEFF_EMB_COEF_12_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_12_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_12_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_12_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_12_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_12_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_12_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_12_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_12 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_12_4
- #define MRV_IMGEFF_EMB_COEF_12_4_MASK 0x000000F0
- #define MRV_IMGEFF_EMB_COEF_12_4_SHIFT 4
- /* Slice: emb_coef_11_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_11_EN
- #define MRV_IMGEFF_EMB_COEF_11_EN_ON 1
- #define MRV_IMGEFF_EMB_COEF_11_EN_OFF 0
- #endif /* MRV_IMGEFF_EMB_COEF_11_EN */
- /* Slice: emb_coef_11:*/
- /* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_11
- #define MRV_IMGEFF_EMB_COEF_11_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_11_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_11_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_11_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_11_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_11_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_11_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_11_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_11 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_11_4
- #define MRV_IMGEFF_EMB_COEF_11_4_MASK 0x0000000F
- #define MRV_IMGEFF_EMB_COEF_11_4_SHIFT 0
- /* Slice: emb_coef_32_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_32_EN
- #endif /* MRV_IMGEFF_EMB_COEF_32_EN */
- /* Slice: emb_coef_32:*/
- /* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_32
- #define MRV_IMGEFF_EMB_COEF_32_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_32_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_32_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_32_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_32_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_32_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_32_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_32_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_32 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_32_4
- #define MRV_IMGEFF_EMB_COEF_32_4_MASK 0x0000F000
- #define MRV_IMGEFF_EMB_COEF_32_4_SHIFT 12
- /* Slice: emb_coef_31_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_31_EN
- #endif /* MRV_IMGEFF_EMB_COEF_31_EN */
- /* Slice: emb_coef_31:*/
- /* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_31
- #define MRV_IMGEFF_EMB_COEF_31_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_31_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_31_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_31_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_31_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_31_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_31_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_31_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_31 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_31_4
- #define MRV_IMGEFF_EMB_COEF_31_4_MASK 0x00000F00
- #define MRV_IMGEFF_EMB_COEF_31_4_SHIFT 8
- /* Slice: emb_coef_23_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_23_EN
- #endif /* MRV_IMGEFF_EMB_COEF_23_EN */
- /* Slice: emb_coef_23:*/
- /* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_23
- #define MRV_IMGEFF_EMB_COEF_23_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_23_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_23_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_23_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_23_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_23_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_23_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_23_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_23 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_23_4
- #define MRV_IMGEFF_EMB_COEF_23_4_MASK 0x000000F0
- #define MRV_IMGEFF_EMB_COEF_23_4_SHIFT 4
- /* Slice: emb_coef_22_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_22_EN
- #endif /* MRV_IMGEFF_EMB_COEF_22_EN */
- /* Slice: emb_coef_22:*/
- /* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_22
- #define MRV_IMGEFF_EMB_COEF_22_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_22_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_22_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_22_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_22_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_22_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_22_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_22_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_22 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_22_4
- #define MRV_IMGEFF_EMB_COEF_22_4_MASK 0x0000000F
- #define MRV_IMGEFF_EMB_COEF_22_4_SHIFT 0
- /*****************************************************************************/
- /**
- * register: img_eff_mat_3: 3x3 matrix coefficients for emboss(3) effect /
- * sketch(1) effect (0x0010)
- *
- *****************************************************************************/
- /* Slice: sket_coef_13_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_13_EN
- #endif /* MRV_IMGEFF_SKET_COEF_13_EN */
- /* Slice: sket_coef_13:*/
- /* first line, right entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_13
- #define MRV_IMGEFF_SKET_COEF_13_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_13_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_13_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_13_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_13_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_13_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_13_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_13_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_13 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_13_4
- #define MRV_IMGEFF_SKET_COEF_13_4_MASK 0x0000F000
- #define MRV_IMGEFF_SKET_COEF_13_4_SHIFT 12
- /* Slice: sket_coef_12_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_12_EN
- #endif /* MRV_IMGEFF_SKET_COEF_13_EN */
- /* Slice: sket_coef_12:*/
- /* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_12
- #define MRV_IMGEFF_SKET_COEF_12_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_12_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_12_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_12_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_12_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_12_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_12_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_12_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_12 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_12_4
- #define MRV_IMGEFF_SKET_COEF_12_4_MASK 0x00000F00
- #define MRV_IMGEFF_SKET_COEF_12_4_SHIFT 8
- /* Slice: sket_coef_11_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_11_EN
- #endif /* MRV_IMGEFF_SKET_COEF_13_EN */
- /* Slice: sket_coef_11:*/
- /* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_11
- #define MRV_IMGEFF_SKET_COEF_11_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_11_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_11_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_11_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_11_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_11_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_11_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_11_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_11 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_11_4
- #define MRV_IMGEFF_SKET_COEF_11_4_MASK 0x000000F0
- #define MRV_IMGEFF_SKET_COEF_11_4_SHIFT 4
- /* Slice: emb_coef_33_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_EMB_COEF_33_EN
- #endif /* MRV_IMGEFF_EMB_COEF_33_EN */
- /* Slice: emb_coef_33:*/
- /* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_EMB_COEF_3
- #define MRV_IMGEFF_EMB_COEF_33_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_EMB_COEF_33_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_EMB_COEF_33_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_EMB_COEF_33_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_EMB_COEF_33_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_EMB_COEF_33_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_EMB_COEF_33_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_EMB_COEF_33_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_EMB_COEF_33 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_EMB_COEF_33_4
- #define MRV_IMGEFF_EMB_COEF_33_4_MASK 0x0000000F
- #define MRV_IMGEFF_EMB_COEF_33_4_SHIFT 0
- /*****************************************************************************/
- /**
- * register: img_eff_mat_4: 3x3 matrix coefficients for sketch effect (2)
- * (0x0014)
- *
- *****************************************************************************/
- /* Slice: sket_coef_31_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_31_EN
- #endif /* MRV_IMGEFF_SKET_COEF_31_EN */
- /* Slice: sket_coef_31:*/
- /* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_31
- #define MRV_IMGEFF_SKET_COEF_31_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_31_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_31_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_31_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_31_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_31_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_31_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_31_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_31 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_31_4
- #define MRV_IMGEFF_SKET_COEF_31_4_MASK 0x0000F000
- #define MRV_IMGEFF_SKET_COEF_31_4_SHIFT 12
- /* Slice: sket_coef_23_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_23_EN
- #endif /* MRV_IMGEFF_SKET_COEF_23_EN */
- /* Slice: sket_coef_23:*/
- /* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_23
- #define MRV_IMGEFF_SKET_COEF_23_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_23_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_23_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_23_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_23_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_23_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_23_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_23_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_23 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_23_4
- #define MRV_IMGEFF_SKET_COEF_23_4_MASK 0x00000F00
- #define MRV_IMGEFF_SKET_COEF_23_4_SHIFT 8
- /* Slice: sket_coef_22_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_22_EN
- #endif /* MRV_IMGEFF_SKET_COEF_22_EN */
- /* Slice: sket_coef_22:*/
- /* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_22
- #define MRV_IMGEFF_SKET_COEF_22_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_22_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_22_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_22_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_22_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_22_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_22_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_22_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_22 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_22_4
- #define MRV_IMGEFF_SKET_COEF_22_4_MASK 0x000000F0
- #define MRV_IMGEFF_SKET_COEF_22_4_SHIFT 4
- /* Slice: sket_coef_21_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_21_EN
- #endif /* MRV_IMGEFF_SKET_COEF_21_EN */
- /* Slice: sket_coef_21:*/
- /* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_21
- #define MRV_IMGEFF_SKET_COEF_21_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_21_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_21_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_21_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_21_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_21_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_21_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_21_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_21 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_21_4
- #define MRV_IMGEFF_SKET_COEF_21_4_MASK 0x0000000F
- #define MRV_IMGEFF_SKET_COEF_21_4_SHIFT 0
- /*****************************************************************************/
- /**
- * register: img_eff_mat_5: 3x3 matrix coefficients for sketch effect (3)
- * (0x0018)
- *
- *****************************************************************************/
- /* Slice: sket_coef_33_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_33_EN
- #endif /* MRV_IMGEFF_SKET_COEF_33_EN */
- /* Slice: sket_coef_33:*/
- /* third line, right entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_33
- #define MRV_IMGEFF_SKET_COEF_33_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_33_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_33_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_33_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_33_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_33_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_33_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_33_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_33 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_33_4
- #define MRV_IMGEFF_SKET_COEF_33_4_MASK 0x000000F0
- #define MRV_IMGEFF_SKET_COEF_33_4_SHIFT 4
- /* Slice: sket_coef_32_en:*/
- /* 0: entry not used (coefficient is zero)*/
- /* 1: entry used */
- #ifdef MRV_IMGEFF_SKET_COEF_32_EN
- #endif /* MRV_IMGEFF_SKET_COEF_32_EN */
- /* Slice: sket_coef_32:*/
- /* third line, right entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
- /* coefficients:*/
- /* 000 (1), 001(2), 010(4), 011(8)*/
- /* 100 (-1), 101(-2), 110(-4), 111(-8)*/
- #ifdef MRV_IMGEFF_SKET_COEF_32
- #define MRV_IMGEFF_SKET_COEF_32_ONE 0 /* 000 (1) */
- #define MRV_IMGEFF_SKET_COEF_32_TWO 1 /* 001 (2) */
- #define MRV_IMGEFF_SKET_COEF_32_FOUR 2 /* 010 (4) */
- #define MRV_IMGEFF_SKET_COEF_32_EIGHT 3 /* 011 (8) */
- #define MRV_IMGEFF_SKET_COEF_32_MIN_ONE 4 /* 100 (-1) */
- #define MRV_IMGEFF_SKET_COEF_32_MIN_TWO 5 /* 101 (-2) */
- #define MRV_IMGEFF_SKET_COEF_32_MIN_FOUR 6 /* 110 (-4) */
- #define MRV_IMGEFF_SKET_COEF_32_MIN_EIGHT 8 /* 111 (-8) */
- #endif /* MRV_IMGEFF_SKET_COEF_32 */
- /* combination of value and enable bit */
- #define MRV_IMGEFF_SKET_COEF_32_4
- #define MRV_IMGEFF_SKET_COEF_32_4_MASK 0x0000000F
- #define MRV_IMGEFF_SKET_COEF_32_4_SHIFT 0
- /* valid for all coeffiecient definitions */
- #define MRV_IMGEFF_COEF
- #define MRV_IMGEFF_COEF_ONE 0U
- #define MRV_IMGEFF_COEF_TWO 1U /* 001: (2) */
- #define MRV_IMGEFF_COEF_FOUR 2U /* 010: (4) */
- #define MRV_IMGEFF_COEF_EIGHT 3U /* 011: (8) */
- #define MRV_IMGEFF_COEF_MIN_ONE 4U /* 100: (-1) */
- #define MRV_IMGEFF_COEF_MIN_TWO 5U /* 101: (-2) */
- #define MRV_IMGEFF_COEF_MIN_FOUR 6U /* 110: (-4) */
- #define MRV_IMGEFF_COEF_MIN_EIGHT 7U /* 111: (-8) */
- #define MRV_IMGEFF_COEF_ON 1U /* 1: coefficient enabled */
- #define MRV_IMGEFF_COEF_OFF 0U /* 0: coefficient disabled */
- #define MRV_IMGEFF_COEF_SHIFT 3U /* shift for enable bit */
- /*****************************************************************************/
- /**
- * register: img_eff_tint: Chrominance increment values of a tint
- * (used for sepia effect) (0x001c)
- *
- *****************************************************************************/
- /* Slice: incr_cr:*/
- /* Cr increment value of a tint. 7 bits for value, 1 sign bit.*/
- /* Default tint is R=162 G=138 B=101, which is used for the sepia effect. See below for the calculation of the entries.*/
- #ifdef MRV_IMGEFF_INCR_CR
- #endif /* MRV_IMGEFF_INCR_CR */
- /* Slice: incr_cb:*/
- /* Cb increment value of a tint. 7 bits for value, 1 sign bit.*/
- /* Default tint is R=162 G=138 B=101, which is used for the sepia effect. See below for the calculation of the entries.*/
- #ifdef MRV_IMGEFF_INCR_CB
- #endif /* MRV_IMGEFF_INCR_CB */
- /*****************************************************************************/
- /**
- * register: img_eff_ctrl_shd: Shadow register for control register (0x0020)
- *
- *****************************************************************************/
- /* Slice: effect_mode_shd:*/
- /* effect mode */
- /* 000: black & white effect (grayscale)*/
- /* 001: negative effect */
- /* 010: sepia effect */
- /* 011: color selection effect */
- /* 100: emboss effect */
- /* 101: sketch effect */
- /* 110-111: not used */
- #ifdef MRV_IMGEFF_EFFECT_MODE_SHD
- #define MRV_IMGEFF_EFFECT_MODE_SHD_GRAY 0 /* 000: black & white effect (grayscale) */
- #define MRV_IMGEFF_EFFECT_MODE_SHD_NEGATIVE 1 /* 001: negative effect */
- #define MRV_IMGEFF_EFFECT_MODE_SHD_SEPIA 2 /* 010: sepia effect */
- #define MRV_IMGEFF_EFFECT_MODE_SHD_COLOR_SEL 3 /* 011: color selection effect */
- #define MRV_IMGEFF_EFFECT_MODE_SHD_EMBOSS 4 /* 100: emboss effect */
- #define MRV_IMGEFF_EFFECT_MODE_SHD_SKETCH 5 /* 101: sketch effect */
- #define MRV_IMGEFF_EFFECT_MODE_SHD_SHARPEN 6 /* 110: sharpen effect */
- #endif /* MRV_IMGEFF_EFFECT_MODE_SHD */
- /*****************************************************************************/
- /* Super Impose Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: super_imp_ctrl: Global control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: transparency_mode:*/
- /* transparency mode */
- /* 1: transparency mode disabled */
- /* 0: transparency mode enabled */
- #ifdef MRV_SI_TRANSPARENCY_MODE
- #define MRV_SI_TRANSPARENCY_MODE_DISABLED 1 /* 1: transparency mode disabled */
- #define MRV_SI_TRANSPARENCY_MODE_ENABLED 0 /* 0: transparency mode enabled */
- #endif /* MRV_SI_TRANSPARENCY_MODE */
- /* Slice: ref_image:*/
- /* Define the reference image */
- /* 1: superimpose bitmap from main memory */
- /* 0: image from the Image Effect module */
- /* Note: the reference image defines the size of the output image */
- #ifdef MRV_SI_REF_IMAGE
- #define MRV_SI_REF_IMAGE_MEM 1 /* 1: superimpose bitmap from main memory */
- #define MRV_SI_REF_IMAGE_IE 0 /* 0: image from the Image Effect module */
- #endif /* MRV_SI_REF_IMAGE */
- /* Slice: bypass_mode:*/
- /* bypass mode */
- /* 1: processing is activated */
- /* 0: processing is deactivated, bypass mode is selected */
- #ifdef MRV_SI_BYPASS_MODE
- #define MRV_SI_BYPASS_MODE_PROCESS 1 /* 1: processing is activated */
- #define MRV_SI_BYPASS_MODE_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
- #endif /* MRV_IMGEFF_BYPASS_MODE */
- /*****************************************************************************/
- /**
- * register: super_imp_offset_x: Offset x register (0x0004)
- *
- *****************************************************************************/
- /* Slice: offset_x:*/
- /* Offset X */
- /* Note: the bit 0 is don't care (write 1 doesn't have any effect, the read access always gives 0)*/
- /* Note: the offset_x is positive and refers to the reference image */
- #ifdef MRV_SI_OFFSET_X
- #endif /* MRV_SI_OFFSET_X */
- /*****************************************************************************/
- /**
- * register: super_imp_offset_y: Offset y register (0x0008)
- *
- *****************************************************************************/
- /* Slice: offset_y:*/
- /* Offset Y */
- /* Note: the offset_y is positive and refers to the reference image */
- #ifdef MRV_SI_OFFSET_Y
- #endif /* MRV_SI_OFFSET_Y */
- /*****************************************************************************/
- /**
- * register: super_imp_color_y: Y component of transparent key color (0x000c)
- *
- *****************************************************************************/
- /* Slice: y_comp:*/
- /* Y component of transparent key color */
- #ifdef MRV_SI_Y_COMP
- #endif /* MRV_SI_Y_COMP */
- /*****************************************************************************/
- /**
- * register: super_imp_color_cb: Cb component of transparent key color (0x0010)
- *
- *****************************************************************************/
- /* Slice: cb_comp:*/
- /* Cb component of transparent key color */
- #ifdef MRV_SI_CB_COMP
- #endif /* MRV_SI_CB_COMP */
- /*****************************************************************************/
- /**
- * register: super_imp_color_cr: Cr component of transparent key color (0x0014)
- *
- *****************************************************************************/
- /* Slice: cr_comp:*/
- /* Cr component of transparent key color */
- #ifdef MRV_SI_CR_COMP
- #endif /* MRV_SI_CR_COMP */
- /*****************************************************************************/
- /* ISP Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_ctrl: global control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: ISP_DPF_RAW_OUT */
- /*! Slice MRV_ISP_DPF_RAW_OUT:*/
- /*! 0: DPF RAW OUT is disable */
- /*! 1: DPF RAW OUT is enable */
- #ifdef ISP_DPF_RAW
- #ifdef MRV_ISP_DPF_RAW_OUT
- #define MRV_ISP_DPF_RAW_OUT_DISABLE 0 /* 0: DPF raw out is disable */
- #define MRV_ISP_DPF_RAW_OUT_ENABLE 1 /* 1: DPF raw out is enable */
- #endif
- #endif
- /* Slice: ISP_CSM_C_RANGE:*/
- /* Color Space Matrix chrominance clipping range for ISP output */
- /* 0: CbCr range 64..960 (16..240) according to ITU-R BT.601 standard */
- /* 1: full UV range 0..1023 (0..255)*/
- /* Numbers in brackets are for 8 bit resolution.*/
- #ifdef MRV_ISP_ISP_CSM_C_RANGE
- #define MRV_ISP_ISP_CSM_C_RANGE_BT601 0 /* 0: CbCr range 64..960 (16..240) according to ITU-R BT.601 standard */
- #define MRV_ISP_ISP_CSM_C_RANGE_FULL 1 /* 1: full UV range 0..1023 (0..255) */
- #endif /* MRV_ISP_ISP_CSM_C_RANGE */
- /* Slice: ISP_CSM_Y_RANGE:*/
- /* Color Space Matrix luminance clipping range for ISP output */
- /* 0: Y range 64..940 (16..235) according to ITU-R BT.601 standard */
- /* 1: full Y range 0..1023 (0..255)*/
- /* Numbers in brackets are for 8 bit resolution.*/
- #ifdef MRV_ISP_ISP_CSM_Y_RANGE
- #define MRV_ISP_ISP_CSM_Y_RANGE_BT601 0 /* 0: Y range 64..940 (16..235) according to ITU-R BT.601 standard */
- #define MRV_ISP_ISP_CSM_Y_RANGE_FULL 1 /* 1: full Y range 0..1023 (0..255) */
- #endif /* MRV_ISP_ISP_CSM_Y_RANGE */
- /* Slice: ISP_FLASH_MODE:*/
- /* 0: sensor interface works independently from flash control unit */
- /* 1: one frame is captured when signaled by flash control unit */
- #ifdef MRV_ISP_ISP_FLASH_MODE
- #define MRV_ISP_ISP_FLASH_MODE_INDEP 0 /* 0: sensor interface works independently from flash control unit */
- #define MRV_ISP_ISP_FLASH_MODE_SYNC 1 /* 1: one frame is captured when signaled by flash control unit */
- #endif /* MRV_ISP_ISP_FLASH_MODE */
- /* Slice: ISP_GAMMA_OUT_ENABLE:*/
- /* gamma ON/OFF */
- #ifdef MRV_ISP_ISP_GAMMA_OUT_ENABLE
- #endif /* MRV_ISP_ISP_GAMMA_OUT_ENABLE */
- /* Slice: ISP_GEN_CFG_UPD:*/
- /* generate vsynced config shadow signal at the output, write only */
- #ifdef MRV_ISP_ISP_GEN_CFG_UPD
- #endif /* MRV_ISP_ISP_GEN_CFG_UPD */
- /* Slice: ISP_CFG_UPD:*/
- /* immediate configure internal shadow registers, write only */
- #ifdef MRV_ISP_ISP_CFG_UPD
- #endif /* MRV_ISP_ISP_CFG_UPD */
- /* Slice: ISP_AE_ENABLE:*/
- /* auto exposure ON/OFF */
- #ifdef MRV_ISP_ISP_AE_ENABLE
- #endif /* MRV_ISP_ISP_AE_ENABLE */
- /* Slice: ISP_AWB_ENABLE:*/
- /* auto white balance ON/OFF */
- #ifdef MRV_ISP_ISP_AWB_ENABLE
- #endif /* MRV_ISP_ISP_AWB_ENABLE */
- /* Slice: ISP_GAMMA_IN_ENABLE:*/
- /* Sensor De-gamma ON/OFF */
- #ifdef MRV_ISP_ISP_GAMMA_IN_ENABLE
- #define MRV_ISP_ISP_GAMMA_IN_ENABLE_ON 1U
- #define MRV_ISP_ISP_GAMMA_IN_ENABLE_OFF 0U
- #endif /* MRV_ISP_ISP_GAMMA_IN_ENABLE */
- /* Slice: ISP_INFORM_ENABLE:*/
- /* input block ON/OFF (frame-synced on)*/
- #ifdef MRV_ISP_ISP_INFORM_ENABLE
- #endif /* MRV_ISP_ISP_INFORM_ENABLE */
- /* Slice: ISP_MODE:*/
- /* 000: RAW picture with BT.601 sync (ISP bypass)*/
- /* 001: ITU-R BT.656 (YUV with embedded sync)*/
- /* 010: ITU-R BT.601 (YUV input with H and Vsync signals)*/
- /* 011: Bayer RGB processing with H and Vsync signals */
- /* 100: data mode (ISP bypass, sync signals interpreted as data enable)*/
- /* 101: Bayer RGB processing with BT.656 synchronization */
- /* 110: RAW picture with ITU-R BT.656 synchronization (ISP bypass)*/
- /* 111: reserved */
- /**/
- /* Side effect:*/
- /* If RAW, BT.601, BT.656, or data mode is selected, the clock of the */
- /* ISP SRAMs (ISP line buffer, Lens Shading, Bad Pixel) is switched off.*/
- /* Only in Bayer RGB mode the clock to the SRAMs is enabled. This */
- /* further reduces power consumption.*/
- #ifdef MRV_ISP_ISP_MODE
- #define MRV_ISP_ISP_MODE_RAW 0 /* 000 - RAW picture with BT.601 sync (ISP bypass) */
- #define MRV_ISP_ISP_MODE_656 1 /* 001 - ITU-R BT.656 (YUV with embedded sync) */
- #define MRV_ISP_ISP_MODE_601 2 /* 010 - ITU-R BT.601 (YUV input with H and Vsync signals) */
- #define MRV_ISP_ISP_MODE_RGB 3 /* 011 - Bayer RGB processing with H and Vsync signals */
- #define MRV_ISP_ISP_MODE_DATA 4 /* 100 - data mode (ISP bypass, sync signals interpreted as data enable) */
- #define MRV_ISP_ISP_MODE_RGB656 5 /* 101 - Bayer RGB processing with BT.656 synchronization */
- #define MRV_ISP_ISP_MODE_RAW656 6 /* 110 - RAW picture with ITU-R BT.656 synchronization (ISP bypass) */
- #endif /* MRV_ISP_ISP_MODE */
- /* Slice: ISP_ENABLE:*/
- /* MANUAL ON/OFF (controls output formatter, framesynced)*/
- #ifdef MRV_ISP_ISP_ENABLE
- #endif /* MRV_ISP_ISP_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_acq_prop: ISP acquisition properties (0x0004)
- *
- *****************************************************************************/
- #ifdef ISP_DVP_PINMAPPING
- /*! Slice: MRV_ISP_DVP_INPUT_PIN_MAPPING */
- /*! Bit Mapping for LSB to MSP for ISPNano.*/
- /*! 3'b000: normal 12-bit external interface */
- /*! 3'b001: mapping low 10 bit to high 10 bits, append 2 zeros as LSBs.*/
- /*! 3'b010: mapping low 8 bit to high 8 bits, append 4 zeros as LSBs.*/
- /*! 3'b011: mapping middle 8 bit to high 8 bits, append 4 zeros as LSBs.*/
- /*! 3'b100..3'b111: rsvd */
- #ifdef MRV_ISP_DVP_INPUT_PIN_MAPPING
- #define MRV_ISP_DVP_INPUT_PIN_MAPPING_12TO12 0
- #define MRV_ISP_DVP_INPUT_PIN_MAPPING_L10TOH10 1
- #define MRV_ISP_DVP_INPUT_PIN_MAPPING_L8TOH8 2
- #define MRV_ISP_DVP_INPUT_PIN_MAPPING_M8TOH8 3
- #endif
- #endif
- /*! Slice: DMA_YUV_SELECTION */
- /*! 0: use align or conversion data for isp_is input */
- /*! 1: use dma yuv read data for isp_is input */
- #ifdef MRV_ISP_DMA_YUV_SELECTION
- #define MRV_ISP_DMA_YUV_SELECTION_ALIGNED_CONV 0
- #define MRV_ISP_DMA_YUV_SELECTION_DMA_YUV 1
- #endif
- /* Slice: LATENCY_FIFO_SELECTION:*/
- /* 0: use input formatter input for latency fifo.*/
- /* 1: use dma rgb read input for latency fifo.*/
- #ifdef MRV_ISP_LATENCY_FIFO_SELECTION
- #define MRV_ISP_LATENCY_FIFO_SELECTION_INPUT_FORMATTER 0
- #define MRV_ISP_LATENCY_FIFO_SELECTION_DMA_READ 1
- #endif /* MRV_ISP_LATENCY_FIFO_SELECTION */
- /* Slice: INPUT_SELECTION:*/
- /* 000: 12Bit external Interface */
- /* 001: 10Bit Interface, append 2 zeroes as LSBs */
- /* 010: 10Bit Interface, append 2 MSBs as LSBs */
- /* 011: 8Bit Interface, append 4 zeroes as LSBs */
- /* 100: 8Bit Interface, append 4 MSBs as LSBs */
- /* 101...111: reserved */
- #ifdef MRV_ISP_INPUT_SELECTION
- #define MRV_ISP_INPUT_SELECTION_12EXT 0 /* 000- 12Bit external Interface */
- #define MRV_ISP_INPUT_SELECTION_10ZERO 1 /* 001- 10Bit Interface, append 2 zeroes as LSBs */
- #define MRV_ISP_INPUT_SELECTION_10MSB 2 /* 010- 10Bit Interface, append 2 MSBs as LSBs */
- #define MRV_ISP_INPUT_SELECTION_8ZERO 3 /* 011- 8Bit Interface, append 4 zeroes as LSBs */
- #define MRV_ISP_INPUT_SELECTION_8MSB 4 /* 100- 8Bit Interface, append 4 MSBs as LSBs */
- #endif /* MRV_ISP_INPUT_SELECTION */
- /* Slice: FIELD_SELECTION:*/
- /* 00: sample all fields (don't care about fields)*/
- /* 01: sample only even fields */
- /* 10: sample only odd fields */
- /* 11: reserved */
- #ifdef MRV_ISP_FIELD_SELECTION
- #define MRV_ISP_FIELD_SELECTION_BOTH 0 /* 00- sample all fields (don't care about fields) */
- #define MRV_ISP_FIELD_SELECTION_EVEN 1 /* 01- sample only even fields */
- #define MRV_ISP_FIELD_SELECTION_ODD 2 /* 10- sample only odd fields */
- #endif /* MRV_ISP_FIELD_SELECTION */
- /* Slice: CCIR_SEQ:*/
- /* 00: YCbYCr */
- /* 01: YCrYCb */
- /* 10: CbYCrY */
- /* 11: CrYCbY */
- #ifdef MRV_ISP_CCIR_SEQ
- #define MRV_ISP_CCIR_SEQ_YCBYCR 0 /* 00 - YCbYCr */
- #define MRV_ISP_CCIR_SEQ_YCRYCB 1 /* 01 - YCrYCb */
- #define MRV_ISP_CCIR_SEQ_CBYCRY 2 /* 10 - CbYCrY */
- #define MRV_ISP_CCIR_SEQ_CRYCBY 3 /* 11 - CrYCbY */
- #endif /* MRV_ISP_CCIR_SEQ */
- /* Slice: CONV_422:*/
- /* 00- co-sited color subsampling Y0Cb0Cr0 - Y1 */
- /* 01- interleaved color subsampling Y0Cb0 - Y1Cr1 (not recommended)*/
- /* 10- non-cosited color subsampling Y0Cb(0+1)/2 - Y1Cr(0+1)/2 */
- /* 11- reserved */
- #ifdef MRV_ISP_CONV_422
- #define MRV_ISP_CONV_422_CO 0 /* 00- co-sited color subsampling Y0Cb0Cr0 - Y1 */
- #define MRV_ISP_CONV_422_INTER 1 /* 01- interleaved color subsampling Y0Cb0 - Y1Cr1 (not recommended) */
- #define MRV_ISP_CONV_422_NONCO 2 /* 10- non-cosited color subsampling Y0Cb(0+1)/2 - Y1Cr(0+1)/2 */
- #endif /* MRV_ISP_CONV_422 */
- /* Slice: BAYER_PAT:*/
- /* color components from sensor, starting with top left position in sampled frame */
- /* (reprogram with ISP_ACQ_H_OFFS, ISP_ACQ_V_OFFS)*/
- /**/
- /* 00: first line: RGRG, second line: GBGB, etc.*/
- /* 01: first line: GRGR, second line: BGBG, etc.*/
- /* 10: first line: GBGB, second line: RGRG, etc.*/
- /* 11: first line: BGBG, second line: GRGR, etc.*/
- /* This configuration applies for the black level area after cropping by the input formatter.*/
- #ifdef MRV_ISP_BAYER_PAT
- #define MRV_ISP_BAYER_PAT_RG 0 /* 00 - first line: RGRG, second line: GBGB, etc. */
- #define MRV_ISP_BAYER_PAT_GR 1 /* 01 - first line: GRGR, second line: BGBG, etc. */
- #define MRV_ISP_BAYER_PAT_GB 2 /* 10 - first line: GBGB, second line: RGRG, etc. */
- #define MRV_ISP_BAYER_PAT_BG 3 /* 11 - first line: BGBG, second line: GRGR, etc. */
- #endif /* MRV_ISP_BAYER_PAT */
- /* Slice: VSYNC_POL:*/
- /* vertical sync polarity */
- /* 0: high active */
- /* 1: low active */
- #ifdef MRV_ISP_VSYNC_POL
- #endif /* MRV_ISP_VSYNC_POL */
- /* Slice: HSYNC_POL:*/
- /* horizontal sync polarity */
- /* 0: high active */
- /* 1: low active */
- #ifdef MRV_ISP_HSYNC_POL
- #endif /* MRV_ISP_HSYNC_POL */
- /* Slice: SAMPLE_EDGE:*/
- /* 0: negative edge sampling */
- /* 1: positive edge sampling */
- #ifdef MRV_ISP_SAMPLE_EDGE
- #endif /* MRV_ISP_SAMPLE_EDGE */
- /*****************************************************************************/
- /**
- * register: isp_acq_h_offs: horizontal input offset (0x0008)
- *
- *****************************************************************************/
- /* Slice: ACQ_H_OFFS:*/
- /* horizontal sample offset in 8-bit samples (yuv: 4 samples=2pix)*/
- #ifdef MRV_ISP_ACQ_H_OFFS
- #endif /* MRV_ISP_ACQ_H_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_acq_v_offs: vertical input offset (0x000c)
- *
- *****************************************************************************/
- /* Slice: ACQ_V_OFFS:*/
- /* vertical sample offset in lines */
- #ifdef MRV_ISP_ACQ_V_OFFS
- #endif /* MRV_ISP_ACQ_V_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_acq_h_size: horizontal input size (0x0010)
- *
- *****************************************************************************/
- /* Slice: ACQ_H_SIZE:*/
- /* horizontal sample size in 12-bit samples */
- /* YUV input: 2 samples = 1 pixel, else 1 sample = 1 pixel; So in YUV mode ACQ_H_SIZE must be twice as large as horizontal image size */
- /* horizontal image size must always be even exept in raw picture mode; if an odd size is programmed the value will be truncated to even size */
- #ifdef MRV_ISP_ACQ_H_SIZE
- #endif /* MRV_ISP_ACQ_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_acq_v_size: vertical input size (0x0014)
- *
- *****************************************************************************/
- /* Slice: ACQ_V_SIZE:*/
- /* vertical sample size in lines */
- #ifdef MRV_ISP_ACQ_V_SIZE
- #endif /* MRV_ISP_ACQ_V_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_acq_nr_frames: Number of frames to be captured (0x0018)
- *
- *****************************************************************************/
- /* Slice: ACQ_NR_FRAMES:*/
- /* number of input frames to be sampled (0 = continuous)*/
- #ifdef MRV_ISP_ACQ_NR_FRAMES
- #endif /* MRV_ISP_ACQ_NR_FRAMES */
- /*****************************************************************************/
- /**
- * register: isp_gamma_dx_lo: De-Gamma Curve definition lower x increments
- * (sampling points) (0x001c)
- *
- *****************************************************************************/
- /* Slice: GAMMA_DX_8:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_8
- #endif /* MRV_ISP_GAMMA_DX_8 */
- /* Slice: GAMMA_DX_7:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_7
- #endif /* MRV_ISP_GAMMA_DX_7 */
- /* Slice: GAMMA_DX_6:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_6
- #endif /* MRV_ISP_GAMMA_DX_6 */
- /* Slice: GAMMA_DX_5:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_5
- #endif /* MRV_ISP_GAMMA_DX_5 */
- /* Slice: GAMMA_DX_4:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_4
- #endif /* MRV_ISP_GAMMA_DX_4 */
- /* Slice: GAMMA_DX_3:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_3
- #endif /* MRV_ISP_GAMMA_DX_3 */
- /* Slice: GAMMA_DX_2:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_2
- #endif /* MRV_ISP_GAMMA_DX_2 */
- /* Slice: GAMMA_DX_1:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_1
- #endif /* MRV_ISP_GAMMA_DX_1 */
- /*****************************************************************************/
- /**
- * register: isp_gamma_dx_hi: De-Gamma Curve definition higher x increments
- * (sampling points) (0x0020)
- *
- *****************************************************************************/
- /* Slice: GAMMA_DX_16:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_16
- #endif /* MRV_ISP_GAMMA_DX_16 */
- /* Slice: GAMMA_DX_15:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_15
- #endif /* MRV_ISP_GAMMA_DX_15 */
- /* Slice: GAMMA_DX_14:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_14
- #endif /* MRV_ISP_GAMMA_DX_14 */
- /* Slice: GAMMA_DX_13:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_13
- #endif /* MRV_ISP_GAMMA_DX_13 */
- /* Slice: GAMMA_DX_12:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_12
- #endif /* MRV_ISP_GAMMA_DX_12 */
- /* Slice: GAMMA_DX_11:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_11
- #endif /* MRV_ISP_GAMMA_DX_11 */
- /* Slice: GAMMA_DX_10:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_10
- #endif /* MRV_ISP_GAMMA_DX_10 */
- /* Slice: GAMMA_DX_9:*/
- /* gamma curve sample point definition x-axis (input)*/
- #ifdef MRV_ISP_GAMMA_DX_9
- #endif /* MRV_ISP_GAMMA_DX_9 */
- /*****************************************************************************/
- /**
- * register array: isp_gamma_r_y: De-Gamma Curve definition y red (0x0024+n (n=0..16))
- *
- *****************************************************************************/
- /* Slice: GAMMA_R_Y:*/
- /* gamma curve point definition y-axis (output) for red */
- /* RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so that dy is 12-bit signed !)*/
- #ifdef MRV_ISP_GAMMA_R_Y
- #endif /* MRV_ISP_GAMMA_R_Y */
- /*****************************************************************************/
- /**
- * register array: isp_gamma_g_y: De-Gamma Curve definition y green (0x0068+n (n=0..16))
- *
- *****************************************************************************/
- /* Slice: GAMMA_G_Y:*/
- /* gamma curve point definition y-axis (output) for green */
- /* RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so that dy is 12-bit signed !)*/
- #ifdef MRV_ISP_GAMMA_G_Y
- #endif /* MRV_ISP_GAMMA_G_Y */
- /*****************************************************************************/
- /**
- * register array: isp_gamma_b_y: De-Gamma Curve definition y blue (0x00AC+n (n=0..16))
- *
- *****************************************************************************/
- /* Slice: GAMMA_B_Y:*/
- /* gamma curve point definition y-axis (output) for blue */
- /* RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so that dy is 12-bit signed !)*/
- #ifdef MRV_ISP_GAMMA_B_Y
- #endif /* MRV_ISP_GAMMA_B_Y */
- /*****************************************************************************/
- /* ISP Auto White Balance Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_awb_prop: Auto white balance properties (0x0110)
- *
- *****************************************************************************/
- /* Slice: AWB_MEAS_MODE:*/
- /* 1: RGB based measurement mode */
- /* 0: near white discrimination mode using YCbCr color space */
- #ifdef MRV_ISP_AWB_MEAS_MODE
- #define MRV_ISP_AWB_MEAS_MODE_RGB 1U /* 1: RGB based measurement mode */
- #define MRV_ISP_AWB_MEAS_MODE_YCBCR 0U /* 0: near white discrimination mode using YCbCr color space */
- #endif /* MRV_ISP_AWB_MEAS_MODE */
- /* Slice: AWB_MAX_EN:*/
- /* 1: enable Y_MAX compare */
- /* 0: disable Y_MAX compare */
- /* ignored if RGB measurement mode is enabled */
- #ifdef MRV_ISP_AWB_MAX_EN
- #define MRV_ISP_AWB_MAX_EN_ENABLE 1U /* 1: enable Y_MAX compare */
- #define MRV_ISP_AWB_MAX_EN_DISABLE 0U /* 0: disable Y_MAX compare */
- #endif /* MRV_ISP_AWB_MAX_EN */
- /* Slice: AWB_MODE:*/
- /* AWB_MODE(1:0):*/
- /* 11: reserved */
- /* 10: white balance measurement of YCbCr means */
- /* 01: reserved */
- /* 00: manual white balance (gain adjust possible), no measurement */
- #ifdef MRV_ISP_AWB_MODE
- #define MRV_ISP_AWB_MODE_MEAS 2U /* 10: white balance measurement of YCbCr or RGB means (dependent on MRV_ISP_AWB_MEAS_MODE) */
- #define MRV_ISP_AWB_MODE_NOMEAS 0U /* 00: manual white balance (gain adjust possible), no measurement */
- #endif /* MRV_ISP_AWB_MODE */
- /*****************************************************************************/
- /**
- * register: isp_awb_h_offs: Auto white balance horizontal offset of measure
- * window (0x0114)
- *
- *****************************************************************************/
- /* Slice: AWB_H_OFFS:*/
- /* horizontal window offset in pixel */
- #ifdef MRV_ISP_AWB_H_OFFS
- #define MRV_ISP_AWB_H_OFFS_MIN 0U
- #define MRV_ISP_AWB_H_OFFS_MAX (MRV_ISP_AWB_H_OFFS_MASK >> MRV_ISP_AWB_H_OFFS_SHIFT)
- #endif /* MRV_ISP_AWB_H_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_awb_v_offs: Auto white balance vertical offset of measure
- * window (0x0118)
- *
- *****************************************************************************/
- /* Slice: AWB_V_OFFS:*/
- /* vertical window offset in lines */
- #ifdef MRV_ISP_AWB_V_OFFS
- #define MRV_ISP_AWB_V_OFFS_MIN 0U
- #define MRV_ISP_AWB_V_OFFS_MAX (MRV_ISP_AWB_V_OFFS_MASK >> MRV_ISP_AWB_V_OFFS_SHIFT)
- #endif /* MRV_ISP_AWB_V_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_awb_h_size: Auto white balance horizontal window size (0x011c)
- *
- *****************************************************************************/
- /* Slice: AWB_H_SIZE:*/
- /* horizontal measurement window size in pixel */
- #ifdef MRV_ISP_AWB_H_SIZE
- #define MRV_ISP_AWB_H_SIZE_MIN 0U
- #define MRV_ISP_AWB_H_SIZE_MAX (MRV_ISP_AWB_H_SIZE_MASK >> MRV_ISP_AWB_H_SIZE_SHIFT)
- #endif /* MRV_ISP_AWB_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_awb_v_size: Auto white balance vertical window size (0x0120)
- *
- *****************************************************************************/
- /* Slice: AWB_V_SIZE:*/
- /* vertical measurement window size in lines */
- #ifdef MRV_ISP_AWB_V_SIZE
- #define MRV_ISP_AWB_V_SIZE_MIN 0U
- #define MRV_ISP_AWB_V_SIZE_MAX (MRV_ISP_AWB_V_SIZE_MASK >> MRV_ISP_AWB_V_SIZE_SHIFT)
- #endif /* MRV_ISP_AWB_V_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_awb_frames: Auto white balance mean value over multiple frames (0x0124)
- *
- *****************************************************************************/
- /* Slice: AWB_FRAMES:*/
- /* number of frames-1 used for mean value calculation (value of 0 means 1 frame, value of 7 means 8 frames)*/
- #ifdef MRV_ISP_AWB_FRAMES
- #endif /* MRV_ISP_AWB_FRAMES */
- /*****************************************************************************/
- /**
- * register: isp_awb_ref: Auto white balance reference Cb/Cr values (0x0128)
- * or maximum red/blue values
- *
- *****************************************************************************/
- /* Slice: AWB_REF_CR__MAX_R:*/
- /* - reference Cr value for AWB regulation, target for AWB */
- /* - maximum red value, if RGB measurement mode is selected */
- #ifdef MRV_ISP_AWB_REF_CR__MAX_R
- #endif /* MRV_ISP_AWB_REF_CR__MAX_R */
- /* Slice: AWB_REF_CB__MAX_B:*/
- /* - reference Cb value for AWB regulation, target for AWB */
- /* - maximum blue value, if RGB measurement mode is selected */
- #ifdef MRV_ISP_AWB_REF_CB__MAX_B
- #endif /* MRV_ISP_AWB_REF_CB__MAX_B */
- /*****************************************************************************/
- /**
- * register: isp_awb_thresh: Auto white balance threshold values (0x012c)
- *
- *****************************************************************************/
- /* Slice: AWB_MAX_Y:*/
- /* - Luminance maximum value, only consider pixels with luminance smaller than threshold for the WB measurement (must be enabled by AWB_MODE(2)),*/
- /* - ignored if RGB measurement mode is enabled */
- #ifdef MRV_ISP_AWB_MAX_Y
- #endif /* MRV_ISP_AWB_MAX_Y */
- /* Slice: AWB_MIN_Y__MAX_G:*/
- /* - Luminance minimum value, only consider pixels with luminance greater than threshold for the WB measurement */
- /* - maximum green value, if RGB measurement mode is selected */
- #ifdef MRV_ISP_AWB_MIN_Y__MAX_G
- #endif /* MRV_ISP_AWB_MIN_Y__MAX_G */
- /* Slice: AWB_MAX_CSUM:*/
- /* - Chrominance sum maximum value, only consider pixels with Cb+Cr smaller than threshold for WB measurements */
- /* - ignored if RGB measurement mode is enabled */
- #ifdef MRV_ISP_AWB_MAX_CSUM
- #endif /* MRV_ISP_AWB_MAX_CSUM */
- /* Slice: AWB_MIN_C:*/
- /* - Chrominance minimum value, only consider pixels with Cb/Cr each greater than threshold value for WB measurements */
- /* - ignored if RGB measurement mode is enabled */
- #ifdef MRV_ISP_AWB_MIN_C
- #endif /* MRV_ISP_AWB_MIN_C */
- /*****************************************************************************/
- /**
- * register: isp_awb_gain_g: Auto white balance gain green (0x0138)
- *
- *****************************************************************************/
- /* Slice: AWB_GAIN_GR:*/
- /* gain value for green component in red line 100h = 1 */
- #ifdef MRV_ISP_AWB_GAIN_GR
- #define MRV_ISP_AWB_GAIN_GR_DEFAULT (0x100U)
- #define MRV_ISP_AWB_GAIN_GR_MAX (MRV_ISP_AWB_GAIN_GR_MASK >> MRV_ISP_AWB_GAIN_GR_SHIFT)
- #endif /* MRV_ISP_AWB_GAIN_GR */
- /* Slice: AWB_GAIN_GB:*/
- /* gain value for green component in blue line 100h = 1 */
- #ifdef MRV_ISP_AWB_GAIN_GB
- #define MRV_ISP_AWB_GAIN_GB_DEFAULT (0x100U)
- #define MRV_ISP_AWB_GAIN_GB_MAX (MRV_ISP_AWB_GAIN_GB_MASK >> MRV_ISP_AWB_GAIN_GB_SHIFT)
- #endif /* MRV_ISP_AWB_GAIN_GB */
- /*****************************************************************************/
- /**
- * register: isp_awb_gain_rb: Auto white balance gain red and blue (0x013c)
- *
- *****************************************************************************/
- /* Slice: AWB_GAIN_R:*/
- /* gain value for red component 100h = 1 */
- #ifdef MRV_ISP_AWB_GAIN_R
- #define MRV_ISP_AWB_GAIN_R_DEFAULT (0x100U)
- #define MRV_ISP_AWB_GAIN_R_MAX (MRV_ISP_AWB_GAIN_R_MASK >> MRV_ISP_AWB_GAIN_R_SHIFT)
- #endif /* MRV_ISP_AWB_GAIN_R */
- /* Slice: AWB_GAIN_B:*/
- /* gain value for blue component 100h = 1 */
- #ifdef MRV_ISP_AWB_GAIN_B
- #define MRV_ISP_AWB_GAIN_B_DEFAULT (0x100U)
- #define MRV_ISP_AWB_GAIN_B_MAX (MRV_ISP_AWB_GAIN_B_MASK >> MRV_ISP_AWB_GAIN_B_SHIFT)
- #endif /* MRV_ISP_AWB_GAIN_B */
- /*****************************************************************************/
- /**
- * register: isp_awb_white_cnt: Auto white balance white pixel count (0x0140)
- *
- *****************************************************************************/
- /* Slice: AWB_WHITE_CNT:*/
- /* White pixel count, number of "white pixels" found during last measurement, i.e. pixels included in mean value calculation */
- #ifdef MRV_ISP_AWB_WHITE_CNT
- #endif /* MRV_ISP_AWB_WHITE_CNT */
- /*****************************************************************************/
- /**
- * register: isp_awb_mean: Auto white balance measured mean value (0x0144)
- *
- *****************************************************************************/
- /* Slice: AWB_MEAN_Y_G:*/
- /* - mean value of Y within window and frames */
- /* - mean value of green within window and frames if RGB measurement is enabled */
- #ifdef MRV_ISP_AWB_MEAN_Y__G
- #endif /* MRV_ISP_AWB_MEAN_Y__G */
- /* Slice: AWB_MEAN_CB_B:*/
- /* - mean value of Cb within window and frames */
- /* - mean value of blue within window and frames if RGB measurement is enabled */
- #ifdef MRV_ISP_AWB_MEAN_CB__B
- #endif /* MRV_ISP_AWB_MEAN_CB__B */
- /* Slice: AWB_MEAN_CR_R:*/
- /* - mean value of Cr within window and frames */
- /* - mean value of red within window and frames if RGB measurement is enabled */
- #ifdef MRV_ISP_AWB_MEAN_CR__R
- #endif /* MRV_ISP_AWB_MEAN_CR__R */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_0: Color conversion coefficient 0 (0x0170)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_0:*/
- /* coefficient 0 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_0
- #endif /* MRV_ISP_CC_COEFF_0 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_1: Color conversion coefficient 1 (0x0174)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_1:*/
- /* coefficient 1 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_1
- #endif /* MRV_ISP_CC_COEFF_1 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_2: Color conversion coefficient 2 (0x0178)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_2:*/
- /* coefficient 2 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_2
- #endif /* MRV_ISP_CC_COEFF_2 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_3: Color conversion coefficient 3 (0x017c)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_3:*/
- /* coefficient 3 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_3
- #endif /* MRV_ISP_CC_COEFF_3 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_4: Color conversion coefficient 4 (0x0180)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_4:*/
- /* coefficient 4 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_4
- #endif /* MRV_ISP_CC_COEFF_4 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_5: Color conversion coefficient 5 (0x0184)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_5:*/
- /* coefficient 5 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_5
- #endif /* MRV_ISP_CC_COEFF_5 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_6: Color conversion coefficient 6 (0x0188)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_6:*/
- /* coefficient 6 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_6
- #endif /* MRV_ISP_CC_COEFF_6 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_7: Color conversion coefficient 7 (0x018c)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_7:*/
- /* coefficient 7 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_7
- #endif /* MRV_ISP_CC_COEFF_7 */
- /*****************************************************************************/
- /**
- * register: isp_cc_coeff_8: Color conversion coefficient 8 (0x0190)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_8:*/
- /* coefficient 8 for color space conversion */
- #ifdef MRV_ISP_CC_COEFF_8
- #endif /* MRV_ISP_CC_COEFF_8 */
- /*****************************************************************************/
- /**
- * register: isp_out_h_offs: Horizontal offset of output window (0x0194)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_H_OFFS:*/
- /* vertical pic offset in lines */
- #ifdef MRV_ISP_ISP_OUT_H_OFFS
- #endif /* MRV_ISP_ISP_OUT_H_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_out_v_offs: Vertical offset of output window (0x0198)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_V_OFFS:*/
- /* vertical pic offset in lines */
- #ifdef MRV_ISP_ISP_OUT_V_OFFS
- #endif /* MRV_ISP_ISP_OUT_V_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_out_h_size: Output horizontal picture size (0x019c)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_H_SIZE:*/
- /* horizontal picture size in pixel */
- /* if ISP_MODE is set to */
- /* 001: (ITU-R BT.656 YUV),*/
- /* 010: (ITU-R BT.601 YUV),*/
- /* 011: (ITU-R BT.601 Bayer RGB),*/
- /* 101: (ITU-R BT.656 Bayer RGB)*/
- /* only even numbers are accepted, because complete quadruples of YUYV(YCbYCr)*/
- /* are needed for the 422 output. (if an odd size is programmed the value will */
- /* be truncated to an even size)*/
- #ifdef MRV_ISP_ISP_OUT_H_SIZE
- #define MRV_ISP_ISP_OUT_H_SIZE_IS_EVEN(x) (!(x & 0x01U)) /* check is even value */
- #define MRV_ISP_ISP_OUT_H_SIZE_IS_ODD(x) (x & 0x01U) /* check is odd value */
- #endif /* MRV_ISP_ISP_OUT_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_out_v_size: Output vertical picture size (0x01a0)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_V_SIZE:*/
- /* vertical pic size in lines */
- #ifdef MRV_ISP_ISP_OUT_V_SIZE
- #endif /* MRV_ISP_ISP_OUT_V_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_demosaic: Demosaic parameters (0x000001a4)
- *
- *****************************************************************************/
- /* Slice: DEMOSAIC_BYPASS:*/
- /* 0: normal operation for RGB Bayer Pattern input */
- /* 1: demosaicing bypass for Black&White input data */
- #ifdef MRV_ISP_DEMOSAIC_BYPASS
- #define MRV_ISP_DEMOSAIC_MODE_STD 0 /* "0": standard */
- #define MRV_ISP_DEMOSAIC_MODE_ENH 1 /* "1": enhanced mode */
- #endif /* MRV_ISP_DEMOSAIC_BYPASS */
- /* Slice: DEMOSAIC_TH:*/
- /* Threshold for Bayer demosaicing texture detection. This value shifted left */
- /* 4bit is compared with the difference of the vertical and horizontal 12Bit */
- /* wide texture indicators, to decide if the vertical or horizontal texture */
- /* flag must be set.*/
- /* 0xFF: no texture detection */
- /* 0x00: maximum edge sensitivity */
- #ifdef MRV_ISP_DEMOSAIC_TH
- #define MRV_ISP_DEMOSAIC_TH_MAX_TEXTURE_DETECTION 0xFFU /* 0xFF: no texture detection */
- #define MRV_ISP_DEMOSAIC_TH_MAX_EDGE_SENSITIVITY 0x00U /* 0x00: maximum edge sensitivity */
- #endif /* MRV_ISP_DEMOSAIC_TH */
- /*****************************************************************************/
- /**
- * register: isp_flags_shd: Flags (current status) of certain signals and
- * Shadow regs for enable signals (0x000001a8)
- *
- *****************************************************************************/
- /* Slice: S_HSYNC:*/
- /* state of ISP input port s_hsync, for test purposes */
- #ifdef MRV_ISP_S_HSYNC
- #endif /* MRV_ISP_S_HSYNC */
- /* Slice: S_VSYNC:*/
- /* state of ISP input port s_vsync, for test purposes */
- #ifdef MRV_ISP_S_VSYNC
- #endif /* MRV_ISP_S_VSYNC */
- /* Slice: S_DATA:*/
- /* state of ISP input port s_data, for test purposes */
- #ifdef MRV_ISP_S_DATA
- #endif /* MRV_ISP_S_DATA */
- /* Slice: INFORM_FIELD:*/
- /* current field information */
- /* 0: odd */
- /* 1: even */
- #ifdef MRV_ISP_INFORM_FIELD
- #define MRV_ISP_INFORM_FIELD_ODD 0 /* 0: odd field is sampled */
- #define MRV_ISP_INFORM_FIELD_EVEN 1 /* 1: even field is sampled */
- #endif /* MRV_ISP_INFORM_FIELD */
- /* Slice: INFORM_EN_SHD:*/
- /* Input formatter enable shadow register */
- #ifdef MRV_ISP_INFORM_EN_SHD
- #endif /* MRV_ISP_INFORM_EN_SHD */
- /* Slice: ISP_ENABLE_SHD:*/
- /* ISP enable shadow register */
- /* shows, if ISP currently outputs data (1) or not (0)*/
- #ifdef MRV_ISP_ISP_ENABLE_SHD
- #endif /* MRV_ISP_ISP_ENABLE_SHD */
- /*****************************************************************************/
- /**
- * register: isp_out_h_offs_shd: current horizontal offset of output window
- * (shadow register) (0x000001ac)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_H_OFFS_SHD:*/
- /* current vertical pic offset in lines */
- #ifdef MRV_ISP_ISP_OUT_H_OFFS_SHD
- #endif /* MRV_ISP_ISP_OUT_H_OFFS_SHD */
- /*****************************************************************************/
- /**
- * register: isp_out_v_offs_shd: current vertical offset of output window
- * (shadow register) (0x000001b0)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_V_OFFS_SHD:*/
- /* current vertical pic offset in lines */
- #ifdef MRV_ISP_ISP_OUT_V_OFFS_SHD
- #endif /* MRV_ISP_ISP_OUT_V_OFFS_SHD */
- /*****************************************************************************/
- /**
- * register: isp_out_h_size_shd: current output horizontal picture size
- * (shadow register) (0x000001b4)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_H_SIZE_SHD:*/
- /* current horizontal pic size in pixel */
- #ifdef MRV_ISP_ISP_OUT_H_SIZE_SHD
- #endif /* MRV_ISP_ISP_OUT_H_SIZE_SHD */
- /*****************************************************************************/
- /**
- * register: isp_out_v_size_shd: current output vertical picture size
- * (shadow register) (0x000001b8)
- *
- *****************************************************************************/
- /* Slice: ISP_OUT_V_SIZE_SHD:*/
- /* vertical pic size in lines */
- #ifdef MRV_ISP_ISP_OUT_V_SIZE_SHD
- #endif /* MRV_ISP_ISP_OUT_V_SIZE_SHD */
- /*****************************************************************************/
- /**
- * register: isp_imsc: Interrupt mask (0x000001bc)
- *
- *****************************************************************************/
- /*! Slice: IMSC_VSM_END:*/
- /*! enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_VSM_END
- #define MRV_ISP_IMSC_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_VSM_END */
- /* Slice: IMSC_EXP_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_EXP_END
- #define MRV_ISP_IMSC_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_EXP_END */
- /* Slice: IMSC_FLASH_CAP:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_FLASH_CAP
- #define MRV_ISP_IMSC_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_FLASH_CAP */
- /* Slice: IMSC_BP_DET:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_BP_DET
- #define MRV_ISP_IMSC_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_BP_DET */
- /* Slice: IMSC_HIST_MEASURE_RDY:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_HIST_MEASURE_RDY
- #define MRV_ISP_IMSC_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_HIST_MEASURE_RDY */
- /* Slice: IMSC_AFM_FIN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_AFM_FIN
- #define MRV_ISP_IMSC_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !IMSC_AFM_FIN */
- /* Slice: IMSC_AFM_LUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_AFM_LUM_OF
- #define MRV_ISP_IMSC_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_AFM_LUM_OF */
- /* Slice: IMSC_AFM_SUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_AFM_SUM_OF
- #define MRV_ISP_IMSC_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_AFM_SUM_OF */
- /* Slice: IMSC_SHUTTER_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_SHUTTER_OFF
- #define MRV_ISP_IMSC_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_SHUTTER_OFF */
- /* Slice: IMSC_SHUTTER_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_SHUTTER_ON
- #define MRV_ISP_IMSC_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_SHUTTER_ON */
- /* Slice: IMSC_FLASH_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_FLASH_OFF
- #define MRV_ISP_IMSC_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_FLASH_OFF */
- /* Slice: IMSC_FLASH_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_FLASH_ON
- #define MRV_ISP_IMSC_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_FLASH_ON */
- /* Slice: IMSC_H_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_H_START
- #define MRV_ISP_IMSC_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_H_START */
- /* Slice: IMSC_V_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_V_START
- #define MRV_ISP_IMSC_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_V_START */
- /* Slice: IMSC_FRAME_IN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_FRAME_IN
- #define MRV_ISP_IMSC_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_FRAME_IN */
- /* Slice: IMSC_AWB_DONE:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_AWB_DONE
- #define MRV_ISP_IMSC_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_AWB_DONE */
- /* Slice: IMSC_PIC_SIZE_ERR:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_PIC_SIZE_ERR
- #define MRV_ISP_IMSC_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_PIC_SIZE_ERR */
- /* Slice: IMSC_DATA_LOSS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_DATA_LOSS
- #define MRV_ISP_IMSC_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_DATA_LOSS */
- /* Slice: IMSC_FRAME:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_FRAME
- #define MRV_ISP_IMSC_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_FRAME */
- /* Slice: IMSC_ISP_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_IMSC_ISP_OFF
- #define MRV_ISP_IMSC_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_IMSC_ISP_OFF */
- /* combination of all interrupt lines */
- #define MRV_ISP_IMSC_ALL_IRQS
- #define MRV_ISP_IMSC_ALL_IRQS_MASK \
- (0 \
- | MRV_ISP_IMSC_VSM_END_MASK \
- | MRV_ISP_IMSC_EXP_END_MASK \
- | MRV_ISP_IMSC_FLASH_CAP_MASK \
- | MRV_ISP_IMSC_BP_DET_MASK \
- | MRV_ISP_IMSC_HIST_MEASURE_RDY_MASK \
- | MRV_ISP_IMSC_AFM_FIN_MASK \
- | MRV_ISP_IMSC_AFM_LUM_OF_MASK \
- | MRV_ISP_IMSC_AFM_SUM_OF_MASK \
- | MRV_ISP_IMSC_SHUTTER_OFF_MASK \
- | MRV_ISP_IMSC_SHUTTER_ON_MASK \
- | MRV_ISP_IMSC_FLASH_OFF_MASK \
- | MRV_ISP_IMSC_FLASH_ON_MASK \
- | MRV_ISP_IMSC_H_START_MASK \
- | MRV_ISP_IMSC_V_START_MASK \
- | MRV_ISP_IMSC_FRAME_IN_MASK \
- | MRV_ISP_IMSC_AWB_DONE_MASK \
- | MRV_ISP_IMSC_PIC_SIZE_ERR_MASK \
- | MRV_ISP_IMSC_DATA_LOSS_MASK \
- | MRV_ISP_IMSC_FRAME_MASK \
- | MRV_ISP_IMSC_ISP_OFF_MASK \
- )
- #define MRV_ISP_IMSC_ALL_IRQS_SHIFT 0U
- /*****************************************************************************/
- /**
- * register: isp_ris: Raw interrupt status (0x000001c0)
- *
- *****************************************************************************/
- /*! Slice: RIS_VSM_END:*/
- /*! VSM measurement complete */
- #ifndef MRV_ISP_RIS_VSM_END
- #define MRV_ISP_RIS_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_VSM_END */
- /* Slice: RIS_EXP_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_EXP_END
- #define MRV_ISP_RIS_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_EXP_END */
- /* Slice: RIS_FLASH_CAP:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_FLASH_CAP
- #define MRV_ISP_RIS_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_FLASH_CAP */
- /* Slice: RIS_BP_DET:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_BP_DET
- #define MRV_ISP_RIS_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_BP_DET */
- /* Slice: RIS_HIST_MEASURE_RDY:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_HIST_MEASURE_RDY
- #define MRV_ISP_RIS_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_HIST_MEASURE_RDY */
- /* Slice: RIS_AFM_FIN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_AFM_FIN
- #define MRV_ISP_RIS_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !RIS_AFM_FIN */
- /* Slice: RIS_AFM_LUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_AFM_LUM_OF
- #define MRV_ISP_RIS_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_AFM_LUM_OF */
- /* Slice: RIS_AFM_SUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_AFM_SUM_OF
- #define MRV_ISP_RIS_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_AFM_SUM_OF */
- /* Slice: RIS_SHUTTER_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_SHUTTER_OFF
- #define MRV_ISP_RIS_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_SHUTTER_OFF */
- /* Slice: RIS_SHUTTER_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_SHUTTER_ON
- #define MRV_ISP_RIS_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_SHUTTER_ON */
- /* Slice: RIS_FLASH_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_FLASH_OFF
- #define MRV_ISP_RIS_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_FLASH_OFF */
- /* Slice: RIS_FLASH_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_FLASH_ON
- #define MRV_ISP_RIS_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_FLASH_ON */
- /* Slice: RIS_H_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_H_START
- #define MRV_ISP_RIS_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_H_START */
- /* Slice: RIS_V_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_V_START
- #define MRV_ISP_RIS_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_V_START */
- /* Slice: RIS_FRAME_IN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_FRAME_IN
- #define MRV_ISP_RIS_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_FRAME_IN */
- /* Slice: RIS_AWB_DONE:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_AWB_DONE
- #define MRV_ISP_RIS_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_AWB_DONE */
- /* Slice: RIS_PIC_SIZE_ERR:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_PIC_SIZE_ERR
- #define MRV_ISP_RIS_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_PIC_SIZE_ERR */
- /* Slice: RIS_DATA_LOSS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_DATA_LOSS
- #define MRV_ISP_RIS_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_DATA_LOSS */
- /* Slice: RIS_FRAME:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_FRAME
- #define MRV_ISP_RIS_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_FRAME */
- /* Slice: RIS_ISP_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_RIS_ISP_OFF
- #define MRV_ISP_RIS_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_RIS_ISP_OFF */
- /* combination of all interrupt lines */
- #define MRV_ISP_RIS_ALL_IRQS
- #define MRV_ISP_RIS_ALL_IRQS_MASK \
- (0 \
- | MRV_ISP_RIS_VSM_END_MASK \
- | MRV_ISP_RIS_EXP_END_MASK \
- | MRV_ISP_RIS_FLASH_CAP_MASK \
- | MRV_ISP_RIS_BP_DET_MASK \
- | MRV_ISP_RIS_HIST_MEASURE_RDY_MASK \
- | MRV_ISP_RIS_AFM_FIN_MASK \
- | MRV_ISP_RIS_AFM_LUM_OF_MASK \
- | MRV_ISP_RIS_AFM_SUM_OF_MASK \
- | MRV_ISP_RIS_SHUTTER_OFF_MASK \
- | MRV_ISP_RIS_SHUTTER_ON_MASK \
- | MRV_ISP_RIS_FLASH_OFF_MASK \
- | MRV_ISP_RIS_FLASH_ON_MASK \
- | MRV_ISP_RIS_H_START_MASK \
- | MRV_ISP_RIS_V_START_MASK \
- | MRV_ISP_RIS_FRAME_IN_MASK \
- | MRV_ISP_RIS_AWB_DONE_MASK \
- | MRV_ISP_RIS_PIC_SIZE_ERR_MASK \
- | MRV_ISP_RIS_DATA_LOSS_MASK \
- | MRV_ISP_RIS_FRAME_MASK \
- | MRV_ISP_RIS_ISP_OFF_MASK \
- )
- #define MRV_ISP_RIS_ALL_IRQS_SHIFT 0U
- /*****************************************************************************/
- /**
- * register: isp_mis: Masked interrupt status (0x000001c4)
- *
- *****************************************************************************/
- /*! Slice: MIS_VSM_END:*/
- /*! VSM measurement complete */
- #ifndef MRV_ISP_MIS_VSM_END
- #define MRV_ISP_MIS_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_VSM_END_MASK */
- /* Slice: MIS_EXP_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_EXP_END
- #define MRV_ISP_MIS_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_EXP_END */
- /* Slice: MIS_FLASH_CAP:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_FLASH_CAP
- #define MRV_ISP_MIS_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_FLASH_CAP */
- /* Slice: MIS_BP_DET:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_BP_DET
- #define MRV_ISP_MIS_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_BP_DET */
- /* Slice: MIS_HIST_MEASURE_RDY:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_HIST_MEASURE_RDY
- #define MRV_ISP_MIS_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_HIST_MEASURE_RDY */
- /* Slice: MIS_AFM_FIN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_AFM_FIN
- #define MRV_ISP_MIS_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MIS_AFM_FIN */
- /* Slice: MIS_AFM_LUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_AFM_LUM_OF
- #define MRV_ISP_MIS_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_AFM_LUM_OF */
- /* Slice: MIS_AFM_SUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_AFM_SUM_OF
- #define MRV_ISP_MIS_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_AFM_SUM_OF */
- /* Slice: MIS_SHUTTER_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_SHUTTER_OFF
- #define MRV_ISP_MIS_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_SHUTTER_OFF */
- /* Slice: MIS_SHUTTER_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_SHUTTER_ON
- #define MRV_ISP_MIS_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_SHUTTER_ON */
- /* Slice: MIS_FLASH_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_FLASH_OFF
- #define MRV_ISP_MIS_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_FLASH_OFF */
- /* Slice: MIS_FLASH_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_FLASH_ON
- #define MRV_ISP_MIS_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_FLASH_ON */
- /* Slice: MIS_H_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_H_START
- #define MRV_ISP_MIS_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_H_START */
- /* Slice: MIS_V_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_V_START
- #define MRV_ISP_MIS_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_V_START */
- /* Slice: MIS_FRAME_IN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_FRAME_IN
- #define MRV_ISP_MIS_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_FRAME_IN */
- /* Slice: MIS_AWB_DONE:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_AWB_DONE
- #define MRV_ISP_MIS_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_AWB_DONE */
- /* Slice: MIS_PIC_SIZE_ERR:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_PIC_SIZE_ERR
- #define MRV_ISP_MIS_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_PIC_SIZE_ERR */
- /* Slice: MIS_DATA_LOSS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_DATA_LOSS
- #define MRV_ISP_MIS_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_DATA_LOSS */
- /* Slice: MIS_FRAME:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_FRAME
- #define MRV_ISP_MIS_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_FRAME */
- /* Slice: MIS_ISP_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_MIS_ISP_OFF
- #define MRV_ISP_MIS_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_MIS_ISP_OFF */
- /* combination of all interrupt lines */
- #define MRV_ISP_MIS_ALL_IRQS
- #define MRV_ISP_MIS_ALL_IRQS_MASK \
- (0 \
- | MRV_ISP_MIS_VSM_END_MASK \
- | MRV_ISP_MIS_EXP_END_MASK \
- | MRV_ISP_MIS_FLASH_CAP_MASK \
- | MRV_ISP_MIS_BP_DET_MASK \
- | MRV_ISP_MIS_HIST_MEASURE_RDY_MASK \
- | MRV_ISP_MIS_AFM_FIN_MASK \
- | MRV_ISP_MIS_AFM_LUM_OF_MASK \
- | MRV_ISP_MIS_AFM_SUM_OF_MASK \
- | MRV_ISP_MIS_SHUTTER_OFF_MASK \
- | MRV_ISP_MIS_SHUTTER_ON_MASK \
- | MRV_ISP_MIS_FLASH_OFF_MASK \
- | MRV_ISP_MIS_FLASH_ON_MASK \
- | MRV_ISP_MIS_H_START_MASK \
- | MRV_ISP_MIS_V_START_MASK \
- | MRV_ISP_MIS_FRAME_IN_MASK \
- | MRV_ISP_MIS_AWB_DONE_MASK \
- | MRV_ISP_MIS_PIC_SIZE_ERR_MASK \
- | MRV_ISP_MIS_DATA_LOSS_MASK \
- | MRV_ISP_MIS_FRAME_MASK \
- | MRV_ISP_MIS_ISP_OFF_MASK \
- )
- #define MRV_ISP_MIS_ALL_IRQS_SHIFT 0U
- /*****************************************************************************/
- /**
- * register: isp_icr: Interrupt clear register (0x000001c8)
- *
- *****************************************************************************/
- /*! Slice: ICR_VSM_END:*/
- /*! clear interrupt */
- #ifndef MRV_ISP_ICR_VSM_END
- #define MRV_ISP_ICR_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_VSM_END */
- /* Slice: ICR_EXP_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_EXP_END
- #define MRV_ISP_ICR_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_EXP_END */
- /* Slice: ICR_FLASH_CAP:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_FLASH_CAP
- #define MRV_ISP_ICR_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_FLASH_CAP */
- /* Slice: ICR_BP_DET:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_BP_DET
- #define MRV_ISP_ICR_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_BP_DET */
- /* Slice: ICR_HIST_MEASURE_RDY:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_HIST_MEASURE_RDY
- #define MRV_ISP_ICR_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_HIST_MEASURE_RDY */
- /* Slice: ICR_AFM_FIN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_AFM_FIN
- #define MRV_ISP_ICR_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !ICR_AFM_FIN */
- /* Slice: ICR_AFM_LUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_AFM_LUM_OF
- #define MRV_ISP_ICR_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_AFM_LUM_OF */
- /* Slice: ICR_AFM_SUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_AFM_SUM_OF
- #define MRV_ISP_ICR_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_AFM_SUM_OF */
- /* Slice: ICR_SHUTTER_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_SHUTTER_OFF
- #define MRV_ISP_ICR_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_SHUTTER_OFF */
- /* Slice: ICR_SHUTTER_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_SHUTTER_ON
- #define MRV_ISP_ICR_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_SHUTTER_ON */
- /* Slice: ICR_FLASH_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_FLASH_OFF
- #define MRV_ISP_ICR_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_FLASH_OFF */
- /* Slice: ICR_FLASH_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_FLASH_ON
- #define MRV_ISP_ICR_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_FLASH_ON */
- /* Slice: ICR_H_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_H_START
- #define MRV_ISP_ICR_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_H_START */
- /* Slice: ICR_V_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_V_START
- #define MRV_ISP_ICR_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_V_START */
- /* Slice: ICR_FRAME_IN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_FRAME_IN
- #define MRV_ISP_ICR_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_FRAME_IN */
- /* Slice: ICR_AWB_DONE:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_AWB_DONE
- #define MRV_ISP_ICR_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_AWB_DONE */
- /* Slice: ICR_PIC_SIZE_ERR:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_PIC_SIZE_ERR
- #define MRV_ISP_ICR_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_PIC_SIZE_ERR */
- /* Slice: ICR_DATA_LOSS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_DATA_LOSS
- #define MRV_ISP_ICR_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_DATA_LOSS */
- /* Slice: ICR_FRAME:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_FRAME
- #define MRV_ISP_ICR_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_FRAME */
- /* Slice: ICR_ISP_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ICR_ISP_OFF
- #define MRV_ISP_ICR_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ICR_ISP_OFF */
- /* combination of all interrupt lines */
- #define MRV_ISP_ICR_ALL_IRQS
- #define MRV_ISP_ICR_ALL_IRQS_MASK \
- (0 \
- | MRV_ISP_ICR_VSM_END_MASK \
- | MRV_ISP_ICR_EXP_END_MASK \
- | MRV_ISP_ICR_FLASH_CAP_MASK \
- | MRV_ISP_ICR_BP_DET_MASK \
- | MRV_ISP_ICR_HIST_MEASURE_RDY_MASK \
- | MRV_ISP_ICR_AFM_FIN_MASK \
- | MRV_ISP_ICR_AFM_LUM_OF_MASK \
- | MRV_ISP_ICR_AFM_SUM_OF_MASK \
- | MRV_ISP_ICR_SHUTTER_OFF_MASK \
- | MRV_ISP_ICR_SHUTTER_ON_MASK \
- | MRV_ISP_ICR_FLASH_OFF_MASK \
- | MRV_ISP_ICR_FLASH_ON_MASK \
- | MRV_ISP_ICR_H_START_MASK \
- | MRV_ISP_ICR_V_START_MASK \
- | MRV_ISP_ICR_FRAME_IN_MASK \
- | MRV_ISP_ICR_AWB_DONE_MASK \
- | MRV_ISP_ICR_PIC_SIZE_ERR_MASK \
- | MRV_ISP_ICR_DATA_LOSS_MASK \
- | MRV_ISP_ICR_FRAME_MASK \
- | MRV_ISP_ICR_ISP_OFF_MASK \
- )
- #define MRV_ISP_ICR_ALL_IRQS_SHIFT 0U
- /*****************************************************************************/
- /**
- * register: isp_isr: Interrupt set register (0x000001cc)
- *
- *****************************************************************************/
- /*! Register: isp_isr: Interrupt set register (0x000001cc)*/
- /*! Slice: ISR_VSM_END:*/
- /*! set interrupt */
- #ifndef MRV_ISP_ISR_VSM_END
- #define MRV_ISP_ISR_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_VSM_END */
- /* Slice: ISR_EXP_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_EXP_END
- #define MRV_ISP_ISR_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_EXP_END */
- /* Slice: ISR_FLASH_CAP:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_FLASH_CAP
- #define MRV_ISP_ISR_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_FLASH_CAP */
- /* Slice: ISR_BP_DET:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_BP_DET
- #define MRV_ISP_ISR_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_BP_DET */
- /* Slice: ISR_HIST_MEASURE_RDY:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_HIST_MEASURE_RDY
- #define MRV_ISP_ISR_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_HIST_MEASURE_RDY */
- /* Slice: ISR_AFM_FIN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_AFM_FIN
- #define MRV_ISP_ISR_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !ISR_AFM_FIN */
- /* Slice: ISR_AFM_LUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_AFM_LUM_OF
- #define MRV_ISP_ISR_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_AFM_LUM_OF */
- /* Slice: ISR_AFM_SUM_OF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_AFM_SUM_OF
- #define MRV_ISP_ISR_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_AFM_SUM_OF */
- /* Slice: ISR_SHUTTER_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_SHUTTER_OFF
- #define MRV_ISP_ISR_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_SHUTTER_OFF */
- /* Slice: ISR_SHUTTER_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_SHUTTER_ON
- #define MRV_ISP_ISR_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_SHUTTER_ON */
- /* Slice: ISR_FLASH_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_FLASH_OFF
- #define MRV_ISP_ISR_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_FLASH_OFF */
- /* Slice: ISR_FLASH_ON:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_FLASH_ON
- #define MRV_ISP_ISR_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_FLASH_ON */
- /* Slice: ISR_H_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_H_START
- #define MRV_ISP_ISR_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_H_START */
- /* Slice: ISR_V_START:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_V_START
- #define MRV_ISP_ISR_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_V_START */
- /* Slice: ISR_FRAME_IN:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_FRAME_IN
- #define MRV_ISP_ISR_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_FRAME_IN */
- /* Slice: ISR_AWB_DONE:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_AWB_DONE
- #define MRV_ISP_ISR_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_AWB_DONE */
- /* Slice: ISR_PIC_SIZE_ERR:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_PIC_SIZE_ERR
- #define MRV_ISP_ISR_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_PIC_SIZE_ERR */
- /* Slice: ISR_DATA_LOSS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_DATA_LOSS
- #define MRV_ISP_ISR_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_DATA_LOSS */
- /* Slice: ISR_FRAME:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_FRAME
- #define MRV_ISP_ISR_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_FRAME */
- /* Slice: ISR_ISP_OFF:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_ISP_ISR_ISP_OFF
- #define MRV_ISP_ISR_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
- #endif /* !MRV_ISP_ISR_ISP_OFF */
- /* combination of all interrupt lines */
- #define MRV_ISP_ISR_ALL_IRQS
- #define MRV_ISP_ISR_ALL_IRQS_MASK \
- (0 \
- | MRV_ISP_ISR_VSM_END_MASK \
- | MRV_ISP_ISR_EXP_END_MASK \
- | MRV_ISP_ISR_FLASH_CAP_MASK \
- | MRV_ISP_ISR_BP_DET_MASK \
- | MRV_ISP_ISR_HIST_MEASURE_RDY_MASK \
- | MRV_ISP_ISR_AFM_FIN_MASK \
- | MRV_ISP_ISR_AFM_LUM_OF_MASK \
- | MRV_ISP_ISR_AFM_SUM_OF_MASK \
- | MRV_ISP_ISR_SHUTTER_OFF_MASK \
- | MRV_ISP_ISR_SHUTTER_ON_MASK \
- | MRV_ISP_ISR_FLASH_OFF_MASK \
- | MRV_ISP_ISR_FLASH_ON_MASK \
- | MRV_ISP_ISR_H_START_MASK \
- | MRV_ISP_ISR_V_START_MASK \
- | MRV_ISP_ISR_FRAME_IN_MASK \
- | MRV_ISP_ISR_AWB_DONE_MASK \
- | MRV_ISP_ISR_PIC_SIZE_ERR_MASK \
- | MRV_ISP_ISR_DATA_LOSS_MASK \
- | MRV_ISP_ISR_FRAME_MASK \
- | MRV_ISP_ISR_ISP_OFF_MASK \
- )
- #define MRV_ISP_ISR_ALL_IRQS_SHIFT 0U
- /*****************************************************************************/
- /**
- * register array: isp_ct_coeff: cross-talk configuration register (color
- * correction matrix) (0x03A0 + n*0x4 (n=0..8))
- *
- *****************************************************************************/
- /* Slice: ct_coeff:*/
- /* Coefficient n for cross talk matrix.*/
- /**/
- /* Values are 11-bit signed fixed-point numbers with 4 bit integer and */
- /* 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF).*/
- /* 0 is reprsented by 0x000 and a coefficient value of 1 as 0x080.*/
- #ifdef MRV_ISP_CT_COEFF
- #define MRV_ISP_CT_COEFF_DEFAULT 0x080U /* default value */
- #endif /* MRV_ISP_CT_COEFF */
- /*****************************************************************************/
- /**
- * register: isp_gamma_out_mode: gamma segmentation mode register for output
- * gamma (0x000001f4)
- *
- *****************************************************************************/
- /* Slice: equ_segm:*/
- /* 0: logarithmic like segmentation of gamma curve (default after reset)*/
- /* segmentation from 0 to 4095: 64 64 64 64 128 128 128 128 256 256 256 512 512 512 512 512 */
- /* 1: equidistant segmentation (all 16 segments are 256)*/
- #ifdef MRV_ISP_EQU_SEGM
- #define MRV_ISP_EQU_SEGM_LOG 0 /* 0: logarithmic like segmentation of gamma curve (default after reset) */
- #define MRV_ISP_EQU_SEGM_EQU 1 /* 1: equidistant segmentation (all 16 segments are 256) */
- #endif /* MRV_ISP_EQU_SEGM */
- /*****************************************************************************/
- /**
- * register array: isp_gamma_out_y: Gamma Out Curve definition y (0x03F0 + n*0x4 (n=0..16))
- *
- *****************************************************************************/
- /* Slice: isp_gamma_out_y:*/
- /* Gamma_out curve point definition y-axis (output) for all color */
- /* components (red, green, blue)*/
- /* RESTRICTION: each Y_n must be in the +511/-512 range compared */
- /* to its predecessor (so that dy is 10-bit signed !)*/
- #ifdef MRV_ISP_ISP_GAMMA_OUT_Y
- #endif /* MRV_ISP_ISP_GAMMA_OUT_Y */
- /*****************************************************************************/
- /**
- * register: isp_err: ISP error register (0x0000023c)
- *
- *****************************************************************************/
- /* Slice: outform_size_err:*/
- /* size error is generated in outmux submodule */
- #ifdef MRV_ISP_OUTFORM_SIZE_ERR
- #endif /* MRV_ISP_OUTFORM_SIZE_ERR */
- /* Slice: is_size_err:*/
- /* size error is generated in image stabilization submodule */
- #ifdef MRV_ISP_IS_SIZE_ERR
- #endif /* MRV_ISP_IS_SIZE_ERR */
- /* Slice: inform_size_err:*/
- /* size error is generated in inform submodule */
- #ifdef MRV_ISP_INFORM_SIZE_ERR
- #endif /* MRV_ISP_INFORM_SIZE_ERR */
- /*****************************************************************************/
- /**
- * register: isp_err_clr: ISP error clear register (0x00000240)
- *
- *****************************************************************************/
- /* Slice: outform_size_err_clr:*/
- /* size error is cleared */
- #ifdef MRV_ISP_OUTFORM_SIZE_ERR_CLR
- #endif /* MRV_ISP_OUTFORM_SIZE_ERR_CLR */
- /* Slice: is_size_err_clr:*/
- /* size error is cleared */
- #ifdef MRV_ISP_IS_SIZE_ERR_CLR
- #endif /* MRV_ISP_IS_SIZE_ERR_CLR */
- /* Slice: inform_size_err_clr:*/
- /* size error is cleared */
- #ifdef MRV_ISP_INFORM_SIZE_ERR_CLR
- #endif /* MRV_ISP_INFORM_SIZE_ERR_CLR */
- /*****************************************************************************/
- /**
- * register: isp_frame_count: Frame counter (0x00000244)
- *
- *****************************************************************************/
- /* Slice: frame_counter:*/
- /* Current frame count of processing */
- #ifdef MRV_ISP_FRAME_COUNTER
- #endif /* MRV_ISP_FRAME_COUNTER */
- /*****************************************************************************/
- /**
- * register: isp_ct_offset_r: cross-talk offset red (0x00000248)
- *
- *****************************************************************************/
- /* Slice: ct_offset_r:*/
- /* Offset red for cross talk matrix. Two's complement integer number ranging */
- /* from -2048 (0x800) to 2047 (0x7FF). 0 is represented as 0x000.*/
- #ifdef MRV_ISP_CT_OFFSET_R
- #define MRV_ISP_CT_OFFSET_R_DEFAULT 0x000U /* default value */
- #endif /* MRV_ISP_CT_OFFSET_R */
- /*****************************************************************************/
- /**
- * register: isp_ct_offset_g: cross-talk offset green (0x0000024c)
- *
- *****************************************************************************/
- /* Slice: ct_offset_g:*/
- /* Offset green for cross talk matrix. Two's complement integer number ranging */
- /* from -2048 (0x800) to 2047 (0x7FF). 0 is represented as 0x000.*/
- #ifdef MRV_ISP_CT_OFFSET_G
- #define MRV_ISP_CT_OFFSET_G_DEFAULT 0x000U /* default value */
- #endif /* MRV_ISP_CT_OFFSET_G */
- /*****************************************************************************/
- /**
- * register: isp_ct_offset_b: cross-talk offset blue (0x00000250)
- *
- *****************************************************************************/
- /* Slice: ct_offset_b:*/
- /* Offset blue for cross talk matrix. Two's complement integer number ranging */
- /* from -2048 (0x800) to 2047 (0x7FF). 0 is represented as 0x000.*/
- #ifdef MRV_ISP_CT_OFFSET_B
- #define MRV_ISP_CT_OFFSET_B_DEFAULT 0x000U /* default value */
- #endif /* MRV_ISP_CT_OFFSET_B */
- /*****************************************************************************/
- /* ISP Flash Module Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_flash_cmd: Flash command (0x0000)
- *
- *****************************************************************************/
- /* Slice: preflash_on:*/
- /* preflash on */
- /* 0: no effect */
- /* 1: flash delay counter is started at next trigger event */
- /* No capture event is signaled to the sensor interface block.*/
- #ifdef MRV_FLASH_PREFLASH_ON
- #endif /* MRV_FLASH_PREFLASH_ON */
- /* Slice: flash_on:*/
- /* flash on */
- /* 0: no effect */
- /* 1: flash delay counter is started at next trigger event */
- /* A capture event is signaled to the sensor interface block.*/
- #ifdef MRV_FLASH_FLASH_ON
- #endif /* MRV_FLASH_FLASH_ON */
- /* Slice: prelight_on:*/
- /* prelight on */
- /* 0: prelight is switched off at next trigger event */
- /* 1: prelight is switched on at next trigger event */
- #ifdef MRV_FLASH_PRELIGHT_ON
- #endif /* MRV_FLASH_PRELIGHT_ON */
- /*****************************************************************************/
- /**
- * register: isp_flash_config: Flash config (0x0004)
- *
- *****************************************************************************/
- /* Slice: fl_cap_del:*/
- /* capture delay */
- /* frame number (0 to 15) to be captured after trigger event */
- #ifdef MRV_FLASH_FL_CAP_DEL
- #endif /* MRV_FLASH_FL_CAP_DEL */
- /* Slice: fl_trig_src:*/
- /* trigger source for flash and prelight */
- /* 0: use "vds_vsync" for trigger event (with evaluation of vs_in_edge)*/
- /* 1: use "fl_trig" for trigger event (positive edge)*/
- #ifdef MRV_FLASH_FL_TRIG_SRC
- #define MRV_FLASH_FL_TRIG_SRC_VDS 0 /* 0: use "vds_vsync" for trigger event (with evaluation of vs_in_edge) */
- #define MRV_FLASH_FL_TRIG_SRC_FL 1 /* 1: use "fl_trig" for trigger event (positive edge) */
- #endif /* MRV_FLASH_FL_TRIG_SRC */
- /* Slice: fl_pol:*/
- /* polarity of flash related signals */
- /* 0: flash_trig, prelight_trig are high active */
- /* 1: flash_trig, prelight_trig are low active */
- #ifdef MRV_FLASH_FL_POL
- #define MRV_FLASH_FL_POL_HIGH 0 /* 0: flash_trig, prelight_trig are high active */
- #define MRV_FLASH_FL_POL_LOW 1 /* 1: flash_trig, prelight_trig are low active */
- #endif /* MRV_FLASH_FL_POL */
- /* Slice: vs_in_edge:*/
- /* VSYNC edge */
- /* 0: use negative edge of "vds_vsync" if generating a trigger event */
- /* 1: use positive edge of "vds_vsync" if generating a trigger event */
- #ifdef MRV_FLASH_VS_IN_EDGE
- #define MRV_FLASH_VS_IN_EDGE_NEG 0 /* 0: use negative edge of "vds_vsync" if generating a trigger event */
- #define MRV_FLASH_VS_IN_EDGE_POS 1 /* 1: use positive edge of "vds_vsync" if generating a trigger event */
- #endif /* MRV_FLASH_VS_IN_EDGE */
- /* Slice: prelight_mode:*/
- /* prelight mode */
- /* 0: prelight is switched off at begin of flash */
- /* 1: prelight is switched off at end of flash */
- #ifdef MRV_FLASH_PRELIGHT_MODE
- #define MRV_FLASH_PRELIGHT_MODE_OASF 0 /* 0: prelight is switched off at begin of flash */
- #define MRV_FLASH_PRELIGHT_MODE_OAEF 1 /* 1: prelight is switched off at end of flash */
- #endif /* MRV_FLASH_PRELIGHT_MODE */
- /*****************************************************************************/
- /**
- * register: isp_flash_prediv: Flash Counter Pre-Divider (0x00000008)
- *
- *****************************************************************************/
- /* Slice: fl_pre_div:*/
- /* pre-divider for flush/preflash counter */
- #ifdef MRV_FLASH_FL_PRE_DIV
- #endif /* MRV_FLASH_FL_PRE_DIV */
- /*****************************************************************************/
- /**
- * register: isp_flash_delay: Flash Delay (0x000c)
- *
- *****************************************************************************/
- /* Slice: fl_delay:*/
- /* counter value for flash/preflash delay */
- /* open_delay = (fl_delay + 1) * (fl_pre_div+1) / clk_isp */
- /* fl_delay = (open_delay * clk_isp) / (fl_pre_div+1) - 1 */
- #ifdef MRV_FLASH_FL_DELAY
- #endif /* MRV_FLASH_FL_DELAY */
- /*****************************************************************************/
- /**
- * register: isp_flash_time: Flash time (0x00000010)
- *
- *****************************************************************************/
- /* Slice: fl_time:*/
- /* counter value for flash/preflash time */
- /* open_time = (fl_time + 1) * (fl_pre_div+1) / clk_isp */
- /* fl_time = (open_time * clk_isp) / (fl_pre_div+1) - 1 */
- #ifdef MRV_FLASH_FL_TIME
- #endif /* MRV_FLASH_FL_TIME */
- /*****************************************************************************/
- /**
- * register: isp_flash_maxp: Maximum value for flash or preflash (0x00000014)
- *
- *****************************************************************************/
- /* Slice: fl_maxp:*/
- /* maximum period value for flash or preflash */
- /* max. flash/preflash period = 214 * (fl_maxp + 1) / clk_isp */
- /* fl_maxp = (max_period * clk_isp) / 214 - 1 */
- #ifdef MRV_FLASH_FL_MAXP
- #endif /* MRV_FLASH_FL_MAXP */
- /*****************************************************************************/
- /* ISP Shutter Module Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_sh_ctrl: mechanical shutter control (0x0000)
- *
- *****************************************************************************/
- /* Slice: sh_open_pol:*/
- /* shutter_open polarity */
- /* 0: shutter_open is high active */
- /* 1: shutter_open is low active */
- #ifdef MRV_SHUT_SH_OPEN_POL
- #define MRV_SHUT_SH_OPEN_POL_HIGH 0 /* 0: shutter_open is high active */
- #define MRV_SHUT_SH_OPEN_POL_LOW 1 /* 1: shutter_open is low active */
- #endif /* MRV_SHUT_SH_OPEN_POL */
- /* Slice: sh_trig_en:*/
- /* mechanical shutter trigger edge */
- /* 0: use negative edge of trigger signal */
- /* 1: use positive edge of trigger signal */
- #ifdef MRV_SHUT_SH_TRIG_EN
- #define MRV_SHUT_SH_TRIG_EN_NEG 0 /* 0: use negative edge of trigger signal */
- #define MRV_SHUT_SH_TRIG_EN_POS 1 /* 1: use positive edge of trigger signal */
- #endif /* MRV_SHUT_SH_TRIG_EN */
- /* Slice: sh_trig_src:*/
- /* mechanical shutter trigger source */
- /* 0: use "vds_vsync" for trigger event */
- /* 1: use "shutter_trig" for trigger event */
- #ifdef MRV_SHUT_SH_TRIG_SRC
- #define MRV_SHUT_SH_TRIG_SRC_VDS 0 /* 0: use "vds_vsync" for trigger event */
- #define MRV_SHUT_SH_TRIG_SRC_SHUT 1 /* 1: use "shutter_trig" for trigger event */
- #endif /* MRV_SHUT_SH_TRIG_SRC */
- /* Slice: sh_rep_en:*/
- /* mechanical shutter repetition enable */
- /* 0: shutter is opened only once */
- /* 1: shutter is opened with the repetition rate of the trigger signal */
- #ifdef MRV_SHUT_SH_REP_EN
- #define MRV_SHUT_SH_REP_EN_ONCE 0 /* 0: shutter is opened only once */
- #define MRV_SHUT_SH_REP_EN_REP 1 /* 1: shutter is opened with the repetition rate of the trigger signal */
- #endif /* MRV_SHUT_SH_REP_EN */
- /* Slice: sh_en:*/
- /* mechanical shutter enable */
- /* 0: mechanical shutter function is disabled */
- /* 1: mechanical shutter function is enabled */
- #ifdef MRV_SHUT_SH_EN
- #endif /* MRV_SHUT_SH_EN */
- /*****************************************************************************/
- /**
- * register: isp_sh_prediv: Mech. Shutter Counter Pre-Divider (0x0004)
- *
- *****************************************************************************/
- /* Slice: sh_pre_div:*/
- /* pre-divider for mechanical shutter open_delay and open_time counter */
- #ifdef MRV_SHUT_SH_PRE_DIV
- #endif /* MRV_SHUT_SH_PRE_DIV */
- /*****************************************************************************/
- /**
- * register: isp_sh_delay: Delay register (0x00000008)
- *
- *****************************************************************************/
- /* Slice: sh_delay:*/
- /* counter value for delay */
- /* open_delay = (sh_delay + 1) * (fl_pre_div+1) / clk_isp */
- /* sh_delay = (open_delay * clk_isp) / (sh_pre_div+1) 1 */
- #ifdef MRV_SHUT_SH_DELAY
- #endif /* MRV_SHUT_SH_DELAY */
- /*****************************************************************************/
- /**
- * register: isp_sh_time: Time register (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: sh_time:*/
- /* counter value for time */
- /* open_time = (sh_time + 1) * (fl_pre_div+1) / clk_isp */
- /* sh_time = (open_time * clk_isp) / (sh_pre_div+1) - 1 */
- #ifndef MRV_SHUT_SH_TIME
- #endif /* MRV_SHUT_SH_TIME */
- /*****************************************************************************/
- /* Color Processing Module Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: c_proc_ctrl: Global control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: cproc_c_out_range:*/
- /* Color processing chrominance pixel clipping range at output */
- /* 0: CbCr_out clipping range 16..240 according to ITU-R BT.601 standard */
- /* 1: full UV_out clipping range 0..255 */
- #ifdef MRV_CPROC_CPROC_C_OUT_RANGE
- #define MRV_CPROC_CPROC_C_OUT_RANGE_BT601 0 /* 0: CbCr_out clipping range 16..240 according to ITU-R BT.601 standard */
- #define MRV_CPROC_CPROC_C_OUT_RANGE_FULL 1 /* 1: full UV_out clipping range 0..255 */
- #endif /* MRV_CPROC_CPROC_C_OUT_RANGE */
- /* Slice: cproc_y_in_range:*/
- /* Color processing luminance input range (offset processing)*/
- /* 0: Y_in range 64..940 according to ITU-R BT.601 standard;*/
- /* offset of 64 will be subtracted from Y_in */
- /* 1: Y_in full range 0..1023; no offset will be subtracted from Y_in */
- #ifdef MRV_CPROC_CPROC_Y_IN_RANGE
- #define MRV_CPROC_CPROC_Y_IN_RANGE_BT601 0 /* 0: Y_in range 64..940 according to ITU-R BT.601 standard */
- #define MRV_CPROC_CPROC_Y_IN_RANGE_FULL 1 /* 1: Y_in full range 0..1023 */
- #endif /* MRV_CPROC_CPROC_Y_IN_RANGE */
- /* Slice: cproc_y_out_range:*/
- /* Color processing luminance output clipping range */
- /* 0: Y_out clipping range 16..235; offset of 16 is added to Y_out according to ITU-R BT.601 standard */
- /* 1: Y_out clipping range 0..255; no offset is added to Y_out */
- #ifdef MRV_CPROC_CPROC_Y_OUT_RANGE
- #define MRV_CPROC_CPROC_Y_OUT_RANGE_BT601 0 /* 0: Y_out clipping range 16..235; offset of 16 is added to Y_out according to ITU-R BT.601 standard */
- #define MRV_CPROC_CPROC_Y_OUT_RANGE_FULL 1 /* 1: Y_out clipping range 0..255; no offset is added to Y_out */
- #endif /* MRV_CPROC_CPROC_Y_OUT_RANGE */
- /* Slice: cproc_enable:*/
- /* color processing enable */
- /* 0: color processing is bypassed */
- /* 2 * 10 Bit input data are truncated to 2 * 8Bit output data */
- /* 1: color processing is active */
- /* output data are rounded to 2 * 8Bit and clipping is active */
- #ifdef MRV_CPROC_CPROC_ENABLE
- #define MRV_CPROC_CPROC_ENABLE_PROCESS 1 /* 1: processing is activated */
- #define MRV_CPROC_CPROC_ENABLE_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
- #endif /* MRV_CPROC_CPROC_ENABLE */
- /*****************************************************************************/
- /**
- * register: c_proc_contrast: Color Processing contrast register (0x0004)
- *
- *****************************************************************************/
- /* Slice: cproc_contrast:*/
- /* contrast adjustment value */
- /* 00H equals x 0.0 */
- /* ...*/
- /* 80H equals x 1.0 */
- /* ...*/
- /* FFH equals x 1.992 */
- #ifdef MRV_CPROC_CPROC_CONTRAST
- #endif /* MRV_CPROC_CPROC_CONTRAST */
- /*****************************************************************************/
- /**
- * register: c_proc_brightness: Color Processing brightness register (0x0008)
- *
- *****************************************************************************/
- /* Slice: cproc_brightness:*/
- /* brightness adjustment value */
- /* 80H equals -128 */
- /* ...*/
- /* 00H equals +0 */
- /* ...*/
- /* 7FH equals +127 */
- #ifdef MRV_CPROC_CPROC_BRIGHTNESS
- #endif /* MRV_CPROC_CPROC_BRIGHTNESS */
- /*****************************************************************************/
- /**
- * register: c_proc_saturation: Color Processing saturation register (0x000c)
- *
- *****************************************************************************/
- /* Slice: cproc_saturation:*/
- /* saturation adjustment value */
- /* 00H equals x 0.0 */
- /* ...*/
- /* 80H equals x 1.0 */
- /* ...*/
- /* FFH equals x 1.992 */
- #ifdef MRV_CPROC_CPROC_SATURATION
- #endif /* MRV_CPROC_CPROC_SATURATION */
- /*****************************************************************************/
- /**
- * register: c_proc_hue: Color Processing hue register (0x0010)
- *
- *****************************************************************************/
- /* Slice: cproc_hue:*/
- /* hue adjustment value */
- /* 80H equals -90 deg */
- /* ...*/
- /* 00H equals 0 deg */
- /* ...*/
- /* 7FH equals +87.188 deg */
- #ifdef MRV_CPROC_CPROC_HUE
- #endif /* MRV_CPROC_CPROC_HUE */
- /*****************************************************************************/
- /* Main Resizer/Scaler Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: mrsz_ctrl: global control register (0x00000000)
- *
- *****************************************************************************/
- /* Slice: cfg_upd:*/
- /* write 0: nothing happens */
- /* write 1: update shadow registers */
- /* read: always 0 */
- #ifdef MRV_MRSZ_CFG_UPD
- #endif /* MRV_MRSZ_CFG_UPD */
- /* Slice: scale_vc_up:*/
- /* 1: vertical chrominance upscaling selected */
- /* 0: vertical chrominance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_VC_UP
- #define MRV_MRSZ_SCALE_VC_UP_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
- #define MRV_MRSZ_SCALE_VC_UP_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_VC_UP */
- /* Slice: scale_vy_up:*/
- /* 1: vertical luminance upscaling selected */
- /* 0: vertical luminance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_VY_UP
- #define MRV_MRSZ_SCALE_VY_UP_UPSCALE 1 /* 1: vertical luminance upscaling selected */
- #define MRV_MRSZ_SCALE_VY_UP_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_VY_UP */
- /* Slice: scale_hc_up:*/
- /* 1: horizontal chrominance upscaling selected */
- /* 0: horizontal chrominance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_HC_UP
- #define MRV_MRSZ_SCALE_HC_UP_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
- #define MRV_MRSZ_SCALE_HC_UP_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_HC_UP */
- /* Slice: scale_hy_up:*/
- /* 1: horizontal luminance upscaling selected */
- /* 0: horizontal luminance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_HY_UP
- #define MRV_MRSZ_SCALE_HY_UP_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
- #define MRV_MRSZ_SCALE_HY_UP_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_HY_UP */
- /* Slice: scale_vc_enable:*/
- /* 0: bypass vertical chrominance scaling unit */
- /* 1: enable vertical chrominance scaling unit */
- #ifdef MRV_MRSZ_SCALE_VC_ENABLE
- #define MRV_MRSZ_SCALE_VC_ENABLE_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
- #define MRV_MRSZ_SCALE_VC_ENABLE_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
- #endif /* MRV_MRSZ_SCALE_VC_ENABLE */
- /* Slice: scale_vy_enable:*/
- /* 0: bypass vertical luminance scaling unit */
- /* 1: enable vertical luminance scaling unit */
- #ifdef MRV_MRSZ_SCALE_VY_ENABLE
- #define MRV_MRSZ_SCALE_VY_ENABLE_PROCESS 1 /* 1: enable vertical luminance scaling unit */
- #define MRV_MRSZ_SCALE_VY_ENABLE_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
- #endif /* MRV_MRSZ_SCALE_VY_ENABLE */
- /* Slice: scale_hc_enable:*/
- /* 0: bypass horizontal chrominance scaling unit */
- /* 1: enable horizontal chrominance scaling unit */
- #ifdef MRV_MRSZ_SCALE_HC_ENABLE
- #define MRV_MRSZ_SCALE_HC_ENABLE_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
- #define MRV_MRSZ_SCALE_HC_ENABLE_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
- #endif /* MRV_MRSZ_SCALE_HC_ENABLE */
- /* Slice: scale_hy_enable:*/
- /* 0: bypass horizontal luminance scaling unit */
- /* 1: enable horizontal luminance scaling unit */
- #ifdef MRV_MRSZ_SCALE_HY_ENABLE
- #define MRV_MRSZ_SCALE_HY_ENABLE_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
- #define MRV_MRSZ_SCALE_HY_ENABLE_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
- #endif /* MRV_MRSZ_SCALE_HY_ENABLE */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_hy: horizontal luminance scale factor register
- * (0x00000004)
- *
- *****************************************************************************/
- /* Slice: scale_hy:*/
- /* This register is set to the horizontal luminance downscale factor or to */
- /* the reciprocal of the horizontal luminance upscale factor */
- #ifdef MRV_MRSZ_SCALE_HY
- #endif /* MRV_MRSZ_SCALE_HY */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_hcb: horizontal Cb scale factor register (0x00000008)
- *
- *****************************************************************************/
- /* Slice: scale_hcb:*/
- /* This register is set to the horizontal Cb downscale factor or to the */
- /* reciprocal of the horizontal Cb upscale factor */
- #ifdef MRV_MRSZ_SCALE_HCB
- #endif /* MRV_MRSZ_SCALE_HCB */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_hcr: horizontal Cr scale factor register (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: scale_hcr:*/
- /* This register is set to the horizontal Cr downscale factor or to the */
- /* reciprocal of the horizontal Cr upscale factor */
- #ifdef MRV_MRSZ_SCALE_HCR
- #endif /* MRV_MRSZ_SCALE_HCR */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_vy: vertical luminance scale factor register (0x00000010)
- *
- *****************************************************************************/
- /* Slice: scale_vy:*/
- /* This register is set to the vertical luminance downscale factor or to the */
- /* reciprocal of the vertical luminance upscale factor */
- #ifdef MRV_MRSZ_SCALE_VY
- #endif /* MRV_MRSZ_SCALE_VY */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_vc: vertical chrominance scale factor register (0x00000014)
- *
- *****************************************************************************/
- /* Slice: scale_vc:*/
- /* This register is set to the vertical chrominance downscale factor or to the */
- /* reciprocal of the vertical chrominance upscale factor */
- #ifdef MRV_MRSZ_SCALE_VC
- #endif /* MRV_MRSZ_SCALE_VC */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_hy: horizontal luminance phase register (0x00000018)
- *
- *****************************************************************************/
- /* Slice: phase_hy:*/
- /* This register is set to the horizontal luminance phase offset */
- #ifdef MRV_MRSZ_PHASE_HY
- #endif /* MRV_MRSZ_PHASE_HY */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_hc: horizontal chrominance phase register (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: phase_hc:*/
- /* This register is set to the horizontal chrominance phase offset */
- #ifdef MRV_MRSZ_PHASE_HC
- #endif /* MRV_MRSZ_PHASE_HC */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_vy: vertical luminance phase register (0x00000020)
- *
- *****************************************************************************/
- /* Slice: phase_vy:*/
- /* This register is set to the vertical luminance phase offset */
- #ifdef MRV_MRSZ_PHASE_VY
- #endif /* MRV_MRSZ_PHASE_VY */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_vc: vertical chrominance phase register (0x00000024)
- *
- *****************************************************************************/
- /* Slice: phase_vc:*/
- /* This register is set to the vertical chrominance phase offset */
- #ifdef MRV_MRSZ_PHASE_VC
- #endif /* MRV_MRSZ_PHASE_VC */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_lut_addr: Address pointer of up-scaling look up table
- * (0x00000028)
- *
- *****************************************************************************/
- /* Slice: scale_lut_addr:*/
- /* Pointer to entry of lookup table */
- #ifdef MRV_MRSZ_SCALE_LUT_ADDR
- #endif /* MRV_MRSZ_SCALE_LUT_ADDR */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_lut: Entry of up-scaling look up table (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: scale_lut:*/
- /* Entry of lookup table at position scale_lut_addr. The lookup table must be */
- /* filled with appropriate values before the up-scaling functionality can be */
- /* used.*/
- #ifdef MRV_MRSZ_SCALE_LUT
- #endif /* MRV_MRSZ_SCALE_LUT */
- /*****************************************************************************/
- /**
- * register: mrsz_ctrl_shd: global control shadow register (0x0030)
- *
- *****************************************************************************/
- /* Slice: scale_vc_up_shd:*/
- /* 1: vertical chrominance upscaling selected */
- /* 0: vertical chrominance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_VC_UP_SHD
- #define MRV_MRSZ_SCALE_VC_UP_SHD_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
- #define MRV_MRSZ_SCALE_VC_UP_SHD_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_VC_UP_SHD */
- /* Slice: scale_vy_up_shd:*/
- /* 1: vertical luminance upscaling selected */
- /* 0: vertical luminance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_VY_UP_SHD
- #define MRV_MRSZ_SCALE_VY_UP_SHD_UPSCALE 1 /* 1: vertical luminance upscaling selected */
- #define MRV_MRSZ_SCALE_VY_UP_SHD_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_VY_UP_SHD */
- /* Slice: scale_hc_up_shd:*/
- /* 1: horizontal chrominance upscaling selected */
- /* 0: horizontal chrominance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_HC_UP_SHD
- #define MRV_MRSZ_SCALE_HC_UP_SHD_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
- #define MRV_MRSZ_SCALE_HC_UP_SHD_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_HC_UP_SHD */
- /* Slice: scale_hy_up_shd:*/
- /* 1: horizontal luminance upscaling selected */
- /* 0: horizontal luminance downscaling selected */
- #ifdef MRV_MRSZ_SCALE_HY_UP_SHD
- #define MRV_MRSZ_SCALE_HY_UP_SHD_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
- #define MRV_MRSZ_SCALE_HY_UP_SHD_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
- #endif /* MRV_MRSZ_SCALE_HY_UP_SHD */
- /* Slice: scale_vc_enable_shd:*/
- /* 0: bypass vertical chrominance scaling unit */
- /* 1: enable vertical chrominance scaling unit */
- #ifdef MRV_MRSZ_SCALE_VC_ENABLE_SHD
- #define MRV_MRSZ_SCALE_VC_ENABLE_SHD_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
- #define MRV_MRSZ_SCALE_VC_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
- #endif /* MRV_MRSZ_SCALE_VC_ENABLE_SHD */
- /* Slice: scale_vy_enable_shd:*/
- /* 0: bypass vertical luminance scaling unit */
- /* 1: enable vertical luminance scaling unit */
- #ifdef MRV_MRSZ_SCALE_VY_ENABLE_SHD
- #define MRV_MRSZ_SCALE_VY_ENABLE_SHD_PROCESS 1 /* 1: enable vertical luminance scaling unit */
- #define MRV_MRSZ_SCALE_VY_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
- #endif /* MRV_MRSZ_SCALE_VY_ENABLE_SHD */
- /* Slice: scale_hc_enable_shd:*/
- /* 0: bypass horizontal chrominance scaling unit */
- /* 1: enable horizontal chrominance scaling unit */
- #ifdef MRV_MRSZ_SCALE_HC_ENABLE_SHD
- #define MRV_MRSZ_SCALE_HC_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
- #define MRV_MRSZ_SCALE_HC_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
- #endif /* MRV_MRSZ_SCALE_HC_ENABLE_SHD */
- /* Slice: scale_hy_enable_shd:*/
- /* 0: bypass horizontal luminance scaling unit */
- /* 1: enable horizontal luminance scaling unit */
- #ifdef MRV_MRSZ_SCALE_HY_ENABLE_SHD
- #define MRV_MRSZ_SCALE_HY_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
- #define MRV_MRSZ_SCALE_HY_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
- #endif /* MRV_MRSZ_SCALE_HY_ENABLE_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_hy_shd: horizontal luminance scale factor shadow
- * register (0x00000034)
- *
- *****************************************************************************/
- /* Slice: scale_hy_shd:*/
- /* This register is set to the horizontal luminance downscale factor or to the */
- /* reciprocal of the horizontal luminance upscale factor */
- #ifdef MRV_MRSZ_SCALE_HY_SHD
- #endif /* MRV_MRSZ_SCALE_HY_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_hcb_shd: horizontal Cb scale factor shadow register
- * (0x00000038)
- *
- *****************************************************************************/
- /* Slice: scale_hcb_shd:*/
- /* This register is set to the horizontal Cb downscale factor or to the */
- /* reciprocal of the horizontal Cb upscale factor */
- #ifdef MRV_MRSZ_SCALE_HCB_SHD
- #endif /* MRV_MRSZ_SCALE_HCB_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_hcr_shd: horizontal Cr scale factor shadow register
- * (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: scale_hcr_shd:*/
- /* This register is set to the horizontal Cr downscale factor or to the */
- /* reciprocal of the horizontal Cr upscale factor */
- #ifdef MRV_MRSZ_SCALE_HCR_SHD
- #endif /* MRV_MRSZ_SCALE_HCR_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_vy_shd: vertical luminance scale factor shadow register
- * (0x00000040)
- *
- *****************************************************************************/
- /* Slice: scale_vy_shd:*/
- /* This register is set to the vertical luminance downscale factor or to the */
- /* reciprocal of the vertical luminance upscale factor */
- #ifdef MRV_MRSZ_SCALE_VY_SHD
- #endif /* MRV_MRSZ_SCALE_VY_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_scale_vc_shd: vertical chrominance scale factor shadow
- * register (0x00000044)
- *
- *****************************************************************************/
- /* Slice: scale_vc_shd:*/
- /* This register is set to the vertical chrominance downscale factor or to */
- /* the reciprocal of the vertical chrominance upscale factor */
- #ifdef MRV_MRSZ_SCALE_VC_SHD
- #endif /* MRV_MRSZ_SCALE_VC_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_hy_shd: horizontal luminance phase shadow register
- * (0x00000048)
- *
- *****************************************************************************/
- /* Slice: phase_hy_shd:*/
- /* This register is set to the horizontal luminance phase offset */
- #ifdef MRV_MRSZ_PHASE_HY_SHD
- #endif /* MRV_MRSZ_PHASE_HY_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_hc_shd: horizontal chrominance phase shadow register
- * (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: phase_hc_shd:*/
- /* This register is set to the horizontal chrominance phase offset */
- #ifdef MRV_MRSZ_PHASE_HC_SHD
- #endif /* MRV_MRSZ_PHASE_HC_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_vy_shd: vertical luminance phase shadow register
- * (0x00000050)
- *
- *****************************************************************************/
- /* Slice: phase_vy_shd:*/
- /* This register is set to the vertical luminance phase offset */
- #ifdef MRV_MRSZ_PHASE_VY_SHD
- #endif /* MRV_MRSZ_PHASE_VY_SHD */
- /*****************************************************************************/
- /**
- * register: mrsz_phase_vc_shd: vertical chrominance phase shadow register
- * (0x00000054)
- *
- *****************************************************************************/
- /* Slice: phase_vc_shd:*/
- /* This register is set to the vertical chrominance phase offset */
- #ifdef MRV_MRSZ_PHASE_VC_SHD
- #endif /* MRV_MRSZ_PHASE_VC_SHD */
- /*****************************************************************************/
- /* Self Resizer/Scaler Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: srsz_ctrl: global control register (0x00000000)
- *
- *****************************************************************************/
- /* Slice: cfg_upd:*/
- /* write 0: nothing happens */
- /* write 1: update shadow registers */
- /* read: always 0 */
- #ifdef MRV_SRSZ_CFG_UPD
- #endif /* MRV_SRSZ_CFG_UPD */
- /* Slice: scale_vc_up:*/
- /* 1: vertical chrominance upscaling selected */
- /* 0: vertical chrominance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_VC_UP
- #define MRV_SRSZ_SCALE_VC_UP_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
- #define MRV_SRSZ_SCALE_VC_UP_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_VC_UP */
- /* Slice: scale_vy_up:*/
- /* 1: vertical luminance upscaling selected */
- /* 0: vertical luminance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_VY_UP
- #define MRV_SRSZ_SCALE_VY_UP_UPSCALE 1 /* 1: vertical luminance upscaling selected */
- #define MRV_SRSZ_SCALE_VY_UP_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_VY_UP */
- /* Slice: scale_hc_up:*/
- /* 1: horizontal chrominance upscaling selected */
- /* 0: horizontal chrominance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_HC_UP
- #define MRV_SRSZ_SCALE_HC_UP_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
- #define MRV_SRSZ_SCALE_HC_UP_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_HC_UP */
- /* Slice: scale_hy_up:*/
- /* 1: horizontal luminance upscaling selected */
- /* 0: horizontal luminance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_HY_UP
- #define MRV_SRSZ_SCALE_HY_UP_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
- #define MRV_SRSZ_SCALE_HY_UP_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_HY_UP */
- /* Slice: scale_vc_enable:*/
- /* 0: bypass vertical chrominance scaling unit */
- /* 1: enable vertical chrominance scaling unit */
- #ifdef MRV_SRSZ_SCALE_VC_ENABLE
- #define MRV_SRSZ_SCALE_VC_ENABLE_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
- #define MRV_SRSZ_SCALE_VC_ENABLE_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
- #endif /* MRV_SRSZ_SCALE_VC_ENABLE */
- /* Slice: scale_vy_enable:*/
- /* 0: bypass vertical luminance scaling unit */
- /* 1: enable vertical luminance scaling unit */
- #ifdef MRV_SRSZ_SCALE_VY_ENABLE
- #define MRV_SRSZ_SCALE_VY_ENABLE_PROCESS 1 /* 1: enable vertical luminance scaling unit */
- #define MRV_SRSZ_SCALE_VY_ENABLE_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
- #endif /* MRV_SRSZ_SCALE_VY_ENABLE */
- /* Slice: scale_hc_enable:*/
- /* 0: bypass horizontal chrominance scaling unit */
- /* 1: enable horizontal chrominance scaling unit */
- #ifdef MRV_SRSZ_SCALE_HC_ENABLE
- #define MRV_SRSZ_SCALE_HC_ENABLE_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
- #define MRV_SRSZ_SCALE_HC_ENABLE_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
- #endif /* MRV_SRSZ_SCALE_HC_ENABLE */
- /* Slice: scale_hy_enable:*/
- /* 0: bypass horizontal luminance scaling unit */
- /* 1: enable horizontal luminance scaling unit */
- #ifdef MRV_SRSZ_SCALE_HY_ENABLE
- #define MRV_SRSZ_SCALE_HY_ENABLE_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
- #define MRV_SRSZ_SCALE_HY_ENABLE_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
- #endif /* MRV_SRSZ_SCALE_HY_ENABLE */
- /*****************************************************************************/
- /**
- * register: srsz_scale_hy: horizontal luminance scale factor register
- * (0x00000004)
- *
- *****************************************************************************/
- /* Slice: scale_hy:*/
- /* This register is set to the horizontal luminance downscale factor or to */
- /* the reciprocal of the horizontal luminance upscale factor */
- #ifdef MRV_SRSZ_SCALE_HY
- #endif /* MRV_SRSZ_SCALE_HY */
- /*****************************************************************************/
- /**
- * register: srsz_scale_hcb: horizontal Cb scale factor register (0x00000008)
- *
- *****************************************************************************/
- /* Slice: scale_hcb:*/
- /* This register is set to the horizontal Cb downscale factor or to the */
- /* reciprocal of the horizontal Cb upscale factor */
- #ifdef MRV_SRSZ_SCALE_HCB
- #endif /* MRV_SRSZ_SCALE_HCB */
- /*****************************************************************************/
- /**
- * register: srsz_scale_hcr: horizontal Cr scale factor register (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: scale_hcr:*/
- /* This register is set to the horizontal Cr downscale factor or to the */
- /* reciprocal of the horizontal Cr upscale factor */
- #ifdef MRV_SRSZ_SCALE_HCR
- #endif /* MRV_SRSZ_SCALE_HCR */
- /*****************************************************************************/
- /**
- * register: srsz_scale_vy: vertical luminance scale factor register (0x00000010)
- *
- *****************************************************************************/
- /* Slice: scale_vy:*/
- /* This register is set to the vertical luminance downscale factor or to the */
- /* reciprocal of the vertical luminance upscale factor */
- #ifdef MRV_SRSZ_SCALE_VY
- #endif /* MRV_SRSZ_SCALE_VY */
- /*****************************************************************************/
- /**
- * register: srsz_scale_vc: vertical chrominance scale factor register (0x00000014)
- *
- *****************************************************************************/
- /* Slice: scale_vc:*/
- /* This register is set to the vertical chrominance downscale factor or to the */
- /* reciprocal of the vertical chrominance upscale factor */
- #ifdef MRV_SRSZ_SCALE_VC
- #endif /* MRV_SRSZ_SCALE_VC */
- /*****************************************************************************/
- /**
- * register: srsz_phase_hy: horizontal luminance phase register (0x00000018)
- *
- *****************************************************************************/
- /* Slice: phase_hy:*/
- /* This register is set to the horizontal luminance phase offset */
- #ifdef MRV_SRSZ_PHASE_HY
- #endif /* MRV_SRSZ_PHASE_HY */
- /*****************************************************************************/
- /**
- * register: srsz_phase_hc: horizontal chrominance phase register (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: phase_hc:*/
- /* This register is set to the horizontal chrominance phase offset */
- #ifdef MRV_SRSZ_PHASE_HC
- #endif /* MRV_SRSZ_PHASE_HC */
- /*****************************************************************************/
- /**
- * register: srsz_phase_vy: vertical luminance phase register (0x00000020)
- *
- *****************************************************************************/
- /* Slice: phase_vy:*/
- /* This register is set to the vertical luminance phase offset */
- #ifdef MRV_SRSZ_PHASE_VY
- #endif /* MRV_SRSZ_PHASE_VY */
- /*****************************************************************************/
- /**
- * register: srsz_phase_vc: vertical chrominance phase register (0x00000024)
- *
- *****************************************************************************/
- /* Slice: phase_vc:*/
- /* This register is set to the vertical chrominance phase offset */
- #ifdef MRV_SRSZ_PHASE_VC
- #endif /* MRV_SRSZ_PHASE_VC */
- /*****************************************************************************/
- /**
- * register: srsz_scale_lut_addr: Address pointer of up-scaling look up table
- * (0x00000028)
- *
- *****************************************************************************/
- /* Slice: scale_lut_addr:*/
- /* Pointer to entry of lookup table */
- #ifdef MRV_SRSZ_SCALE_LUT_ADDR
- #endif /* MRV_SRSZ_SCALE_LUT_ADDR */
- /*****************************************************************************/
- /**
- * register: srsz_scale_lut: Entry of up-scaling look up table (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: scale_lut:*/
- /* Entry of lookup table at position scale_lut_addr. The lookup table must be */
- /* filled with appropriate values before the up-scaling functionality can be */
- /* used.*/
- #ifdef MRV_SRSZ_SCALE_LUT
- #endif /* MRV_SRSZ_SCALE_LUT */
- /*****************************************************************************/
- /**
- * register: srsz_ctrl_shd: global control shadow register (0x0030)
- *
- *****************************************************************************/
- /* Slice: scale_vc_up_shd:*/
- /* 1: vertical chrominance upscaling selected */
- /* 0: vertical chrominance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_VC_UP_SHD
- #define MRV_SRSZ_SCALE_VC_UP_SHD_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
- #define MRV_SRSZ_SCALE_VC_UP_SHD_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_VC_UP_SHD */
- /* Slice: scale_vy_up_shd:*/
- /* 1: vertical luminance upscaling selected */
- /* 0: vertical luminance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_VY_UP_SHD
- #define MRV_SRSZ_SCALE_VY_UP_SHD_UPSCALE 1 /* 1: vertical luminance upscaling selected */
- #define MRV_SRSZ_SCALE_VY_UP_SHD_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_VY_UP_SHD */
- /* Slice: scale_hc_up_shd:*/
- /* 1: horizontal chrominance upscaling selected */
- /* 0: horizontal chrominance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_HC_UP_SHD
- #define MRV_SRSZ_SCALE_HC_UP_SHD_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
- #define MRV_SRSZ_SCALE_HC_UP_SHD_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_HC_UP_SHD */
- /* Slice: scale_hy_up_shd:*/
- /* 1: horizontal luminance upscaling selected */
- /* 0: horizontal luminance downscaling selected */
- #ifdef MRV_SRSZ_SCALE_HY_UP_SHD
- #define MRV_SRSZ_SCALE_HY_UP_SHD_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
- #define MRV_SRSZ_SCALE_HY_UP_SHD_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
- #endif /* MRV_SRSZ_SCALE_HY_UP_SHD */
- /* Slice: scale_vc_enable_shd:*/
- /* 0: bypass vertical chrominance scaling unit */
- /* 1: enable vertical chrominance scaling unit */
- #ifdef MRV_SRSZ_SCALE_VC_ENABLE_SHD
- #define MRV_SRSZ_SCALE_VC_ENABLE_SHD_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
- #define MRV_SRSZ_SCALE_VC_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
- #endif /* MRV_SRSZ_SCALE_VC_ENABLE_SHD */
- /* Slice: scale_vy_enable_shd:*/
- /* 0: bypass vertical luminance scaling unit */
- /* 1: enable vertical luminance scaling unit */
- #ifdef MRV_SRSZ_SCALE_VY_ENABLE_SHD
- #define MRV_SRSZ_SCALE_VY_ENABLE_SHD_PROCESS 1 /* 1: enable vertical luminance scaling unit */
- #define MRV_SRSZ_SCALE_VY_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
- #endif /* MRV_SRSZ_SCALE_VY_ENABLE_SHD */
- /* Slice: scale_hc_enable_shd:*/
- /* 0: bypass horizontal chrominance scaling unit */
- /* 1: enable horizontal chrominance scaling unit */
- #ifdef MRV_SRSZ_SCALE_HC_ENABLE_SHD
- #define MRV_SRSZ_SCALE_HC_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
- #define MRV_SRSZ_SCALE_HC_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
- #endif /* MRV_SRSZ_SCALE_HC_ENABLE_SHD */
- /* Slice: scale_hy_enable_shd:*/
- /* 0: bypass horizontal luminance scaling unit */
- /* 1: enable horizontal luminance scaling unit */
- #ifdef MRV_SRSZ_SCALE_HY_ENABLE_SHD
- #define MRV_SRSZ_SCALE_HY_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
- #define MRV_SRSZ_SCALE_HY_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
- #endif /* MRV_SRSZ_SCALE_HY_ENABLE_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_scale_hy_shd: horizontal luminance scale factor shadow
- * register (0x00000034)
- *
- *****************************************************************************/
- /* Slice: scale_hy_shd:*/
- /* This register is set to the horizontal luminance downscale factor or to the */
- /* reciprocal of the horizontal luminance upscale factor */
- #ifdef MRV_SRSZ_SCALE_HY_SHD
- #endif /* MRV_SRSZ_SCALE_HY_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_scale_hcb_shd: horizontal Cb scale factor shadow register
- * (0x00000038)
- *
- *****************************************************************************/
- /* Slice: scale_hcb_shd:*/
- /* This register is set to the horizontal Cb downscale factor or to the */
- /* reciprocal of the horizontal Cb upscale factor */
- #ifdef MRV_SRSZ_SCALE_HCB_SHD
- #endif /* MRV_SRSZ_SCALE_HCB_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_scale_hcr_shd: horizontal Cr scale factor shadow register
- * (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: scale_hcr_shd:*/
- /* This register is set to the horizontal Cr downscale factor or to the */
- /* reciprocal of the horizontal Cr upscale factor */
- #ifdef MRV_SRSZ_SCALE_HCR_SHD
- #endif /* MRV_SRSZ_SCALE_HCR_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_scale_vy_shd: vertical luminance scale factor shadow register
- * (0x00000040)
- *
- *****************************************************************************/
- /* Slice: scale_vy_shd:*/
- /* This register is set to the vertical luminance downscale factor or to the */
- /* reciprocal of the vertical luminance upscale factor */
- #ifdef MRV_SRSZ_SCALE_VY_SHD
- #endif /* MRV_SRSZ_SCALE_VY_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_scale_vc_shd: vertical chrominance scale factor shadow
- * register (0x00000044)
- *
- *****************************************************************************/
- /* Slice: scale_vc_shd:*/
- /* This register is set to the vertical chrominance downscale factor or to */
- /* the reciprocal of the vertical chrominance upscale factor */
- #ifdef MRV_SRSZ_SCALE_VC_SHD
- #endif /* MRV_SRSZ_SCALE_VC_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_phase_hy_shd: horizontal luminance phase shadow register
- * (0x00000048)
- *
- *****************************************************************************/
- /* Slice: phase_hy_shd:*/
- /* This register is set to the horizontal luminance phase offset */
- #ifdef MRV_SRSZ_PHASE_HY_SHD
- #endif /* MRV_SRSZ_PHASE_HY_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_phase_hc_shd: horizontal chrominance phase shadow register
- * (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: phase_hc_shd:*/
- /* This register is set to the horizontal chrominance phase offset */
- #ifdef MRV_SRSZ_PHASE_HC_SHD
- #endif /* MRV_SRSZ_PHASE_HC_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_phase_vy_shd: vertical luminance phase shadow register
- * (0x00000050)
- *
- *****************************************************************************/
- /* Slice: phase_vy_shd:*/
- /* This register is set to the vertical luminance phase offset */
- #ifdef MRV_SRSZ_PHASE_VY_SHD
- #endif /* MRV_SRSZ_PHASE_VY_SHD */
- /*****************************************************************************/
- /**
- * register: srsz_phase_vc_shd: vertical chrominance phase shadow register
- * (0x00000054)
- *
- *****************************************************************************/
- /* Slice: phase_vc_shd:*/
- /* This register is set to the vertical chrominance phase offset */
- #ifdef MRV_SRSZ_PHASE_VC_SHD
- #endif /* MRV_SRSZ_PHASE_VC_SHD */
- /*****************************************************************************/
- /* Memory Interface Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: mi_ctrl: Global control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: sp_output_format:*/
- /* Selects output format of self picture. For possible restrictions see sub-*/
- /* chapter "Picture Orientation" in chapter "Self Path Output Programming".*/
- /**/
- /* 111: reserved */
- /* 110: RGB 888 */
- /* 101: RGB 666 */
- /* 100: RGB 565 */
- /**/
- /* 011: YCbCr 4:4:4 */
- /* 010: YCbCr 4:2:2 */
- /* 001: YCbCr 4:2:0 */
- /* 000: YCbCr 4:0:0 */
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- /* - for RGB output format the SP input format must be YCbCr 4:2:2 */
- #ifdef MRV_MI_SP_OUTPUT_FORMAT
- #define MRV_MI_SP_OUTPUT_FORMAT_RGB888 6 /* 110: RGB 888 */
- #define MRV_MI_SP_OUTPUT_FORMAT_RGB666 5 /* 101: RGB 666 */
- #define MRV_MI_SP_OUTPUT_FORMAT_RGB565 4 /* 100: RGB 565 */
- #define MRV_MI_SP_OUTPUT_FORMAT_YUV444 3 /* 011: YCbCr 4:4:4 */
- #define MRV_MI_SP_OUTPUT_FORMAT_YUV422 2 /* 010: YCbCr 4:2:2 */
- #define MRV_MI_SP_OUTPUT_FORMAT_YUV420 1 /* 001: YCbCr 4:2:0 */
- #define MRV_MI_SP_OUTPUT_FORMAT_YUV400 0 /* 000: YCbCr 4:0:0 */
- #endif /* MRV_MI_SP_OUTPUT_FORMAT */
- /* Slice: sp_input_format:*/
- /* Selects input format of self picture. For possible restrictions see sub-*/
- /* chapter "Picture Orientation" in chapter "Self Path Output Programming".*/
- /**/
- /* 11: YCbCr 4:4:4 */
- /* 10: YCbCr 4:2:2 */
- /* 01: YCbCr 4:2:0 */
- /* 00: YCbCr 4:0:0 */
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_SP_INPUT_FORMAT
- #define MRV_MI_SP_INPUT_FORMAT_YUV444 3 /* 11: YCbCr 4:4:4 */
- #define MRV_MI_SP_INPUT_FORMAT_YUV422 2 /* 10: YCbCr 4:2:2 */
- #define MRV_MI_SP_INPUT_FORMAT_YUV420 1 /* 01: YCbCr 4:2:0 */
- #define MRV_MI_SP_INPUT_FORMAT_YUV400 0 /* 00: YCbCr 4:0:0 */
- #endif /* MRV_MI_SP_INPUT_FORMAT */
- /* Slice: sp_write_format:*/
- /* Defines how YCbCr self picture data is written to memory. Ignored if */
- /* RGB conversion is chosen. With RGB conversion active the output format */
- /* is always interleaved.*/
- /**/
- /* 00: planar */
- /* 01: semi planar, for YCbCr 4:2:x */
- /* 10: interleaved (combined), for YCbCr 4:2:2 only */
- /* 11: reserved */
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_SP_WRITE_FORMAT
- #define MRV_MI_SP_WRITE_FORMAT_PLANAR 0 /* 00: planar */
- #define MRV_MI_SP_WRITE_FORMAT_SEMIPLANAR 1 /* 01: semi planar, for YCbCr 4:2:x */
- #define MRV_MI_SP_WRITE_FORMAT_INTERLEAVED 2 /* 10: interleaved (combined), for YCbCr 4:2:2 only */
- #define MRV_MI_SP_WRITE_FORMAT_RGB_INTERLEAVED 0 /* 00: hw expects a 0 in RGB mode */
- #endif /* MRV_MI_SP_WRITE_FORMAT */
- /* Slice: mp_write_format:*/
- /* Defines how YCbCr main picture data is written to memory.*/
- /* Ignored if JPEG data is chosen.*/
- /* In YCbCr mode the following meaning is applicable */
- /* 00: planar */
- /* 01: semi planar, for YCbCr 4:2:x */
- /* 10: interleaved (combined), for YCbCr 4:2:2 only */
- /* 11: reserved */
- /* In RAW data mode the following meaning is applicable */
- /* 00: RAW 8 bit */
- /* 01: reserved */
- /* 10: RAW 12 bit */
- /* 11: reserved */
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the main path.*/
- #ifdef MRV_MI_MP_WRITE_FORMAT
- #define MRV_MI_MP_WRITE_FORMAT_PLANAR 0 /* 00: planar */
- #define MRV_MI_MP_WRITE_FORMAT_SEMIPLANAR 1 /* 01: semi planar, for YCbCr 4:2:x */
- #define MRV_MI_MP_WRITE_FORMAT_INTERLEAVED 2 /* 10: interleaved (combined), for YCbCr 4:2:2 only */
- #define MRV_MI_MP_WRITE_FORMAT_RAW_8 0 /* 0x: RAW 8 bit */
- #define MRV_MI_MP_WRITE_FORMAT_RAW_12 2 /* 1x: RAW 12 bit */
- #endif /* MRV_MI_MP_WRITE_FORMAT */
- /* Slice: bp_write_format:*/
- /* In RAW data mode the following meaning is applicable */
- /* 00: RAW 8 bit */
- /* 01: RAW 10 bit */
- /* 10: RAW 12 bit */
- /* 11: reserved */
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the main path.*/
- #ifdef MRV_MI_BP_WRITE_RAWBIT
- #define MRV_MI_BP_WRITE_RAWBIT_RAW_8 0 /* 0x: RAW 8 bit */
- #define MRV_MI_BP_WRITE_RAWBIT_RAW_10 1 /* 01x: RAW 10 bit */
- #define MRV_MI_BP_WRITE_RAWBIT_RAW_12 2 /* 10x: RAW 12 bit */
- #endif /* MRV_MI_BP_WRITE_RAWBIT */
- /* Slice: init_offset_en:*/
- /* Enables updating of the offset counters shadow registers for */
- /* main and self picture to the programmed register init values.*/
- /**/
- /* MI_MP/SP_Y/CB/CR_OFFS_CNT_INIT */
- /* -> MI_MP/SP_Y/CB/CR_OFFS_CNT_SHD */
- /**/
- /* The update will be executed either when a forced software */
- /* update occurs (in register MI_INIT bit cfg_upd = 1) or when */
- /* an automatic config update signal arrives at the MI input port.*/
- /* The latter is split into main and self picture. So only the */
- /* corresponding main/self shadow registers are affected.*/
- /* After a picture skip has been performed init_offset_en selects */
- /* between skip restart and skip init mode (see bit skip in */
- /* register MI_INIT).*/
- #ifdef MRV_MI_INIT_OFFSET_EN
- #endif /* MRV_MI_INIT_OFFSET_EN */
- /* Slice: init_base_en:*/
- /* Enables updating of the base address and buffer size shadow */
- /* registers for main and self picture to the programmed register */
- /* init values.*/
- /**/
- /* MI_MP/SP_Y/CB/CR_BASE_AD_INIT */
- /* -> MI_MP/SP_Y/CB/CR_BASE_AD_SHD */
- /**/
- /* MI_MP/SP_Y/CB/CR_SIZE_INIT */
- /* -> MI_MP/SP_Y/CB/CR_SIZE_SHD */
- /**/
- /* The update will be executed either when a forced software */
- /* update occurs (in register MI_INIT bit cfg_upd = 1) or when */
- /* an automatic config update signal arrives at the MI input port.*/
- /* The latter is split into main and self picture. So only the */
- /* corresponding main/self shadow registers are affected.*/
- #ifdef MRV_MI_INIT_BASE_EN
- #endif /* MRV_MI_INIT_BASE_EN */
- /* Slice: burst_len_chrom:*/
- /* Burst length for Cb or Cr data affecting write port.*/
- /* 00: 4-beat bursts */
- /* 01: 8-beat bursts */
- /* 10: 16-beat bursts */
- /* 11: reserved */
- /* Ignored if 8- or 16-beat bursts are not supported. If rotation */
- /* is active, then only 4-beat bursts will be generated in self path,*/
- /* regardless of the setting here.*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the main and self path.*/
- #ifdef MRV_MI_BURST_LEN_CHROM
- #define MRV_MI_BURST_LEN_CHROM_4 0 /* 0: 4-beat bursts */
- #define MRV_MI_BURST_LEN_CHROM_8 1 /* 1: 8-beat bursts */
- #define MRV_MI_BURST_LEN_CHROM_16 2 /* 2: 16-beat bursts */
- #endif /* MRV_MI_BURST_LEN_CHROM */
- /* Slice: burst_len_lum:*/
- /* Burst length for Y, JPEG, or raw data affecting write port.*/
- /* 00: 4-beat bursts */
- /* 01: 8-beat bursts */
- /* 10: 16-beat bursts */
- /* 11: reserved */
- /* Ignored if 8- or 16-beat bursts are not supported.*/
- /**/
- /* Note: Programmed value becomes effective immediately. So write to */
- /* the register only if no picture data is sent to the main and self path.*/
- #ifdef MRV_MI_BURST_LEN_LUM
- #define MRV_MI_BURST_LEN_LUM_4 0 /* 0: 4-beat bursts */
- #define MRV_MI_BURST_LEN_LUM_8 1 /* 1: 8-beat bursts */
- #define MRV_MI_BURST_LEN_LUM_16 2 /* 2: 16-beat bursts */
- #endif /* MRV_MI_BURST_LEN_LUM */
- /* Slice: last_pixel_sig_en:*/
- /* enables the last pixel signalization */
- /* 1: enabled */
- /* 0: disabled */
- #ifdef MRV_MI_LAST_PIXEL_SIG_EN
- #define MRV_MI_LAST_PIXEL_SIG_EN_ENABLE 1 /* 1: enable last pixel signalization */
- #define MRV_MI_LAST_PIXEL_SIG_EN_DISABLE 0 /* 0: disable last pixel signalization */
- #endif /* MRV_MI_LAST_PIXEL_SIG_EN */
- /* Slice: 422noncosited:*/
- /* Enables self path YCbCr422non-co-sited -> YCbCr444 interpolation */
- /* 1: YCbCr422 data are non_co-sited (Cb and Cr samples */
- /* are centered between Y samples) so modified interpolation */
- /* is activated */
- /* 0: YCbCr422 data are co-sited (Y0 Cb0 and Cr0 are */
- /* sampled at the same position)*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_422NONCOSITED
- #endif /* MRV_MI_422NONCOSITED */
- /* Slice: cbcr_full_range:*/
- /* Enables CbCr full range for self path YCbCr -> RGB conversion */
- /* 1: CbCr have full range (0..255)*/
- /* 0: CbCr have compressed range range (16..240)*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_CBCR_FULL_RANGE
- #endif /* MRV_MI_CBCR_FULL_RANGE */
- /* Slice: y_full_range:*/
- /* Enables Y full range for self path YCbCr -> RGB conversion */
- /* 1: Y has full range (0..255)*/
- /* 0: Y has compressed range (16..235)*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_Y_FULL_RANGE
- #endif /* MRV_MI_Y_FULL_RANGE */
- /* Slice: byte_swap:*/
- /* Enables change of byte order of the 32 bit output word at write port */
- /* 1: byte order is mirrored but the bit order within one byte doesn't */
- /* change */
- /* 0: no byte mirroring */
- /**/
- /* Note: Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the main and self path.*/
- #ifdef MRV_MI_BYTE_SWAP
- #endif /* MRV_MI_BYTE_SWAP */
- /* Slice: rot:*/
- /* Rotation 90 degree counter clockwise of self picture, only in RGB */
- /* mode. For picture orientation and operation modes see sub-chapter */
- /* "Picture Orientation" in chapter "Self Path Output Programming".*/
- /**/
- /* For RGB 565 format the line length must be a multiple of 2. There */
- /* are no restrictions for RGB 888/666.*/
- /* 1: enabled */
- /* 0: disabled */
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path. In */
- /* rotation mode only 4-beat bursts are supported for self-path.*/
- #ifdef MRV_MI_ROT
- #endif /* MRV_MI_ROT */
- /* Slice: v_flip:*/
- /* Vertical flipping of self picture. For picture orientation and */
- /* operation modes see sub-chapter "Picture Orientation" in chapter */
- /* "Self Path Output Programming". For Y component the line length */
- /* in 4:2:x planar mode must be a multiple of 8, for all other component */
- /* modes a multiple of 4 and for RGB 565 a multiple of 2. There are */
- /* no restrictions for RGB 888/666.*/
- /**/
- /* 1: enabled */
- /* 0: disabled */
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_V_FLIP
- #endif /* MRV_MI_V_FLIP */
- /* Slice: h_flip:*/
- /* Horizontal flipping of self picture. For picture orientation and */
- /* operation modes see sub-chapter "Picture Orientation" in chapter */
- /* "Self Path Output Programming".*/
- /**/
- /* For Y component the line length in 4:2:x planar mode must be a */
- /* multiple of 8, for all other component modes a multiple of 4 and */
- /* for RGB 565 a multiple of 2. There are no restrictions for RGB 888/666.*/
- /**/
- /* 1: enabled */
- /* 0: disabled */
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the */
- /* register only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_H_FLIP
- #endif /* MRV_MI_H_FLIP */
- /* Programmed value becomes effective (visible in shadow register)*/
- /* after a soft reset, a forced software update or an automatic */
- /* config update. Affects MI_IN and MI_OUT module.*/
- /* Slice: raw_enable:*/
- /* Enables raw data */
- /* Programmed value becomes effective (visible in control shadow register) after a soft reset or a forced software update.*/
- /* Affects MI_IN and MI_OUT module.*/
- #ifndef MRV_MI_RAW_ENABLE
- #define MRV_MI_RAW_ENABLE
- #define MRV_MI_RAW_ENABLE_MASK 0x00000008
- #define MRV_MI_RAW_ENABLE_SHIFT 3
- #endif /* MRV_MI_RAW_ENABLE */
- /* Slice: dpcc_enable:*/
- /* Enables DPCC data */
- /* Programmed value becomes effective (visible in control shadow register) after a soft reset or a forced software.*/
- /* Affects MI_IN and MI_OUT module.*/
- #ifndef MRV_MI_DPCC_ENABLE
- #define MRV_MI_DPCC_ENABLE
- #define MRV_MI_DPCC_ENABLE_MASK 0x0000000C
- #define MRV_MI_DPCC_ENABLE_SHIFT 2
- #endif /* MRV_MI_JPEG_ENABLE */
- /* Slice: jpeg_enable:*/
- /* Enables JPEG data */
- /* Programmed value becomes effective (visible in control shadow register) after a soft reset or a forced software.*/
- /* Affects MI_IN and MI_OUT module.*/
- #ifndef MRV_MI_JPEG_ENABLE
- #define MRV_MI_JPEG_ENABLE
- #define MRV_MI_JPEG_ENABLE_MASK 0x00000004
- #define MRV_MI_JPEG_ENABLE_SHIFT 2
- #endif /* MRV_MI_JPEG_ENABLE */
- /* Slice: sp_enable:*/
- /* Enables self picture data path.*/
- /* Programmed value becomes effective (visible in control shadow register) after a soft reset, a forced software update or an automatic config update.*/
- /* Affects MI_IN and MI_OUT module.*/
- #ifndef MRV_MI_SP_ENABLE
- #define MRV_MI_SP_ENABLE
- #define MRV_MI_SP_ENABLE_MASK 0x00000002
- #define MRV_MI_SP_ENABLE_SHIFT 1
- #endif /* MRV_MI_SP_ENABLE */
- /* Slice: mp_enable:*/
- /* Enables main picture data path */
- /* Programmed value becomes effective (visible in control shadow register) after a soft reset, a forced software update or an automatic config update.*/
- /* Affects MI_IN and MI_OUT module.*/
- #ifndef MRV_MI_MP_ENABLE
- #define MRV_MI_MP_ENABLE
- #define MRV_MI_MP_ENABLE_MASK 0x00000001
- #define MRV_MI_MP_ENABLE_SHIFT 0
- #endif /* MRV_MI_MP_ENABLE */
- /* Slice: path_enable:*/
- /* Enables data pathes of MI according to the following table:*/
- /**/
- /* 0000: disabled, no data is transferred */
- /* 0001: YUV data output, mainpath only (mp_enable only)*/
- /* 0010: self-path only, output data format depending on other settings (sp_enable only)*/
- /* 0011: YUV data output in mainpath and self-path image data active */
- /* 0100: JPEG data output, mainpath only (jpeg_enable only)*/
- /* 0101: not allowed */
- /* 0110: JPEG data output in mainpath and self-path image data active */
- /* 0111: not allowed */
- /* 1000: RAW data output, mainpath only (raw_enable only)*/
- /* 1001: defect pixel data on self-path, image data on mainpath */
- /* 1010: defect pixel data on mainpath, image data on self-path */
- /* 1011: not allowed */
- /* 1100: defect pixel data on self-path, JPEG data on mainpath */
- /* 1101: defect pixel data on mainpath only */
- /* 1110: defect pixel data on self-path only */
- /* 1111: defect pixel data on self-path, RAW data on mainpath */
- #ifdef MRV_MI_PATH_ENABLE
- #endif /* MRV_MI_PATH_ENABLE */
- /*****************************************************************************/
- /**
- * register: mi_init: Control register for address init and skip function
- * (0x00000004)
- *
- *****************************************************************************/
- /* Slice: mi_cfg_upd:*/
- /* Forced configuration update. Leads to an immediate update of the shadow registers.*/
- /* Depending on the two init enable bits in the MI_CTRL register (init_offset_en and */
- /* init_base_en) the offset counter, base address and buffer size shadow registers */
- /* are also updated.*/
- #ifdef MRV_MI_MI_CFG_UPD
- #endif /* MRV_MI_MI_CFG_UPD */
- /* Slice: mp_output_format:*/
- /* Selects output format of main picture.*/
- /* 1xxx: Reserved */
- /* 0111: RAW10 */
- /* 0110: JPEG */
- /* 0101: RAW8 */
- /* 0100: RAW12 */
- /**/
- /* 0011: YCbCr 4:4:4 */
- /* 0010: YCbCr 4:2:2 */
- /* 0001: YCbCr 4:2:0 */
- /* 0000: YCbCr 4:0:0 */
- /**/
- #ifdef MRV_MI_MP_OUTPUT_FORMAT
- #define MRV_MI_MP_OUTPUT_FORMAT_RAW10 7 /* 0111: RAW10 */
- #define MRV_MI_MP_OUTPUT_FORMAT_JPEG 6 /* 0110: JPEG */
- #define MRV_MI_MP_OUTPUT_FORMAT_RAW8 5 /* 0101: RAW8 */
- #define MRV_MI_MP_OUTPUT_FORMAT_RAW12 4 /* 0100: RAW12 */
- #define MRV_MI_MP_OUTPUT_FORMAT_YUV444 3 /* 0011: YCbCr 4:4:4 */
- #define MRV_MI_MP_OUTPUT_FORMAT_YUV422 2 /* 0010: YCbCr 4:2:2 */
- #define MRV_MI_MP_OUTPUT_FORMAT_YUV420 1 /* 0001: YCbCr 4:2:0 */
- #define MRV_MI_MP_OUTPUT_FORMAT_YUV400 0 /* 0000: YCbCr 4:0:0 */
- #endif /* MRV_MI_MP_OUTPUT_FORMAT */
- /* Slice: mi_skip:*/
- /* Skip of current or next starting main picture:*/
- /* Aborts writing of main picture image data of the current frame to RAM (after the */
- /* current burst transmission has been completed). Further main picture data up to */
- /* the end of the current frame are discarded.*/
- /**/
- /* No further makroblock line interrupt (mblk_line), no wrap around interrupt for */
- /* main picture (wrap_mp_y/cb/cr) and no fill level interrupt (fill_mp_y) are generated.*/
- /**/
- /* Skip does not affect the generation of the main path frame end interrupt (mp_frame_end).*/
- /* Skip does not affect the processing of self picture and its corresponding interrupts */
- /* namely the self path frame end interrupt (sp_frame_end).*/
- /**/
- /* The byte counter (register MI_BYTE_CNT) is not affected. It produces the correct */
- /* number of JPEG or RAW data bytes at the end of the current (skipped) frame.*/
- /**/
- /* After a skip has been performed the offset counter for the main picture at the start */
- /* of the following frame are set depending on the bit init_offset_en in register MI_CTRL:*/
- /**/
- /* - Skip restart mode (init_offset_en = 0)*/
- /* The offset counters of the main picture are restarted at the old start values of */
- /* the previous skipped frame.*/
- /**/
- /* - Skip init mode (init_offset_en = 1)*/
- /* The offset counters of the main picture are initialized with the register contents */
- /* of the offset counter init registers without any additional forced software update */
- /* or automatic config update.*/
- #ifdef MRV_MI_MI_SKIP
- #endif /* MRV_MI_MI_SKIP */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_base_ad_init: Base address for main picture Y component,
- * JPEG or raw data (0x00000008)
- *
- *****************************************************************************/
- /* Slice: mp_y_base_ad_init:*/
- /* Base address of main picture Y component ring buffer, JPEG ring buffer or raw */
- /* data ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_BASE_AD_INIT
- #define MRV_MI_MP_Y_BASE_AD_INIT_VALID_MASK (MRV_MI_MP_Y_BASE_AD_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_BASE_AD_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_size_init: Size of main picture Y component, JPEG or raw
- * data (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: mp_y_size_init:*/
- /* Size of main picture Y component ring buffer, JPEG ring buffer or raw data */
- /* ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_SIZE_INIT
- #define MRV_MI_MP_Y_SIZE_INIT_VALID_MASK (MRV_MI_MP_Y_SIZE_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_SIZE_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_offs_cnt_init: Offset counter init value for main picture
- * Y, JPEG or raw data (0x00000010)
- *
- *****************************************************************************/
- /* Slice: mp_y_offs_cnt_init:*/
- /* Offset counter init value of main picture Y component ring buffer, JPEG ring */
- /* buffer or raw data ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_OFFS_CNT_INIT
- #define MRV_MI_MP_Y_OFFS_CNT_INIT_VALID_MASK (MRV_MI_MP_Y_OFFS_CNT_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_OFFS_CNT_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_offs_cnt_start: Offset counter start value for main picture
- * Y, JPEG or raw data (0x00000014)
- *
- *****************************************************************************/
- /* Slice: mp_y_offs_cnt_start:*/
- /* Offset counter value which points to the start address of the previously */
- /* processed picture (main picture Y component, JPEG or raw data). Updated at */
- /* frame end.*/
- /**/
- /* Note: A soft reset resets the contents to the reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_OFFS_CNT_START
- #define MRV_MI_MP_Y_OFFS_CNT_START_VALID_MASK (MRV_MI_MP_Y_OFFS_CNT_START_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_OFFS_CNT_START */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_irq_offs_init: Fill level interrupt offset value for main
- * picture Y, JPEG or raw data (0x00000018)
- *
- *****************************************************************************/
- /* Slice: mp_y_irq_offs_init:*/
- /* Reaching this programmed value by the current offset counter for addressing */
- /* main picture Y component, JPEG or raw data leads to generation of fill level */
- /* interrupt fill_mp_y.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_IRQ_OFFS_INIT
- #define MRV_MI_MP_Y_IRQ_OFFS_INIT_VALID_MASK (MRV_MI_MP_Y_IRQ_OFFS_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_IRQ_OFFS_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_base_ad_init: Base address for main picture Cb component
- * ring buffer (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: mp_cb_base_ad_init:*/
- /* Base address of main picture Cb component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note: Set control bit init_base_en before updating so that a forced or */
- /* automatic update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_BASE_AD_INIT
- #define MRV_MI_MP_CB_BASE_AD_INIT_VALID_MASK (MRV_MI_MP_CB_BASE_AD_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CB_BASE_AD_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_size_init: Size of main picture Cb component ring buffer
- * (0x00000020)
- *
- *****************************************************************************/
- /* Slice: mp_cb_size_init:*/
- /* Size of main picture Cb component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note: Set control bit init_base_en before updating so that a forced or */
- /* automatic update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_SIZE_INIT
- #define MRV_MI_MP_CB_SIZE_INIT_VALID_MASK (MRV_MI_MP_CB_SIZE_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CB_SIZE_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_offs_cnt_init: Offset counter init value for main picture
- * Cb component ring buffer (0x00000024)
- *
- *****************************************************************************/
- /* Slice: mp_cb_offs_cnt_init:*/
- /* Offset counter init value of main picture Cb component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note: Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect. Check exceptional handling in skip modes.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_OFFS_CNT_INIT
- #define MRV_MI_MP_CB_OFFS_CNT_INIT_VALID_MASK (MRV_MI_MP_CB_OFFS_CNT_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CB_OFFS_CNT_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_offs_cnt_start: Offset counter start value for main
- * picture Cb component ring buffer (0x00000028)
- *
- *****************************************************************************/
- /* Slice: mp_cb_offs_cnt_start:*/
- /* Offset counter value which points to the start address of the previously */
- /* processed picture (main picture Cb component). Updated at frame end.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_OFFS_CNT_START
- #define MRV_MI_MP_CB_OFFS_CNT_START_VALID_MASK (MRV_MI_MP_CB_OFFS_CNT_START_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CB_OFFS_CNT_START */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_base_ad_init: Base address for main picture Cr component
- * ring buffer (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: mp_cr_base_ad_init:*/
- /* Base address of main picture Cr component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_BASE_AD_INIT
- #define MRV_MI_MP_CR_BASE_AD_INIT_VALID_MASK (MRV_MI_MP_CR_BASE_AD_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CR_BASE_AD_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_size_init: Size of main picture Cr component ring buffer
- * (0x00000030)
- *
- *****************************************************************************/
- /* Slice: mp_cr_size_init:*/
- /* Size of main picture Cr component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_SIZE_INIT
- #define MRV_MI_MP_CR_SIZE_INIT_VALID_MASK (MRV_MI_MP_CR_SIZE_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CR_SIZE_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_offs_cnt_init: Offset counter init value for main
- * picture Cr component ring buffer (0x00000034)
- *
- *****************************************************************************/
- /* Slice: mp_cr_offs_cnt_init:*/
- /* Offset counter init value of main picture Cr component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect. Check exceptional handling in skip modes.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_OFFS_CNT_INIT
- #define MRV_MI_MP_CR_OFFS_CNT_INIT_VALID_MASK (MRV_MI_MP_CR_OFFS_CNT_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CR_OFFS_CNT_INIT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_offs_cnt_start: Offset counter start value for main
- * picture Cr component ring buffer (0x00000038)
- *
- *****************************************************************************/
- /* Slice: mp_cr_offs_cnt_start:*/
- /* Offset counter value which points to the start address of the previously */
- /* processed picture (main picture Cr component). Updated at frame end.*/
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_OFFS_CNT_START
- #define MRV_MI_MP_CR_OFFS_CNT_START_VALID_MASK (MRV_MI_MP_CR_OFFS_CNT_START_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_CR_OFFS_CNT_START */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_base_ad_init: Base address for self picture Y component
- * ring buffer (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: sp_y_base_ad_init:*/
- /* Base address of self picture Y component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_BASE_AD_INIT
- #define MRV_MI_SP_Y_BASE_AD_INIT_VALID_MASK (MRV_MI_SP_Y_BASE_AD_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_Y_BASE_AD_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_size_init: Size of self picture Y component ring buffer
- * (0x00000040)
- *
- *****************************************************************************/
- /* Slice: sp_y_size_init:*/
- /* Size of self picture Y component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note: Set control bit init_base_en before updating so that a forced or */
- /* automatic update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_SIZE_INIT
- #define MRV_MI_SP_Y_SIZE_INIT_VALID_MASK (MRV_MI_SP_Y_SIZE_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_Y_SIZE_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_offs_cnt_init: Offset counter init value for self
- * picture Y component ring buffer (0x00000044)
- *
- *****************************************************************************/
- /* Slice: sp_y_offs_cnt_init:*/
- /* Offset counter init value of self picture Y component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note: Set control bit init_base_en before updating so that a forced or */
- /* automatic update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_OFFS_CNT_INIT
- #define MRV_MI_SP_Y_OFFS_CNT_INIT_VALID_MASK (MRV_MI_SP_Y_OFFS_CNT_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_Y_OFFS_CNT_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_offs_cnt_start: Offset counter start value for self
- * picture Y component ring buffer (0x00000048)
- *
- *****************************************************************************/
- /* Slice: sp_y_offs_cnt_start:*/
- /* Offset counter value which points to the start address of the previously */
- /* processed picture (self picture Y component). Updated at frame end.*/
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_OFFS_CNT_START
- #define MRV_MI_SP_Y_OFFS_CNT_START_VALID_MASK (MRV_MI_SP_Y_OFFS_CNT_START_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_Y_OFFS_CNT_START */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_llength: Line length of self picture Y component (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: sp_y_llength:*/
- /* Line length of self picture Y component or RGB picture in pixel, also */
- /* known as line stride.*/
- /**/
- /* If no line stride is used, line length must match image width.*/
- /**/
- /* For Y component the line length in 4:2:x planar mode must be a multiple of 8,*/
- /* for all other component modes a multiple of 4 and for RGB 565 a multiple of 2.*/
- /* There are no restrictions for RGB 888/666.*/
- /**/
- /* In planar mode the line length of the Cb and Cr component is assumed according */
- /* to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4. In semi */
- /* planar 4:2:x mode the line length of the Cb and Cr component is assumed the */
- /* same size.*/
- /**/
- /* Note:*/
- /* - Line length always refers to the line length of the output image. This */
- /* is particularly important when rotating.*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the register */
- /* only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_SP_Y_LLENGTH
- #define MRV_MI_SP_Y_LLENGTH_VALID_MASK (MRV_MI_SP_Y_LLENGTH_MASK & ~0x00000000)
- #endif /* MRV_MI_SP_Y_LLENGTH */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_base_ad_init: Base address for self picture Cb component
- * ring buffer (0x00000050)
- *
- *****************************************************************************/
- /* Slice: sp_cb_base_ad_init:*/
- /* Base address of self picture Cb component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note: Set control bit init_base_en before updating so that a forced or */
- /* automatic update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_BASE_AD_INIT
- #define MRV_MI_SP_CB_BASE_AD_INIT_VALID_MASK (MRV_MI_SP_CB_BASE_AD_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CB_BASE_AD_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_size_init: Size of self picture Cb component ring buffer
- * (0x00000054)
- *
- *****************************************************************************/
- /* Slice: sp_cb_size_init:*/
- /* Size of self picture Cb component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_SIZE_INIT
- #define MRV_MI_SP_CB_SIZE_INIT_VALID_MASK (MRV_MI_SP_CB_SIZE_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CB_SIZE_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_offs_cnt_init: Offset counter init value for self picture
- * Cb component ring buffer (0x00000058)
- *
- *****************************************************************************/
- /* Slice: sp_cb_offs_cnt_init:*/
- /* Offset counter init value of self picture Cb component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_OFFS_CNT_INIT
- #define MRV_MI_SP_CB_OFFS_CNT_INIT_VALID_MASK (MRV_MI_SP_CB_OFFS_CNT_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CB_OFFS_CNT_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_offs_cnt_start: Offset counter start value for self
- * picture Cb component ring buffer (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: sp_cb_offs_cnt_start:*/
- /**/
- /* Offset counter value which points to the start address of the previously */
- /* processed picture (self picture Cb component). Updated at frame end.*/
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_OFFS_CNT_START
- #define MRV_MI_SP_CB_OFFS_CNT_START_VALID_MASK (MRV_MI_SP_CB_OFFS_CNT_START_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CB_OFFS_CNT_START */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_base_ad_init: Base address for self picture Cr component
- * ring buffer (0x00000060)
- *
- *****************************************************************************/
- /* Slice: sp_cr_base_ad_init:*/
- /* Base address of self picture Cr component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_BASE_AD_INIT
- #define MRV_MI_SP_CR_BASE_AD_INIT_VALID_MASK (MRV_MI_SP_CR_BASE_AD_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CR_BASE_AD_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_size_init: Size of self picture Cr component ring buffer
- * (0x00000064)
- *
- *****************************************************************************/
- /* Slice: sp_cr_size_init:*/
- /* Size of self picture Cr component ring buffer.*/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_SIZE_INIT
- #define MRV_MI_SP_CR_SIZE_INIT_VALID_MASK (MRV_MI_SP_CR_SIZE_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CR_SIZE_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_offs_cnt_init: Offset counter init value for self
- * picture Cr component ring buffer (0x00000068)
- *
- *****************************************************************************/
- /* Slice: sp_cr_offs_cnt_init:*/
- /* Offset counter init value of self picture Cr component ring buffer.*/
- /**/
- /* Programmed value becomes effective (visible in corresponding shadow register)*/
- /* after a soft reset, a forced software update or an automatic config update.*/
- /**/
- /* Note:*/
- /* - Set control bit init_base_en before updating so that a forced or automatic */
- /* update can take effect.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_OFFS_CNT_INIT
- #define MRV_MI_SP_CR_OFFS_CNT_INIT_VALID_MASK (MRV_MI_SP_CR_OFFS_CNT_INIT_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CR_OFFS_CNT_INIT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_offs_cnt_start: Offset counter start value for self
- * picture Cr component ring buffer (0x0000006c)
- *
- *****************************************************************************/
- /* Slice: sp_cr_offs_cnt_start:*/
- /* Offset counter value which points to the start address of the previously */
- /* processed picture (self picture Cr component). Updated at frame end.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_OFFS_CNT_START
- #define MRV_MI_SP_CR_OFFS_CNT_START_VALID_MASK (MRV_MI_SP_CR_OFFS_CNT_START_MASK & ~0x00000007)
- #endif /* MRV_MI_SP_CR_OFFS_CNT_START */
- /*****************************************************************************/
- /**
- * register: mi_byte_cnt: Counter value of JPEG or RAW data bytes (0x00000070)
- *
- *****************************************************************************/
- /* Slice: byte_cnt:*/
- /* Counter value specifies the number of JPEG or RAW data bytes of the last */
- /* transmitted frame. Updated at frame end.*/
- /**/
- /* A soft reset will set the byte counter to zero.*/
- #ifdef MRV_MI_BYTE_CNT
- #endif /* MRV_MI_BYTE_CNT */
- /*****************************************************************************/
- /**
- * register: mi_ctrl_shd: global control internal shadow register (0x00000074)
- *
- *****************************************************************************/
- /* Slice: path_enable_out:*/
- /* path_enable shadow register for module MI_OUT (former raw_enable_out,*/
- /* jpeg_enable_out, sp_enable_out, mp_enable_out)*/
- #ifdef MRV_MI_PATH_ENABLE_OUT
- #endif /* MRV_MI_PATH_ENABLE_OUT */
- /* Slice: path_enable_in:*/
- /* path_enable shadow register for module MI_IN (former raw_enable_in,*/
- /* jpeg_enable_in, sp_enable_in, mp_enable_in)*/
- #ifdef MRV_MI_PATH_ENABLE_IN
- #endif /* MRV_MI_PATH_ENABLE_IN */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_base_ad_shd: Base address shadow register for main
- * picture Y component, JPEG or raw data ring buffer (0x00000078)
- *
- *****************************************************************************/
- /* Slice: mp_y_base_ad:*/
- /* Base address of main picture Y component ring buffer, JPEG ring buffer or */
- /* raw data ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_BASE_AD
- #define MRV_MI_MP_Y_BASE_AD_VALID_MASK (MRV_MI_MP_Y_BASE_AD_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_BASE_AD */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_size_shd: Size shadow register of main picture Y component,
- * JPEG or raw data (0x0000007c)
- *
- *****************************************************************************/
- /* Slice: mp_y_size:*/
- /* Size of main picture Y component ring buffer, JPEG ring buffer or raw data */
- /* ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_SIZE
- #define MRV_MI_MP_Y_SIZE_VALID_MASK (MRV_MI_MP_Y_SIZE_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_offs_cnt_shd: Current offset counter of main picture Y
- * component, JPEG or raw data ring buffer (0x00000080)
- *
- *****************************************************************************/
- /* Slice: mp_y_offs_cnt:*/
- /* Current offset counter of main picture Y component, JPEG or raw data ring */
- /* buffer for address generation */
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_OFFS_CNT
- #define MRV_MI_MP_Y_OFFS_CNT_VALID_MASK (MRV_MI_MP_Y_OFFS_CNT_MASK & ~0x00000007)
- #endif /* MRV_MI_MP_Y_OFFS_CNT */
- /*****************************************************************************/
- /**
- * register: mi_mp_y_irq_offs_shd: Shadow register of fill level interrupt
- * offset value for main picture Y component, JPEG or raw data
- * (0x00000084)
- *
- *****************************************************************************/
- /* Slice: mp_y_irq_offs:*/
- /* Reaching this offset value by the current offset counter for addressing */
- /* main picture Y component, JPEG or raw data leads to generation of fill */
- /* level interrupt fill_mp_y.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_Y_IRQ_OFFS
- #endif /* MRV_MI_MP_Y_IRQ_OFFS */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_base_ad_shd: Base address shadow register for main
- * picture Cb component ring buffer (0x00000088)
- *
- *****************************************************************************/
- /* Slice: mp_cb_base_ad:*/
- /* Base address of main picture Cb component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_BASE_AD
- #endif /* MRV_MI_MP_CB_BASE_AD */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_size_shd: Size shadow register of main picture Cb
- * component ring buffer (0x0000008c)
- *
- *****************************************************************************/
- /* Slice: mp_cb_size:*/
- /* Size of main picture Cb component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_SIZE
- #endif /* MRV_MI_MP_CB_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_mp_cb_offs_cnt_shd: Current offset counter of main picture Cb
- * component ring buffer (0x00000090)
- *
- *****************************************************************************/
- /* Slice: mp_cb_offs_cnt:*/
- /* Current offset counter of main picture Cb component ring buffer for address */
- /* generation */
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CB_OFFS_CNT
- #endif /* MRV_MI_MP_CB_OFFS_CNT */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_base_ad_shd: Base address shadow register for main
- * picture Cr component ring buffer (0x00000094)
- *
- *****************************************************************************/
- /* Slice: mp_cr_base_ad:*/
- /* Base address of main picture Cr component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_BASE_AD
- #endif /* MRV_MI_MP_CR_BASE_AD */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_size_shd: Size shadow register of main picture Cr
- * component ring buffer (0x00000098)
- *
- *****************************************************************************/
- /* Slice: mp_cr_size:*/
- /* Size of main picture Cr component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_SIZE
- #endif /* MRV_MI_MP_CR_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_mp_cr_offs_cnt_shd: Current offset counter of main picture Cr
- * component ring buffer (0x0000009c)
- *
- *****************************************************************************/
- /* Slice: mp_cr_offs_cnt:*/
- /* Current offset counter of main picture Cr component ring buffer for */
- /* address generation */
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_MP_CR_OFFS_CNT
- #endif /* MRV_MI_MP_CR_OFFS_CNT */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_base_ad_shd: Base address shadow register for self
- * picture Y component ring buffer (0x000000a0)
- *
- *****************************************************************************/
- /* Slice: sp_y_base_ad:*/
- /* Base address of self picture Y component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_BASE_AD
- #endif /* MRV_MI_SP_Y_BASE_AD */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_size_shd: Size shadow register of self picture Y
- * component ring buffer (0x000000a4)
- *
- *****************************************************************************/
- /* Slice: sp_y_size:*/
- /* Size of self picture Y component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_SIZE
- #endif /* MRV_MI_SP_Y_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_offs_cnt_shd: Current offset counter of self picture Y
- * component ring buffer (0x000000a8)
- *
- *****************************************************************************/
- /* Slice: sp_y_offs_cnt:*/
- /* Current offset counter of self picture Y component ring buffer for address generation */
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_Y_OFFS_CNT
- #endif /* MRV_MI_SP_Y_OFFS_CNT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_base_ad_shd: Base address shadow register for self
- * picture Cb component ring buffer (0x000000b0)
- *
- *****************************************************************************/
- /* Slice: sp_cb_base_ad:*/
- /* Base address of self picture Cb component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_BASE_AD
- #endif /* MRV_MI_SP_CB_BASE_AD */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_size_shd: Size shadow register of self picture Cb
- * component ring buffer (0x000000b4)
- *
- *****************************************************************************/
- /* Slice: sp_cb_size:*/
- /* Size of self picture Cb component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_SIZE
- #endif /* MRV_MI_SP_CB_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_sp_cb_offs_cnt_shd: Current offset counter of self picture
- * Cb component ring buffer (0x000000b8)
- *
- *****************************************************************************/
- /* Slice: sp_cb_offs_cnt:*/
- /* Current offset counter of self picture Cb component ring buffer for */
- /* address generation */
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CB_OFFS_CNT
- #endif /* MRV_MI_SP_CB_OFFS_CNT */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_base_ad_shd: Base address shadow register for self
- * picture Cr component ring buffer (0x000000bc)
- *
- *****************************************************************************/
- /* Slice: sp_cr_base_ad:*/
- /* Base address of self picture Cr component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_BASE_AD
- #endif /* MRV_MI_SP_CR_BASE_AD */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_size_shd: Size shadow register of self picture Cr
- * component ring buffer (0x000000c0)
- *
- *****************************************************************************/
- /* Slice: sp_cr_size:*/
- /* Size of self picture Cr component ring buffer.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_SIZE
- #endif /* MRV_MI_SP_CR_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_sp_cr_offs_cnt_shd: Current offset counter of self picture Cr
- * component ring buffer (0x000000c4)
- *
- *****************************************************************************/
- /* Slice: sp_cr_offs_cnt:*/
- /* Current offset counter of self picture Cr component ring buffer for */
- /* address generation */
- /**/
- /* Note:*/
- /* - Soft reset will reset the contents to reset value.*/
- /**/
- /* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
- #ifdef MRV_MI_SP_CR_OFFS_CNT
- #endif /* MRV_MI_SP_CR_OFFS_CNT */
- /*****************************************************************************/
- /**
- * register: mi_dma_y_pic_start_ad: Y component image start address (0x000000c8)
- *
- *****************************************************************************/
- /* Slice: dma_y_pic_start_ad:*/
- /* Image start address of the y component */
- /**/
- /* Note:*/
- /* - Must be multiple of 4 in interleaved mode.*/
- #ifdef MRV_MI_DMA_Y_PIC_START_AD
- #endif /* MRV_MI_DMA_Y_PIC_START_AD */
- /*****************************************************************************/
- /**
- * register: mi_dma_y_pic_width: Y component image width (0x000000cc)
- *
- *****************************************************************************/
- /* Slice: dma_y_pic_width:*/
- /* Image width of the Y component in pixel.*/
- /**/
- /* For YCbCr 4:2:x the image width must be a multiple of 2.*/
- /**/
- /* In planar mode the image width of the Cb and Cr component is assumed */
- /* according to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4.*/
- /**/
- /* In semi planar 4:2:x mode the image width of the Cb component (which includes Cr)*/
- /* is assumed the same size.*/
- /**/
- /* In interleave mode no Cb/Cr image width is used.*/
- #ifdef MRV_MI_DMA_Y_PIC_WIDTH
- #endif /* MRV_MI_DMA_Y_PIC_WIDTH */
- /*****************************************************************************/
- /**
- * register: mi_dma_y_llength: Y component original line length (0x000000d0)
- *
- *****************************************************************************/
- /* Slice: dma_y_llength:*/
- /* Line length of the Y component of the original image in memory */
- /**/
- /* For an uncropped image, where lines follow each other without offset */
- /* (no line stride), line length must match image width.*/
- /**/
- /* For Y component the line length in 4:2:x planar mode must be a multiple of 8,*/
- /* for all other component modes a multiple of 4.*/
- /**/
- /* In planar mode the line length of the Cb and Cr component is assumed according */
- /* to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4.*/
- /**/
- /* In semi planar 4:2:x mode the line length of the Cb component (which includes Cr)*/
- /* is assumed the same size.*/
- /**/
- /* In interleave mode no Cb/Cr line length is used.*/
- #ifdef MRV_MI_DMA_Y_LLENGTH
- #endif /* MRV_MI_DMA_Y_LLENGTH */
- /*****************************************************************************/
- /**
- * register: mi_dma_y_pic_size: Y component image size (0x000000d4)
- *
- *****************************************************************************/
- /* Slice: dma_y_pic_size:*/
- /* Image size of the Y component in pixel which has to be the Y line length */
- /* multiplied by the Y image height (dma_y_llength * dma_y_pic_height).*/
- /**/
- /* In planar mode the image size of the Cb and Cr component is assumed according */
- /* to the YCbCr format, i.e. a quarter for 4:2:0, half for 4:2:2 and the same */
- /* for 4:4:4.*/
- /**/
- /* In semi planar mode the image size of the Cb component (which includes Cr)*/
- /* is assumed half for 4:2:0 and the same size for 4:2:2.*/
- /**/
- /* In interleave mode no Cb/Cr image size is used.*/
- #ifdef MRV_MI_DMA_Y_PIC_SIZE
- #endif /* MRV_MI_DMA_Y_PIC_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_dma_cb_pic_start_ad: Cb component image start address (0x000000d8)
- *
- *****************************************************************************/
- /* Slice: dma_cb_pic_start_ad:*/
- /* Image start address of the Cb component */
- /**/
- /* Note:*/
- /* - Must be multiple of 2 in semi-planar mode.*/
- #ifdef MRV_MI_DMA_CB_PIC_START_AD
- #endif /* MRV_MI_DMA_CB_PIC_START_AD */
- /*****************************************************************************/
- /**
- * register: mi_dma_cr_pic_start_ad: Cr component image start address (0x000000e8)
- *
- *****************************************************************************/
- /* Slice: dma_cr_pic_start_ad:*/
- /* Image start address of the Cr component */
- #ifdef MRV_MI_DMA_CR_PIC_START_AD
- #endif /* MRV_MI_DMA_CR_PIC_START_AD */
- /*****************************************************************************/
- /**
- * register: mi_imsc: Interrupt Mask Register (0x000000f8)
- * mi_ris : Raw Interrupt Status Register (0x000000fc)
- * mi_mis : Masked Interrupt Status Register (0x00000100)
- * mi_icr : Interrupt Clear Register (0x00000104)
- * mi_isr : Interrupt Set Register (0x00000108)
- *
- * ('1': interrupt active, '0': interrupt masked)
- *
- *****************************************************************************/
- /* Slice: dma_ready:*/
- /* Mask bit for dma ready interrupt */
- #ifndef MRV_MI_DMA_READY
- #define MRV_MI_DMA_READY_MASK 0
- #endif /* MRV_MI_DMA_READY */
- /* Slice: wrap_sp_cr:*/
- /* Mask bit for self picture Cr address wrap interrupt */
- #ifndef MRV_MI_WRAP_SP_CR
- #define MRV_MI_WRAP_SP_CR_MASK 0
- #endif /* MRV_MI_WRAP_SP_CR */
- /* Slice: wrap_sp_cb:*/
- /* Mask bit for self picture Cb address wrap interrupt */
- #ifndef MRV_MI_WRAP_SP_CB
- #define MRV_MI_WRAP_SP_CB_MASK 0
- #endif /* MRV_MI_WRAP_SP_CB */
- /* Slice: wrap_sp_y:*/
- /* Mask bit for self picture Y address wrap interrupt */
- #ifndef MRV_MI_WRAP_SP_Y
- #define MRV_MI_WRAP_SP_Y_MASK 0
- #endif /* MRV_MI_WRAP_SP_Y */
- /* Slice: wrap_mp_cr:*/
- /* Mask bit for main picture Cr address wrap interrupt */
- #ifndef MRV_MI_WRAP_MP_CR
- #define MRV_MI_WRAP_MP_CR_MASK 0
- #endif /* MRV_MI_WRAP_MP_CR */
- /* Slice: wrap_mp_cb:*/
- /* Mask bit for main picture Cb address wrap interrupt */
- #ifndef MRV_MI_WRAP_MP_CB
- #define MRV_MI_WRAP_MP_CB_MASK 0
- #endif /* MRV_MI_WRAP_MP_CB */
- /* Slice: wrap_mp_y:*/
- /* Mask bit for main picture Y address wrap interrupt */
- #ifndef MRV_MI_WRAP_MP_Y
- #define MRV_MI_WRAP_MP_Y_MASK 0
- #endif /* MRV_MI_WRAP_MP_Y */
- /* Slice: fill_mp_y:*/
- /* Mask bit for fill level interrupt of main picture Y,*/
- /* JPEG or raw data */
- #ifndef MRV_MI_FILL_MP_Y
- #define MRV_MI_FILL_MP_Y_MASK 0
- #endif /* MRV_MI_FILL_MP_Y */
- /* Slice: mblk_line:*/
- /* Mask bit for makroblock line interrupt of main picture */
- /* (16 lines of Y, 8 lines of Cb and 8 lines of Cr are written */
- /* into RAM)*/
- #ifndef MRV_MI_MBLK_LINE
- #define MRV_MI_MBLK_LINE_MASK 0
- #endif /* MRV_MI_MBLK_LINE */
- /* Slice: sp_frame_end:*/
- /* Mask self picture end of frame interrupt */
- #ifndef MRV_MI_SP_FRAME_END
- #define MRV_MI_SP_FRAME_END_MASK 0
- #endif /* MRV_MI_SP_FRAME_END */
- /* Slice: mp_frame_end:*/
- /* Mask main picture end of frame interrupt */
- #ifndef MRV_MI_MP_FRAME_END
- #define MRV_MI_MP_FRAME_END_MASK 0
- #endif /* MRV_MI_MP_FRAME_END */
- /* combination of all interrupt lines */
- #define MRV_MI_ALL_IRQS
- #define MRV_MI_ALL_IRQS_MASK \
- (0 \
- | MRV_MI_DMA_READY_MASK \
- | MRV_MI_AHB_ERROR_MASK \
- | MRV_MI_WRAP_SP_CR_MASK \
- | MRV_MI_WRAP_SP_CB_MASK \
- | MRV_MI_WRAP_SP_Y_MASK \
- | MRV_MI_WRAP_MP_CR_MASK \
- | MRV_MI_WRAP_MP_CB_MASK \
- | MRV_MI_WRAP_MP_Y_MASK \
- | MRV_MI_FILL_MP_Y_MASK \
- | MRV_MI_MBLK_LINE_MASK \
- | MRV_MI_SP_FRAME_END_MASK \
- | MRV_MI_DMA_FRAME_END_MASK \
- | MRV_MI_MP_FRAME_END_MASK \
- )
- #define MRV_MI_ALL_IRQS_SHIFT 0U
- /*****************************************************************************/
- /**
- * register: mi_status : MI Status Register (0x0000010c)
- * mi_status_clr: MI Status Clear Register (0x00000110)
- *
- *****************************************************************************/
- /* Slice: sp_cr_fifo_full:*/
- /* FIFO full flag of Cr FIFO in self path asserted since last clear */
- #ifndef MRV_MI_SP_CR_FIFO_FULL
- #define MRV_MI_SP_CR_FIFO_FULL_MASK 0U
- #endif /* MRV_MI_SP_CR_FIFO_FULL */
- /* Slice: sp_cb_fifo_full:*/
- /* FIFO full flag of Cb FIFO in self path asserted since last clear */
- #ifndef MRV_MI_SP_CB_FIFO_FULL
- #define MRV_MI_SP_CB_FIFO_FULL_MASK 0U
- #endif /* MRV_MI_SP_CB_FIFO_FULL */
- /* Slice: sp_y_fifo_full:*/
- /* FIFO full flag of Y FIFO in self path asserted since last clear */
- #ifndef MRV_MI_SP_Y_FIFO_FULL
- #define MRV_MI_SP_Y_FIFO_FULL_MASK 0U
- #endif /* MRV_MI_SP_Y_FIFO_FULL */
- /* Slice: mp_cr_fifo_full:*/
- /* FIFO full flag of Cr FIFO in main path asserted since last clear */
- #ifndef MRV_MI_MP_CR_FIFO_FULL
- #define MRV_MI_MP_CR_FIFO_FULL_MASK 0U
- #endif /* MRV_MI_MP_CR_FIFO_FULL */
- /* Slice: mp_cb_fifo_full:*/
- /* FIFO full flag of Cb FIFO in main path asserted since last clear */
- #ifndef MRV_MI_MP_CB_FIFO_FULL
- #define MRV_MI_MP_CB_FIFO_FULL_MASK 0U
- #endif /* MRV_MI_MP_CB_FIFO_FULL */
- /* Slice: mp_y_fifo_full:*/
- /* FIFO full flag of Y FIFO in main path asserted since last clear */
- #ifndef MRV_MI_MP_Y_FIFO_FULL
- #define MRV_MI_MP_Y_FIFO_FULL_MASK 0U
- #endif /* MRV_MI_MP_Y_FIFO_FULL */
- /* combination of all MI status lines */
- #define MRV_MI_ALL_STAT
- #define MRV_MI_ALL_STAT_MASK \
- (0 \
- | MRV_MI_SP_CR_FIFO_FULL_MASK \
- | MRV_MI_SP_CB_FIFO_FULL_MASK \
- | MRV_MI_SP_Y_FIFO_FULL_MASK \
- | MRV_MI_MP_CR_FIFO_FULL_MASK \
- | MRV_MI_MP_CB_FIFO_FULL_MASK \
- | MRV_MI_MP_Y_FIFO_FULL_MASK \
- )
- #define MRV_MI_ALL_STAT_SHIFT 0U
- /*****************************************************************************/
- /**
- * register: mi_sp_y_pic_width: Y component image width (0x00000114)
- *
- *****************************************************************************/
- /* Slice: sp_y_pic_width:*/
- /* Image width of the self picture Y component or RGB picture in pixel.*/
- /**/
- /* For YCbCr 4:2:x and RGB 565 the image width must be a multiple of 2.*/
- /* If no line stride is used but flipping required, the image width must be */
- /* a multiple of 8 for 4:2:x planar or 4 for 4:4:4 planar/4:2:x semi planar.*/
- /**/
- /* There are no restrictions for RGB 888/666.*/
- /**/
- /* In planar mode the image width of the Cb and Cr component is assumed according */
- /* to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4.*/
- /**/
- /* In semi planar 4:2:x mode the image width of the Cb component (which includes Cr)*/
- /* is assumed the same size.*/
- /**/
- /* In interleave mode no Cb/Cr image width is used.*/
- /* Note:*/
- /* - Image width always refers to the picture width of the output image. This is */
- /* particularly important when rotating.*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the register */
- /* only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_SP_Y_PIC_WIDTH
- #endif /* MRV_MI_SP_Y_PIC_WIDTH */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_pic_height: Y component image height (0x00000118)
- *
- *****************************************************************************/
- /* Slice: sp_y_pic_height:*/
- /* Image height of the y component or RGB picture in pixel.*/
- /**/
- /* In planar and semi planar mode the image width of the cb and cr component */
- /* is assumed according to the YCbCr format, i.e. half for 4:2:0 and the same */
- /* for 4:2:2 and 4:4:4.*/
- /**/
- /* Note:*/
- /* - Image height always refers to the picture height of the output image.*/
- /* This is particularly important when rotating.*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the register */
- /* only if no picture data is sent to the self path.*/
- #ifdef MRV_MI_SP_Y_PIC_HEIGHT
- #endif /* MRV_MI_SP_Y_PIC_HEIGHT */
- /*****************************************************************************/
- /**
- * register: mi_sp_y_pic_size: Y component image size (0x0000011c)
- *
- *****************************************************************************/
- /* Slice: sp_y_pic_size:*/
- /* Image size of the Y component or RGB picture in pixel which has to be the */
- /* Y line length multiplied by the Y image height (sp_y_llength * sp_y_pic_height).*/
- /**/
- /* In planar mode the image size of the Cb and Cr component is assumed according */
- /* to the YCbCr format, i.e. a quarter for 4:2:0, half for 4:2:2 and the same for */
- /* 4:4:4.*/
- /**/
- /* In semi planar mode the image size of the Cb and Cr component is assumed half */
- /* for 4:2:0 and the same size for 4:2:2.*/
- /**/
- /* Note:*/
- /* - Programmed value becomes effective immediately. So write to the register only */
- /* if no picture data is sent to the self path.*/
- #ifdef MRV_MI_SP_Y_PIC_SIZE
- #endif /* MRV_MI_SP_Y_PIC_SIZE */
- /*****************************************************************************/
- /**
- * register: mi_dma_ctrl: DMA control register (0x00000120)
- *
- *****************************************************************************/
- /* Slice: dma_rgb_format:*/
- /* Selects RGB Bayer data of read DMA picture */
- /**/
- /* 00: no DMA RGB Bayer data */
- /* 01: 8 bit RGB Bayer data */
- /* 10: 16 bit RGB Bayer data (12 bit used)*/
- /**/
- /* bytes are organized MSB first and 4 lower bits of LSB remain unused:*/
- /* byte_even -> bayer[11:4], byte_odd[7:4] -> bayer[3:0]*/
- /**/
- /* 11: reserved.*/
- #ifdef MRV_MI_DMA_RGB_FORMAT
- #define MRV_MI_DMA_RGB_FORMAT_NO_DATA 0
- #define MRV_MI_DMA_RGB_FORMAT_8BIT_BAYER 1
- #define MRV_MI_DMA_RGB_FORMAT_16BIT_BAYER 2
- #endif /* MRV_MI_DMA_RGB_FORMAT */
- /* Slice: dma_frame_end_disable:*/
- /* Suppresses v_end so that no frame end can be detected by following */
- /* instances. Note: The dma_ready interrupt is raised as usual, but the */
- /* dma_frame_end interrupt will not be generated until v_end has been */
- /* enabled again.*/
- #ifdef MRV_MI_DMA_FRAME_END_DISABLE
- #endif /* MRV_MI_DMA_FRAME_END_DISABLE */
- /* Slice: dma_continuous_en:*/
- /* Enables continuous mode. If set the same frame is read back over and */
- /* over. A start pulse on dma_start is needed only for the first time.*/
- /* To stop continuous mode reset this bit (takes effect after the next */
- /* frame end) or execute a soft reset. This bit is intended to be used */
- /* in conjunction with the Superimpose feature.*/
- #ifdef MRV_MI_DMA_CONTINUOUS_EN
- #endif /* MRV_MI_DMA_CONTINUOUS_EN */
- /* Slice: dma_byte_swap:*/
- /* Enables change of DMA byte order of the 32 bit input word at read port */
- /* 1: byte order is mirrored but the bit order within one byte doesnt change */
- /* 0: no byte mirroring */
- #ifdef MRV_MI_DMA_BYTE_SWAP
- #endif /* MRV_MI_DMA_BYTE_SWAP */
- /* Slice: dma_inout_format:*/
- /* Selects input/output format of DMA picture.*/
- /* 11: YCbCr 4:4:4 */
- /* 10: YCbCr 4:2:2 */
- /* 01: YCbCr 4:2:0 */
- /* 00: YCbCr 4:0:0 */
- #ifdef MRV_MI_DMA_INOUT_FORMAT
- #define MRV_MI_DMA_INOUT_FORMAT_YUV444 3 /* 11: YCbCr 4:4:4 */
- #define MRV_MI_DMA_INOUT_FORMAT_YUV422 2 /* 10: YCbCr 4:2:2 */
- #define MRV_MI_DMA_INOUT_FORMAT_YUV420 1 /* 01: YCbCr 4:2:0 */
- #define MRV_MI_DMA_INOUT_FORMAT_YUV400 0 /* 00: YCbCr 4:0:0 */
- #endif /* MRV_MI_DMA_INOUT_FORMAT */
- /* Slice: dma_read_format:*/
- /* Defines how YCbCr picture data is read from memory.*/
- /* 00: planar */
- /* 01: semi planar, for YCbCr 4:2:x */
- /* 10: interleaved (combined), for YCbCr 4:2:2 and RGB only */
- /* 11: reserved */
- #ifdef MRV_MI_DMA_READ_FORMAT
- #define MRV_MI_DMA_READ_FORMAT_PLANAR 0 /* 00: planar */
- #define MRV_MI_DMA_READ_FORMAT_SEMIPLANAR 1 /* 01: semi planar, for YCbCr 4:2:x */
- #define MRV_MI_DMA_READ_FORMAT_INTERLEAVED 2 /* 10: interleaved (combined), for YCbCr 4:2:2 only */
- #endif /* MRV_MI_DMA_READ_FORMAT */
- /* Slice: dma_burst_len_chrom:*/
- /* Burst length for Cb or Cr data affecting DMA read port.*/
- /* 00: 4-beat bursts */
- /* 01: 8-beat bursts */
- /* 10: 16-beat bursts */
- /* 11: reserved */
- /* Ignored if 8- or 16-beat bursts are not supported.*/
- #ifdef MRV_MI_DMA_BURST_LEN_CHROM
- #define MRV_MI_DMA_BURST_LEN_CHROM_4 0 /* 0: 4-beat bursts */
- #define MRV_MI_DMA_BURST_LEN_CHROM_8 1 /* 1: 8-beat bursts */
- #define MRV_MI_DMA_BURST_LEN_CHROM_16 2 /* 2: 16-beat bursts */
- #endif /* MRV_MI_DMA_BURST_LEN_CHROM */
- /* Slice: dma_burst_len_lum:*/
- /* Burst length for Y data affecting DMA read port.*/
- /* 00: 4-beat bursts */
- /* 01: 8-beat bursts */
- /* 10: 16-beat bursts */
- /* 11: reserved */
- /* Ignored if 8- or 16-beat bursts are not supported.*/
- #ifdef MRV_MI_DMA_BURST_LEN_LUM
- #define MRV_MI_DMA_BURST_LEN_LUM_4 0 /* 0: 4-beat bursts */
- #define MRV_MI_DMA_BURST_LEN_LUM_8 1 /* 1: 8-beat bursts */
- #define MRV_MI_DMA_BURST_LEN_LUM_16 2 /* 2: 16-beat bursts */
- #endif /* MRV_MI_DMA_BURST_LEN_LUM */
- /*****************************************************************************/
- /**
- * register: mi_dma_start: DMA start register (0x00000124)
- *
- *****************************************************************************/
- /* Slice: dma_start:*/
- /* Enables DMA access. Additionally main or self path has to be enabled separately.*/
- #ifdef MRV_MI_DMA_START
- #endif /* MRV_MI_DMA_START */
- /*****************************************************************************/
- /**
- * register: mi_dma_status: DMA status register (0x00000128)
- *
- *****************************************************************************/
- /* Slice: dma_active:*/
- /* If set DMA access is active.*/
- #ifdef MRV_MI_DMA_ACTIVE
- #endif /* MRV_MI_DMA_ACTIVE */
- /*****************************************************************************/
- /**
- * register: mi_pixel_cnt: Counter value for defect pixel list (0x0000012c)
- *
- *****************************************************************************/
- /* Slice: pix_cnt:*/
- /* Counter value specifies the number of pixels of the defect pixel list */
- /* generated by DPCC of the last transmitted frame. Updated at frame end.*/
- /**/
- /* A soft reset will set the counter to zero.*/
- #ifdef MRV_MI_PIX_CNT
- #endif /* MRV_MI_PIX_CNT */
- #ifdef ISP_MI_HANDSHAKE_NANO
- /* Nano handshake */
- /*****************************************************************************/
- /**
- * register: isp_handshake_ctrl_0: Nano handshake functions (0x0000014C)
- *
- *****************************************************************************/
- /*! Slice: mp_handshake_en: */
- /*! Enable mp handshake function for MI MP */
- #ifdef MRV_MI_MP_HANDSHK_EN
- #define MRV_MI_MP_HANDSHK_EN_DISABLE 0 /* HANDSHAKE disable */
- #define MRV_MI_MP_HANDSHK_EN_ENABLE 1 /* HANDSHAKE enable, active high */
- #endif
- /*! Slice: mp_handshk_storage_format */
- /*! Define how YCbCr picture data is stored in memory */
- /*! 00: Planar */
- /*! 01: Semi planar, for YCbCr4:2:x */
- /*! 10: Interleaved(combiled), for YCbCr 4:2:2 only or RAW format.*/
- /*! 11: not support */
- #ifdef MRV_MI_MP_HANDSHK_STORAGE_FORMAT
- #define MRV_MI_MP_HANDSHK_STORAGE_FORMAT_PLANAR 0 /* 00: Planar */
- #define MRV_MI_MP_HANDSHK_STORAGE_FORMAT_SEMIPLANAR 1 /* 01: Semi-Planar */
- #define MRV_MI_MP_HANDSHK_STORAGE_FORMAT_INTERLEAVED 2 /* 10: Interleaved */
- #endif
- /*! Slice: mp_handshk_data_format */
- /*! Defines the video format */
- /*! 00: RAW format */
- /*! 01: reserved */
- /*! 10: YUV 422 */
- /*! 11: YUV 420 */
- #ifdef MRV_MI_MP_HANDSHK_DATA_FORMAT
- #define MRV_MI_MP_HANDSHK_DATA_FORMAT_RAW 0 /* 00: raw format */
- #define MRV_MI_MP_HANDSHK_DATA_FORMAT_YUV422 2 /* 10: YUV422 */
- #define MRV_MI_MP_HANDSHK_DATA_FORMAT_YUV420 3 /* 11: YUV420 */
- #endif
- /*! Slice: mp_handshk_slice_size */
- /*! Defines the slice size to generate handshake signals, minus 1 is used */
- #ifdef MRV_MI_MP_HANDSHK_SLICE_SIZE
- #endif
- /*! Slice: mp_handshk_slice_buf_size */
- /*! Defines the circular buffer size in number of defined slices per buffer, minus 1 is used */
- #ifdef MRV_MI_MP_HANDSHK_SLICE_BUF_SIZE
- #endif
- /*! Slice: mp_handshk_ack_count */
- /*! Defines the acknowledage is not received in the defined cycles, it will generate handshake interrupt.*/
- #ifdef MRV_MI_MP_HANDSHK_ACK_COUNT
- #endif
- #endif
- #ifdef ISP_MI_ALIGN_NANO
- /* MI output Alignment */
- /*****************************************************************************/
- /**
- * register: mi_output_alignment: Nano MI output alignment (0x0000015C)
- *
- *****************************************************************************/
- /* Slice: mp_lsb_alignment:*/
- /*! msb/lsb align for raw 10 and raw 12 formats control */
- /*! 0: MSB aligned for RAW10 and RAW12 formats */
- /*! 1: LSB aligned for RAW10 and RAW12 formats */
- #ifdef MRV_MI_LSB_ALIGNMENT
- #define MRV_MI_LSB_ALIGNMENT_MSB 0 /* MSB aligned for raw 10 and raw 12 formats */
- #define MRV_MI_LSB_ALIGNMENT_LSB 1 /* LSB aligned for raw 10 and raw 12 formats */
- #endif
- #endif
- #ifdef ISP_MI_BYTESWAP
- /*! Slice mp_byte_swap:*/
- /*! swap bytes for ISP Nano */
- /*! bit 0 to swap bytes */
- /*! bit 1 to swap words */
- /*! bit 2 to swap dwords */
- /*! 3'b001: ABCDEFGH => BADCFEHG */
- /*! 3'b000: ABCDEFGH => ABCDEFGH */
- /*! 3'b010: ABCDEFGH => CDABGHEF */
- /*! 3'b011: ABCDEFGH => DCBAHGFE */
- /*! 3'b100: ABCDEFGH => EFGHABCD */
- /*! 3'b101: ABCDEFGH => FEHGBADC */
- /*! 3'b110: ABCDEFGH => GHEFCDAB */
- /*! 3'b111: ABCDEFGH => HGFEDCBA */
- #ifdef MRV_MI_MP_BYTE_SWAP
- #define MRV_MI_MP_BYTE_SWAP_NORMAL 0x0 /* normal mode */
- #define MRV_MI_MP_BYTE_SWAP_BYTE 0x1 /* bit 0 to swap bytes */
- #define MRV_MI_MP_BYTE_SWAP_WORD 0x2 /* bit 1 to swap words */
- #define MRV_MI_MP_BYTE_SWAP_DWORD 0x4 /* bit 2 to swap dwords */
- #endif
- #endif
- #ifdef ISP_MI_FIFO_DEPTH_NANO
- /*****************************************************************************/
- /**
- * register: mi_mp_output_fifo_size: Nano MI fifo control (0x00000160)
- *
- *****************************************************************************/
- /*! Slice output_fifo_depth:*/
- /*! Select output FIFO depth setting */
- /*! 00: FULL(2KBytes)*/
- /*! 01: HALF(1KBytes)*/
- /*! 10: 1/4(512Bytes)*/
- /*! 11: 1/8(256Bytes)*/
- #ifdef MRV_MI_OUTOUT_FIFO_DEPTH
- #define MRV_MI_OUTOUT_FIFO_DEPTH_FULL 0 /* FULL(2KBytes) */
- #define MRV_MI_OUTOUT_FIFO_DEPTH_HALF 1 /* HALF(1KBytes) */
- #define MRV_MI_OUTOUT_FIFO_DEPTH_1_4 2 /* 1/4(512Bytes) */
- #define MRV_MI_OUTOUT_FIFO_DEPTH_1_8 3 /* 1/8(256Bytes) */
- #endif
- #endif
- /*****************************************************************************/
- /* JPEG Encoder Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: jpe_gen_header: command to start stream header generation (0x0000)
- *
- *****************************************************************************/
- /* Slice: gen_header:*/
- /* "1" = Start command to generate stream header */
- /* auto reset to zero after one clock cycle */
- #ifdef MRV_JPE_GEN_HEADER
- #endif /* MRV_JPE_GEN_HEADER */
- /*****************************************************************************/
- /**
- * register: jpe_encode: Start command to start JFIF stream encoding (0x0004)
- *
- *****************************************************************************/
- /* Slice: encode:*/
- /* "1" = Start command to start JFIF stream encoding;*/
- /* auto reset to zero after one clock cycle.*/
- /* This bit is write-only: reading result is always zero!*/
- #ifdef MRV_JPE_ENCODE
- #endif /* MRV_JPE_ENCODE */
- /*****************************************************************************/
- /**
- * register: jpe_init: Automatic configuration update (INIT) (0x0008)
- *
- *****************************************************************************/
- /* Slice: JP_INIT:*/
- /* "1" = Immediate start of JPEG encoder.*/
- /**/
- /* This bit has to be set after "Encode" to start the JPEG encoder. The "Encode"*/
- /* command becomes active either with JP_INIT or with the input signal "CFG_UPD".*/
- /* auto reset to zero after one clock cycle !!!*/
- #ifdef MRV_JPE_JP_INIT
- #endif /* MRV_JPE_JP_INIT */
- /*****************************************************************************/
- /**
- * register: jpe_y_scale_en: Y value scaling control register (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: y_scale_en:*/
- /* Y scale flag */
- /* 1: scaling Y input from [16..235] to [0..255]*/
- /* 0: no Y input scaling */
- #ifdef MRV_JPE_Y_SCALE_EN
- #endif /* MRV_JPE_Y_SCALE_EN */
- /*****************************************************************************/
- /**
- * register: jpe_cbcr_scale_en: Cb/Cr value scaling control register (0x00000010)
- *
- *****************************************************************************/
- /* Slice: cbcr_scale_en:*/
- /* Cb/Cr scale flag */
- /* 1: scaling Cb/Cr input from [16..240] to [0..255]*/
- /* 0: no Cb/Cr input scaling */
- #ifdef MRV_JPE_CBCR_SCALE_EN
- #endif /* MRV_JPE_CBCR_SCALE_EN */
- /*****************************************************************************/
- /**
- * register: jpe_table_flush: header generation debug register (0x00000014)
- *
- *****************************************************************************/
- /* Slice: table_flush:*/
- /* header generation debug control flag */
- /* (controls transmission of last header bytes if the 64 bit output buffer */
- /* is not completely filled)*/
- /* 1: immediately transmit last header bytes */
- /* 0: wait for encoded image data to fill output buffer */
- #ifdef MRV_JPE_TABLE_FLUSH
- #endif /* MRV_JPE_TABLE_FLUSH */
- /*****************************************************************************/
- /**
- * register: jpe_enc_hsize: JPEG codec horizontal image size for encoding
- * (0x00000018)
- *
- *****************************************************************************/
- /* Slice: enc_hsize:*/
- /* JPEG codec horizontal image size for R2B and SGEN blocks */
- #ifdef MRV_JPE_ENC_HSIZE
- #endif /* MRV_JPE_ENC_HSIZE */
- /*****************************************************************************/
- /**
- * register: jpe_enc_vsize: JPEG codec vertical image size for encoding
- * (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: enc_vsize:*/
- /* JPEG codec vertical image size for R2B and SGEN blocks */
- #ifdef MRV_JPE_ENC_VSIZE
- #endif /* MRV_JPE_ENC_VSIZE */
- /*****************************************************************************/
- /**
- * register: jpe_pic_format: JPEG picture encoding format (0x00000020)
- *
- *****************************************************************************/
- /* Slice: enc_pic_format:*/
- /* "0:0:1" = 4:2:2 format */
- /* "1:x:x" = 4:0:0 format */
- #ifdef MRV_JPE_ENC_PIC_FORMAT
- #define MRV_JPE_ENC_PIC_FORMAT_422 1 /* "0:0:1" = 4:2:2 format */
- #define MRV_JPE_ENC_PIC_FORMAT_400 4 /* "1:x:x" = 4:0:0 format */
- #endif /* MRV_JPE_ENC_PIC_FORMAT */
- /*****************************************************************************/
- /**
- * register: jpe_restart_interval: restart marker insertion register (0x0024)
- *
- *****************************************************************************/
- /* Slice: restart_interval:*/
- /* No of MCU in reset interval via host */
- #ifdef MRV_JPE_RESTART_INTERVAL
- #endif /* MRV_JPE_RESTART_INTERVAL */
- /*****************************************************************************/
- /**
- * register: jpe_tq_y_select: Q- table selector 0, quant. table for Y
- * component (0x00000028)
- *
- *****************************************************************************/
- /* Slice: tq0_select:*/
- /* "00" = qtable 0 */
- /* "01" = qtable 1 */
- /* "10" = qtable 2 */
- /* "11" = qtable 3 */
- #ifdef MRV_JPE_TQ0_SELECT
- #endif /* MRV_JPE_TQ0_SELECT */
- /*****************************************************************************/
- /**
- * register: jpe_tq_u_select: Q- table selector 1, quant. table for U
- * component (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: tq1_select:*/
- /* "00" = qtable 0 */
- /* "01" = qtable 1 */
- /* "10" = qtable 2 */
- /* "11" = qtable 3 */
- #ifdef MRV_JPE_TQ1_SELECT
- #endif /* MRV_JPE_TQ1_SELECT */
- /*****************************************************************************/
- /**
- * register: jpe_tq_v_select: Q- table selector 2, quant. table for V
- * component (0x00000030)
- *
- *****************************************************************************/
- /* Slice: tq2_select:*/
- /* "00" = qtable 0 */
- /* "01" = qtable 1 */
- /* "10" = qtable 2 */
- /* "11" = qtable 3 */
- #ifdef MRV_JPE_TQ2_SELECT
- #endif /* MRV_JPE_TQ2_SELECT */
- #define MRV_JPE_TQ_SELECT_TAB3 3 /* "11": qtable 3 */
- #define MRV_JPE_TQ_SELECT_TAB2 2 /* "10": qtable 2 */
- #define MRV_JPE_TQ_SELECT_TAB1 1 /* "01": qtable 1 */
- #define MRV_JPE_TQ_SELECT_TAB0 0 /* "00": qtable 0 */
- /*****************************************************************************/
- /**
- * register: jpe_dc_table_select: Huffman table selector for DC values
- * (0x00000034)
- *
- *****************************************************************************/
- /* Slice: dc_table_select_v:*/
- /* "0" = dc table 0; color component 2 (V)*/
- /* "1" = dc table 1; color component 2 (V)*/
- #ifdef MRV_JPE_DC_TABLE_SELECT_V
- #endif /* MRV_JPE_DC_TABLE_SELECT_V */
- /* Slice: dc_table_select_u:*/
- /* "0" = dc table 0; color component 1 (U)*/
- /* "1" = dc table 1; color component 1 (U)*/
- #ifdef MRV_JPE_DC_TABLE_SELECT_U
- #endif /* MRV_JPE_DC_TABLE_SELECT_U */
- /* Slice: dc_table_select_y:*/
- /* "0" = dc table 0; color component 0 (Y)*/
- /* "1" = dc table 1; color component 0 (Y)*/
- #ifdef MRV_JPE_DC_TABLE_SELECT_Y
- #endif /* MRV_JPE_DC_TABLE_SELECT_Y */
- /*****************************************************************************/
- /**
- * register: jpe_ac_table_select: Huffman table selector for AC values
- * (0x00000038)
- *
- *****************************************************************************/
- /* Slice: ac_table_select_v:*/
- /* "0" = ac table 0; component 2 (V)*/
- /* "1" = ac table 1; component 2 (V)*/
- #ifdef MRV_JPE_AC_TABLE_SELECT_V
- #endif /* MRV_JPE_AC_TABLE_SELECT_V */
- /* Slice: ac_table_select_u:*/
- /* "0" = ac table 0; component 1 (U)*/
- /* "1" = ac table 1; component 1 (U)*/
- #ifdef MRV_JPE_AC_TABLE_SELECT_U
- #endif /* MRV_JPE_AC_TABLE_SELECT_U */
- /* Slice: ac_table_select_y:*/
- /* "0" = ac table 0; component 0 (Y)*/
- /* "1" = ac table 1; component 0 (Y)*/
- #ifdef MRV_JPE_AC_TABLE_SELECT_Y
- #endif /* MRV_JPE_AC_TABLE_SELECT_Y */
- /*****************************************************************************/
- /**
- * register: jpe_table_data: table programming register (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: table_wdata_h:*/
- /* Table data MSB */
- #ifdef MRV_JPE_TABLE_WDATA_H
- #endif /* MRV_JPE_TABLE_WDATA_H */
- /* Slice: table_wdata_l:*/
- /* Table data LSB */
- #ifdef MRV_JPE_TABLE_WDATA_L
- #endif /* MRV_JPE_TABLE_WDATA_L */
- /*****************************************************************************/
- /**
- * register: jpe_table_id: table programming select register (0x00000040)
- *
- *****************************************************************************/
- /* Slice: table_id:*/
- /* select table */
- /* "0000" : Q-table 0 */
- /* "0001" : Q-table 1 */
- /* "0010" : Q-table 2 */
- /* "0011" : Q-table 3 */
- /* "0100" : VLC DC-table 0 */
- /* "0101" : VLC AC-table 0 */
- /* "0110" : VLC DC-table 1 */
- /* "0111" : VLC AC-table 1 */
- /* "1xxx" : reserved for debug */
- #ifdef MRV_JPE_TABLE_ID
- #define MRV_JPE_TABLE_ID_QUANT0 0 /* "0000" : Q-table 0 */
- #define MRV_JPE_TABLE_ID_QUANT1 1 /* "0001" : Q-table 1 */
- #define MRV_JPE_TABLE_ID_QUANT2 2 /* "0010" : Q-table 2 */
- #define MRV_JPE_TABLE_ID_QUANT3 3 /* "0011" : Q-table 3 */
- #define MRV_JPE_TABLE_ID_VLC_DC0 4 /* "0100" : VLC DC-table 0 */
- #define MRV_JPE_TABLE_ID_VLC_AC0 5 /* "0101" : VLC AC-table 0 */
- #define MRV_JPE_TABLE_ID_VLC_DC1 6 /* "0110" : VLC DC-table 1 */
- #define MRV_JPE_TABLE_ID_VLC_AC1 7 /* "0111" : VLC AC-table 1 */
- #endif /* MRV_JPE_TABLE_ID */
- /*****************************************************************************/
- /**
- * register: jpe_tac0_len: Huffman AC table 0 length (0x0044)
- *
- *****************************************************************************/
- /* Slice: tac0_len:*/
- /* Huffman table length for ac0 table */
- #ifdef MRV_JPE_TAC0_LEN
- #endif /* MRV_JPE_TAC0_LEN */
- /*****************************************************************************/
- /**
- * register: jpe_tdc0_len: Huffman DC table 0 length (0x00000048)
- *
- *****************************************************************************/
- /* Slice: tdc0_len:*/
- /* Huffman table length for dc0 table */
- #ifdef MRV_JPE_TDC0_LEN
- #endif /* MRV_JPE_TDC0_LEN */
- /*****************************************************************************/
- /**
- * register: jpe_tac1_len: Huffman AC table 1 length (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: tac1_len:*/
- /* Huffman table length for ac1 table */
- #ifdef MRV_JPE_TAC1_LEN
- #endif /* MRV_JPE_TAC1_LEN */
- /*****************************************************************************/
- /**
- * register: jpe_tdc1_len: Huffman DC table 1 length (0x00000050)
- *
- *****************************************************************************/
- /* Slice: tdc1_len:*/
- /* Huffman table length for dc1 table */
- #ifdef MRV_JPE_TDC1_LEN
- #endif /* MRV_JPE_TDC1_LEN */
- /*****************************************************************************/
- /**
- * register: jpe_encoder_busy: encoder status flag (0x00000058)
- *
- *****************************************************************************/
- /* Slice: codec_busy:*/
- /* Bit 0 = "1" : JPEG codec in process */
- #ifdef MRV_JPE_CODEC_BUSY
- #endif /* MRV_JPE_CODEC_BUSY */
- /*****************************************************************************/
- /**
- * register: jpe_header_mode: header mode definition (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: header_mode:*/
- /* "00" = no header */
- /* "01" = reserved */
- /* "10" = JFIF 1.02 header */
- /* "11" = reserved */
- #ifdef MRV_JPE_HEADER_MODE
- #define MRV_JPE_HEADER_MODE_NONE 0 /* "00" = no APPn header */
- #define MRV_JPE_HEADER_MODE_JFIF 2 /* "10" = JFIF header */
- #endif /* MRV_JPE_HEADER_MODE */
- /*****************************************************************************/
- /**
- * register: jpe_encode_mode: encode mode (0x00000060)
- *
- *****************************************************************************/
- /* Slice: encode_mode:*/
- /* Always "1", because this is the encoder only edition */
- #ifdef MRV_JPE_ENCODE_MODE
- #endif /* MRV_JPE_ENCODE_MODE */
- /*****************************************************************************/
- /**
- * register: jpe_debug: debug information register (0x00000064)
- *
- *****************************************************************************/
- /* Slice: deb_bad_table_access:*/
- /* Debug signal only (set if an access to the TABLE_DATA or to the TABLE_ID */
- /* register is performed, when the JPEG_ENCODER is busy. In this case a default */
- /* PVCI Acknowledge is generated. Thus the configuration bus is not blocked)*/
- #ifdef MRV_JPE_DEB_BAD_TABLE_ACCESS
- #endif /* MRV_JPE_DEB_BAD_TABLE_ACCESS */
- /* Slice: deb_vlc_table_busy:*/
- /* Debug signal only (vlc access to huff-tables)*/
- #ifdef MRV_JPE_DEB_VLC_TABLE_BUSY
- #endif /* MRV_JPE_DEB_VLC_TABLE_BUSY */
- /* Slice: deb_r2b_memory_full:*/
- /* Debug signal only (line memory status of r2b)*/
- #ifdef MRV_JPE_DEB_R2B_MEMORY_FULL
- #endif /* MRV_JPE_DEB_R2B_MEMORY_FULL */
- /* Slice: deb_vlc_encode_busy:*/
- /* Debug signal only (vlc encode processing active)*/
- #ifdef MRV_JPE_DEB_VLC_ENCODE_BUSY
- #endif /* MRV_JPE_DEB_VLC_ENCODE_BUSY */
- /* Slice: deb_qiq_table_acc:*/
- /* Debug signal only (QIQ table access)*/
- #ifdef MRV_JPE_DEB_QIQ_TABLE_ACC
- #endif /* MRV_JPE_DEB_QIQ_TABLE_ACC */
- /*****************************************************************************/
- /**
- * register: jpe_error_imr: JPEG error interrupt mask register (0x00000068)
- * jpe_error_ris: JPEG error raw interrupt status register (0x0000006c)
- * jpe_error_mis: JPEG error masked interrupt status register (0x00000070)
- * jpe_error_icr: JPEG error interrupt set register (0x00000074)
- * jpe_error_isr: JPEG error interrupt clear register (0x00000078)
- *
- *****************************************************************************/
- /* Slice: vlc_table_err:*/
- /* "1" = interrupt is activated (masked in)*/
- #ifdef MRV_JPE_VLC_TABLE_ERR
- #endif /* MRV_JPE_VLC_TABLE_ERR */
- /* Slice: r2b_IMG_size_err:*/
- /* "1" = interrupt is activated (masked in)*/
- #ifdef MRV_JPE_R2B_IMG_SIZE_ERR
- #endif /* MRV_JPE_R2B_IMG_SIZE_ERR */
- /* Slice: DCT_ERR:*/
- /* "1" = interrupt is activated (masked in)*/
- #ifdef MRV_JPE_DCT_ERR
- #endif /* MRV_JPE_DCT_ERR */
- /* Slice: vlc_symbol_err:*/
- /* "1" = interrupt is activated (masked in)*/
- #ifdef MRV_JPE_VLC_SYMBOL_ERR
- #endif /* MRV_JPE_VLC_SYMBOL_ERR */
- /*****************************************************************************/
- /**
- * register: jpe_status_imr: JPEG status interrupt mask register (0x0000007c)
- * jpe_status_ris: JPEG status raw interrupt status register (0x00000080)
- * jpe_status_mis: JPEG status masked interrupt status register (0x00000084)
- * jpe_status_icr: JPEG status interrupt clear register (0x00000088)
- * jpe_status_isr: JPEG status interrupt set register (0x0000008c)
- *
- *****************************************************************************/
- /* Slice: gen_header_done:*/
- /* "1" = interrupt is activated (masked in)*/
- #ifdef MRV_JPE_GEN_HEADER_DONE
- #endif /* MRV_JPE_GEN_HEADER_DONE */
- /* Slice: encode_done:*/
- /* "1" = interrupt is activated (masked in)*/
- #ifdef MRV_JPE_ENCODE_DONE
- #endif /* MRV_JPE_ENCODE_DONE */
- /*****************************************************************************/
- /**
- * register: jpe_config: JPEG configuration register (0x00000090)
- *
- *****************************************************************************/
- /* Slice: speedview_en:*/
- /* 1: speed view enabled */
- /* 0: speed view disabled */
- #ifdef MRV_JPE_SPEEDVIEW_EN
- #define MRV_JPE_SPEEDVIEW_EN_DISABLE 0 /* "0": JPEG Stream Encoding according to JPEG standard */
- #define MRV_JPE_SPEEDVIEW_EN_ENABLE 1 /* "1": SpeedView JPEG Stream Encoding enabled */
- #endif /* MRV_JPE_SPEEDVIEW_EN */
- /* Slice: cont_mode:*/
- /* Encoder continous mode */
- /* "00": encoder stops at frame end (corresponds to former behavior)*/
- /* "01": encoder starts automatically to encode the next frame */
- /* "10": unused */
- /* "11": encoder first generates next header and then encodes automatically the next frame */
- /* These settings are checked after encoding one frame. They are not auto-reset by hardware.*/
- #ifdef MRV_JPE_CONT_MODE
- #define MRV_JPE_CONT_MODE_STOP 0 /* "00": encoder stops at frame end (corresponds to former behavior) */
- #define MRV_JPE_CONT_MODE_NEXT 1 /* "01": encoder starts automatically to encode the next frame */
- #define MRV_JPE_CONT_MODE_HEADER 3 /* "11": encoder first generates next header and then encodes automatically the next frame */
- #endif /* MRV_JPE_CONT_MODE */
- /*****************************************************************************/
- /* MIPI Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: mipi_ctrl: global control register (0x0000)
- *
- *****************************************************************************/
- /* Slice: S_ENABLE_CLK */
- /* 1: enable sensor clock lane (DEFAULT)*/
- /* 0: disable sensor clock lane */
- #ifdef MRV_MIPI_S_ENABLE_CLK
- #endif /* MRV_MIPI_S_ENABLE_CLK */
- /* Slice: ERR_SOT_SYNC_HS_SKIP:*/
- /* 1: data within the current transmission is skipped if ErrSotSyncHS is detected (default)*/
- /* 0: ErrSotSyncHS does not affect transmission */
- #ifdef MRV_MIPI_ERR_SOT_SYNC_HS_SKIP
- #endif /* MRV_MIPI_ERR_SOT_SYNC_HS_SKIP */
- /* Slice: ERR_SOT_HS_SKIP:*/
- /* 1: data within the current transmission is skipped if ErrSotHS is detected */
- /* 0: ErrSotHS does not affect transmission (default)*/
- #ifdef MRV_MIPI_ERR_SOT_HS_SKIP
- #endif /* MRV_MIPI_ERR_SOT_HS_SKIP */
- /* Slice: NUM_LANES:*/
- /* 00: Lane 1 is used;*/
- /* 01: Lanes 1 and 2 are used;*/
- /* 10: Lanes 1...3 are used;*/
- /* 11: Lanes 1...4 are used */
- #ifdef MRV_MIPI_NUM_LANES
- #define MRV_MIPI_NUM_LANES_1 0 /* 00: Lane 1 is used */
- #define MRV_MIPI_NUM_LANES_2 1 /* 01: Lanes 1 and 2 are used */
- #define MRV_MIPI_NUM_LANES_3 2 /* 10: Lanes 1...3 are used */
- #define MRV_MIPI_NUM_LANES_4 3 /* 11: Lanes 1...4 are used */
- #endif /* MRV_MIPI_NUM_LANES */
- /* Slice: SHUTDOWN_LANE:*/
- /* Shutdown Lane Module. Content of this register is directly connected to the output signal shutdown[n-1:0]*/
- #ifdef MRV_MIPI_SHUTDOWN_LANE
- #define MRV_MIPI_SHUTDOWN_LANE_1 1 /* 0001: shutdown lane 1 */
- #define MRV_MIPI_SHUTDOWN_LANE_2 2 /* 0010: shutdown lane 1 */
- #define MRV_MIPI_SHUTDOWN_LANE_3 4 /* 0100: shutdown lane 1 */
- #define MRV_MIPI_SHUTDOWN_LANE_4 8 /* 1000: shutdown lane 1 */
- #endif /* MRV_MIPI_SHUTDOWN_LANE */
- /* Slice: FLUSH_FIFO:*/
- /* writing '1' resets the write- and read pointers of the additional data fifo.*/
- #ifdef MRV_MIPI_FLUSH_FIFO
- #endif /* MRV_MIPI_FLUSH_FIFO */
- /* Slice: OUTPUT_ENA:*/
- /* 1: output to add data fifo and to output interface is enabled */
- #ifdef MRV_MIPI_OUTPUT_ENA
- #endif /* MRV_MIPI_OUTPUT_ENA */
- /*****************************************************************************/
- /**
- * register: mipi_status: global status register (0x0004)
- *
- *****************************************************************************/
- /* Slice: S_ULP_ACTIVE_NOT_CLK:*/
- /* sensor clock lane is in ULP state. This register is directly connected to the synchronized input signal "s_ulpsactivenotclk"*/
- #ifdef MRV_MIPI_S_ULP_ACTIVE_NOT_CLK
- #endif /* MRV_MIPI_S_ULP_ACTIVE_NOT_CLK */
- /* Slice: S_STOPSTATE_CLK:*/
- /* sensor clock lane is in stopstate. This register is directly connected to the synchronized input signal "s_stopstateclk"*/
- #ifdef MRV_MIPI_S_STOPSTATE_CLK
- #endif /* MRV_MIPI_S_STOPSTATE_CLK */
- /* Slice: STOPSTATE:*/
- /* Lane is in stopstate. This register is directly connected to the synchronized input signal stopstate[n-1:0]*/
- #ifdef MRV_MIPI_STOPSTATE
- #endif /* MRV_MIPI_STOPSTATE */
- /* Slice: ADD_DATA_AVAIL:*/
- /* 1: additional data fifo contains data */
- /* 0: additional data fifo is empty */
- #ifdef MRV_MIPI_ADD_DATA_AVAIL
- #endif /* MRV_MIPI_ADD_DATA_AVAIL */
- /*****************************************************************************/
- /**
- * register: mipi_imsc: Interrupt mask (0x00000008)
- *
- *****************************************************************************/
- /* Slice: IMSC_GEN_SHORT_PACK:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_GEN_SHORT_PACK
- #define MRV_MIPI_IMSC_GEN_SHORT_PACK_MASK 0
- #endif /* MRV_MIPI_IMSC_GEN_SHORT_PACK */
- /* Slice: IMSC_ADD_DATA_FILL_LEVEL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL
- #define MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL_MASK 0
- #endif /* MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL */
- /* Slice: IMSC_ADD_DATA_OVFLW:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_ADD_DATA_OVFLW
- #endif /* MRV_MIPI_IMSC_ADD_DATA_OVFLW */
- /* Slice: IMSC_FRAME_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_FRAME_END
- #define MRV_MIPI_IMSC_FRAME_END_MASK 0
- #endif /* MRV_MIPI_IMSC_ADD_DATA_OVFLW */
- /* Slice: IMSC_ERR_CS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_ERR_CS
- #define MRV_MIPI_IMSC_ERR_CS_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_CS */
- /* Slice: IMSC_ERR_ECC1:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_ERR_ECC1
- #define MRV_MIPI_IMSC_ERR_ECC1_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_ECC1 */
- /* Slice: IMSC_ERR_ECC2:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_ERR_ECC2
- #define MRV_MIPI_IMSC_ERR_ECC2_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_ECC2 */
- /* Slice: IMSC_ERR_PROTOCOL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_IMSC_ERR_PROTOCOL
- #define MRV_MIPI_IMSC_ERR_PROTOCOL_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_PROTOCOL */
- /* Slice: IMSC_ERR_CONTROL:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_IMSC_ERR_CONTROL
- #define MRV_MIPI_IMSC_ERR_CONTROL_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_CONTROL */
- /* Slice: IMSC_ERR_EOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_IMSC_ERR_EOT_SYNC
- #define MRV_MIPI_IMSC_ERR_EOT_SYNC_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_EOT_SYNC */
- /* Slice: IMSC_ERR_SOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_IMSC_ERR_SOT_SYNC
- #define MRV_MIPI_IMSC_ERR_SOT_SYNC_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_SOT_SYNC */
- /* Slice: IMSC_ERR_SOT:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_IMSC_ERR_SOT
- #define MRV_MIPI_IMSC_ERR_SOT_MASK 0
- #endif /* MRV_MIPI_IMSC_ERR_SOT */
- /* Slice: IMSC_SYNC_FIFO_OVFLW:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_IMSC_SYNC_FIFO_OVFLW
- #define MRV_MIPI_IMSC_SYNC_FIFO_OVFLW_MASK 0
- #endif /* MRV_MIPI_IMSC_SYNC_FIFO_OVFLW */
- /* combination of all interrupt lines */
- #define MRV_MIPI_IMSC_ALL_IRQS
- #define MRV_MIPI_IMSC_ALL_IRQS_MASK \
- (MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL_MASK \
- | MRV_MIPI_IMSC_ADD_DATA_OVFLW_MASK \
- | MRV_MIPI_IMSC_FRAME_END_MASK \
- | MRV_MIPI_IMSC_ERR_CS_MASK \
- | MRV_MIPI_IMSC_ERR_ECC1_MASK \
- | MRV_MIPI_IMSC_ERR_ECC2_MASK \
- | MRV_MIPI_IMSC_ERR_PROTOCOL_MASK \
- | MRV_MIPI_IMSC_ERR_CONTROL_MASK \
- | MRV_MIPI_IMSC_ERR_EOT_SYNC_MASK \
- | MRV_MIPI_IMSC_ERR_SOT_SYNC_MASK \
- | MRV_MIPI_IMSC_ERR_SOT_MASK \
- | MRV_MIPI_IMSC_SYNC_FIFO_OVFLW_MASK \
- )
- #define MRV_MIPI_IMSC_ALL_IRQS_SHIFT 0
- /*****************************************************************************/
- /**
- * register: mipi_ris: Raw interrupt status (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: RIS_GEN_SHORT_PACK:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_GEN_SHORT_PACK
- #define MRV_MIPI_RIS_GEN_SHORT_PACK_MASK 0
- #endif /* MRV_MIPI_RIS_GEN_SHORT_PACK */
- /* Slice: RIS_ADD_DATA_FILL_LEVEL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL
- #define MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL_MASK 0
- #endif /* MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL */
- /* Slice: RIS_ADD_DATA_OVFLW:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_ADD_DATA_OVFLW
- #endif /* MRV_MIPI_RIS_ADD_DATA_OVFLW */
- /* Slice: RIS_FRAME_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_FRAME_END
- #define MRV_MIPI_RIS_FRAME_END_MASK 0
- #endif /* MRV_MIPI_RIS_ADD_DATA_OVFLW */
- /* Slice: RIS_ERR_CS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_ERR_CS
- #define MRV_MIPI_RIS_ERR_CS_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_CS */
- /* Slice: RIS_ERR_ECC1:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_ERR_ECC1
- #define MRV_MIPI_RIS_ERR_ECC1_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_ECC1 */
- /* Slice: RIS_ERR_ECC2:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_ERR_ECC2
- #define MRV_MIPI_RIS_ERR_ECC2_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_ECC2 */
- /* Slice: RIS_ERR_PROTOCOL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_RIS_ERR_PROTOCOL
- #define MRV_MIPI_RIS_ERR_PROTOCOL_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_PROTOCOL */
- /* Slice: RIS_ERR_CONTROL:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_RIS_ERR_CONTROL
- #define MRV_MIPI_RIS_ERR_CONTROL_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_CONTROL */
- /* Slice: RIS_ERR_EOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_RIS_ERR_EOT_SYNC
- #define MRV_MIPI_RIS_ERR_EOT_SYNC_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_EOT_SYNC */
- /* Slice: RIS_ERR_SOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_RIS_ERR_SOT_SYNC
- #define MRV_MIPI_RIS_ERR_SOT_SYNC_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_SOT_SYNC */
- /* Slice: RIS_ERR_SOT:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_RIS_ERR_SOT
- #define MRV_MIPI_RIS_ERR_SOT_MASK 0
- #endif /* MRV_MIPI_RIS_ERR_SOT */
- /* Slice: RIS_SYNC_FIFO_OVFLW:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_RIS_SYNC_FIFO_OVFLW
- #define MRV_MIPI_RIS_SYNC_FIFO_OVFLW_MASK 0
- #endif /* MRV_MIPI_RIS_SYNC_FIFO_OVFLW */
- /* combination of all interrupt lines */
- #define MRV_MIPI_RIS_ALL_IRQS
- #define MRV_MIPI_RIS_ALL_IRQS_MASK \
- (MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL_MASK \
- | MRV_MIPI_RIS_ADD_DATA_OVFLW_MASK \
- | MRV_MIPI_RIS_FRAME_END_MASK \
- | MRV_MIPI_RIS_ERR_CS_MASK \
- | MRV_MIPI_RIS_ERR_ECC1_MASK \
- | MRV_MIPI_RIS_ERR_ECC2_MASK \
- | MRV_MIPI_RIS_ERR_PROTOCOL_MASK \
- | MRV_MIPI_RIS_ERR_CONTROL_MASK \
- | MRV_MIPI_RIS_ERR_EOT_SYNC_MASK \
- | MRV_MIPI_RIS_ERR_SOT_SYNC_MASK \
- | MRV_MIPI_RIS_ERR_SOT_MASK \
- | MRV_MIPI_RIS_SYNC_FIFO_OVFLW_MASK \
- )
- #define MRV_MIPI_RIS_ALL_IRQS_SHIFT 0
- /*****************************************************************************/
- /**
- * register: mipi_mis: Masked interrupt status (0x00000010)
- *
- *****************************************************************************/
- /* Slice: MIS_GEN_SHORT_PACK:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_GEN_SHORT_PACK
- #define MRV_MIPI_MIS_GEN_SHORT_PACK_MASK 0
- #endif /* MRV_MIPI_MIS_GEN_SHORT_PACK */
- /* Slice: MIS_ADD_DATA_FILL_LEVEL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL
- #define MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL_MASK 0
- #endif /* MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL */
- /* Slice: MIS_ADD_DATA_OVFLW:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_ADD_DATA_OVFLW
- #endif /* MRV_MIPI_MIS_ADD_DATA_OVFLW */
- /* Slice: MIS_FRAME_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_FRAME_END
- #define MRV_MIPI_MIS_FRAME_END_MASK 0
- #endif /* MRV_MIPI_MIS_ADD_DATA_OVFLW */
- /* Slice: MIS_ERR_CS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_ERR_CS
- #define MRV_MIPI_MIS_ERR_CS_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_CS */
- /* Slice: MIS_ERR_ECC1:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_ERR_ECC1
- #define MRV_MIPI_MIS_ERR_ECC1_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_ECC1 */
- /* Slice: MIS_ERR_ECC2:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_ERR_ECC2
- #define MRV_MIPI_MIS_ERR_ECC2_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_ECC2 */
- /* Slice: MIS_ERR_PROTOCOL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_MIS_ERR_PROTOCOL
- #define MRV_MIPI_MIS_ERR_PROTOCOL_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_PROTOCOL */
- /* Slice: MIS_ERR_CONTROL:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_MIS_ERR_CONTROL
- #define MRV_MIPI_MIS_ERR_CONTROL_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_CONTROL */
- /* Slice: MIS_ERR_EOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_MIS_ERR_EOT_SYNC
- #define MRV_MIPI_MIS_ERR_EOT_SYNC_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_EOT_SYNC */
- /* Slice: MIS_ERR_SOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_MIS_ERR_SOT_SYNC
- #define MRV_MIPI_MIS_ERR_SOT_SYNC_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_SOT_SYNC */
- /* Slice: MIS_ERR_SOT:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_MIS_ERR_SOT
- #define MRV_MIPI_MIS_ERR_SOT_MASK 0
- #endif /* MRV_MIPI_MIS_ERR_SOT */
- /* Slice: MIS_SYNC_FIFO_OVFLW:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_MIS_SYNC_FIFO_OVFLW
- #define MRV_MIPI_MIS_SYNC_FIFO_OVFLW_MASK 0
- #endif /* MRV_MIPI_MIS_SYNC_FIFO_OVFLW */
- /* combination of all interrupt lines */
- #define MRV_MIPI_MIS_ALL_IRQS
- #define MRV_MIPI_MIS_ALL_IRQS_MASK \
- (MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL_MASK \
- | MRV_MIPI_MIS_ADD_DATA_OVFLW_MASK \
- | MRV_MIPI_MIS_FRAME_END_MASK \
- | MRV_MIPI_MIS_ERR_CS_MASK \
- | MRV_MIPI_MIS_ERR_ECC1_MASK \
- | MRV_MIPI_MIS_ERR_ECC2_MASK \
- | MRV_MIPI_MIS_ERR_PROTOCOL_MASK \
- | MRV_MIPI_MIS_ERR_CONTROL_MASK \
- | MRV_MIPI_MIS_ERR_EOT_SYNC_MASK \
- | MRV_MIPI_MIS_ERR_SOT_SYNC_MASK \
- | MRV_MIPI_MIS_ERR_SOT_MASK \
- | MRV_MIPI_MIS_SYNC_FIFO_OVFLW_MASK \
- )
- #define MRV_MIPI_MIS_ALL_IRQS_SHIFT 0
- /*****************************************************************************/
- /**
- * register: mipi_icr: Interrupt clear register (0x00000014)
- *
- *****************************************************************************/
- /* Slice: ICR_GEN_SHORT_PACK:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_GEN_SHORT_PACK
- #define MRV_MIPI_ICR_GEN_SHORT_PACK_MASK 0
- #endif /* MRV_MIPI_ICR_GEN_SHORT_PACK */
- /* Slice: ICR_ADD_DATA_FILL_LEVEL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL
- #define MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL_MASK 0
- #endif /* MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL */
- /* Slice: ICR_ADD_DATA_OVFLW:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_ADD_DATA_OVFLW
- #endif /* MRV_MIPI_ICR_ADD_DATA_OVFLW */
- /* Slice: ICR_FRAME_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_FRAME_END
- #define MRV_MIPI_ICR_FRAME_END_MASK 0
- #endif /* MRV_MIPI_ICR_ADD_DATA_OVFLW */
- /* Slice: ICR_ERR_CS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_ERR_CS
- #define MRV_MIPI_ICR_ERR_CS_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_CS */
- /* Slice: ICR_ERR_ECC1:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_ERR_ECC1
- #define MRV_MIPI_ICR_ERR_ECC1_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_ECC1 */
- /* Slice: ICR_ERR_ECC2:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_ERR_ECC2
- #define MRV_MIPI_ICR_ERR_ECC2_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_ECC2 */
- /* Slice: ICR_ERR_PROTOCOL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ICR_ERR_PROTOCOL
- #define MRV_MIPI_ICR_ERR_PROTOCOL_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_PROTOCOL */
- /* Slice: ICR_ERR_CONTROL:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ICR_ERR_CONTROL
- #define MRV_MIPI_ICR_ERR_CONTROL_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_CONTROL */
- /* Slice: ICR_ERR_EOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ICR_ERR_EOT_SYNC
- #define MRV_MIPI_ICR_ERR_EOT_SYNC_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_EOT_SYNC */
- /* Slice: ICR_ERR_SOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ICR_ERR_SOT_SYNC
- #define MRV_MIPI_ICR_ERR_SOT_SYNC_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_SOT_SYNC */
- /* Slice: ICR_ERR_SOT:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ICR_ERR_SOT
- #define MRV_MIPI_ICR_ERR_SOT_MASK 0
- #endif /* MRV_MIPI_ICR_ERR_SOT */
- /* Slice: ICR_SYNC_FIFO_OVFLW:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ICR_SYNC_FIFO_OVFLW
- #define MRV_MIPI_ICR_SYNC_FIFO_OVFLW_MASK 0
- #endif /* MRV_MIPI_ICR_SYNC_FIFO_OVFLW */
- /* combination of all interrupt lines */
- #define MRV_MIPI_ICR_ALL_IRQS
- #define MRV_MIPI_ICR_ALL_IRQS_MASK \
- (MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL_MASK \
- | MRV_MIPI_ICR_ADD_DATA_OVFLW_MASK \
- | MRV_MIPI_ICR_FRAME_END_MASK \
- | MRV_MIPI_ICR_ERR_CS_MASK \
- | MRV_MIPI_ICR_ERR_ECC1_MASK \
- | MRV_MIPI_ICR_ERR_ECC2_MASK \
- | MRV_MIPI_ICR_ERR_PROTOCOL_MASK \
- | MRV_MIPI_ICR_ERR_CONTROL_MASK \
- | MRV_MIPI_ICR_ERR_EOT_SYNC_MASK \
- | MRV_MIPI_ICR_ERR_SOT_SYNC_MASK \
- | MRV_MIPI_ICR_ERR_SOT_MASK \
- | MRV_MIPI_ICR_SYNC_FIFO_OVFLW_MASK \
- )
- #define MRV_MIPI_ICR_ALL_IRQS_SHIFT 0
- /*****************************************************************************/
- /**
- * register: mipi_isr: Interrupt set register (0x00000018)
- *
- *****************************************************************************/
- /* Slice: ISR_GEN_SHORT_PACK:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_GEN_SHORT_PACK
- #define MRV_MIPI_ISR_GEN_SHORT_PACK_MASK 0
- #endif /* MRV_MIPI_ISR_GEN_SHORT_PACK */
- /* Slice: ISR_ADD_DATA_FILL_LEVEL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL
- #define MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL_MASK 0
- #endif /* MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL */
- /* Slice: ISR_ADD_DATA_OVFLW:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_ADD_DATA_OVFLW
- #endif /* MRV_MIPI_ISR_ADD_DATA_OVFLW */
- /* Slice: ISR_FRAME_END:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_FRAME_END
- #define MRV_MIPI_ISR_FRAME_END_MASK 0
- #endif /* MRV_MIPI_ISR_ADD_DATA_OVFLW */
- /* Slice: ISR_ERR_CS:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_ERR_CS
- #define MRV_MIPI_ISR_ERR_CS_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_CS */
- /* Slice: ISR_ERR_ECC1:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_ERR_ECC1
- #define MRV_MIPI_ISR_ERR_ECC1_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_ECC1 */
- /* Slice: ISR_ERR_ECC2:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_ERR_ECC2
- #define MRV_MIPI_ISR_ERR_ECC2_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_ECC2 */
- /* Slice: ISR_ERR_PROTOCOL:*/
- /* enable interrupt (1) or mask out (0)*/
- #ifndef MRV_MIPI_ISR_ERR_PROTOCOL
- #define MRV_MIPI_ISR_ERR_PROTOCOL_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_PROTOCOL */
- /* Slice: ISR_ERR_CONTROL:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ISR_ERR_CONTROL
- #define MRV_MIPI_ISR_ERR_CONTROL_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_CONTROL */
- /* Slice: ISR_ERR_EOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ISR_ERR_EOT_SYNC
- #define MRV_MIPI_ISR_ERR_EOT_SYNC_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_EOT_SYNC */
- /* Slice: ISR_ERR_SOT_SYNC:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ISR_ERR_SOT_SYNC
- #define MRV_MIPI_ISR_ERR_SOT_SYNC_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_SOT_SYNC */
- /* Slice: ISR_ERR_SOT:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ISR_ERR_SOT
- #define MRV_MIPI_ISR_ERR_SOT_MASK 0
- #endif /* MRV_MIPI_ISR_ERR_SOT */
- /* Slice: ISR_SYNC_FIFO_OVFLW:*/
- /* enable interrupt (1) or mask out (0) (one bit for each lane)*/
- #ifndef MRV_MIPI_ISR_SYNC_FIFO_OVFLW
- #define MRV_MIPI_ISR_SYNC_FIFO_OVFLW_MASK 0
- #endif /* MRV_MIPI_ISR_SYNC_FIFO_OVFLW */
- /* combination of all interrupt lines */
- #define MRV_MIPI_ISR_ALL_IRQS
- #define MRV_MIPI_ISR_ALL_IRQS_MASK \
- (MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL_MASK \
- | MRV_MIPI_ISR_ADD_DATA_OVFLW_MASK \
- | MRV_MIPI_ISR_FRAME_END_MASK \
- | MRV_MIPI_ISR_ERR_CS_MASK \
- | MRV_MIPI_ISR_ERR_ECC1_MASK \
- | MRV_MIPI_ISR_ERR_ECC2_MASK \
- | MRV_MIPI_ISR_ERR_PROTOCOL_MASK \
- | MRV_MIPI_ISR_ERR_CONTROL_MASK \
- | MRV_MIPI_ISR_ERR_EOT_SYNC_MASK \
- | MRV_MIPI_ISR_ERR_SOT_SYNC_MASK \
- | MRV_MIPI_ISR_ERR_SOT_MASK \
- | MRV_MIPI_ISR_SYNC_FIFO_OVFLW_MASK \
- )
- #define MRV_MIPI_ISR_ALL_IRQS_SHIFT 0
- /*****************************************************************************/
- /**
- * register: mipi_cur_data_id: Current Data Identifier (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: VIRTUAL_CHANNEL:*/
- /* virtual channel of currently received packet */
- #ifdef MRV_MIPI_VIRTUAL_CHANNEL
- #endif /* MRV_MIPI_VIRTUAL_CHANNEL */
- /* Slice: DATA_TYPE:*/
- /* data type of currently received packet */
- #ifdef MRV_MIPI_DATA_TYPE
- #endif /* MRV_MIPI_DATA_TYPE */
- /*****************************************************************************/
- /**
- * register: mipi_img_data_sel: Image Data Selector (0x00000020)
- *
- *****************************************************************************/
- /* Slice: VIRTUAL_CHANNEL_SEL:*/
- /* virtual channel selector for image data output */
- #ifdef MRV_MIPI_VIRTUAL_CHANNEL_SEL
- #endif /* MRV_MIPI_VIRTUAL_CHANNEL_SEL */
- /* Slice: DATA_TYPE_SEL:*/
- /* data type selector for image data output:*/
- /* 0x08...0x0F: generic short packets */
- /* 0x12: embedded 8-bit data */
- /* 0x18: YUV 420 8-bit */
- /* 0x19: YUV 420 10-bit */
- /* 0x1A: Legacy YUV 420 8-bit */
- /* 0x1C: YUV 420 8-bit (CSPS)*/
- /* 0x1D: YUV 420 10-bit (CSPS)*/
- /* 0x1E: YUV 422 8-bit */
- /* 0x1F: YUV 422 10-bit */
- /* 0x20: RGB 444 */
- /* 0x21: RGB 555 */
- /* 0x22: RGB 565 */
- /* 0x23: RGB 666 */
- /* 0x24: RGB 888 */
- /* 0x28: RAW 6 */
- /* 0x29: RAW 7 */
- /* 0x2A: RAW 8 */
- /* 0x2B: RAW 10 */
- /* 0x2C: RAW 12 */
- /* 0x30...0x37: User Defined Byte-based data */
- #ifdef MRV_MIPI_DATA_TYPE_SEL
- #define MRV_MIPI_DATA_TYPE_SEL_YUV420_8BIT 24 /* 0x18 YUV 420 8-bit */
- #define MRV_MIPI_DATA_TYPE_SEL_YUV420_10BIT 25 /* 0x19 YUV 420 10-bit */
- #define MRV_MIPI_DATA_TYPE_SEL_YUV420_8BIT_LEGACY 26 /* 0x1A Legacy YUV 420 8-bit */
- #define MRV_MIPI_DATA_TYPE_SEL_YUV420_8BIT_CSPS 28 /* 0x1C YUV 420 8-bit (CSPS) */
- #define MRV_MIPI_DATA_TYPE_SEL_YUV420_10BIT_CSPS 29 /* 0x1D YUV 420 10-bit (CSPS) */
- #define MRV_MIPI_DATA_TYPE_SEL_YUV422_8BIT 30 /* 0x1E YUV 422 8-bit */
- #define MRV_MIPI_DATA_TYPE_SEL_YUV422_10BIT 31 /* 0x1F YUV 422 10-bit */
- #define MRV_MIPI_DATA_TYPE_SEL_RGB444 32 /* 0x20 RGB 444 */
- #define MRV_MIPI_DATA_TYPE_SEL_RGB555 33 /* 0x21 RGB 555 */
- #define MRV_MIPI_DATA_TYPE_SEL_RGB565 34 /* 0x22 RGB 565 */
- #define MRV_MIPI_DATA_TYPE_SEL_RGB666 35 /* 0x23 RGB 666 */
- #define MRV_MIPI_DATA_TYPE_SEL_RGB888 36 /* 0x24 RGB 888 */
- #define MRV_MIPI_DATA_TYPE_SEL_RAW6 40 /* 0x28 RAW 6 */
- #define MRV_MIPI_DATA_TYPE_SEL_RAW7 41 /* 0x29 RAW 7 */
- #define MRV_MIPI_DATA_TYPE_SEL_RAW8 42 /* 0x2A RAW 8 */
- #define MRV_MIPI_DATA_TYPE_SEL_RAW10 43 /* 0x2B RAW 10 */
- #define MRV_MIPI_DATA_TYPE_SEL_RAW12 44 /* 0x2C RAW 12 */
- #define MRV_MIPI_DATA_TYPE_SEL_USER1 48 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER2 49 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER3 50 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER4 51 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER5 52 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER6 53 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER7 54 /* 0x30...0x37 User Defined Byte-based data */
- #define MRV_MIPI_DATA_TYPE_SEL_USER8 55 /* 0x30...0x37 User Defined Byte-based data */
- #endif /* MRV_MIPI_DATA_TYPE_SEL */
- /*****************************************************************************/
- /**
- * register: mipi_add_data_sel_1: Additional Data Selector 1 (0x00000024)
- *
- *****************************************************************************/
- /* Slice: ADD_DATA_VC_1:*/
- /* virtual channel selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_VC_1
- #endif /* MRV_MIPI_ADD_DATA_VC_1 */
- /* Slice: ADD_DATA_TYPE_1:*/
- /* data type selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_TYPE_1
- #endif /* MRV_MIPI_ADD_DATA_TYPE_1 */
- /*****************************************************************************/
- /**
- * register: mipi_add_data_sel_2: Additional Data Selector 2 (0x00000028)
- *
- *****************************************************************************/
- /* Slice: ADD_DATA_VC_2:*/
- /* virtual channel selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_VC_2
- #endif /* MRV_MIPI_ADD_DATA_VC_2 */
- /* Slice: ADD_DATA_TYPE_2:*/
- /* data type selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_TYPE_2
- #endif /* MRV_MIPI_ADD_DATA_TYPE_2 */
- /*****************************************************************************/
- /**
- * register: mipi_add_data_sel_3: Additional Data Selector 3 (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: ADD_DATA_VC_3:*/
- /* virtual channel selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_VC_3
- #endif /* MRV_MIPI_ADD_DATA_VC_3 */
- /* Slice: ADD_DATA_TYPE_3:*/
- /* data type selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_TYPE_3
- #endif /* MRV_MIPI_ADD_DATA_TYPE_3 */
- /*****************************************************************************/
- /**
- * register: mipi_add_data_sel_4: Additional Data Selector 4 (0x00000030)
- *
- *****************************************************************************/
- /* Slice: ADD_DATA_VC_4:*/
- /* virtual channel selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_VC_4
- #endif /* MRV_MIPI_ADD_DATA_VC_4 */
- /* Slice: ADD_DATA_TYPE_4:*/
- /* data type selector for additional data output */
- #ifdef MRV_MIPI_ADD_DATA_TYPE_4
- #endif /* MRV_MIPI_ADD_DATA_TYPE_4 */
- /*****************************************************************************/
- /**
- * register: mipi_add_data_fifo: Additional Data Fifo (0x00000034)
- *
- *****************************************************************************/
- /* Slice: ADD_DATA_FIFO:*/
- /* lowest 4 bytes in additional data fifo;*/
- /* reading increments fifo read pointer.*/
- /* First embedded data byte will be written to bits 7:0 of 32-bit data word, second data byte written to 15:8 etc.*/
- #ifdef MRV_MIPI_ADD_DATA_FIFO
- #endif /* MRV_MIPI_ADD_DATA_FIFO */
- /*****************************************************************************/
- /**
- * register: mipi_add_data_fill_level: additional data fifo fill level
- * (0x00000038)
- *
- *****************************************************************************/
- /* Slice: ADD_DATA_FILL_LEVEL:*/
- /* FIFO level in dwords for triggering the FILL_LEVEL interrupt,*/
- /* must be 32-bit aligned (bit 0 and bit 1 are hard wired to "00")*/
- #ifdef MRV_MIPI_ADD_DATA_FILL_LEVEL
- #endif /* MRV_MIPI_ADD_DATA_FILL_LEVEL */
- /*****************************************************************************/
- /**
- * register: mipi_compressed_mode: controls processing of compressed raw data
- * types (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: predictor_sel:*/
- /* predictor to be used:*/
- /* 0: predictor 1 */
- /* 1: predictor 2 */
- #ifdef MRV_MIPI_PREDICTOR_SEL
- #define MRV_MIPI_PREDICTOR_SEL_1 0 /* 0: predictor 1 */
- #define MRV_MIPI_PREDICTOR_SEL_2 1 /* 1: predictor 2 */
- #endif /* MRV_MIPI_PREDICTOR_SEL */
- /* Slice: MRV_MIPI_COMP_SCHEME:*/
- /* Compressed raw data types */
- /* 000: 12-8-12 */
- /* 001: 12-8-12 */
- /* 010: 12-8-12 */
- /* 011: 10-8-10 */
- /* 100: 10-7-10 */
- /* 101: 10-6-10 */
- #ifdef MRV_MIPI_COMP_SCHEME
- #define MRV_MIPI_COMP_SCHEME_12_8_12 0 /* 000: 12-8-12 */
- #define MRV_MIPI_COMP_SCHEME_12_7_12 1 /* 001: 12-8-12 */
- #define MRV_MIPI_COMP_SCHEME_12_6_12 2 /* 010: 12-8-12 */
- #define MRV_MIPI_COMP_SCHEME_10_8_10 3 /* 011: 10-8-10 */
- #define MRV_MIPI_COMP_SCHEME_10_7_10 4 /* 100: 10-7-10 */
- #define MRV_MIPI_COMP_SCHEME_10_6_10 5 /* 101: 10-6-10 */
- #endif /* MRV_MIPI_COMP_SCHEME */
- /* Slice: compress_en:*/
- /* 1: enable compressed mode processing */
- /* 0: disable compressed mode */
- #ifdef MRV_MIPI_COMPRESS_EN
- #endif /* MRV_MIPI_COMPRESS_EN */
- /*****************************************************************************/
- /* ISP Image Stabilization Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_is_ctrl: Image Stabilization Control Register (0x00000000)
- *
- *****************************************************************************/
- /* Slice: is_en:*/
- /* 1: image stabilization switched on */
- /* 0: image stabilization switched off */
- #ifdef MRV_IS_IS_EN
- #define MRV_IS_IS_EN_PROCESS 1
- #define MRV_IS_IS_EN_BYPASS 0
- #endif /* MRV_IS_IS_EN */
- /*****************************************************************************/
- /**
- * register: isp_is_recenter: Recenter register (0x00000004)
- *
- *****************************************************************************/
- /* Slice: is_recenter:*/
- /* 000: recenter feature switched off */
- /* 1..7: recentering by (cur_h/v_offs-H/V_OFFS)/2^RECENTER */
- #ifdef MRV_IS_IS_RECENTER
- #define MRV_IS_IS_RECENTER_MAX (MRV_IS_IS_RECENTER_MASK >> MRV_IS_IS_RECENTER_SHIFT)
- #endif /* MRV_IS_IS_RECENTER */
- /*****************************************************************************/
- /**
- * register: isp_is_h_offs: Horizontal offset of output window (0x00000008)
- *
- *****************************************************************************/
- /* Slice: is_h_offs:*/
- /* horizontal picture offset in pixel */
- #ifdef MRV_IS_IS_H_OFFS
- #define MRV_IS_IS_H_OFFS_MAX (MRV_IS_IS_H_OFFS_MASK >> MRV_IS_IS_H_OFFS_SHIFT)
- #endif /* MRV_IS_IS_H_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_is_v_offs: Vertical offset of output window (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: is_v_offs:*/
- /* vertical picture offset in lines */
- #ifdef MRV_IS_IS_V_OFFS
- #define MRV_IS_IS_V_OFFS_MAX (MRV_IS_IS_V_OFFS_MASK >> MRV_IS_IS_V_OFFS_SHIFT)
- #endif /* MRV_IS_IS_V_OFFS */
- /*****************************************************************************/
- /**
- * register: isp_is_h_size: Output horizontal picture size (0x00000010)
- *
- *****************************************************************************/
- /* Slice: is_h_size:*/
- /* horizontal picture size in pixel */
- /* if ISP_MODE is set to */
- /* 001-(ITU-R BT.656 YUV),*/
- /* 010-(ITU-R BT.601 YUV),*/
- /* 011-(ITU-R BT.601 Bayer RGB),*/
- /* 101-(ITU-R BT.656 Bayer RGB)*/
- /* only even numbers are accepted, because complete quadruples of YUYV(YCbYCr)*/
- /* are needed for the following modules. If an odd size is programmed the value */
- /* will be truncated to even size.*/
- #ifdef MRV_IS_IS_H_SIZE
- #define MRV_IS_IS_H_SIZE_MAX (MRV_IS_IS_H_SIZE_MASK >> MRV_IS_IS_H_SIZE_SHIFT)
- #endif /* MRV_IS_IS_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_is_v_size: Output vertical picture size (0x00000014)
- *
- *****************************************************************************/
- /* Slice: is_v_size:*/
- /* vertical picture size in lines */
- #ifdef MRV_IS_IS_V_SIZE
- #define MRV_IS_IS_V_SIZE_MAX (MRV_IS_IS_V_SIZE_MASK >> MRV_IS_IS_V_SIZE_SHIFT)
- #endif /* MRV_IS_IS_V_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_is_max_dx: Maximum Horizontal Displacement (0x00000018)
- *
- *****************************************************************************/
- /* Slice: is_max_dx:*/
- /* maximum allowed accumulated horizontal displacement in pixels */
- #ifdef MRV_IS_IS_MAX_DX
- #define MRV_IS_IS_MAX_DX_MAX (MRV_IS_IS_MAX_DX_MASK >> MRV_IS_IS_MAX_DX_SHIFT)
- #endif /* MRV_IS_IS_MAX_DX */
- /*****************************************************************************/
- /**
- * register: isp_is_max_dy: Maximum Vertical Displacement (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: is_max_dy:*/
- /* maximum allowed accumulated vertical displacement in lines */
- #ifdef MRV_IS_IS_MAX_DY
- #define MRV_IS_IS_MAX_DY_MAX (MRV_IS_IS_MAX_DY_MASK >> MRV_IS_IS_MAX_DY_SHIFT)
- #endif /* MRV_IS_IS_MAX_DY */
- /*****************************************************************************/
- /**
- * register: isp_is_displace: Camera displacement (0x00000020)
- *
- *****************************************************************************/
- /* Slice: dy:*/
- /* ISP_IS will compensate for vertical camera displacement of DY lines in the next frame */
- #ifdef MRV_IS_DY
- #define MRV_IS_DY_MAX 0x000007FF
- #define MRV_IS_DY_MIN (~MRV_IS_DY_MAX)
- #endif /* MRV_IS_DY */
- /* Slice: dx:*/
- /* ISP_IS will compensate for horizontal camera displacement of DX pixels in the next frame */
- #ifdef MRV_IS_DX
- #define MRV_IS_DX_MAX 0x000007FF
- #define MRV_IS_DX_MIN (~MRV_IS_DX_MAX)
- #endif /* MRV_IS_DX */
- /*****************************************************************************/
- /**
- * register: isp_is_h_offs_shd: current horizontal offset of output window
- * (shadow register) (0x00000024)
- *
- *****************************************************************************/
- /* Slice: is_h_offs_shd:*/
- /* current horizonatl picture offset in lines */
- #ifdef MRV_IS_IS_H_OFFS_SHD
- #endif /* MRV_IS_IS_H_OFFS_SHD */
- /*****************************************************************************/
- /**
- * register: isp_is_v_offs_shd: current vertical offset of output window
- * (shadow register) (0x00000028)
- *
- *****************************************************************************/
- /* Slice: is_v_offs_shd:*/
- /* current vertical picture offset in lines */
- #ifdef MRV_IS_IS_V_OFFS_SHD
- #endif /* MRV_IS_IS_V_OFFS_SHD */
- /*****************************************************************************/
- /**
- * register: isp_is_h_size_shd: current output horizontal picture size
- * (shadow register) (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: isp_h_size_shd:*/
- /* current horizontal picture size in pixel */
- #ifdef MRV_IS_ISP_H_SIZE_SHD
- #endif /* MRV_IS_ISP_H_SIZE_SHD */
- /*****************************************************************************/
- /**
- * register: isp_is_v_size_shd: current output vertical picture size
- * (shadow register) (0x00000030)
- *
- *****************************************************************************/
- /* Slice: isp_v_size_shd:*/
- /* vertical picture size in lines */
- #ifdef MRV_IS_ISP_V_SIZE_SHD
- #endif /* MRV_IS_ISP_V_SIZE_SHD */
- /*****************************************************************************/
- /* ISP Histogram Module Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_hist_prop: Histogram properties (0x00000000)
- *
- *****************************************************************************/
- /* Slice: stepsize:*/
- /* histogram predivider, process every (stepsize)th pixel, all other pixels are skipped */
- /* 0,1,2: not allowed */
- /* 3: process every third input pixel */
- /* 4: process every fourth input pixel */
- /* ...*/
- /* 7FH: process every 127th pixel */
- #ifdef MRV_HIST_STEPSIZE
- #define MRV_HIST_STEPSIZE_MIN 0x00000003
- #define MRV_HIST_STEPSIZE_MAX 0x0000007F
- #endif /* MRV_HIST_STEPSIZE */
- /* Slice: hist_mode:*/
- /* histogram mode, luminance is taken at ISP output before output formatter,*/
- /* RGB is taken at xtalk output */
- /**/
- /* 7, 6: must not be used */
- /* 5: Y (luminance) histogram */
- /* 4: B histogram */
- /* 3: G histogram */
- /* 2: R histogram */
- /* 1: RGB combined histogram */
- /* 0: disable, no measurements */
- #ifdef MRV_HIST_MODE
- #define MRV_HIST_MODE_MAX 5 /* because 6 and 7 are reserved */
- #define MRV_HIST_MODE_LUM 5 /* 5: Y (luminance) histogram */
- #define MRV_HIST_MODE_B 4 /* 4: B histogram */
- #define MRV_HIST_MODE_G 3 /* 3: G histogram */
- #define MRV_HIST_MODE_R 2 /* 2: R histogram */
- #define MRV_HIST_MODE_RGB 1 /* 1: RGB combined histogram */
- #define MRV_HIST_MODE_NONE 0 /* 0: disable, no measurements */
- #endif /* MRV_HIST_MODE */
- /*****************************************************************************/
- /**
- * register: isp_hist_h_offs: Histogram window horizontal offset for first
- * window of 25 sub-windows (0x00000004)
- *
- *****************************************************************************/
- /* Slice: hist_h_offset:*/
- /* Horizontal offset of first window in pixels.*/
- #ifdef MRV_HIST_H_OFFSET
- #endif /* MRV_HIST_H_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_hist_v_offs: Histogram window vertical offset for first
- * window of 25 sub-windows (0x00000008)
- *
- *****************************************************************************/
- /* Slice: hist_v_offset:*/
- /* Vertical offset of first window in pixels.*/
- #ifdef MRV_HIST_V_OFFSET
- #endif /* MRV_HIST_V_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_hist_h_size: Horizontal (sub-)window size (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: hist_h_size:*/
- /* Horizontal size in pixels of one sub-window, if histogram version 3 is implemented.*/
- #ifdef MRV_HIST_H_SIZE
- #endif /* MRV_HIST_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_hist_v_size: Vertical (sub-)window size (0x00000010)
- *
- *****************************************************************************/
- /* Slice: hist_v_size:*/
- /* Vertical size in lines of one sub-window, if histogram version 3 is implemented.*/
- #ifdef MRV_HIST_V_SIZE
- #endif /* MRV_HIST_V_SIZE */
- /*****************************************************************************/
- /**
- * register array: isp_hist_bin: histogram measurement result bin
- * (0x028 + n*0x4 (n=0..15))
- *
- *****************************************************************************/
- /* Slice: hist_bin_n:*/
- /* measured bin count as 16-bit unsigned integer value plus 4 bit fractional part */
- #ifdef MRV_HIST_BIN_N
- #define MRV_HIST_BIN_N_MAX (MRV_HIST_BIN_N_MASK >> MRV_HIST_BIN_N_SHIFT)
- #endif /* MRV_HIST_BIN_N */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_00to30: Weighting factor for sub-windows
- * (0x00000054)
- *
- *****************************************************************************/
- /* Slice: hist_weight_30:*/
- /* weighting factor for sub-window 30 */
- #ifdef MRV_HIST_WEIGHT_30
- #endif /* MRV_HIST_WEIGHT_30 */
- /* Slice: hist_weight_20:*/
- /* weighting factor for sub-window 20 */
- #ifdef MRV_HIST_WEIGHT_20
- #endif /* MRV_HIST_WEIGHT_20 */
- /* Slice: hist_weight_10:*/
- /* weighting factor for sub-window 10 */
- #ifdef MRV_HIST_WEIGHT_10
- #endif /* MRV_HIST_WEIGHT_10 */
- /* Slice: hist_weight_00:*/
- /* weighting factor for sub-window 00 */
- #ifdef MRV_HIST_WEIGHT_00
- #endif /* MRV_HIST_WEIGHT_00 */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_40to21: Weighting factor for sub-windows
- * (0x00000058)
- *
- *****************************************************************************/
- /* Slice: hist_weight_21:*/
- /* weighting factor for sub-window 21 */
- #ifdef MRV_HIST_WEIGHT_21
- #endif /* MRV_HIST_WEIGHT_21 */
- /* Slice: hist_weight_11:*/
- /* weighting factor for sub-window 11 */
- #ifdef MRV_HIST_WEIGHT_11
- #endif /* MRV_HIST_WEIGHT_11 */
- /* Slice: hist_weight_01:*/
- /* weighting factor for sub-window 01 */
- #ifdef MRV_HIST_WEIGHT_01
- #endif /* MRV_HIST_WEIGHT_01 */
- /* Slice: hist_weight_40:*/
- /* weighting factor for sub-window 40 */
- #ifdef MRV_HIST_WEIGHT_40
- #endif /* MRV_HIST_WEIGHT_40 */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_31to12: Weighting factor for sub-windows
- * (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: hist_weight_12:*/
- /* weighting factor for sub-window 12 */
- #ifdef MRV_HIST_WEIGHT_12
- #endif /* MRV_HIST_WEIGHT_12 */
- /* Slice: hist_weight_02:*/
- /* weighting factor for sub-window 02 */
- #ifdef MRV_HIST_WEIGHT_02
- #endif /* MRV_HIST_WEIGHT_02 */
- /* Slice: hist_weight_41:*/
- /* weighting factor for sub-window 41 */
- #ifdef MRV_HIST_WEIGHT_41
- #endif /* MRV_HIST_WEIGHT_41 */
- /* Slice: hist_weight_31:*/
- /* weighting factor for sub-window 31 */
- #ifdef MRV_HIST_WEIGHT_31
- #endif /* MRV_HIST_WEIGHT_31 */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_22to03: Weighting factor for sub-windows
- * (0x00000060)
- *
- *****************************************************************************/
- /* Slice: hist_weight_03:*/
- /* weighting factor for sub-window 03 */
- #ifdef MRV_HIST_WEIGHT_03
- #endif /* MRV_HIST_WEIGHT_03 */
- /* Slice: hist_weight_42:*/
- /* weighting factor for sub-window 42 */
- #ifdef MRV_HIST_WEIGHT_42
- #endif /* MRV_HIST_WEIGHT_42 */
- /* Slice: hist_weight_32:*/
- /* weighting factor for sub-window 32 */
- #ifdef MRV_HIST_WEIGHT_32
- #endif /* MRV_HIST_WEIGHT_32 */
- /* Slice: hist_weight_22:*/
- /* weighting factor for sub-window 22 */
- #ifdef MRV_HIST_WEIGHT_22
- #endif /* MRV_HIST_WEIGHT_22 */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_13to43: Weighting factor for sub-windows
- * (0x00000064)
- *
- *****************************************************************************/
- /* Slice: hist_weight_43:*/
- /* weighting factor for sub-window 43 */
- #ifdef MRV_HIST_WEIGHT_43
- #endif /* MRV_HIST_WEIGHT_43 */
- /* Slice: hist_weight_33:*/
- /* weighting factor for sub-window 33 */
- #ifdef MRV_HIST_WEIGHT_33
- #endif /* MRV_HIST_WEIGHT_33 */
- /* Slice: hist_weight_23:*/
- /* weighting factor for sub-window 23 */
- #ifdef MRV_HIST_WEIGHT_23
- #endif /* MRV_HIST_WEIGHT_23 */
- /* Slice: hist_weight_13:*/
- /* weighting factor for sub-window 13 */
- #ifdef MRV_HIST_WEIGHT_13
- #endif /* MRV_HIST_WEIGHT_13 */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_04to34: Weighting factor for sub-windows
- * (0x00000068)
- *
- *****************************************************************************/
- /* Slice: hist_weight_34:*/
- /* weighting factor for sub-window 34 */
- #ifdef MRV_HIST_WEIGHT_34
- #endif /* MRV_HIST_WEIGHT_34 */
- /* Slice: hist_weight_24:*/
- /* weighting factor for sub-window 24 */
- #ifdef MRV_HIST_WEIGHT_24
- #endif /* MRV_HIST_WEIGHT_24 */
- /* Slice: hist_weight_14:*/
- /* weighting factor for sub-window 14 */
- #ifdef MRV_HIST_WEIGHT_14
- #endif /* MRV_HIST_WEIGHT_14 */
- /* Slice: hist_weight_04:*/
- /* weighting factor for sub-window 04 */
- #ifdef MRV_HIST_WEIGHT_04
- #endif /* MRV_HIST_WEIGHT_04 */
- /*****************************************************************************/
- /**
- * register: isp_hist_weight_44: Weighting factor for sub-windows (0x0000006c)
- *
- *****************************************************************************/
- /* Slice: hist_weight_44:*/
- /* weighting factor for sub-window 44 */
- #ifdef MRV_HIST_WEIGHT_44
- #endif /* MRV_HIST_WEIGHT_44 */
- #define MRV_HIST_WEIGHT_MAX 0x10
- /*****************************************************************************/
- /* ISP Filter Module Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_filt_mode: mode control register for the filter block
- * (0x00000000)
- *
- *****************************************************************************/
- /* Slice: stage1_select:*/
- /* Green filter stage 1 select (range 0x0...0x8)*/
- /* 0x0 maximum blurring */
- /* 0x4 Default */
- /* 0x7 minimum blurring */
- /* 0x8 filter stage1 bypass */
- /* For a detailed description refer to chapter "ISP Filter Programming" of user manual */
- #ifdef MRV_FILT_STAGE1_SELECT
- #define MRV_FILT_STAGE1_SELECT_MAX_BLUR 0U /* 0x0 maximum blurring */
- #define MRV_FILT_STAGE1_SELECT_DEFAULT 4U /* 0x4 Default */
- #define MRV_FILT_STAGE1_SELECT_MIN_BLUR 7U /* 0x7 minimum blurring */
- #define MRV_FILT_STAGE1_SELECT_BYPASS 8U /* 0x8 filter stage1 bypass */
- #endif /* MRV_FILT_STAGE1_SELECT */
- /* Slice: filt_chr_h_mode:*/
- /* Chroma filter horizontal mode */
- /* 00 horizontal chroma filter bypass */
- /* 01 horizontal chroma filter 1 static mask = [10 12 10]*/
- /* 10 horizontal chroma filter 2 (dynamic blur1)*/
- /* 11 horizontal chroma filter 3 (dynamic blur2) Default */
- #ifdef MRV_FILT_FILT_CHR_H_MODE
- #define MRV_FILT_FILT_CHR_H_MODE_BYPASS 0U /* 00 horizontal chroma filter bypass */
- #define MRV_FILT_FILT_CHR_H_MODE_STATIC 1U /* 01 horizontal chroma filter 1 static mask = [10 12 10] */
- #define MRV_FILT_FILT_CHR_H_MODE_DYN_1 2U /* 10 horizontal chroma filter 2 (dynamic blur1) */
- #define MRV_FILT_FILT_CHR_H_MODE_DYN_2 3U /* 11 horizontal chroma filter 3 (dynamic blur2) Default */
- #endif /* MRV_FILT_FILT_CHR_H_MODE */
- /* Slice: filt_chr_v_mode:*/
- /* Chroma filter vertical mode */
- /* 00 vertical chroma filter bypass */
- /* 01 vertical chroma filter 1 static [8 16 8]*/
- /* 10 vertical chroma filter 2 static [10 12 10]*/
- /* 11 vertical chroma filter 3 static [12 8 12] Default */
- #ifdef MRV_FILT_FILT_CHR_V_MODE
- #define MRV_FILT_FILT_CHR_V_MODE_BYPASS 0U /* 00 vertical chroma filter bypass */
- #define MRV_FILT_FILT_CHR_V_MODE_STATIC8 1U /* 01 vertical chroma filter 1 static [8 16 8] */
- #define MRV_FILT_FILT_CHR_V_MODE_STATIC10 2U /* 10 vertical chroma filter 2 static [10 12 10] */
- #define MRV_FILT_FILT_CHR_V_MODE_STATIC12 3U /* 11 vertical chroma filter 3 static [12 8 12] Default */
- #endif /* MRV_FILT_FILT_CHR_V_MODE */
- /* Slice: filt_mode:*/
- /* 0 green filter static mode (active filter factor = FILT_FAC_MID)*/
- /* 1 dynamic noise reduction/sharpen Default */
- #ifdef MRV_FILT_FILT_MODE
- #define MRV_FILT_FILT_MODE_STATIC 0U /* 0 green filter static mode (active filter factor = FILT_FAC_MID) */
- #define MRV_FILT_FILT_MODE_DYNAMIC 1U /* 1 dynamic noise reduction/sharpen Default */
- #endif /* MRV_FILT_FILT_MODE */
- /* Slice: filt_enable:*/
- /* 1 enable filter */
- /* 0 bypass filter Default */
- #ifdef MRV_FILT_FILT_ENABLE
- #define MRV_FILT_FILT_ENABLE_PROCESS 1U
- #define MRV_FILT_FILT_ENABLE_BYPASS 0U
- #endif /* MRV_FILT_FILT_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_filt_thresh_bl0: Blurring threshold 0 (0x00000028)
- *
- *****************************************************************************/
- /* Slice: filt_thresh_bl0:*/
- /* If filt_thresh_bl1 < sum_grad < filt_thresh_bl0 then filt_fac_bl0 is selected */
- #ifdef MRV_FILT_FILT_THRESH_BL0
- #endif /* MRV_FILT_FILT_THRESH_BL0 */
- /*****************************************************************************/
- /**
- * register: isp_filt_thresh_bl1: Blurring threshold 1 (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: filt_thresh_bl1:*/
- /* If sum_grad < filt_thresh_bl1 then filt_fac_bl1 is selected */
- #ifdef MRV_FILT_FILT_THRESH_BL1
- #endif /* MRV_FILT_FILT_THRESH_BL1 */
- /*****************************************************************************/
- /**
- * register: isp_filt_thresh_sh0: Sharpening threshold 0 (0x00000030)
- *
- *****************************************************************************/
- /* Slice: filt_thresh_sh0:*/
- /* If filt_thresh_sh0 < sum_grad < filt_thresh_sh1 then filt_thresh_sh0 is selected */
- #ifdef MRV_FILT_FILT_THRESH_SH0
- #endif /* MRV_FILT_FILT_THRESH_SH0 */
- /*****************************************************************************/
- /**
- * register: isp_filt_thresh_sh1: Sharpening threshold 1 (0x00000034)
- *
- *****************************************************************************/
- /* Slice: filt_thresh_sh1:*/
- /* If filt_thresh_sh1 < sum_grad then filt_thresh_sh1 is selected */
- #ifdef MRV_FILT_FILT_THRESH_SH1
- #endif /* MRV_FILT_FILT_THRESH_SH1 */
- /*****************************************************************************/
- /**
- * register: isp_filt_lum_weight: Parameters for luminance weight function
- * (0x00000038)
- *
- *****************************************************************************/
- /* Slice: lum_weight_gain:*/
- /* Gain select of luminance weight function */
- #ifdef MRV_FILT_LUM_WEIGHT_GAIN
- #endif /* MRV_FILT_LUM_WEIGHT_GAIN */
- /* Slice: lum_weight_kink:*/
- /* Kink position of luminance weight function */
- #ifdef MRV_FILT_LUM_WEIGHT_KINK
- #endif /* MRV_FILT_LUM_WEIGHT_KINK */
- /* Slice: lum_weight_min:*/
- /* Minimum value of luminance weight function */
- #ifdef MRV_FILT_LUM_WEIGHT_MIN
- #endif /* MRV_FILT_LUM_WEIGHT_MIN */
- /*****************************************************************************/
- /**
- * register: isp_filt_fac_sh1: filter factor sharp1 (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: filt_fac_sh1:*/
- /* Filter factor for sharp1 level */
- #ifdef MRV_FILT_FILT_FAC_SH1
- #endif /* MRV_FILT_FILT_FAC_SH1 */
- /*****************************************************************************/
- /**
- * register: isp_filt_fac_sh0: filter factor sharp0 (0x00000040)
- *
- *****************************************************************************/
- /* Slice: filt_fac_sh0:*/
- /* Filter factor for sharp0 level */
- #ifdef MRV_FILT_FILT_FAC_SH0
- #endif /* MRV_FILT_FILT_FAC_SH0 */
- /*****************************************************************************/
- /**
- * register: isp_filt_fac_mid: filter factor middle (0x00000044)
- *
- *****************************************************************************/
- /* Slice: filt_fac_mid:*/
- /* Filter factor for mid level and for static filter mode */
- #ifdef MRV_FILT_FILT_FAC_MID
- #endif /* MRV_FILT_FILT_FAC_MID */
- /*****************************************************************************/
- /**
- * register: isp_filt_fac_bl0: Parameter for blur 0 filter (0x00000048)
- *
- *****************************************************************************/
- /* Slice: filt_fac_bl0:*/
- /* Filter factor for blur 0 level */
- #ifdef MRV_FILT_FILT_FAC_BL0
- #endif /* MRV_FILT_FILT_FAC_BL0 */
- /*****************************************************************************/
- /**
- * register: isp_filt_fac_bl1: Parameter for blur 1 filter (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: filt_fac_bl1:*/
- /* Filter factor for blur 1 level (max blur)*/
- #ifdef MRV_FILT_FILT_FAC_BL1
- #endif /* MRV_FILT_FILT_FAC_BL1 */
- /*****************************************************************************/
- /* ISP Auto Focus Measurement Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_afm_ctrl: This is the control register for AF measurement
- * unit (0x00000000)
- *
- *****************************************************************************/
- /* Slice: afm_en:*/
- /* AF measurement enable */
- /* 0: AF measurement is disabled */
- /* 1: AF measurement is enabled */
- /* Writing a 1 to this register starts a new measurement and resets the afm_fin (measurement finished) interrupt to 0.*/
- /* As long as the afm_en is 1, the AFM unit calculates new sharpness values for each frame.*/
- #ifdef MRV_AFM_AFM_EN
- #define MRV_AFM_AFM_EN_ENABLE 1 /* 1: enable AF measurment */
- #define MRV_AFM_AFM_EN_DISABLE 0 /* 0: processing is deactivated, bypass mode is selected */
- #endif /* MRV_AFM_AFM_EN */
- /*****************************************************************************/
- /**
- * register: isp_afm_lt_a: Top Left corner of measure window A (0x00000004)
- *
- *****************************************************************************/
- /* Slice: a_h_l:*/
- /* first pixel of window A (horizontal left row), value must be greater or equal 5 */
- #ifdef MRV_AFM_A_H_L
- #define MRV_AFM_A_H_L_MIN (5U)
- #define MRV_AFM_A_H_L_MAX (MRV_AFM_A_H_L_MASK >> MRV_AFM_A_H_L_SHIFT)
- #endif /* MRV_AFM_A_H_L */
- /* Slice: a_v_t:*/
- /* first line of window A (vertical top line), value must be greater or equal 2 */
- #ifdef MRV_AFM_A_V_T
- #define MRV_AFM_A_V_T_MIN (2U)
- #define MRV_AFM_A_V_T_MAX (MRV_AFM_A_V_T_MASK >> MRV_AFM_A_V_T_SHIFT)
- #endif /* MRV_AFM_A_V_T */
- /*****************************************************************************/
- /**
- * register: isp_afm_rb_a: Bottom right corner of measure window A (0x00000008)
- *
- *****************************************************************************/
- /* Slice: a_h_r:*/
- /* last pixel of window A (horizontal right row)*/
- #ifdef MRV_AFM_A_H_R
- #define MRV_AFM_A_H_R_MIN (5U)
- #define MRV_AFM_A_H_R_MAX (MRV_AFM_A_H_R_MASK >> MRV_AFM_A_H_R_SHIFT)
- #endif /* MRV_AFM_A_H_R */
- /* Slice: a_v_b:*/
- /* last line of window A (vertical bottom line), value must be lower than */
- /* (number of lines -2)*/
- #ifdef MRV_AFM_A_V_B
- #define MRV_AFM_A_V_B_MIN (2U)
- #define MRV_AFM_A_V_B_MAX (MRV_AFM_A_V_B_MASK >> MRV_AFM_A_V_B_SHIFT)
- #endif /* MRV_AFM_A_V_B */
- /*****************************************************************************/
- /**
- * register: isp_afm_lt_b: Top left corner of measure window B (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: b_h_l:*/
- /* first pixel of window B (horizontal left row), value must be greater or equal 5 */
- #ifdef MRV_AFM_B_H_L
- #define MRV_AFM_B_H_L_MIN (5U)
- #define MRV_AFM_B_H_L_MAX (MRV_AFM_B_H_L_MASK >> MRV_AFM_B_H_L_SHIFT)
- #endif /* MRV_AFM_B_H_L */
- /* Slice: b_v_t:*/
- /* first line of window B (vertical top line), value must be greater or equal 2 */
- #ifdef MRV_AFM_B_V_T
- #define MRV_AFM_B_V_T_MIN (2U)
- #define MRV_AFM_B_V_T_MAX (MRV_AFM_B_V_T_MASK >> MRV_AFM_B_V_T_SHIFT)
- #endif /* MRV_AFM_B_V_T */
- /*****************************************************************************/
- /**
- * register: isp_afm_rb_b: Bottom right corner of measure window B (0x00000010)
- *
- *****************************************************************************/
- /* Slice: b_h_r:*/
- /* last pixel of window B (horizontal right row)*/
- #ifdef MRV_AFM_B_H_R
- #define MRV_AFM_B_H_R_MIN (5U)
- #define MRV_AFM_B_H_R_MAX (MRV_AFM_B_H_R_MASK >> MRV_AFM_B_H_R_SHIFT)
- #endif /* MRV_AFM_B_H_R */
- /* Slice: b_v_b:*/
- /* last line of window B (vertical bottom line), value must be lower than */
- /* (number of lines -2)*/
- #ifdef MRV_AFM_B_V_B
- #define MRV_AFM_B_V_B_MIN (2U)
- #define MRV_AFM_B_V_B_MAX (MRV_AFM_B_V_B_MASK >> MRV_AFM_B_V_B_SHIFT)
- #endif /* MRV_AFM_B_V_B */
- /*****************************************************************************/
- /**
- * register: isp_afm_lt_c: Top left corner of measure window C (0x00000014)
- *
- *****************************************************************************/
- /* Slice: c_h_l:*/
- /* first pixel of window C (horizontal left row), value must be greater or equal 5 */
- #ifdef MRV_AFM_C_H_L
- #define MRV_AFM_C_H_L_MIN (5U)
- #define MRV_AFM_C_H_L_MAX (MRV_AFM_C_H_L_MASK >> MRV_AFM_C_H_L_SHIFT)
- #endif /* MRV_AFM_C_H_L */
- /* Slice: c_v_t:*/
- /* first line of window C (vertical top line), value must be greater or equal 2 */
- #ifdef MRV_AFM_C_V_T
- #define MRV_AFM_C_V_T_MIN (2U)
- #define MRV_AFM_C_V_T_MAX (MRV_AFM_C_V_T_MASK >> MRV_AFM_C_V_T_SHIFT)
- #endif /* MRV_AFM_C_V_T */
- /*****************************************************************************/
- /**
- * register: isp_afm_rb_c: Bottom right corner of measure window C (0x00000018)
- *
- *****************************************************************************/
- /* Slice: c_h_r:*/
- /* last pixel of window C (horizontal right row)*/
- #ifdef MRV_AFM_C_H_R
- #define MRV_AFM_C_H_R_MIN (5U)
- #define MRV_AFM_C_H_R_MAX (MRV_AFM_C_H_R_MASK >> MRV_AFM_C_H_R_SHIFT)
- #endif /* MRV_AFM_C_H_R */
- /* Slice: c_v_b:*/
- /* last line of window C (vertical bottom line), value must be lower than */
- /* (number of lines -2)*/
- #ifdef MRV_AFM_C_V_B
- #define MRV_AFM_C_V_B_MIN (2U)
- #define MRV_AFM_C_V_B_MAX (MRV_AFM_C_V_B_MASK >> MRV_AFM_C_V_B_SHIFT)
- #endif /* MRV_AFM_C_V_B */
- /*****************************************************************************/
- /**
- * register: isp_afm_thres: Threshold register (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: afm_thres:*/
- /* AF measurement threshold */
- /* This register defines a threshold which can be used for minimizing the */
- /* influence of noise in the measurement result.*/
- #ifdef MRV_AFM_AFM_THRES
- #endif /* MRV_AFM_AFM_THRES */
- /*****************************************************************************/
- /**
- * register: isp_afm_var_shift: Variable shift register (0x00000020)
- *
- *****************************************************************************/
- /* Slice: lum_var_shift:*/
- /* variable shift for luminance summation */
- /* The lum_var_shift defines the number of bits for the shift operation of the */
- /* value of the current pixel before summation. The shift operation is used to */
- /* avoid a luminance sum overflow.*/
- #ifdef MRV_AFM_LUM_VAR_SHIFT
- #endif /* MRV_AFM_LUM_VAR_SHIFT */
- /* Slice: afm_var_shift:*/
- /* variable shift for AF measurement */
- /* The afm_var_shift defines the number of bits for the shift operation at the */
- /* end of the calculation chain. The shift operation is used to avoid an AF */
- /* measurement sum overflow.*/
- #ifdef MRV_AFM_AFM_VAR_SHIFT
- #endif /* MRV_AFM_AFM_VAR_SHIFT */
- /*****************************************************************************/
- /**
- * register: isp_afm_sum_a: Sharpness Value Status Register of Window A (0x0024)
- *
- *****************************************************************************/
- /* Slice: afm_sum_a:*/
- /* sharpness value of window A */
- #ifdef MRV_AFM_AFM_SUM_A
- #endif /* MRV_AFM_AFM_SUM_A */
- /*****************************************************************************/
- /**
- * register: isp_afm_sum_b: Sharpness Value Status Register of Window B (0x0028)
- *
- *****************************************************************************/
- /* Slice: afm_sum_b:*/
- /* sharpness value of window B */
- #ifdef MRV_AFM_AFM_SUM_B
- #endif /* MRV_AFM_AFM_SUM_B */
- /*****************************************************************************/
- /**
- * register: isp_afm_sum_c: Sharpness Value Status Register of Window C (0x002c)
- *
- *****************************************************************************/
- /* Slice: afm_sum_c:*/
- /* sharpness value of window C */
- #ifdef MRV_AFM_AFM_SUM_C
- #endif /* MRV_AFM_AFM_SUM_C */
- /*****************************************************************************/
- /**
- * register: isp_afm_lum_a: Luminance Value Status Register of Window A (0x0030)
- *
- *****************************************************************************/
- /* Slice: afm_lum_a:*/
- /* luminance value of window A */
- #ifdef MRV_AFM_AFM_LUM_A
- #endif /* MRV_AFM_AFM_LUM_A */
- /*****************************************************************************/
- /**
- * register: isp_afm_lum_b: Luminance Value Status Register of Window B (0x0034)
- *
- *****************************************************************************/
- /* Slice: afm_lum_b:*/
- /* luminance value of window B */
- #ifdef MRV_AFM_AFM_LUM_B
- #endif /* MRV_AFM_AFM_LUM_B */
- /*****************************************************************************/
- /**
- * register: isp_afm_lum_c: Luminance Value Status Register of Window C (0x0038)
- *
- *****************************************************************************/
- /* Slice: afm_lum_c:*/
- /* luminance value of window C */
- #ifdef MRV_AFM_AFM_LUM_C
- #endif /* MRV_AFM_AFM_LUM_C */
- /*****************************************************************************/
- /* ISP Lens Shade Correction Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_lsc_ctrl: Lens shade control (0x00000000)
- *
- *****************************************************************************/
- /* Slice: lsc_en:*/
- /* 0: activation request for lens shading correction */
- /* 1: deactivation reqeust for lens shading correction */
- /* Activation/Deactivation is object of a shadowing mechnism. The current */
- /* status is visible at ISP_LSC_STATUS::lsc_enable_status */
- #ifdef MRV_LSC_LSC_EN
- #define MRV_LSC_LSC_EN_ENABLE 1U
- #define MRV_LSC_LSC_EN_DISABLE 0U
- #endif /* MRV_LSC_LSC_EN */
- /*****************************************************************************/
- /**
- * register: isp_lsc_r_table_addr: Table RAM Address for red component (0x00000004)
- *
- *****************************************************************************/
- /* Slice: r_ram_addr:*/
- /* table address in RAM for samples of the R color component.*/
- /* Will be automatically incremented by each read or write access to the table.*/
- /* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
- /* (if available).*/
- #ifdef MRV_LSC_R_RAM_ADDR
- #define MRV_LSC_R_RAM_ADDR_MIN_BANK0 (0x00000000U)
- #define MRV_LSC_R_RAM_ADDR_MAX_BANK0 (0x00000098U)
- #define MRV_LSC_R_RAM_ADDR_MIN_BANK1 (0x00000099U)
- #define MRV_LSC_R_RAM_ADDR_MAX_BANK1 (0x00000132U)
- #endif /* MRV_LSC_R_RAM_ADDR */
- /*****************************************************************************/
- /**
- * register: isp_lsc_gr_table_addr: Table RAM Address for green (red) component
- * (0x00000008)
- *
- *****************************************************************************/
- /* Slice: gr_ram_addr:*/
- /* table address in RAM for samples of the G_R color component.*/
- /* Will be automatically incremented by each read or write access to the table.*/
- /* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
- /* (if available).*/
- #ifdef MRV_LSC_GR_RAM_ADDR
- #define MRV_LSC_GR_RAM_ADDR_MIN_BANK0 (0x00000000U)
- #define MRV_LSC_GR_RAM_ADDR_MAX_BANK0 (0x00000098U)
- #define MRV_LSC_GR_RAM_ADDR_MIN_BANK1 (0x00000099U)
- #define MRV_LSC_GR_RAM_ADDR_MAX_BANK1 (0x00000131U)
- #endif /* MRV_LSC_GR_RAM_ADDR */
- /*****************************************************************************/
- /**
- * register: isp_lsc_b_table_addr: Table RAM Address for blue component
- * (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: b_ram_addr:*/
- /* table address in RAM for samples of the B color component.*/
- /* Will be automatically incremented by each read or write access to the table.*/
- /* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
- /* (if available).*/
- #ifdef MRV_LSC_B_RAM_ADDR
- #define MRV_LSC_B_RAM_ADDR_MIN_BANK0 (0x00000000U)
- #define MRV_LSC_B_RAM_ADDR_MAX_BANK0 (0x00000098U)
- #define MRV_LSC_B_RAM_ADDR_MIN_BANK1 (0x00000099U)
- #define MRV_LSC_B_RAM_ADDR_MAX_BANK1 (0x00000132U)
- #endif /* MRV_LSC_B_RAM_ADDR */
- /*****************************************************************************/
- /**
- * register: isp_lsc_gb_table_addr: Table RAM Address for green (blue) component
- * (0x00000010)
- *
- *****************************************************************************/
- /* Slice: gb_ram_addr:*/
- /* table address in RAM for samples of the G_B color component.*/
- /* Will be automatically incremented by each read or write access to the table.*/
- /* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
- /* (if available).*/
- #ifdef MRV_LSC_GB_RAM_ADDR
- #define MRV_LSC_GB_RAM_ADDR_MIN_BANK0 (0x00000000U)
- #define MRV_LSC_GB_RAM_ADDR_MAX_BANK0 (0x00000098U)
- #define MRV_LSC_GB_RAM_ADDR_MIN_BANK1 (0x00000099U)
- #define MRV_LSC_GB_RAM_ADDR_MAX_BANK1 (0x00000132U)
- #endif /* MRV_LSC_GB_RAM_ADDR */
- /*****************************************************************************/
- /**
- * register: isp_lsc_r_table_data: Sample table red (0x00000014)
- *
- *****************************************************************************/
- /* Slice: r_sample_1:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_R_SAMPLE_1
- #endif /* MRV_LSC_R_SAMPLE_1 */
- /* Slice: r_sample_0:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_R_SAMPLE_0
- #endif /* MRV_LSC_R_SAMPLE_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_gr_table_data: Sample table green (red) (0x00000018)
- *
- *****************************************************************************/
- /* Slice: gr_sample_1:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_GR_SAMPLE_1
- #endif /* MRV_LSC_GR_SAMPLE_1 */
- /* Slice: gr_sample_0:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_GR_SAMPLE_0
- #endif /* MRV_LSC_GR_SAMPLE_0 */
- /*****************************************************************************/
- /**
- * register: Register: isp_lsc_b_table_data: Sample table blue (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: b_sample_1:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_B_SAMPLE_1
- #endif /* MRV_LSC_B_SAMPLE_1 */
- /* Slice: b_sample_0:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_B_SAMPLE_0
- #endif /* MRV_LSC_B_SAMPLE_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_gb_table_data: Sample table green (blue) (0x00000020)
- *
- *****************************************************************************/
- /* Slice: gb_sample_1:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_GB_SAMPLE_1
- #endif /* MRV_LSC_GB_SAMPLE_1 */
- /* Slice: gb_sample_0:*/
- /* correction factor at sample point (fixed point number: 2 bits integer with */
- /* 10-bit fractional part, range 1..3.999)*/
- #ifdef MRV_LSC_GB_SAMPLE_0
- #endif /* MRV_LSC_GB_SAMPLE_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xgrad_01: Gradient table x (0x00000024)
- *
- *****************************************************************************/
- /* Slice: xgrad_1:*/
- /* factor for x-gradient calculation of sector 1 */
- #ifdef MRV_LSC_XGRAD_1
- #endif /* MRV_LSC_XGRAD_1 */
- /* Slice: xgrad_0:*/
- /* factor for x-gradient calculation of sector 0 */
- #ifdef MRV_LSC_XGRAD_0
- #endif /* MRV_LSC_XGRAD_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xgrad_23: Gradient table x (0x00000028)
- *
- *****************************************************************************/
- /* Slice: xgrad_3:*/
- /* factor for x-gradient calculation of sector 3 */
- #ifdef MRV_LSC_XGRAD_3
- #endif /* MRV_LSC_XGRAD_3 */
- /* Slice: xgrad_2:*/
- /* factor for x-gradient calculation of sector 2 */
- #ifdef MRV_LSC_XGRAD_2
- #endif /* MRV_LSC_XGRAD_2 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xgrad_45: Gradient table x (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: xgrad_5:*/
- /* factor for x-gradient calculation of sector 5 */
- #ifdef MRV_LSC_XGRAD_5
- #endif /* MRV_LSC_XGRAD_5 */
- /* Slice: xgrad_4:*/
- /* factor for x-gradient calculation of sector 4 */
- #ifdef MRV_LSC_XGRAD_4
- #endif /* MRV_LSC_XGRAD_4 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xgrad_67: Gradient table x (0x00000030)
- *
- *****************************************************************************/
- /* Slice: xgrad_7:*/
- /* factor for x-gradient calculation of sector 7 */
- #ifdef MRV_LSC_XGRAD_7
- #endif /* MRV_LSC_XGRAD_7 */
- /* Slice: xgrad_6:*/
- /* factor for x-gradient calculation of sector 6 */
- #ifdef MRV_LSC_XGRAD_6
- #endif /* MRV_LSC_XGRAD_6 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ygrad_01: Gradient table y (0x00000034)
- *
- *****************************************************************************/
- /* Slice: ygrad_1:*/
- /* factor for y-gradient calculation of sector 1 */
- #ifdef MRV_LSC_YGRAD_1
- #endif /* MRV_LSC_YGRAD_1 */
- /* Slice: ygrad_0:*/
- /* factor for y-gradient calculation of sector 0 */
- #ifdef MRV_LSC_YGRAD_0
- #endif /* MRV_LSC_YGRAD_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ygrad_23: Gradient table y (0x00000038)
- *
- *****************************************************************************/
- /* Slice: ygrad_3:*/
- /* factor for y-gradient calculation of sector 3 */
- #ifdef MRV_LSC_YGRAD_3
- #endif /* MRV_LSC_YGRAD_3 */
- /* Slice: ygrad_2:*/
- /* factor for y-gradient calculation of sector 2 */
- #ifdef MRV_LSC_YGRAD_2
- #endif /* MRV_LSC_YGRAD_2 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ygrad_45: Gradient table y (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: ygrad_5:*/
- /* factor for y-gradient calculation of sector 5 */
- #ifdef MRV_LSC_YGRAD_5
- #endif /* MRV_LSC_YGRAD_5 */
- /* Slice: ygrad_4:*/
- /* factor for y-gradient calculation of sector 4 */
- #ifdef MRV_LSC_YGRAD_4
- #endif /* MRV_LSC_YGRAD_4 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ygrad_67: Gradient table y (0x00000040)
- *
- *****************************************************************************/
- /* Slice: ygrad_7:*/
- /* factor for y-gradient calculation of sector 7 */
- #ifdef MRV_LSC_YGRAD_7
- #endif /* MRV_LSC_YGRAD_7 */
- /* Slice: ygrad_6:*/
- /* factor for y-gradient calculation of sector 6 */
- #ifdef MRV_LSC_YGRAD_6
- #endif /* MRV_LSC_YGRAD_6 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xsize_01: Size table (0x00000044)
- *
- *****************************************************************************/
- /* Slice: x_sect_size_1:*/
- /* sector size 1 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_1
- #endif /* MRV_LSC_X_SECT_SIZE_1 */
- /* Slice: x_sect_size_0:*/
- /* sector size 0 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_0
- #endif /* MRV_LSC_X_SECT_SIZE_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xsize_23: Size table (0x00000048)
- *
- *****************************************************************************/
- /* Slice: x_sect_size_3:*/
- /* sector size 3 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_3
- #endif /* MRV_LSC_X_SECT_SIZE_3 */
- /* Slice: x_sect_size_2:*/
- /* sector size 2 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_2
- #endif /* MRV_LSC_X_SECT_SIZE_2 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xsize_45: Size table (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: x_sect_size_5:*/
- /* sector size 5 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_5
- #endif /* MRV_LSC_X_SECT_SIZE_5 */
- /* Slice: x_sect_size_4:*/
- /* sector size 4in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_4
- #endif /* MRV_LSC_X_SECT_SIZE_4 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_xsize_67: Size table (0x00000050)
- *
- *****************************************************************************/
- /* Slice: x_sect_size_7:*/
- /* sector size 7 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_7
- #endif /* MRV_LSC_X_SECT_SIZE_7 */
- /* Slice: x_sect_size_6:*/
- /* sector size 6 in x-direction */
- #ifdef MRV_LSC_X_SECT_SIZE_6
- #endif /* MRV_LSC_X_SECT_SIZE_6 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ysize_01: Size table (0x00000054)
- *
- *****************************************************************************/
- /* Slice: y_sect_size_1:*/
- /* sector size 1 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_1
- #endif /* MRV_LSC_Y_SECT_SIZE_1 */
- /* Slice: y_sect_size_0:*/
- /* sector size 0 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_0
- #endif /* MRV_LSC_Y_SECT_SIZE_0 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ysize_23: Size table (0x00000058)
- *
- *****************************************************************************/
- /* Slice: y_sect_size_3:*/
- /* sector size 3 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_3
- #endif /* MRV_LSC_Y_SECT_SIZE_3 */
- /* Slice: y_sect_size_2:*/
- /* sector size 2 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_2
- #endif /* MRV_LSC_Y_SECT_SIZE_2 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ysize_45: Size table (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: y_sect_size_5:*/
- /* sector size 5 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_5
- #endif /* MRV_LSC_Y_SECT_SIZE_5 */
- /* Slice: y_sect_size_4:*/
- /* sector size 4 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_4
- #endif /* MRV_LSC_Y_SECT_SIZE_4 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_ysize_67: Size table (0x00000060)
- *
- *****************************************************************************/
- /* Slice: y_sect_size_7:*/
- /* sector size 7 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_7
- #endif /* MRV_LSC_Y_SECT_SIZE_7 */
- /* Slice: y_sect_size_6:*/
- /* sector size 6 in y-direction */
- #ifdef MRV_LSC_Y_SECT_SIZE_6
- #endif /* MRV_LSC_Y_SECT_SIZE_6 */
- /*****************************************************************************/
- /**
- * register: isp_lsc_table_sel: Lens shade table set selection (0x00000064)
- *
- *****************************************************************************/
- /* Slice: table_sel:*/
- /* 0: next active tables set is table set 0.*/
- /* 1: next active tables set is table set 1.*/
- /* Table selection is object of a shadowing mechnism. The current status is */
- /* visible at ISP_LSC_STATUS::active_table.*/
- #ifdef MRV_LSC_TABLE_SEL
- #define MRV_LSC_TABLE_SEL_BANK0 (0U)
- #define MRV_LSC_TABLE_SEL_BANK1 (1U)
- #endif /* MRV_LSC_TABLE_SEL */
- /*****************************************************************************/
- /**
- * register: isp_lsc_status: Lens shade status (0x00000068)
- *
- *****************************************************************************/
- /* Slice: active_table:*/
- /* 0: currently active tables set is table set 0 */
- /* 1: currently active tables set is table set 1 */
- #ifdef MRV_LSC_ACTIVE_TABLE
- #define MRV_LSC_ACTIVE_TABLE_BANK0 (0U)
- #define MRV_LSC_ACTIVE_TABLE_BANK1 (1U)
- #endif /* MRV_LSC_ACTIVE_TABLE */
- /* Slice: lsc_en_status:*/
- /* 0: lens shading correction is currently off */
- /* 1: lens shading correction is currently on */
- #ifdef MRV_LSC_LSC_EN_STATUS
- #endif /* MRV_LSC_LSC_EN_STATUS */
- /*****************************************************************************/
- /* ISP Chromatic Aberration Correction Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_cac_ctrl: Control register for chromatic aberration
- * correction (0x00000000)
- *
- *****************************************************************************/
- /* Slice: h_clip_mode:*/
- /* Defines the maximum red/blue pixel shift in horizontal direction at pixel */
- /* positions, that require a larger displacement, the maximum shift value is */
- /* used instead (vector clipping)*/
- /**/
- /* 0: Set horizontal vector clipping to +/-4 pixel displacement (Default)*/
- /* 1: Set horizontal vector clipping to +/-4 or +/-5 pixel displacement */
- /* depending on pixel position inside the Bayer raster (dynamic switching */
- /* between +/-4 and +/-5)*/
- #ifdef MRV_CAC_H_CLIP_MODE
- #define MRV_CAC_H_CLIP_MODE_FIX4 0 /* 0: Set horizontal vector clipping */
- /* to +/-4 pixel displacement (Default) */
- #define MRV_CAC_H_CLIP_MODE_DYN5 1 /* 1: Set horizontal vector clipping */
- /* to +/-4 or +/-5 pixel displacement depending on */
- /* pixel position inside the Bayer raster */
- /* (dynamic switching between +/-4 and +/-5) */
- #endif /* MRV_CAC_H_CLIP_MODE */
- /* Slice: v_clip_mode:*/
- /* Defines the maximum red/blue pixel shift in vertical direction */
- /* 00: Set vertical vector clipping to +/-2 pixel ; fix filter_enable (Default)*/
- /* 01: Set vertical vector clipping to +/-3 pixel; dynamic filter_enable for */
- /* chroma low pass filter */
- /* 10: Set vertical vector clipping +/-3 or +/-4 pixel displacement depending */
- /* on pixel position inside the Bayer raster (dynamic switching between +/-3 and +/-4)*/
- /* 11: reserved */
- #ifdef MRV_CAC_V_CLIP_MODE
- #define MRV_CAC_V_CLIP_MODE_FIX2 0 /* 00: Set vertical vector clipping to +/-2 pixel; */
- /* fix filter_enable (Default) */
- #define MRV_CAC_V_CLIP_MODE_FIX3 1 /* 01: Set vertical vector clipping to +/-3 pixel; */
- /* dynamic filter_enable for chroma low pass filter */
- #define MRV_CAC_V_CLIP_MODE_DYN4 2 /* 10: Set vertical vector clipping +/-3 or +/-4 pixel */
- /* displacement depending on pixel position inside */
- /* the Bayer raster (dynamic switching between +/-3 and +/-4) */
- #endif /* MRV_CAC_V_CLIP_MODE */
- /* Slice: cac_en:*/
- /* 0: chromatic aberration correction off */
- /* 1: chromatic aberration correction on */
- #ifdef MRV_CAC_CAC_EN
- #define MRV_CAC_CAC_EN_PROCESS 1
- #define MRV_CAC_CAC_EN_BYPASS 0
- #endif /* MRV_CAC_CAC_EN */
- /*****************************************************************************/
- /**
- * register: isp_cac_count_start: Preload values for CAC pixel and line
- * counter (0x00000004)
- *
- *****************************************************************************/
- /* Slice: v_count_start:*/
- /* 12 bit v_count preload value (range 4095 ... 1) of the vertical CAC line */
- /* counter. Before frame start v_count has to be preloaded with */
- /* (v_size/2 + v_center_offset), with v_size the image height and v_center_offset */
- /* the vertical distance between image center and optical center.*/
- /**/
- /* After frame start the v_count decrements with every line until a value of zero */
- /* is reached for the line in the optical center. Than the v_sign bit toggles and */
- /* the v_counter decrements with every line until end of frame.*/
- #ifdef MRV_CAC_V_COUNT_START
- #define MRV_CAC_V_COUNT_START_MIN 1
- #define MRV_CAC_V_COUNT_START_MAX (MRV_CAC_V_COUNT_START_MASK >> MRV_CAC_V_COUNT_START_SHIFT)
- #endif /* MRV_CAC_V_COUNT_START */
- /* Slice: h_count_start:*/
- /* 12 bit h_count preload value (range 4095 .. 1) of the horizontal CAC pixel */
- /* counter. Before line start h_count has to be preloaded with (h_size/2 + h_center_offset),*/
- /* with h_size the image width and h_center_offset the horizontal distance between image */
- /* center and optical center.*/
- /**/
- /* After line start the h_count decrements with every pixel until a value of zero is */
- /* reached for the column in the optical center. Than the h_sign bit toggles and the */
- /* h_counter increments with every pixel until end of line.*/
- #ifdef MRV_CAC_H_COUNT_START
- #define MRV_CAC_H_COUNT_START_MIN 1
- #define MRV_CAC_H_COUNT_START_MAX (MRV_CAC_H_COUNT_START_MASK >> MRV_CAC_H_COUNT_START_SHIFT)
- #endif /* MRV_CAC_H_COUNT_START */
- /*****************************************************************************/
- /**
- * register: isp_cac_a: Linear Parameters for radial shift calculation (0x00000008)
- *
- *****************************************************************************/
- /* Slice: A_Blue:*/
- /* Parameter A_Blue for radial blue shift calculation, according to */
- /* (A_Blue * r + B_Blue * r^2 + C_Blue * r^3).*/
- /* It is a 9 bit twos complement integer with 4 fractional digits value and */
- /* value range from -16 up to 15.9375.*/
- #ifdef MRV_CAC_A_BLUE
- #define MRV_CAC_A_BLUE_MAX (MRV_CAC_A_BLUE_MASK >> (MRV_CAC_A_BLUE_SHIFT))
- #define MRV_CAC_A_BLUE_MIN 0
- #endif /* MRV_CAC_A_BLUE */
- /* Slice: A_Red:*/
- /* Parameter A_Red for radial red shift calculation, according to */
- /* (A_Red * r + B_Red * r^2 + C_Red * r^3).*/
- /* It is a 9 bit twos complement integer with 4 fractional digits value and */
- /* value range from -16 up to 15.9375.*/
- #ifdef MRV_CAC_A_RED
- #define MRV_CAC_A_RED_MAX (MRV_CAC_A_RED_MASK >> (MRV_CAC_A_RED_SHIFT))
- #define MRV_CAC_A_RED_MIN 0
- #endif /* MRV_CAC_A_RED */
- /*****************************************************************************/
- /**
- * register: isp_cac_b: Square Parameters for radial shift calculation (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: B_Blue:*/
- /* Parameter B_Blue for radial blue shift calculation, according to */
- /* (A_Blue * r + B_Blue * r^2 + C_Blue * r^3).*/
- /* It is a 9 bit twos complement integer with 4 fractional digits value and */
- /* value range from -16 up to 15.9375.*/
- #ifdef MRV_CAC_B_BLUE
- #define MRV_CAC_B_BLUE_MAX (MRV_CAC_B_BLUE_MASK >> (MRV_CAC_B_BLUE_SHIFT))
- #define MRV_CAC_B_BLUE_MIN 0
- #endif /* MRV_CAC_B_BLUE */
- /* Slice: B_Red:*/
- /* Parameter B_Red for radial red shift calculation, according to */
- /* (A_Red * r + B_Red * r^2 + C_Red * r^3).*/
- /* It is a 9 bit twos complement integer with 4 fractional digits value and */
- /* value range from -16 up to 15.9375.*/
- #ifdef MRV_CAC_B_RED
- #define MRV_CAC_B_RED_MAX (MRV_CAC_B_RED_MASK >> (MRV_CAC_B_RED_SHIFT))
- #define MRV_CAC_B_RED_MIN 0
- #endif /* MRV_CAC_B_RED */
- /*****************************************************************************/
- /**
- * register: isp_cac_c: Cubical Parameters for radial shift calculation (0x00000010)
- *
- *****************************************************************************/
- /* Slice: C_Blue:*/
- /* Parameter C_Blue for radial blue shift calculation, according to */
- /* (A_Blue * r + B_Blue * r^2 + C_Blue * r^3).*/
- /* It is a 9 bit twos complement integer with 4 fractional digits value and */
- /* value range from -16 up to 15.9375.*/
- #ifdef MRV_CAC_C_BLUE
- #define MRV_CAC_C_BLUE_MAX (MRV_CAC_C_BLUE_MASK >> (MRV_CAC_C_BLUE_SHIFT))
- #define MRV_CAC_C_BLUE_MIN 0
- #endif /* MRV_CAC_C_BLUE */
- /* Slice: C_Red:*/
- /* Parameter C_Red for radial red shift calculation, according to */
- /* (A_Red * r + B_Red * r^2 + C_Red * r^3).*/
- /* It is a 9 bit twos complement integer with 4 fractional digits value and */
- /* value range from -16 up to 15.9375.*/
- #ifdef MRV_CAC_C_RED
- #define MRV_CAC_C_RED_MAX (MRV_CAC_C_RED_MASK >> (MRV_CAC_C_RED_SHIFT))
- #define MRV_CAC_C_RED_MIN 0
- #endif /* MRV_CAC_C_RED */
- /*****************************************************************************/
- /**
- * register: isp_cac_x_norm: Normalization parameters for calculation of image
- * coordinate x_d relative to optical center (0x00000014)
- *
- *****************************************************************************/
- /* Slice: x_ns:*/
- /* Horizontal normalization shift parameter x_ns (4 bit unsigned integer)*/
- /* in equation x_d[7:0] = (((h_count <% 4) %> x_ns) * x_nf) >> 5 */
- #ifdef MRV_CAC_X_NS
- #define MRV_CAC_X_NS_MIN 0
- #define MRV_CAC_X_NS_MAX (MRV_CAC_X_NS_MASK >> MRV_CAC_X_NS_SHIFT)
- #endif /* MRV_CAC_X_NS */
- /* Slice: x_nf:*/
- /* Horizontal scaling or normalization factor x_nf (5 bit unsigned integer)*/
- /* range 0 .. 31 in equation x_d[7:0] = (((h_count <% 4) %> x_ns) * x_nf) >> 5 */
- #ifdef MRV_CAC_X_NF
- #define MRV_CAC_X_NF_MIN 0
- #define MRV_CAC_X_NF_MAX 31
- #endif /* MRV_CAC_X_NF */
- /*****************************************************************************/
- /**
- * register: isp_cac_y_norm: Normalization parameters for calculation of image
- * coordinate y_d relative to optical center (0x00000018)
- *
- *****************************************************************************/
- /* Slice: y_ns:*/
- /* Vertical normalization shift parameter y_ns (4 bit unsigned integer)*/
- /* in equation y_d[7:0] = (((v_count <% 4) %> y_ns) * y_nf) >> 5 */
- #ifdef MRV_CAC_Y_NS
- #define MRV_CAC_Y_NS_MIN 0
- #define MRV_CAC_Y_NS_MAX (MRV_CAC_Y_NS_MASK >> MRV_CAC_Y_NS_SHIFT)
- #endif /* MRV_CAC_Y_NS */
- /* Slice: y_nf:*/
- /* Vertical scaling or normalization factor y_nf (5 bit unsigned integer)*/
- /* range 0 .. 31 in equation y_d[7:0] = (((v_count <% 4) %> y_ns) * y_nf) >> 5 */
- #ifdef MRV_CAC_Y_NF
- #define MRV_CAC_Y_NF_MIN 0
- #define MRV_CAC_Y_NF_MAX 31
- #endif /* MRV_CAC_Y_NF */
- /*****************************************************************************/
- /* ISP Exposure Measurement Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_exp_ctrl: Exposure control (0x00000000)
- *
- *****************************************************************************/
- /* Slice: exp_meas_mode:*/
- /* '1' luminance calculation according to Y=(R+G+B) x 0.332 (85/256)*/
- /* '0' luminance calculation according to Y=16+0.25R+0.5G+0.1094B */
- #ifdef MRV_AE_EXP_MEAS_MODE
- #define MRV_AE_EXP_MEAS_MODE_1 1 /* '1' luminance calculation according to Y=(R+G+B) x 0.332 (85/256) */
- #define MRV_AE_EXP_MEAS_MODE_0 0 /* '0' luminance calculation according to Y=16+0.25R+0.5G+0.1094B */
- #endif /* MRV_AE_EXP_MEAS_MODE */
- /* Slice: autostop:*/
- /* '1' stop measuring after a complete frame */
- /* '0' continous measurement */
- #ifdef MRV_AE_AUTOSTOP
- #define MRV_AE_AUTOSTOP_STOP_MEASURING 1 /* stop measuring after a complete frame */
- #define MRV_AE_AUTOSTOP_CONTINOUS_MEASURING 0 /* don't stop measurement, continoue with next frame */
- #endif /* MRV_AE_AUTOSTOP */
- /* Slice: exp_start:*/
- /* '1' start measuring a frame. The exp block will reset this bit and halt */
- /* after completing one frame, if bit "autostop" is set to '1'.*/
- #ifdef MRV_AE_EXP_START
- #define MRV_AE_EXP_START_PROCESS 1 /* 1: processing is activated */
- #define MRV_AE_EXP_START_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
- #endif /* MRV_AE_EXP_START */
- /*****************************************************************************/
- /**
- * register: isp_exp_h_offset: Horizontal offset for first block (0x00000004)
- *
- *****************************************************************************/
- /* Slice: isp_exp_h_offset:*/
- /* Horizontal offset of first block in pixels.*/
- /* 0 <= value <= 3920 */
- #ifdef MRV_AE_ISP_EXP_H_OFFSET
- #define MRV_AE_ISP_EXP_H_OFFSET_MIN 0x00000000
- #define MRV_AE_ISP_EXP_H_OFFSET_MAX 0x00000F50 /* 4096-176 */
- #endif /* MRV_AE_ISP_EXP_H_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_exp_v_offset: Vertical offset for first block (0x00000008)
- *
- *****************************************************************************/
- /* Slice: isp_exp_v_offset:*/
- /* Vertical offset of first block in pixels.*/
- /* 0 <= value <= 1806 */
- #ifdef MRV_AE_ISP_EXP_V_OFFSET
- #define MRV_AE_ISP_EXP_V_OFFSET_MIN 0x00000000
- #define MRV_AE_ISP_EXP_V_OFFSET_MAX 0x00000B74 /* 3072-140 */
- #endif /* MRV_AE_ISP_EXP_V_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_exp_h_size: Horizontal size of one block (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: isp_exp_h_size:*/
- /* Horizontal size in pixels of one block.*/
- /* 35 <= value <= 516 */
- #ifdef MRV_AE_ISP_EXP_H_SIZE
- #define MRV_AE_ISP_EXP_H_SIZE_MIN 0x00000023
- #define MRV_AE_ISP_EXP_H_SIZE_MAX 0x00000333
- #endif /* MRV_AE_ISP_EXP_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_exp_v_size: Vertical size of one block (0x00000010)
- *
- *****************************************************************************/
- /* Slice: isp_exp_v_size:*/
- /* Vertical size in pixels of one block.*/
- /* 28 <= value <= 390 */
- #ifdef MRV_AE_ISP_EXP_V_SIZE
- #define MRV_AE_ISP_EXP_V_SIZE_VALID_MASK (MRV_AE_ISP_EXP_V_SIZE_MASK & ~0x00000001)
- #define MRV_AE_ISP_EXP_V_SIZE_MIN 0x0000001C
- #define MRV_AE_ISP_EXP_V_SIZE_MAX 0x00000266
- #endif /* MRV_AE_ISP_EXP_V_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_00: Mean luminance value of block 00 (0x00000014)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_00:*/
- /* Mean luminance value of block 00 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_00
- #endif /* MRV_AE_ISP_EXP_MEAN_00 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_10: Mean luminance value of block 10 (0x00000018)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_10:*/
- /* Mean luminance value of block 10 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_10
- #endif /* MRV_AE_ISP_EXP_MEAN_10 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_20: Mean luminance value of block 20 (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_20:*/
- /* Mean luminance value of block 20 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_20
- #endif /* MRV_AE_ISP_EXP_MEAN_20 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_30: Mean luminance value of block 30 (0x00000020)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_30:*/
- /* Mean luminance value of block 30 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_30
- #endif /* MRV_AE_ISP_EXP_MEAN_30 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_40: Mean luminance value of block 40 (0x00000024)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_40:*/
- /* Mean luminance value of block 40 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_40
- #endif /* MRV_AE_ISP_EXP_MEAN_40 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_01: Mean luminance value of block 01 (0x00000028)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_01:*/
- /* Mean luminance value of block 01 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_01
- #endif /* MRV_AE_ISP_EXP_MEAN_01 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_11: Mean luminance value of block 11 (0x0000002c)
- *
- *****************************************************************************/
- /* Register: isp_exp_mean_11: Mean luminance value of block 11 (0x0000002c)*/
- /* Slice: isp_exp_mean_11:*/
- /* Mean luminance value of block 11 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_11
- #endif /* MRV_AE_ISP_EXP_MEAN_11 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_21: Mean luminance value of block 21 (0x00000030)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_21:*/
- /* Mean luminance value of block 21 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_21
- #endif /* MRV_AE_ISP_EXP_MEAN_21 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_31: Mean luminance value of block 31 (0x00000034)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_31:*/
- /* Mean luminance value of block 31 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_31
- #endif /* MRV_AE_ISP_EXP_MEAN_31 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_41: Mean luminance value of block 41 (0x00000038)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_41:*/
- /* Mean luminance value of block 41 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_41
- #endif /* MRV_AE_ISP_EXP_MEAN_41 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_02: Mean luminance value of block 02 (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_02:*/
- /* Mean luminance value of block 02 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_02
- #endif /* MRV_AE_ISP_EXP_MEAN_02 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_12: Mean luminance value of block 12 (0x00000040)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_12:*/
- /* Mean luminance value of block 12 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_12
- #endif /* MRV_AE_ISP_EXP_MEAN_12 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_22: Mean luminance value of block 22 (0x00000044)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_22:*/
- /* Mean luminance value of block 22 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_22
- #endif /* MRV_AE_ISP_EXP_MEAN_22 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_32: Mean luminance value of block 32 (0x00000048)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_32:*/
- /* Mean luminance value of block 32 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_32
- #endif /* MRV_AE_ISP_EXP_MEAN_32 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_42: Mean luminance value of block 42 (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_42:*/
- /* Mean luminance value of block 42 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_42
- #endif /* MRV_AE_ISP_EXP_MEAN_42 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_03: Mean luminance value of block 03 (0x00000050)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_03:*/
- /* Mean luminance value of block 03 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_03
- #endif /* MRV_AE_ISP_EXP_MEAN_03 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_13: Mean luminance value of block 13 (0x00000054)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_13:*/
- /* Mean luminance value of block 13 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_13
- #endif /* MRV_AE_ISP_EXP_MEAN_13 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_23: Mean luminance value of block 23 (0x00000058)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_23:*/
- /* Mean luminance value of block 23 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_23
- #endif /* MRV_AE_ISP_EXP_MEAN_23 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_33: Mean luminance value of block 33 (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_33:*/
- /* Mean luminance value of block 33 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_33
- #endif /* MRV_AE_ISP_EXP_MEAN_33 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_43: Mean luminance value of block 43 (0x00000060)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_43:*/
- /* Mean luminance value of block 43 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_43
- #endif /* MRV_AE_ISP_EXP_MEAN_43 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_04: Mean luminance value of block 04 (0x00000064)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_04:*/
- /* Mean luminance value of block 04 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_04
- #endif /* MRV_AE_ISP_EXP_MEAN_04 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_14: Mean luminance value of block 14 (0x00000068)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_14:*/
- /* Mean luminance value of block 14 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_14
- #endif /* MRV_AE_ISP_EXP_MEAN_14 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_24: Mean luminance value of block 24 (0x0000006c)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_24:*/
- /* Mean luminance value of block 24 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_24
- #endif /* MRV_AE_ISP_EXP_MEAN_24 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_34: Mean luminance value of block 34 (0x00000070)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_34:*/
- /* Mean luminance value of block 34 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_34
- #endif /* MRV_AE_ISP_EXP_MEAN_34 */
- /*****************************************************************************/
- /**
- * register: isp_exp_mean_44: Mean luminance value of block 44 (0x00000074)
- *
- *****************************************************************************/
- /* Slice: isp_exp_mean_44:*/
- /* Mean luminance value of block 44 (x,y)*/
- #ifdef MRV_AE_ISP_EXP_MEAN_44
- #endif /* MRV_AE_ISP_EXP_MEAN_44 */
- /*****************************************************************************/
- /* ISP Black Level Subtraction Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_bls_ctrl: global control register (0x00000000)
- *
- *****************************************************************************/
- /* Slice: WINDOW_ENABLE:*/
- /* 0: no measuring is performed */
- /* 1: only window 1 is measured */
- /* 2: only window 2 is measured */
- /* 3: both windows are measured */
- #ifdef MRV_BLS_WINDOW_ENABLE
- #define MRV_BLS_WINDOW_ENABLE_NONE 0U /* 0: no measuring is performed */
- #define MRV_BLS_WINDOW_ENABLE_WND1 1U /* 1: only window 1 is measured */
- #define MRV_BLS_WINDOW_ENABLE_WND2 2U /* 2: only window 2 is measured */
- #define MRV_BLS_WINDOW_ENABLE_BOTH 3U /* 3: both windows are measured */
- #define MRV_BLS_WINDOW_ENABLE_WND1_MASK 0x00000004U
- #define MRV_BLS_WINDOW_ENABLE_WND1_SHIFT 2U
- #define MRV_BLS_WINDOW_ENABLE_WND2_MASK 0x00000008U
- #define MRV_BLS_WINDOW_ENABLE_WND2_SHIFT 3U
- #endif /* MRV_BLS_WINDOW_ENABLE */
- /* Slice: BLS_MODE:*/
- /* 1: subtract measured values */
- /* 0: subtract fixed values */
- #ifdef MRV_BLS_BLS_MODE
- #define MRV_BLS_BLS_MODE_MEAS 1U /* 1: subtract measured values */
- #define MRV_BLS_BLS_MODE_FIX 0U /* 0: subtract fixed values */
- #endif /* MRV_BLS_BLS_MODE */
- /* Slice: BLS_ENABLE:*/
- /* 1: black level subtraction is enabled */
- /* 0: bypass the black level processing */
- #ifdef MRV_BLS_BLS_ENABLE
- #define MRV_BLS_BLS_ENABLE_PROCESS 1U /* 1: black level subtraction is enabled */
- #define MRV_BLS_BLS_ENABLE_BYPASS 0U /* 0: bypass the black level processing */
- #endif /* MRV_BLS_BLS_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_bls_samples: samples register (0x00000004)
- *
- *****************************************************************************/
- /* Slice: BLS_SAMPLES:*/
- /* This number to the power of two gives the number of measure samples for */
- /* each Bayer position. Range 0x00: 2^0=1 to 0x12: 2^18=262144. This number */
- /* is also the divider for the accumulator for each Bayer position.*/
- /**/
- /* The accumulation will be stopped, if the number of measured pixels for the */
- /* current Bayer position is equal to the number of samples.*/
- /**/
- /* The measure windows must be positioned that way that the number of included */
- /* pixels of each Bayer position included by both windows is equal or greater */
- /* than the number of measure samples calculated by 2^BLS_SAMPLES !*/
- /**/
- /* NOTE:*/
- /* - The number of pixels of one Bayer position is 1/4 of the number of all */
- /* Pixels included by the measure windows.*/
- #ifdef MRV_BLS_BLS_SAMPLES
- #define MRV_BLS_BLS_SAMPLES_MAX (0x00000014U) /* maximum is 2^20 = 1048576 */
- #endif /* MRV_BLS_BLS_SAMPLES */
- /*****************************************************************************/
- /**
- * register: isp_bls_h1_start: window 1 horizontal start (0x00000008)
- *
- *****************************************************************************/
- /* Slice: BLS_H1_START:*/
- /* Black pixel window 1 horizontal start position */
- #ifdef MRV_BLS_BLS_H1_START
- #define MRV_BLS_BLS_H1_START_MAX (MRV_BLS_BLS_H1_START_MASK >> MRV_BLS_BLS_H1_START_SHIFT)
- #endif /* MRV_BLS_BLS_H1_START */
- /*****************************************************************************/
- /**
- * register: isp_bls_h1_stop: window 1 horizontal stop (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: BLS_H1_STOP:*/
- /* Black pixel window 1 horizontal stop position */
- #ifdef MRV_BLS_BLS_H1_STOP
- #define MRV_BLS_BLS_H1_STOP_MAX (MRV_BLS_BLS_H1_STOP_MASK >> MRV_BLS_BLS_H1_STOP_SHIFT)
- #endif /* MRV_BLS_BLS_H1_STOP */
- /*****************************************************************************/
- /**
- * register: isp_bls_v1_start: window 1 vertical start (0x00000010)
- *
- *****************************************************************************/
- /* Slice: BLS_V1_START:*/
- /* Black pixel window 1 vertical start position */
- #ifdef MRV_BLS_BLS_V1_START
- #define MRV_BLS_BLS_V1_START_MAX (MRV_BLS_BLS_V1_START_MASK >> MRV_BLS_BLS_V1_START_SHIFT)
- #endif /* MRV_BLS_BLS_V1_START */
- /*****************************************************************************/
- /**
- * register: isp_bls_v1_stop: window 1 vertical stop (0x00000014)
- *
- *****************************************************************************/
- /* Slice: BLS_V1_STOP:*/
- /* Black pixel window 1 vertical stop position */
- #ifdef MRV_BLS_BLS_V1_STOP
- #define MRV_BLS_BLS_V1_STOP_MAX (MRV_BLS_BLS_V1_STOP_MASK >> MRV_BLS_BLS_V1_STOP_SHIFT)
- #endif /* MRV_BLS_BLS_V1_STOP */
- /*****************************************************************************/
- /**
- * register: isp_bls_h2_start: window 2 horizontal start (0x00000018)
- *
- *****************************************************************************/
- /* Slice: BLS_H2_START:*/
- /* Black pixel window 2 horizontal start position */
- #ifdef MRV_BLS_BLS_H2_START
- #define MRV_BLS_BLS_H2_START_MAX (MRV_BLS_BLS_H2_START_MASK >> MRV_BLS_BLS_H2_START_SHIFT)
- #endif /* MRV_BLS_BLS_H2_START */
- /*****************************************************************************/
- /**
- * register: isp_bls_h2_stop: window 2 horizontal stop (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: BLS_H2_STOP:*/
- /* Black pixel window 2 horizontal stop position */
- #ifdef MRV_BLS_BLS_H2_STOP
- #define MRV_BLS_BLS_H2_STOP_MAX (MRV_BLS_BLS_H2_STOP_MASK >> MRV_BLS_BLS_H2_STOP_SHIFT)
- #endif /* MRV_BLS_BLS_H2_STOP */
- /*****************************************************************************/
- /**
- * register: isp_bls_v2_start: window 2 vertical start (0x00000020)
- *
- *****************************************************************************/
- /* Slice: BLS_V2_START:*/
- /* Black pixel window 2 vertical start position */
- #ifdef MRV_BLS_BLS_V2_START
- #define MRV_BLS_BLS_V2_START_MAX (MRV_BLS_BLS_V2_START_MASK >> MRV_BLS_BLS_V2_START_SHIFT)
- #endif /* MRV_BLS_BLS_V2_START */
- /*****************************************************************************/
- /**
- * register: isp_bls_v2_stop: window 2 vertical stop (0x00000024)
- *
- *****************************************************************************/
- /* Slice: BLS_V2_STOP:*/
- /* Black pixel window 2 vertical stop position */
- #ifdef MRV_BLS_BLS_V2_STOP
- #define MRV_BLS_BLS_V2_STOP_MAX (MRV_BLS_BLS_V2_STOP_MASK >> MRV_BLS_BLS_V2_STOP_SHIFT)
- #endif /* MRV_BLS_BLS_V2_STOP */
- /*****************************************************************************/
- /**
- * register: isp_bls_a_fixed: fixed black level A (0x00000028)
- *
- *****************************************************************************/
- /* Slice: BLS_A_FIXED:*/
- /* Fixed black level for A pixels signed */
- /* two's complement, value range from -4096 to +4095,*/
- /* a positive value will be subtracted from the pixel values */
- #ifdef MRV_BLS_BLS_A_FIXED
- #endif /* MRV_BLS_BLS_A_FIXED */
- /*****************************************************************************/
- /**
- * register: isp_bls_b_fixed: fixed black level B (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: BLS_B_FIXED:*/
- /* Fixed black level for B pixels signed */
- /* two's complement, value range from -4096 to +4095 */
- #ifdef MRV_BLS_BLS_B_FIXED
- #endif /* MRV_BLS_BLS_B_FIXED */
- /*****************************************************************************/
- /**
- * register: isp_bls_c_fixed: fixed black level C (0x00000030)
- *
- *****************************************************************************/
- /* Slice: BLS_C_FIXED:*/
- /* Fixed black level for C pixels signed */
- /* two's complement, value range from -4096 to +4095 */
- #ifdef MRV_BLS_BLS_C_FIXED
- #endif /* MRV_BLS_BLS_C_FIXED */
- /*****************************************************************************/
- /**
- * register: isp_bls_d_fixed: fixed black level D (0x00000034)
- *
- *****************************************************************************/
- /* Slice: BLS_D_FIXED:*/
- /* Fixed black level for D pixels - signed */
- /* two's complement, value range from -4096 to +4095 */
- #ifdef MRV_BLS_BLS_D_FIXED
- #endif /* MRV_BLS_BLS_D_FIXED */
- /*****************************************************************************/
- /**
- * register: isp_bls_a_measured: measured black level A (0x00000038)
- *
- *****************************************************************************/
- /* Slice: BLS_A_MEASURED:*/
- /* Measured black level for A pixels */
- #ifdef MRV_BLS_BLS_A_MEASURED
- #endif /* MRV_BLS_BLS_A_MEASURED */
- /*****************************************************************************/
- /**
- * register: isp_bls_b_measured: measured black level B (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: BLS_B_MEASURED:*/
- /* Measured black level for B pixels */
- #ifdef MRV_BLS_BLS_B_MEASURED
- #endif /* MRV_BLS_BLS_B_MEASURED */
- /*****************************************************************************/
- /**
- * register: isp_bls_c_measured: measured black level C (0x00000040)
- *
- *****************************************************************************/
- /* Slice: BLS_C_MEASURED:*/
- /* Measured black level for C pixels */
- #ifdef MRV_BLS_BLS_C_MEASURED
- #endif /* MRV_BLS_BLS_C_MEASURED */
- /*****************************************************************************/
- /**
- * register: isp_bls_d_measured: measured black level D (0x00000044)
- *
- *****************************************************************************/
- /* Slice: BLS_D_MEASURED:*/
- /* Measured black level for D pixels */
- #ifdef MRV_BLS_BLS_D_MEASURED
- #endif /* MRV_BLS_BLS_D_MEASURED */
- /*****************************************************************************/
- /* ISP Denoising Pre-Filter Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_dpf_mode: Mode control for Denoising Pre-Filter block
- * (0x00000000)
- *
- *****************************************************************************/
- /* Slice: USE_NF_GAIN:*/
- /* 1: dpf_nf_gain's will be used */
- /* 0: external AWB gains will be used *Default**/
- #ifdef MRV_DPF_USE_NF_GAIN
- #endif /* MRV_DPF_USE_NF_GAIN */
- /* Slice: LSC_GAIN_COMP:*/
- /* 1: LSC gain will be processed */
- /* 0: LSC gain will not be processed *Default**/
- #ifdef MRV_DPF_LSC_GAIN_COMP
- #endif /* MRV_DPF_LSC_GAIN_COMP */
- /* Slice: AWB_GAIN_COMP:*/
- /* 1: AWB gain or internal dpf_nf_gain will be processed */
- /* 0: AWB gain or internal dpf_nf_gain will not be processed *Default**/
- #ifdef MRV_DPF_AWB_GAIN_COMP
- #endif /* MRV_DPF_AWB_GAIN_COMP */
- /* Slice: NLL_SEGMENTATION:*/
- /* 1: optimized logarithmic like segmentation for Noise Level Lookup (NLL)*/
- /* 0: equidistant segmentation for NLL *Default**/
- #ifdef MRV_DPF_NLL_SEGMENTATION
- #endif /* MRV_DPF_NLL_SEGMENTATION */
- /* Slice: RB_FILTER_SIZE:*/
- /* 1: Red and Blue filter kernel size of 9x9 (5x5 active) pixels */
- /* 0: Wide Red and Blue filter kernel size of 13x9 (7x5 active) pixels *Default**/
- #ifdef MRV_DPF_RB_FILTER_SIZE
- #endif /* MRV_DPF_RB_FILTER_SIZE */
- /* Slice: R_FILTER_OFF:*/
- /* 1: disable filter processing for red pixels (R)*/
- /* 0: filter R pixels *Default**/
- #ifdef MRV_DPF_R_FILTER_OFF
- #endif /* MRV_DPF_R_FILTER_OFF */
- /* Slice: GR_FILTER_OFF:*/
- /* 1: disable filter processing for green pixels in green/red lines (GR)*/
- /* 0: filter GR pixels *Default**/
- #ifdef MRV_DPF_GR_FILTER_OFF
- #endif /* MRV_DPF_GR_FILTER_OFF */
- /* Slice: GB_FILTER_OFF:*/
- /* 1: disable filter processing for green pixels in green/blue lines (GB)*/
- /* 0: filter GB pixels *Default**/
- #ifdef MRV_DPF_GB_FILTER_OFF
- #endif /* MRV_DPF_GB_FILTER_OFF */
- /* Slice: B_FILTER_OFF:*/
- /* 1: disable filter processing for blue pixels (B)*/
- /* 0: filter B pixels *Default**/
- #ifdef MRV_DPF_B_FILTER_OFF
- #endif /* MRV_DPF_B_FILTER_OFF */
- /* Slice: DPF_ENABLE:*/
- /* 1: enable dpf */
- /* 0: bypass dpf *Default**/
- #ifdef MRV_DPF_DPF_ENABLE
- #endif /* MRV_DPF_DPF_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_dpf_strength_r: filter strength of the RED filter (0x00000004)
- *
- *****************************************************************************/
- /* Slice: INV_WEIGHT_R:*/
- /* Filter strength of the filter is determined by weight. Default is a */
- /* weight of 1. A higher weight increases the filter strength. In this */
- /* register the unsigned 8 bit value 64/weight is stored.*/
- /**/
- /* The following values show examples:*/
- /* weight=0.251 -> 255, weight=0.5 -> 128,*/
- /* weight=1 -> 64 *default**/
- /* weight=1.25 -> 51, weight=1.5 -> 42,*/
- /* weight=1.75 -> 37, weight=2 -> 32 */
- #ifdef MRV_DPF_INV_WEIGHT_R
- #endif /* MRV_DPF_INV_WEIGHT_R */
- /*****************************************************************************/
- /**
- * register: isp_dpf_strength_g: filter strength of the GREEN filter (0x00000008)
- *
- *****************************************************************************/
- /* Slice: INV_WEIGHT_G:*/
- /* Filter strength of the filter is determined by weight. Default is a */
- /* weight of 1. A higher weight increases the filter strength. In this */
- /* register the unsigned 8 bit value 64/weight is stored.*/
- /**/
- /* The following values show examples:*/
- /* weight=0.251 -> 255, weight=0.5 -> 128,*/
- /* weight=1 -> 64 *default**/
- /* weight=1.25 -> 51, weight=1.5 -> 42,*/
- /* weight=1.75 -> 37, weight=2 -> 32 */
- #ifdef MRV_DPF_INV_WEIGHT_G
- #endif /* MRV_DPF_INV_WEIGHT_G */
- /*****************************************************************************/
- /**
- * register: isp_dpf_strength_b: filter strength of the BLUE filter (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: INV_WEIGHT_B:*/
- /* Filter strength of the filter is determined by weight. Default is a */
- /* weight of 1. A higher weight increases the filter strength. In this */
- /* register the unsigned 8 bit value 64/weight is stored.*/
- /**/
- /* The following values show examples:*/
- /* weight=0.251 -> 255, weight=0.5 -> 128,*/
- /* weight=1 -> 64 *default**/
- /* weight=1.25 -> 51, weight=1.5 -> 42,*/
- /* weight=1.75 -> 37, weight=2 -> 32 */
- #ifdef MRV_DPF_INV_WEIGHT_B
- #endif /* MRV_DPF_INV_WEIGHT_B */
- /*****************************************************************************/
- /**
- * register: isp_dpf_s_weight_g_1_4: Spatial Weights green channel 1 2 3 4
- * (0x00000010)
- *
- *****************************************************************************/
- /* Slice: S_WEIGHT_G4:*/
- /* Filter Coefficient green channel S_WEIGHT_G4 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_G4
- #endif /* MRV_DPF_S_WEIGHT_G4 */
- /* Slice: S_WEIGHT_G3:*/
- /* Filter Coefficient green channel S_WEIGHT_G3 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_G3
- #endif /* MRV_DPF_S_WEIGHT_G3 */
- /* Slice: S_WEIGHT_G2:*/
- /* Filter Coefficient green channel S_WEIGHT_G2 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_G2
- #endif /* MRV_DPF_S_WEIGHT_G2 */
- /* Slice: S_WEIGHT_G1:*/
- /* Filter Coefficient green channel S_WEIGHT_G1 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_G1
- #endif /* MRV_DPF_S_WEIGHT_G1 */
- /*****************************************************************************/
- /**
- * register: isp_dpf_s_weight_g_5_6: Spatial Weights green channel 5 6
- * (0x00000014)
- *
- *****************************************************************************/
- /* Slice: S_WEIGHT_G6:*/
- /* Filter Coefficient green channel S_WEIGHT_G6 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_G6
- #endif /* MRV_DPF_S_WEIGHT_G6 */
- /* Slice: S_WEIGHT_G5:*/
- /* Filter Coefficient green channel S_WEIGHT_G5 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_G5
- #endif /* MRV_DPF_S_WEIGHT_G5 */
- /*****************************************************************************/
- /**
- * register: isp_dpf_s_weight_rb_1_4: Spatial Weights red/blue channels 1 2 3 4
- * (0x00000018)
- *
- *****************************************************************************/
- /* Slice: S_WEIGHT_RB4:*/
- /* Filter Coefficient red/blue channels S_WEIGHT_RB4 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_RB4
- #endif /* MRV_DPF_S_WEIGHT_RB4 */
- /* Slice: S_WEIGHT_RB3:*/
- /* Filter Coefficient red/blue channels S_WEIGHT_RB3 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_RB3
- #endif /* MRV_DPF_S_WEIGHT_RB3 */
- /* Slice: S_WEIGHT_RB2:*/
- /* Filter Coefficient red/blue channels S_WEIGHT_RB2 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_RB2
- #endif /* MRV_DPF_S_WEIGHT_RB2 */
- /* Slice: S_WEIGHT_RB1:*/
- /* Filter Coefficient red/blue channels S_WEIGHT_RB1 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_RB1
- #endif /* MRV_DPF_S_WEIGHT_RB1 */
- /*****************************************************************************/
- /**
- * register: isp_dpf_s_weight_rb_5_6: Spatial Weights red/blue channels 5 6
- * (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: S_WEIGHT_RB6:*/
- /* Filter Coefficient red/blue channels S_WEIGHT_RB6 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_RB6
- #endif /* MRV_DPF_S_WEIGHT_RB6 */
- /* Slice: S_WEIGHT_RB5:*/
- /* Filter Coefficient red/blue channels S_WEIGHT_RB5 */
- /* 5 bit unsigned, value range 1/16 to 16/16 */
- /* Default value is 16/16 (*Default*)*/
- #ifdef MRV_DPF_S_WEIGHT_RB5
- #endif /* MRV_DPF_S_WEIGHT_RB5 */
- /*****************************************************************************/
- /**
- * register array: isp_dpf_nll_coeff: Noise Level Lookup Coefficient
- * (0x0040 + n*0x4 (n=0..16))
- *
- *****************************************************************************/
- /* Slice: nll_coeff_n:*/
- /* Noise Level Lookup Table Coefficient nll_coeff_n */
- /* 10 bit unsigned, value range 1/1024 to 1023/1024 (*Default*)*/
- #ifdef MRV_DPF_NLL_COEFF_N
- #endif /* MRV_DPF_NLL_COEFF_N */
- /*****************************************************************************/
- /**
- * register: isp_dpf_nf_gain_r: noise function gain for red pixels (0x00000064)
- *
- *****************************************************************************/
- /* Slice: DPF_NF_GAIN_R:*/
- /* Noise Function (NF) Gain that replaces the AWB gain for red pixels.*/
- /* 12 bit unsigned integer format: gain=1 -> 0x100 */
- #ifdef MRV_DPF_DPF_NF_GAIN_R
- #endif /* MRV_DPF_DPF_NF_GAIN_R */
- /*****************************************************************************/
- /**
- * register: isp_dpf_nf_gain_gr: noise function gain for green in red pixels
- * (0x00000068)
- *
- *****************************************************************************/
- /* Slice: DPF_NF_GAIN_GR:*/
- /* Noise Function (NF) Gain that replaces the AWB gain for green pixels in a */
- /* red line.*/
- /* 12 bit unsigned integer format: gain=1 -> 0x100 */
- #ifdef MRV_DPF_DPF_NF_GAIN_GR
- #endif /* MRV_DPF_DPF_NF_GAIN_GR */
- /*****************************************************************************/
- /**
- * register: isp_dpf_nf_gain_gb: noise function gain for green in blue pixels
- * (0x0000006c)
- *
- *****************************************************************************/
- /* Slice: DPF_NF_GAIN_GB:*/
- /* Noise Function (NF) Gain that replaces the AWB gain for green pixels in a */
- /* blue line.*/
- /* 12 bit unsigned integer format: gain=1 -> 0x100 */
- #ifdef MRV_DPF_DPF_NF_GAIN_GB
- #endif /* MRV_DPF_DPF_NF_GAIN_GB */
- /*****************************************************************************/
- /**
- * register: isp_dpf_nf_gain_b: noise function gain for blue pixels (0x00000070)
- *
- *****************************************************************************/
- /* Slice: DPF_NF_GAIN_B:*/
- /* Noise Function (NF) Gain that replaces the AWB gain for blue pixels.*/
- /* 12 bit unsigned integer format: gain=1 -> 0x100 */
- #ifdef MRV_DPF_DPF_NF_GAIN_B
- #endif /* MRV_DPF_DPF_NF_GAIN_B */
- /*****************************************************************************/
- /* ISP Defect Pixel Cluster Correction Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_dpcc_mode: mode control for DPCC block (0x0000)
- *
- *****************************************************************************/
- /* Slice: STAGE1_ENABLE:*/
- /* 1: enable stage1 *Default**/
- /* 0: bypass stage1 */
- #ifdef MRV_DPCC_STAGE1_ENABLE
- #endif /* MRV_DPCC_STAGE1_ENABLE */
- /* Slice: GRAYSCALE_MODE:*/
- /* 1: enable gray scale data input from black and white sensors (without color filter array)*/
- /* 0: BAYER DATA INPUT *Default**/
- #ifdef MRV_DPCC_GRAYSCALE_MODE
- #endif /* MRV_DPCC_GRAYSCALE_MODE */
- /* Slice: ISP_DPCC_enable:*/
- /* 1: enable DPCC */
- /* 0: bypass DPCC *Default**/
- #ifdef MRV_DPCC_ISP_DPCC_ENABLE
- #endif /* MRV_DPCC_ISP_DPCC_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_output_mode: interpolation mode for correction unit
- * (0x00000004)
- *
- *****************************************************************************/
- /* Slice: STAGE1_RB_3x3:*/
- /* 1: stage1 red/blue 9 pixel (3x3) output median */
- /* 0: stage1 red/blue 4 or 5 pixel output median *Default**/
- #ifdef MRV_DPCC_STAGE1_RB_3X3
- #endif /* MRV_DPCC_STAGE1_RB_3X3 */
- /* Slice: STAGE1_G_3x3:*/
- /* 1: stage1 green 9 pixel (3x3) output median */
- /* 0: stage1 green 4 or 5 pixel output median *Default**/
- #ifdef MRV_DPCC_STAGE1_G_3X3
- #endif /* MRV_DPCC_STAGE1_G_3X3 */
- /* Slice: STAGE1_INCL_RB_CENTER:*/
- /* 1: stage1 include center pixel for red/blue output median 2x2+1 */
- /* *Default* 0: stage1 do not include center pixel for red/blue output median 2x2 */
- #ifdef MRV_DPCC_STAGE1_INCL_RB_CENTER
- #endif /* MRV_DPCC_STAGE1_INCL_RB_CENTER */
- /* Slice: STAGE1_INCL_GREEN_CENTER:*/
- /* 1: stage1 include center pixel for green output median 2x2+1 *Default**/
- /* 0: stage1 do not include center pixel for green output median 2x2 */
- #ifdef MRV_DPCC_STAGE1_INCL_GREEN_CENTER
- #endif /* MRV_DPCC_STAGE1_INCL_GREEN_CENTER */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_set_use: DPCC methods set usage for detection
- * (0x00000008)
- *
- *****************************************************************************/
- /* Slice: STAGE1_USE_FIX_SET:*/
- /* 1: stage1 use hard coded methods set *Default**/
- /* 0: stage1 do not use hard coded methods set */
- #ifdef MRV_DPCC_STAGE1_USE_FIX_SET
- #endif /* MRV_DPCC_STAGE1_USE_FIX_SET */
- /* Slice: STAGE1_USE_SET_3:*/
- /* 1: stage1 use methods set 3 */
- /* 0: stage1 do not use methods set 3 *Default**/
- #ifdef MRV_DPCC_STAGE1_USE_SET_3
- #endif /* MRV_DPCC_STAGE1_USE_SET_3 */
- /* Slice: STAGE1_USE_SET_2:*/
- /* 1: stage1 use methods set 2 */
- /* 0: stage1 do not use methods set 2 *Default**/
- #ifdef MRV_DPCC_STAGE1_USE_SET_2
- #endif /* MRV_DPCC_STAGE1_USE_SET_2 */
- /* Slice: STAGE1_USE_SET_1:*/
- /* 1: stage1 use methods set 1 *Default**/
- /* 0: stage1 do not use methods set 1 */
- #ifdef MRV_DPCC_STAGE1_USE_SET_1
- #endif /* MRV_DPCC_STAGE1_USE_SET_1 */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_methods_set_1: Methods enable bits for SET_1
- * (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: RG_RED_BLUE1_ENABLE:*/
- /* 1: enable Rank Gradient check for red_blue *Default**/
- /* 0: bypass Rank Gradient check for red_blue */
- #ifdef MRV_DPCC_RG_RED_BLUE1_ENABLE
- #endif /* MRV_DPCC_RG_RED_BLUE1_ENABLE */
- /* Slice: RND_RED_BLUE1_ENABLE:*/
- /* 1: enable Rank Neighbor Difference check for red_blue *Default**/
- /* 0: bypass Rank Neighbor Difference check for red_blue */
- #ifdef MRV_DPCC_RND_RED_BLUE1_ENABLE
- #endif /* MRV_DPCC_RND_RED_BLUE1_ENABLE */
- /* Slice: RO_RED_BLUE1_ENABLE:*/
- /* 1: enable Rank Order check for red_blue *Default**/
- /* 0: bypass Rank Order check for red_blue */
- #ifdef MRV_DPCC_RO_RED_BLUE1_ENABLE
- #endif /* MRV_DPCC_RO_RED_BLUE1_ENABLE */
- /* Slice: LC_RED_BLUE1_ENABLE:*/
- /* 1: enable Line check for red_blue *Default**/
- /* 0: bypass Line check for red_blue */
- #ifdef MRV_DPCC_LC_RED_BLUE1_ENABLE
- #endif /* MRV_DPCC_LC_RED_BLUE1_ENABLE */
- /* Slice: PG_RED_BLUE1_ENABLE:*/
- /* 1: enable Peak Gradient check for red_blue *Default**/
- /* 0: bypass Peak Gradient check for red_blue */
- #ifdef MRV_DPCC_PG_RED_BLUE1_ENABLE
- #endif /* MRV_DPCC_PG_RED_BLUE1_ENABLE */
- /* Slice: RG_GREEN1_ENABLE:*/
- /* 1: enable Rank Gradient check for green *Default**/
- /* 0: bypass Rank Gradient check for green */
- #ifdef MRV_DPCC_RG_GREEN1_ENABLE
- #endif /* MRV_DPCC_RG_GREEN1_ENABLE */
- /* Slice: RND_GREEN1_ENABLE:*/
- /* 1: enable Rank Neighbor Difference check for green *Default**/
- /* 0: bypass Rank Neighbor Difference check for green */
- #ifdef MRV_DPCC_RND_GREEN1_ENABLE
- #endif /* MRV_DPCC_RND_GREEN1_ENABLE */
- /* Slice: RO_GREEN1_ENABLE:*/
- /* 1: enable Rank Order check for green *Default**/
- /* 0: bypass Rank Order check for green */
- #ifdef MRV_DPCC_RO_GREEN1_ENABLE
- #endif /* MRV_DPCC_RO_GREEN1_ENABLE */
- /* Slice: LC_GREEN1_ENABLE:*/
- /* 1: enable Line check for green *Default**/
- /* 0: bypass Line check for green */
- #ifdef MRV_DPCC_LC_GREEN1_ENABLE
- #endif /* MRV_DPCC_LC_GREEN1_ENABLE */
- /* Slice: PG_GREEN1_ENABLE:*/
- /* 1: enable Peak Gradient check for green *Default**/
- /* 0: bypass Peak Gradient check for green */
- #ifdef MRV_DPCC_PG_GREEN1_ENABLE
- #endif /* MRV_DPCC_PG_GREEN1_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_methods_set_2: Methods enable bits for SET_2
- * (0x00000010)
- *
- *****************************************************************************/
- /* Slice: RG_RED_BLUE2_ENABLE:*/
- /* 1: enable Rank Gradient check for red_blue *Default**/
- /* 0: bypass Rank Gradient check for red_blue */
- #ifdef MRV_DPCC_RG_RED_BLUE2_ENABLE
- #endif /* MRV_DPCC_RG_RED_BLUE2_ENABLE */
- /* Slice: RND_RED_BLUE2_ENABLE:*/
- /* 1: enable Rank Neighbor Difference check for red_blue *Default**/
- /* 0: bypass Rank Neighbor Difference check for red_blue */
- #ifdef MRV_DPCC_RND_RED_BLUE2_ENABLE
- #endif /* MRV_DPCC_RND_RED_BLUE2_ENABLE */
- /* Slice: RO_RED_BLUE2_ENABLE:*/
- /* 1: enable Rank Order check for red_blue *Default**/
- /* 0: bypass Rank Order check for red_blue */
- #ifdef MRV_DPCC_RO_RED_BLUE2_ENABLE
- #endif /* MRV_DPCC_RO_RED_BLUE2_ENABLE */
- /* Slice: LC_RED_BLUE2_ENABLE:*/
- /* 1: enable Line check for red_blue *Default**/
- /* 0: bypass Line check for red_blue */
- #ifdef MRV_DPCC_LC_RED_BLUE2_ENABLE
- #endif /* MRV_DPCC_LC_RED_BLUE2_ENABLE */
- /* Slice: PG_RED_BLUE2_ENABLE:*/
- /* 1: enable Peak Gradient check for red_blue *Default**/
- /* 0: bypass Peak Gradient check for red_blue */
- #ifdef MRV_DPCC_PG_RED_BLUE2_ENABLE
- #endif /* MRV_DPCC_PG_RED_BLUE2_ENABLE */
- /* Slice: RG_GREEN2_ENABLE:*/
- /* 1: enable Rank Gradient check for green *Default**/
- /* 0: bypass Rank Gradient check for green */
- #ifdef MRV_DPCC_RG_GREEN2_ENABLE
- #endif /* MRV_DPCC_RG_GREEN2_ENABLE */
- /* Slice: RND_GREEN2_ENABLE:*/
- /* 1: enable Rank Neighbor Difference check for green *Default**/
- /* 0: bypass Rank Neighbor Difference check for green */
- #ifdef MRV_DPCC_RND_GREEN2_ENABLE
- #endif /* MRV_DPCC_RND_GREEN2_ENABLE */
- /* Slice: RO_GREEN2_ENABLE:*/
- /* 1: enable Rank Order check for green *Default**/
- /* 0: bypass Rank Order check for green */
- #ifdef MRV_DPCC_RO_GREEN2_ENABLE
- #endif /* MRV_DPCC_RO_GREEN2_ENABLE */
- /* Slice: LC_GREEN2_ENABLE:*/
- /* 1: enable Line check for green *Default**/
- /* 0: bypass Line check for green */
- #ifdef MRV_DPCC_LC_GREEN2_ENABLE
- #endif /* MRV_DPCC_LC_GREEN2_ENABLE */
- /* Slice: PG_GREEN2_ENABLE:*/
- /* 1: enable Peak Gradient check for green *Default**/
- /* 0: bypass Peak Gradient check for green */
- #ifdef MRV_DPCC_PG_GREEN2_ENABLE
- #endif /* MRV_DPCC_PG_GREEN2_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_methods_set_3: Methods enable bits for SET_3
- * (0x00000014)
- *
- *****************************************************************************/
- /* Slice: RG_RED_BLUE3_ENABLE:*/
- /* 1: enable Rank Gradient check for red_blue *Default**/
- /* 0: bypass Rank Gradient check for red_blue */
- #ifdef MRV_DPCC_RG_RED_BLUE3_ENABLE
- #endif /* MRV_DPCC_RG_RED_BLUE3_ENABLE */
- /* Slice: RND_RED_BLUE3_ENABLE:*/
- /* 1: enable Rank Neighbor Difference check for red_blue *Default**/
- /* 0: bypass Rank Neighbor Difference check for red_blue */
- #ifdef MRV_DPCC_RND_RED_BLUE3_ENABLE
- #endif /* MRV_DPCC_RND_RED_BLUE3_ENABLE */
- /* Slice: RO_RED_BLUE3_ENABLE:*/
- /* 1: enable Rank Order check for red_blue *Default**/
- /* 0: bypass Rank Order check for red_blue */
- #ifdef MRV_DPCC_RO_RED_BLUE3_ENABLE
- #endif /* MRV_DPCC_RO_RED_BLUE3_ENABLE */
- /* Slice: LC_RED_BLUE3_ENABLE:*/
- /* 1: enable Line check for red_blue *Default**/
- /* 0: bypass Line check for red_blue */
- #ifdef MRV_DPCC_LC_RED_BLUE3_ENABLE
- #endif /* MRV_DPCC_LC_RED_BLUE3_ENABLE */
- /* Slice: PG_RED_BLUE3_ENABLE:*/
- /* 1: enable Peak Gradient check for red_blue *Default**/
- /* 0: bypass Peak Gradient check for red_blue */
- #ifdef MRV_DPCC_PG_RED_BLUE3_ENABLE
- #endif /* MRV_DPCC_PG_RED_BLUE3_ENABLE */
- /* Slice: RG_GREEN3_ENABLE:*/
- /* 1: enable Rank Gradient check for green *Default**/
- /* 0: bypass Rank Gradient check for green */
- #ifdef MRV_DPCC_RG_GREEN3_ENABLE
- #endif /* MRV_DPCC_RG_GREEN3_ENABLE */
- /* Slice: RND_GREEN3_ENABLE:*/
- /* 1: enable Rank Neighbor Difference check for green *Default**/
- /* 0: bypass Rank Neighbor Difference check for green */
- #ifdef MRV_DPCC_RND_GREEN3_ENABLE
- #endif /* MRV_DPCC_RND_GREEN3_ENABLE */
- /* Slice: RO_GREEN3_ENABLE:*/
- /* 1: enable Rank Order check for green *Default**/
- /* 0: bypass Rank Order check for green */
- #ifdef MRV_DPCC_RO_GREEN3_ENABLE
- #endif /* MRV_DPCC_RO_GREEN3_ENABLE */
- /* Slice: LC_GREEN3_ENABLE:*/
- /* 1: enable Line check for green *Default**/
- /* 0: bypass Line check for green */
- #ifdef MRV_DPCC_LC_GREEN3_ENABLE
- #endif /* MRV_DPCC_LC_GREEN3_ENABLE */
- /* Slice: PG_GREEN3_ENABLE:*/
- /* 1: enable Peak Gradient check for green *Default**/
- /* 0: bypass Peak Gradient check for green */
- #ifdef MRV_DPCC_PG_GREEN3_ENABLE
- #endif /* MRV_DPCC_PG_GREEN3_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_line_thresh_1: Line threshold SET_1 (0x00000018)
- *
- *****************************************************************************/
- /* Slice: LINE_THR_1_RB:*/
- /* line threshold for set 1 red/blue */
- #ifdef MRV_DPCC_LINE_THR_1_RB
- #endif /* MRV_DPCC_LINE_THR_1_RB */
- /* Slice: LINE_THR_1_G:*/
- /* line threshold for set 1 green */
- #ifdef MRV_DPCC_LINE_THR_1_G
- #endif /* MRV_DPCC_LINE_THR_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_line_mad_fac_1: Mean Absolute Difference (MAD) factor
- * for Line check set 1 (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: LINE_MAD_FAC_1_RB:*/
- /* line MAD factor for set 1 red/blue */
- #ifdef MRV_DPCC_LINE_MAD_FAC_1_RB
- #endif /* MRV_DPCC_LINE_MAD_FAC_1_RB */
- /* Slice: LINE_MAD_FAC_1_G:*/
- /* line MAD factor for set 1 green */
- #ifdef MRV_DPCC_LINE_MAD_FAC_1_G
- #endif /* MRV_DPCC_LINE_MAD_FAC_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_pg_fac_1: Peak gradient factor for set 1 (0x00000020)
- *
- *****************************************************************************/
- /* Slice: PG_FAC_1_RB:*/
- /* Peak gradient factor for set 1 red/blue */
- #ifdef MRV_DPCC_PG_FAC_1_RB
- #endif /* MRV_DPCC_PG_FAC_1_RB */
- /* Slice: PG_FAC_1_G:*/
- /* Peak gradient factor for set 1 green */
- #ifdef MRV_DPCC_PG_FAC_1_G
- #endif /* MRV_DPCC_PG_FAC_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rnd_thresh_1: Rank Neighbor Difference threshold for
- * set 1 (0x00000024)
- *
- *****************************************************************************/
- /* Slice: RND_THR_1_RB:*/
- /* Rank Neighbor Difference threshold for set 1 red/blue */
- #ifdef MRV_DPCC_RND_THR_1_RB
- #endif /* MRV_DPCC_RND_THR_1_RB */
- /* Slice: RND_THR_1_G:*/
- /* Rank Neighbor Difference threshold for set 1 green */
- #ifdef MRV_DPCC_RND_THR_1_G
- #endif /* MRV_DPCC_RND_THR_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rg_fac_1: Rank gradient factor for set 1 (0x00000028)
- *
- *****************************************************************************/
- /* Slice: RG_FAC_1_RB:*/
- /* Rank gradient factor for set 1 red/blue */
- #ifdef MRV_DPCC_RG_FAC_1_RB
- #endif /* MRV_DPCC_RG_FAC_1_RB */
- /* Slice: RG_FAC_1_G:*/
- /* Rank gradient factor for set 1 green */
- #ifdef MRV_DPCC_RG_FAC_1_G
- #endif /* MRV_DPCC_RG_FAC_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_line_thresh_2: Line threshold SET_2 (0x0000002C)
- *
- *****************************************************************************/
- /* Slice: LINE_THR_2_RB:*/
- /* line threshold for set 1 red/blue */
- #ifdef MRV_DPCC_LINE_THR_2_RB
- #endif /* MRV_DPCC_LINE_THR_2_RB */
- /* Slice: LINE_THR_2_G:*/
- /* line threshold for set 1 green */
- #ifdef MRV_DPCC_LINE_THR_2_G
- #endif /* MRV_DPCC_LINE_THR_2_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_line_mad_fac_2: Mean Absolute Difference (MAD) factor
- * for Line check set 1 (0x00000030)
- *
- *****************************************************************************/
- /* Slice: LINE_MAD_FAC_2_RB:*/
- /* line MAD factor for set 1 red/blue */
- #ifdef MRV_DPCC_LINE_MAD_FAC_2_RB
- #endif /* MRV_DPCC_LINE_MAD_FAC_2_RB */
- /* Slice: LINE_MAD_FAC_2_G:*/
- /* line MAD factor for set 1 green */
- #ifdef MRV_DPCC_LINE_MAD_FAC_2_G
- #endif /* MRV_DPCC_LINE_MAD_FAC_2_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_pg_fac_2: Peak gradient factor for set 1 (0x00000034)
- *
- *****************************************************************************/
- /* Slice: PG_FAC_2_RB:*/
- /* Peak gradient factor for set 1 red/blue */
- #ifdef MRV_DPCC_PG_FAC_2_RB
- #endif /* MRV_DPCC_PG_FAC_2_RB */
- /* Slice: PG_FAC_2_G:*/
- /* Peak gradient factor for set 1 green */
- #ifdef MRV_DPCC_PG_FAC_2_G
- #endif /* MRV_DPCC_PG_FAC_2_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rnd_thresh_2: Rank Neighbor Difference threshold for
- * set 1 (0x00000038)
- *
- *****************************************************************************/
- /* Slice: RND_THR_2_RB:*/
- /* Rank Neighbor Difference threshold for set 1 red/blue */
- #ifdef MRV_DPCC_RND_THR_2_RB
- #endif /* MRV_DPCC_RND_THR_2_RB */
- /* Slice: RND_THR_2_G:*/
- /* Rank Neighbor Difference threshold for set 1 green */
- #ifdef MRV_DPCC_RND_THR_2_G
- #endif /* MRV_DPCC_RND_THR_2_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rg_fac_2: Rank gradient factor for set 1 (0x0000003C)
- *
- *****************************************************************************/
- /* Slice: RG_FAC_2_RB:*/
- /* Rank gradient factor for set 1 red/blue */
- #ifdef MRV_DPCC_RG_FAC_2_RB
- #endif /* MRV_DPCC_RG_FAC_2_RB */
- /* Slice: RG_FAC_2_G:*/
- /* Rank gradient factor for set 1 green */
- #ifdef MRV_DPCC_RG_FAC_2_G
- #endif /* MRV_DPCC_RG_FAC_2_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_line_thresh_3: Line threshold SET_3 (0x00000040)
- *
- *****************************************************************************/
- /* Slice: LINE_THR_3_RB:*/
- /* line threshold for set 1 red/blue */
- #ifdef MRV_DPCC_LINE_THR_3_RB
- #endif /* MRV_DPCC_LINE_THR_3_RB */
- /* Slice: LINE_THR_3_G:*/
- /* line threshold for set 1 green */
- #ifdef MRV_DPCC_LINE_THR_3_G
- #endif /* MRV_DPCC_LINE_THR_3_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_line_mad_fac_3: Mean Absolute Difference (MAD) factor
- * for Line check set 1 (0x00000044)
- *
- *****************************************************************************/
- /* Slice: LINE_MAD_FAC_3_RB:*/
- /* line MAD factor for set 1 red/blue */
- #ifdef MRV_DPCC_LINE_MAD_FAC_3_RB
- #endif /* MRV_DPCC_LINE_MAD_FAC_3_RB */
- /* Slice: LINE_MAD_FAC_3_G:*/
- /* line MAD factor for set 1 green */
- #ifdef MRV_DPCC_LINE_MAD_FAC_3_G
- #endif /* MRV_DPCC_LINE_MAD_FAC_3_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_pg_fac_3: Peak gradient factor for set 1 (0x00000048)
- *
- *****************************************************************************/
- /* Slice: PG_FAC_3_RB:*/
- /* Peak gradient factor for set 1 red/blue */
- #ifdef MRV_DPCC_PG_FAC_3_RB
- #endif /* MRV_DPCC_PG_FAC_3_RB */
- /* Slice: PG_FAC_3_G:*/
- /* Peak gradient factor for set 1 green */
- #ifdef MRV_DPCC_PG_FAC_3_G
- #endif /* MRV_DPCC_PG_FAC_3_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rnd_thresh_3: Rank Neighbor Difference threshold for
- * set 1 (0x0000004C)
- *
- *****************************************************************************/
- /* Slice: RND_THR_3_RB:*/
- /* Rank Neighbor Difference threshold for set 1 red/blue */
- #ifdef MRV_DPCC_RND_THR_3_RB
- #endif /* MRV_DPCC_RND_THR_3_RB */
- /* Slice: RND_THR_3_G:*/
- /* Rank Neighbor Difference threshold for set 1 green */
- #ifdef MRV_DPCC_RND_THR_3_G
- #endif /* MRV_DPCC_RND_THR_3_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rg_fac_3: Rank gradient factor for set 1 (0x00000050)
- *
- *****************************************************************************/
- /* Slice: RG_FAC_3_RB:*/
- /* Rank gradient factor for set 1 red/blue */
- #ifdef MRV_DPCC_RG_FAC_3_RB
- #endif /* MRV_DPCC_RG_FAC_3_RB */
- /* Slice: RG_FAC_3_G:*/
- /* Rank gradient factor for set 1 green */
- #ifdef MRV_DPCC_RG_FAC_3_G
- #endif /* MRV_DPCC_RG_FAC_3_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_ro_limits: Rank Order Limits (0x00000054)
- *
- *****************************************************************************/
- /* Slice: RO_LIM_3_RB:*/
- /* Rank order limit for set 3 red/blue */
- #ifdef MRV_DPCC_RO_LIM_3_RB
- #endif /* MRV_DPCC_RO_LIM_3_RB */
- /* Slice: RO_LIM_3_G:*/
- /* Rank order limit for set 3 green */
- #ifdef MRV_DPCC_RO_LIM_3_G
- #endif /* MRV_DPCC_RO_LIM_3_G */
- /* Slice: RO_LIM_2_RB:*/
- /* Rank order limit for set 2 red/blue */
- #ifdef MRV_DPCC_RO_LIM_2_RB
- #endif /* MRV_DPCC_RO_LIM_2_RB */
- /* Slice: RO_LIM_2_G:*/
- /* Rank order limit for set 2 green */
- #ifdef MRV_DPCC_RO_LIM_2_G
- #endif /* MRV_DPCC_RO_LIM_2_G */
- /* Slice: RO_LIM_1_RB:*/
- /* Rank order limit for set 1 red/blue */
- #ifdef MRV_DPCC_RO_LIM_1_RB
- #endif /* MRV_DPCC_RO_LIM_1_RB */
- /* Slice: RO_LIM_1_G:*/
- /* Rank order limit for set 1 green */
- #ifdef MRV_DPCC_RO_LIM_1_G
- #endif /* MRV_DPCC_RO_LIM_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_rnd_offs: Differential Rank Offsets for Rank Neighbor
- * Difference (0x00000058)
- *
- *****************************************************************************/
- /* Slice: RND_OFFS_3_RB:*/
- /* Rank Offset to Neighbor for set 3 red/blue */
- #ifdef MRV_DPCC_RND_OFFS_3_RB
- #endif /* MRV_DPCC_RND_OFFS_3_RB */
- /* Slice: RND_OFFS_3_G:*/
- /* Rank Offset to Neighbor for set 3 green */
- #ifdef MRV_DPCC_RND_OFFS_3_G
- #endif /* MRV_DPCC_RND_OFFS_3_G */
- /* Slice: RND_OFFS_2_RB:*/
- /* Rank Offset to Neighbor for set 2 red/blue */
- #ifdef MRV_DPCC_RND_OFFS_2_RB
- #endif /* MRV_DPCC_RND_OFFS_2_RB */
- /* Slice: RND_OFFS_2_G:*/
- /* Rank Offset to Neighbor for set 2 green */
- #ifdef MRV_DPCC_RND_OFFS_2_G
- #endif /* MRV_DPCC_RND_OFFS_2_G */
- /* Slice: RND_OFFS_1_RB:*/
- /* Rank Offset to Neighbor for set 1 red/blue */
- #ifdef MRV_DPCC_RND_OFFS_1_RB
- #endif /* MRV_DPCC_RND_OFFS_1_RB */
- /* Slice: RND_OFFS_1_G:*/
- /* Rank Offset to Neighbor for set 1 green */
- #ifdef MRV_DPCC_RND_OFFS_1_G
- #endif /* MRV_DPCC_RND_OFFS_1_G */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_bpt_ctrl: bad pixel table settings (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: BPT_RB_3x3:*/
- /* 1: if BPT active red/blue 9 pixel (3x3) output median */
- /* 0: if BPT active red/blue 4 or 5 pixel output median *Default**/
- #ifdef MRV_DPCC_BPT_RB_3X3
- #endif /* MRV_DPCC_BPT_RB_3X3 */
- /* Slice: BPT_G_3x3:*/
- /* 1: if BPT active green 9 pixel (3x3) output median */
- /* 0: if BPT active green 4 or 5 pixel output median *Default**/
- #ifdef MRV_DPCC_BPT_G_3X3
- #endif /* MRV_DPCC_BPT_G_3X3 */
- /* Slice: BPT_INCL_RB_CENTER:*/
- /* 1: if BPT active include center pixel for red/blue output median 2x2+1 */
- /* 0: if BPT active do not include center pixel for red/blue output median 2x2 *Default**/
- #ifdef MRV_DPCC_BPT_INCL_RB_CENTER
- #endif /* MRV_DPCC_BPT_INCL_RB_CENTER */
- /* Slice: BPT_INCL_GREEN_CENTER:*/
- /* 1: if BPT active include center pixel for green output median 2x2+1 */
- /* 0: if BPT active do not include center pixel for green output median 2x2 *Default**/
- #ifdef MRV_DPCC_BPT_INCL_GREEN_CENTER
- #endif /* MRV_DPCC_BPT_INCL_GREEN_CENTER */
- /* Slice: BPT_USE_FIX_SET:*/
- /* 1: for BPT write use hard coded methods set */
- /* 0: for BPT write do not use hard coded methods set *Default**/
- #ifdef MRV_DPCC_BPT_USE_FIX_SET
- #endif /* MRV_DPCC_BPT_USE_FIX_SET */
- /* Slice: BPT_USE_SET_3:*/
- /* 1: for BPT write use methods set 3 */
- /* 0: for BPT write do not use methods set 3 *Default**/
- #ifdef MRV_DPCC_BPT_USE_SET_3
- #endif /* MRV_DPCC_BPT_USE_SET_3 */
- /* Slice: BPT_USE_SET_2:*/
- /* 1: for BPT write use methods set 2 */
- /* 0: for BPT write do not use methods set 2 *Default**/
- #ifdef MRV_DPCC_BPT_USE_SET_2
- #endif /* MRV_DPCC_BPT_USE_SET_2 */
- /* Slice: BPT_USE_SET_1:*/
- /* 1: for BPT write use methods set 1 */
- /* 0: for BPT write do not use methods set 1 *Default**/
- #ifdef MRV_DPCC_BPT_USE_SET_1
- #endif /* MRV_DPCC_BPT_USE_SET_1 */
- /* Slice: bpt_cor_en:*/
- /* table based correction enable */
- /* 1: table based correction is enabled */
- /* 0: table based correction is disabled */
- #ifdef MRV_DPCC_BPT_COR_EN
- #endif /* MRV_DPCC_BPT_COR_EN */
- /* Slice: bpt_det_en:*/
- /* Bad pixel detection write enable */
- /* 1: bad pixel detection write to memory is enabled */
- /* 0: bad pixel detection write to memory is disabled */
- #ifdef MRV_DPCC_BPT_DET_EN
- #endif /* MRV_DPCC_BPT_DET_EN */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_bpt_addr: TABLE Start Address for table-based correction
- * algorithm (0x00000064)
- *
- *****************************************************************************/
- /* Slice: bp_table_addr:*/
- /* Table RAM start address for read or write operations. The address counter */
- /* is incremented at each read or write access to the data register (auto-*/
- /* increment mechanism).*/
- #ifdef MRV_DPCC_BP_TABLE_ADDR
- #endif /* MRV_DPCC_BP_TABLE_ADDR */
- /*****************************************************************************/
- /**
- * register: isp_dpcc_bpt_data: TABLE DATA register for read and write access
- * of table RAM (0x00000068)
- *
- *****************************************************************************/
- /* Slice: bpt_v_addr:*/
- /* Bad Pixel vertical address (pixel position)*/
- #ifdef MRV_DPCC_BPT_V_ADDR
- #endif /* MRV_DPCC_BPT_V_ADDR */
- /* Slice: bpt_h_addr:*/
- /* Bad Pixel horizontal address (pixel position)*/
- #ifdef MRV_DPCC_BPT_H_ADDR
- #endif /* MRV_DPCC_BPT_H_ADDR */
- /*****************************************************************************/
- /* ISP Wide Dynamic Range */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: isp_wdr_ctrl: Control Bits for Wide Dynamic Range Unit (0x00000000)
- *
- *****************************************************************************/
- /* Slice: WDR_RGB_FACTOR:*/
- /* rgb_factor defines how much influence the RGBmax approach has in comparison */
- /* to Y. The illumination reference Iref is calculated according to the following */
- /* formula:*/
- /**/
- /* Iref = (WDR_RGB_FACTOR * RGBYmax_tr + (8 - WDR_RGB_FACTOR) * Y) / 8 */
- /**/
- /* So, rgb_factor = 0 means that the standard approach is used. Use of this */
- /* factor requires that Iref has been selected, see WDR_USE_IREF.*/
- /**/
- /* Value range of rgb_factor: 0...8 */
- #ifdef MRV_WDR_RGB_FACTOR
- #endif /* MRV_WDR_RGB_FACTOR */
- /* Slice: WDR_DISABLE_TRANSIENT:*/
- /* 1: disable transient between Y and RGBY_max */
- /* 0: calculate transient between Y and RGBY_max (for noise reduction) *Default**/
- /* Use of this bit requires that Iref has been selected, see WDR_USE_IREF.*/
- #ifdef MRV_WDR_DISABLE_TRANSIENT
- #endif /* MRV_WDR_DISABLE_TRANSIENT */
- /* Slice: WDR_USE_RGB7_8:*/
- /* 1: decrease RGBmax by 7/8 (for noise reduction)*/
- /* 0: do not modify RGBmax *Default**/
- /* Use of this bit requires that Iref has been selected, see WDR_USE_IREF.*/
- #ifdef MRV_WDR_USE_RGB7_8
- #endif /* MRV_WDR_USE_RGB7_8 */
- /* Slice: WDR_USE_Y9_8:*/
- /* 1: use R G B and Y*9/8 for maximum value calculation (for noise reduction)*/
- /* 0: only use R G B for maximum value calculation (RGBYmax approach) *Default**/
- /* Use of this bit requires that Iref has been selected, see WDR_USE_IREF.*/
- #ifdef MRV_WDR_USE_Y9_8
- #endif /* MRV_WDR_USE_Y9_8 */
- /* Slice: WDR_USE_IREF:*/
- /* 1: use Iref (Illumination reference) instead of Y for ToneMapping and Gain calculation */
- /* 0: use Y for ToneMapping and Gain calculation *Default**/
- /* Iref is calculated according to the following formula:*/
- /* Iref = (WDR_RGB_FACTOR * RGBmax_tr + (8 - WDR_RGB_FACTOR) * Y) / 8 */
- #ifdef MRV_WDR_USE_IREF
- #endif /* MRV_WDR_USE_IREF */
- /* Slice: WDR_CR_MAPPING_DISABLE:*/
- /* 1: disable (bypass) Chrominance Mapping */
- /* 0: enable Chrominance Mapping *Default**/
- /* requires that Luminance/chrominance color space has been selected */
- #ifdef MRV_WDR_CR_MAPPING_DISABLE
- #endif /* MRV_WDR_CR_MAPPING_DISABLE */
- /* Slice: WDR_COLOR_SPACE_SELECT:*/
- /* 1: R, G, B color space */
- /* 0: Luminance/Chrominance color space *Default**/
- #ifdef MRV_WDR_COLOR_SPACE_SELECT
- #endif /* MRV_WDR_COLOR_SPACE_SELECT */
- /* Slice: WDR_ENABLE:*/
- /* 1: enable WDR */
- /* 0: bypass WDR *Default**/
- #ifdef MRV_WDR_ENABLE
- #endif /* MRV_WDR_ENABLE */
- /*****************************************************************************/
- /**
- * register: isp_wdr_tonecurve_1: Tone Curve sample points dYn definition
- * (part 1) (0x00000004)
- *
- * isp_wdr_tonecurve_1_shd: Tone Curve sample points dYn definition
- * shadow register (part 1) (0x000000a0)
- *
- *****************************************************************************/
- /* Slice: WDR_dY8:*/
- /* Tone curve sample point definition dY8 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY8
- #endif /* MRV_WDR_DY8 */
- /* Slice: WDR_dY7:*/
- /* Tone curve sample point definition dY7 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY7
- #endif /* MRV_WDR_DY7 */
- /* Slice: WDR_dY6:*/
- /* Tone curve sample point definition dY6 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY6
- #endif /* MRV_WDR_DY6 */
- /* Slice: WDR_dY5:*/
- /* Tone curve sample point definition dY5 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY5
- #endif /* MRV_WDR_DY5 */
- /* Slice: WDR_dY4:*/
- /* Tone curve sample point definition dY4 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY4
- #endif /* MRV_WDR_DY4 */
- /* Slice: WDR_dY3:*/
- /* Tone curve sample point definition dY3 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY3
- #endif /* MRV_WDR_DY3 */
- /* Slice: WDR_dY2:*/
- /* Tone curve sample point definition dY2 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY2
- #endif /* MRV_WDR_DY2 */
- /* Slice: WDR_dY1:*/
- /* Tone curve sample point definition dY1 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY1
- #endif /* MRV_WDR_DY1 */
- /*****************************************************************************/
- /**
- * register: isp_wdr_tonecurve_2: Tone Curve sample points dYn definition
- * (part 2) (0x00000008)
- *
- * isp_wdr_tonecurve_2_shd: Tone Curve sample points dYn definition
- * shadow register (part 2) (0x000000a4)
- *
- *****************************************************************************/
- /* Slice: WDR_dY16:*/
- /* Tone curve sample point definition dY16 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY16
- #endif /* MRV_WDR_DY16 */
- /* Slice: WDR_dY15:*/
- /* Tone curve sample point definition dY15 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY15
- #endif /* MRV_WDR_DY15 */
- /* Slice: WDR_dY14:*/
- /* Tone curve sample point definition dY14 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY14
- #endif /* MRV_WDR_DY14 */
- /* Slice: WDR_dY13:*/
- /* Tone curve sample point definition dY13 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY13
- #endif /* MRV_WDR_DY13 */
- /* Slice: WDR_dY12:*/
- /* Tone curve sample point definition dY12 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY12
- #endif /* MRV_WDR_DY12 */
- /* Slice: WDR_dY11:*/
- /* Tone curve sample point definition dY11 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY11
- #endif /* MRV_WDR_DY11 */
- /* Slice: WDR_dY10:*/
- /* Tone curve sample point definition dY10 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY10
- #endif /* MRV_WDR_DY10 */
- /* Slice: WDR_dY9:*/
- /* Tone curve sample point definition dY9 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY9
- #endif /* MRV_WDR_DY9 */
- /*****************************************************************************/
- /**
- * register: isp_wdr_tonecurve_3: Tone Curve sample points dYn definition
- * (part 3) (0x0000000c)
- *
- * isp_wdr_tonecurve_3_shd: Tone Curve sample points dYn definition
- * shadow register (part 3) (0x000000a8)
- *
- *****************************************************************************/
- /* Slice: WDR_dY24:*/
- /* Tone curve sample point definition dY24 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY24
- #endif /* MRV_WDR_DY24 */
- /* Slice: WDR_dY23:*/
- /* Tone curve sample point definition dY23 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY23
- #endif /* MRV_WDR_DY23 */
- /* Slice: WDR_dY22:*/
- /* Tone curve sample point definition dY22 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY22
- #endif /* MRV_WDR_DY22 */
- /* Slice: WDR_dY21:*/
- /* Tone curve sample point definition dY21 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY21
- #endif /* MRV_WDR_DY21 */
- /* Slice: WDR_dY20:*/
- /* Tone curve sample point definition dY20 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY20
- #endif /* MRV_WDR_DY20 */
- /* Slice: WDR_dY19:*/
- /* Tone curve sample point definition dY19 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY19
- #endif /* MRV_WDR_DY19 */
- /* Slice: WDR_dY18:*/
- /* Tone curve sample point definition dY18 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY18
- #endif /* MRV_WDR_DY18 */
- /* Slice: WDR_dY17:*/
- /* Tone curve sample point definition dY17 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY17
- #endif /* MRV_WDR_DY17 */
- /*****************************************************************************/
- /**
- * register: isp_wdr_tonecurve_4: Tone Curve sample points dYn definition
- * (part 4) (0x00000010)
- *
- * isp_wdr_tonecurve_4_shd: Tone Curve sample points dYn definition
- * shadow register(part 4) (0x000000ac)
- *
- *****************************************************************************/
- /* Slice: WDR_dY32:*/
- /* Tone curve sample point definition dY32 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY32
- #endif /* MRV_WDR_DY32 */
- /* Slice: WDR_dY31:*/
- /* Tone curve sample point definition dY31 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY31
- #endif /* MRV_WDR_DY31 */
- /* Slice: WDR_dY30:*/
- /* Tone curve sample point definition dY30 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY30
- #endif /* MRV_WDR_DY30 */
- /* Slice: WDR_dY29:*/
- /* Tone curve sample point definition dY29 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY29
- #endif /* MRV_WDR_DY29 */
- /* Slice: WDR_dY28:*/
- /* Tone curve sample point definition dY28 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY28
- #endif /* MRV_WDR_DY28 */
- /* Slice: WDR_dY27:*/
- /* Tone curve sample point definition dY27 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY27
- #endif /* MRV_WDR_DY27 */
- /* Slice: WDR_dY26:*/
- /* Tone curve sample point definition dY26 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY26
- #endif /* MRV_WDR_DY26 */
- /* Slice: WDR_dY25:*/
- /* Tone curve sample point definition dY25 on the horizontal axis (input)*/
- #ifdef MRV_WDR_DY25
- #endif /* MRV_WDR_DY25 */
- /*****************************************************************************/
- /**
- * register array: isp_wdr_tonecurve_ym: Tonemapping curve coefficient Ym_
- * (0x0028 + n*0x4 (n=0..32))
- *
- *****************************************************************************/
- /* Slice: tonecurve_ym_n:*/
- /* Tone curve value definition y-axis (output) of WDR unit */
- #ifdef MRV_WDR_TONECURVE_YM_N
- #endif /* MRV_WDR_TONECURVE_YM_N */
- /*****************************************************************************/
- /**
- * register: isp_wdr_offset: Offset values for RGB path (0x00000098)
- *
- *****************************************************************************/
- /* Slice: LUM_OFFSET:*/
- /* Luminance Offset value (a) for RGB operation mode */
- /* unsigned 12 bit value */
- #ifdef MRV_WDR_LUM_OFFSET
- #endif /* MRV_WDR_LUM_OFFSET */
- /* Slice: RGB_OFFSET:*/
- /* RGB Offset value (b) for RGB operation mode */
- /* unsigned 12 bit value */
- #ifdef MRV_WDR_RGB_OFFSET
- #endif /* MRV_WDR_RGB_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_wdr_deltamin: DeltaMin Threshold and Strength factor (0x0000009c)
- *
- *****************************************************************************/
- /* Slice: DMIN_STRENGTH:*/
- /* strength factor for DMIN */
- /* unsigned 5 bit value, range 0x00...0x10 */
- #ifdef MRV_WDR_DMIN_STRENGTH
- #endif /* MRV_WDR_DMIN_STRENGTH */
- /* Slice: DMIN_THRESH:*/
- /* Lower threshold for deltaMin value */
- /* unsigned 12 bit value */
- #ifdef MRV_WDR_DMIN_THRESH
- #endif /* MRV_WDR_DMIN_THRESH */
- /*****************************************************************************/
- /**
- * register array: isp_wdr_tonecurve_ym_shd: Tonemapping curve coefficient
- * shadow register (0x0160 + n*0x4 (n=0..32))
- *
- *****************************************************************************/
- /* Slice: tonecurve_ym_n_shd:*/
- /* Tone curve value definition y-axis (output) of WDR unit */
- /* shadow register.*/
- #ifdef MRV_WDR_TONECURVE_YM_N_SHD
- #endif /* MRV_WDR_TONECURVE_YM_N_SHD */
- /*****************************************************************************/
- /* ISP Elliptic Auto White Balance Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: awb_meas_mode: AWB Measure Mode (0x00000000)
- *
- *****************************************************************************/
- /*! Register: awb_meas_mode: AWB Measure Mode (0x00000000)*/
- /*! Slice: AWB_union_e5_and_e8:*/
- /*! unite ellipse 5 with ellipse 8. Accu and count for ellipse 8.*/
- #ifdef ISP_AWB_UNION_E5_AND_E8
- #define ISP_AWB_UNION_E5_AND_E8_ON 1 /* 1: enable unite ellipse 5 with ellipse 8 */
- #define ISP_AWB_UNION_E5_AND_E8_OFF 0 /* 0: disable unite ellipse 5 with ellipse 8 */
- #endif /* ISP_AWB_UNION_E5_AND_E8 */
- /*! Slice: AWB_union_e5_and_e7:*/
- /*! unite ellipse 5 with ellipse 7. Accu and count for ellipse 7.*/
- #ifdef ISP_AWB_UNION_E5_AND_E7
- #define ISP_AWB_UNION_E5_AND_E7_ON 1 /* 1: enable unite ellipse 5 with ellipse 7 */
- #define ISP_AWB_UNION_E5_AND_E7_OFF 0 /* 0: disable unite ellipse 5 with ellipse 7 */
- #endif /* ISP_AWB_UNION_E5_AND_E7 */
- /*! Slice: AWB_union_e5_and_e6:*/
- /*! unite ellipse 5 with ellipse 6. Accu and count for ellipse 6.*/
- #ifdef ISP_AWB_UNION_E5_AND_E6
- #define ISP_AWB_UNION_E5_AND_E6_ON 1 /* 1: enable unite ellipse 5 with ellipse 6 */
- #define ISP_AWB_UNION_E5_AND_E6_OFF 0 /* 0: disable unite ellipse 5 with ellipse 6 */
- #endif /* ISP_AWB_UNION_E5_AND_E6 */
- /*! Slice: AWB_union_e1_and_e4:*/
- /*! unite ellipse 1 with ellipse 4. Accu and count for ellipse 4.*/
- #ifdef ISP_AWB_UNION_E1_AND_E4
- #define ISP_AWB_UNION_E1_AND_E4_ON 1 /* 1: enable unite ellipse 1 with ellipse 4 */
- #define ISP_AWB_UNION_E1_AND_E4_OFF 0 /* 0: disable unite ellipse 1 with ellipse 4 */
- #endif /* ISP_AWB_UNION_E1_AND_E4 */
- /*! Slice: AWB_union_e1_and_e3:*/
- /*! unite ellipse 1 with ellipse 3. Accu and count for ellipse 3.*/
- #ifdef ISP_AWB_UNION_E1_AND_E3
- #define ISP_AWB_UNION_E1_AND_E3_ON 1 /* 1: enable unite ellipse 1 with ellipse 3 */
- #define ISP_AWB_UNION_E1_AND_E3_OFF 0 /* 0: disable unite ellipse 1 with ellipse 3 */
- #endif /* ISP_AWB_UNION_E1_AND_E3 */
- /*! Slice: AWB_union_e1_and_e2:*/
- /*! unite ellipse 1 with ellipse 2. Accu and count for ellipse 2.*/
- #ifdef ISP_AWB_UNION_E1_AND_E2
- #define ISP_AWB_UNION_E1_AND_E2_ON 1 /* 1: enable unite ellipse 1 with ellipse 2 */
- #define ISP_AWB_UNION_E1_AND_E2_OFF 0 /* 0: disable unite ellipse 1 with ellipse 2 */
- #endif /* ISP_AWB_UNION_E1_AND_E2 */
- /*! Slice: AWB_meas_chrom_switch:*/
- /*! Accumulates Q1 and Q2 chromaticies instead of R, G, B color signals. Results are written on AWB_ACCU registers as well.*/
- #ifdef ISP_AWB_MEAS_CHROM_SWITCH
- #define ISP_AWB_MEAS_CHROM_SWITCH_ON 1 /* 1: accumulates Q1 and Q2 chromaticies */
- #define ISP_AWB_MEAS_CHROM_SWITCH_OFF 0 /* 0: accumulates R, G, B color signals */
- #endif /* ISP_AWB_MEAS_CHROM_SWITCH */
- /* Slice: AWB_meas_irq_enable:*/
- /* AWB measure done IRQ enable.*/
- #ifdef ISP_AWB_MEAS_IRQ_ENABLE
- #define ISP_AWB_MEAS_IRQ_ENABLE_ON 1 /* 1: enable measuring done irq */
- #define ISP_AWB_MEAS_IRQ_ENABLE_OFF 0 /* 0: enable measuring done irq */
- #endif /* ISP_AWB_MEAS_IRQ_ENABLE */
- /* Slice: AWB_pre_filt_en:*/
- /* median pre filter enable.*/
- #ifdef ISP_AWB_PRE_FILT_EN
- #define ISP_AWB_PRE_FILT_EN_ON 1 /* 1: enable median pre filter */
- #define ISP_AWB_PRE_FILT_EN_OFF 0 /* 0: disable median pre filter */
- #endif /* ISP_AWB_PRE_FILT_EN */
- /* Slice: AWB_meas_en:*/
- /* enable measure.*/
- #ifdef ISP_AWB_MEAS_EN
- #define ISP_AWB_MEAS_EN_ON 1 /* 1: enable measuring */
- #define ISP_AWB_MEAS_EN_OFF 0 /* 0: disable measuring */
- #endif /* ISP_AWB_MEAS_EN */
- /*****************************************************************************/
- /**
- * register: awb_meas_h_offs: AWB window horizontal offset (0x00000004)
- *
- *****************************************************************************/
- /* Slice: AWB_h_offset:*/
- /* Horizontal offset in pixels.*/
- #ifdef ISP_AWB_H_OFFSET
- #define ISP_AWB_H_OFFSET_MIN 0U
- #define ISP_AWB_H_OFFSET_MAX (ISP_AWB_H_OFFSET_MASK >> ISP_AWB_H_OFFSET_SHIFT)
- #endif /* ISP_AWB_H_OFFSET */
- /*****************************************************************************/
- /**
- * register: awb_meas_v_offs: AWB window vertical offset (0x00000008)
- *
- *****************************************************************************/
- /* Slice: AWB_v_offset:*/
- /* Vertical offset in pixels.*/
- #ifdef ISP_AWB_V_OFFSET
- #define ISP_AWB_V_OFFSET_MIN 0U
- #define ISP_AWB_V_OFFSET_MAX (ISP_AWB_V_OFFSET_MASK >> ISP_AWB_V_OFFSET_SHIFT)
- #endif /* ISP_AWB_V_OFFSET */
- /*****************************************************************************/
- /**
- * register: awb_meas_h_size: Horizontal window size (0x0000000c)
- *
- *****************************************************************************/
- /* Slice: AWB_h_size:*/
- /* Horizontal size in pixels.*/
- #ifdef ISP_AWB_H_SIZE
- #define ISP_AWB_H_SIZE_MIN 0U
- #define ISP_AWB_H_SIZE_MAX (ISP_AWB_H_SIZE_MASK >> ISP_AWB_H_SIZE_SHIFT)
- #endif /* ISP_AWB_H_SIZE */
- /*****************************************************************************/
- /**
- * register: awb_meas_v_size: Vertical window size (0x00000010)
- *
- *****************************************************************************/
- /* Slice: AWB_v_size:*/
- /* Vertical size.*/
- #ifdef ISP_AWB_V_SIZE
- #define ISP_AWB_V_SIZE_MIN 0U
- #define ISP_AWB_V_SIZE_MAX (ISP_AWB_V_SIZE_MASK >> ISP_AWB_V_SIZE_SHIFT)
- #endif /* ISP_AWB_V_SIZE */
- /*****************************************************************************/
- /**
- * register: awb_meas_r_min_max: Min Max Compare Red (0x00000014)
- *
- *****************************************************************************/
- /* Slice: r_max:*/
- /* max red value */
- #ifdef ISP_AWB_R_MAX
- #endif /* ISP_AWB_R_MAX */
- /* Slice: r_min:*/
- /* min red value */
- #ifdef ISP_AWB_R_MIN
- #endif /* ISP_AWB_R_MIN */
- /*****************************************************************************/
- /**
- * register: awb_meas_g_min_max: Min Max Compare Green (0x00000018)
- *
- *****************************************************************************/
- /* Slice: g_max:*/
- /* max green value */
- #ifdef ISP_AWB_G_MAX
- #endif /* ISP_AWB_G_MAX */
- /* Slice: g_min:*/
- /* min green value */
- #ifdef ISP_AWB_G_MIN
- #endif /* ISP_AWB_G_MIN */
- /*****************************************************************************/
- /**
- * register: awb_meas_b_min_max: Min Max Compare Blue (0x0000001c)
- *
- *****************************************************************************/
- /* Slice: b_max:*/
- /* max blue value */
- #ifdef ISP_AWB_B_MAX
- #endif /* ISP_AWB_B_MAX */
- /*! Slice: b_min:*/
- /*! min blue value */
- #ifdef ISP_AWB_B_MIN
- #endif /* ISP_AWB_B_MIN */
- /*****************************************************************************/
- /**
- * register: awb_meas_divider_min: Min Compare Divider (0x00000020)
- *
- *****************************************************************************/
- /* Slice: div_min:*/
- /* min divider value unsigned integer with 10 fractional Bits range 0 to 0.999 */
- #ifdef ISP_AWB_DIV_MIN
- #endif /* ISP_AWB_DIV_MIN */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_0: Color conversion coefficient 0 (0x00000024)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_0:*/
- /* coefficient 0 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_0
- #endif /* ISP_AWB_CC_COEFF_0 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_1: Color conversion coefficient 1 (0x00000028)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_1:*/
- /* coefficient 1 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_1
- #endif /* ISP_AWB_CC_COEFF_1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_2: Color conversion coefficient 2 (0x0000002c)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_2:*/
- /* coefficient 2 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_2
- #endif /* ISP_AWB_CC_COEFF_2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_3: Color conversion coefficient 3 (0x00000030)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_3:*/
- /* coefficient 3 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_3
- #endif /* ISP_AWB_CC_COEFF_3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_4: Color conversion coefficient 4 (0x00000034)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_4:*/
- /* coefficient 4 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_4
- #endif /* ISP_AWB_CC_COEFF_4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_5: Color conversion coefficient 5 (0x00000038)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_5:*/
- /* coefficient 5 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_5
- #endif /* ISP_AWB_CC_COEFF_5 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_6: Color conversion coefficient 6 (0x0000003c)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_6:*/
- /* coefficient 6 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_6
- #endif /* ISP_AWB_CC_COEFF_6 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_7: Color conversion coefficient 7 (0x00000040)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_7:*/
- /* coefficient 7 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_7
- #endif /* ISP_AWB_CC_COEFF_7 */
- /*****************************************************************************/
- /**
- * register: awb_meas_csc_coeff_8: Color conversion coefficient 8 (0x00000044)
- *
- *****************************************************************************/
- /* Slice: cc_coeff_8:*/
- /* coefficient 8 for color space conversion */
- #ifdef ISP_AWB_CC_COEFF_8
- #endif /* ISP_AWB_CC_COEFF_8 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_cen_x: Ellipse 1 Center X (0x00000048)
- *
- *****************************************************************************/
- /* Slice: ellip1_cen_x:*/
- /* Ellipse 1 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP1_CEN_X
- #endif /* ISP_AWB_ELLIP1_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_cen_y: Ellipse 1 Center Y (0x0000004c)
- *
- *****************************************************************************/
- /* Slice: ellip1_cen_y:*/
- /* Ellipse 1 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP1_CEN_Y
- #endif /* ISP_AWB_ELLIP1_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_cen_x: Ellipse 2 Center X (0x00000050)
- *
- *****************************************************************************/
- /* Slice: ellip2_cen_x:*/
- /* Ellipse 2 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP2_CEN_X
- #endif /* ISP_AWB_ELLIP2_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_cen_y: Ellipse 2 Center Y (0x00000054)
- *
- *****************************************************************************/
- /* Slice: ellip2_cen_y:*/
- /* Ellipse 2 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP2_CEN_Y
- #endif /* ISP_AWB_ELLIP2_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_cen_x: Ellipse 3 Center X (0x00000058)
- *
- *****************************************************************************/
- /* Slice: ellip3_cen_x:*/
- /* Ellipse 3 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP3_CEN_X
- #endif /* ISP_AWB_ELLIP3_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_cen_y: Ellipse 3 Center Y (0x0000005c)
- *
- *****************************************************************************/
- /* Slice: ellip3_cen_y:*/
- /* Ellipse 3 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP3_CEN_Y
- #endif /* ISP_AWB_ELLIP3_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_cen_x: Ellipse 4 Center X (0x00000060)
- *
- *****************************************************************************/
- /* Slice: ellip4_cen_x:*/
- /* Ellipse 4 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP4_CEN_X
- #endif /* ISP_AWB_ELLIP4_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_cen_y: Ellipse 4 Center Y (0x00000064)
- *
- *****************************************************************************/
- /* Register: awb_meas_ellip4_cen_y: Ellipse 4 Center Y (0x00000064)*/
- /* Slice: ellip4_cen_y:*/
- /* Ellipse 4 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP4_CEN_Y
- #endif /* ISP_AWB_ELLIP4_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_cen_x: Ellipse 5 Center X (0x00000068)
- *
- *****************************************************************************/
- /* Slice: ellip5_cen_x:*/
- /* Ellipse 5 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP5_CEN_X
- #endif /* ISP_AWB_ELLIP5_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_cen_y: Ellipse 5 Center Y (0x0000006c)
- *
- *****************************************************************************/
- /* Slice: ellip5_cen_y:*/
- /* Ellipse 5 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP5_CEN_Y
- #endif /* ISP_AWB_ELLIP5_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_cen_x: Ellipse 6 Center X (0x00000070)
- *
- *****************************************************************************/
- /* Slice: ellip6_cen_x:*/
- /* Ellipse 6 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP6_CEN_X
- #endif /* ISP_AWB_ELLIP6_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_cen_y: Ellipse 6 Center Y (0x00000074)
- *
- *****************************************************************************/
- /* Slice: ellip6_cen_y:*/
- /* Ellipse 6 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP6_CEN_Y
- #endif /* ISP_AWB_ELLIP6_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_cen_x: Ellipse 7 Center X (0x00000078)
- *
- *****************************************************************************/
- /* Slice: ellip7_cen_x:*/
- /* Ellipse 7 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP7_CEN_X
- #endif /* ISP_AWB_ELLIP7_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_cen_y: Ellipse 7 Center Y (0x0000007c)
- *
- *****************************************************************************/
- /* Slice: ellip7_cen_y:*/
- /* Ellipse 7 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP7_CEN_Y
- #endif /* ISP_AWB_ELLIP7_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_cen_x: Ellipse 8 Center X (0x00000080)
- *
- *****************************************************************************/
- /* Slice: ellip8_cen_x:*/
- /* Ellipse 8 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP8_CEN_X
- #endif /* ISP_AWB_ELLIP8_CEN_X */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_cen_y: Ellipse 8 Center Y (0x00000084)
- *
- *****************************************************************************/
- /* Slice: ellip8_cen_y:*/
- /* Ellipse 8 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
- #ifdef ISP_AWB_ELLIP8_CEN_Y
- #endif /* ISP_AWB_ELLIP8_CEN_Y */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_a1: Ellipse 1 coefficient a1 (0x00000088)
- *
- *****************************************************************************/
- /* Slice: ellip1_a1:*/
- /* Ellipse 1 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP1_A1
- #endif /* ISP_AWB_ELLIP1_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_a2: Ellipse 1 coefficient a2 (0x0000008c)
- *
- *****************************************************************************/
- /* Slice: ellip1_a2:*/
- /* Ellipse 1 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP1_A2
- #endif /* ISP_AWB_ELLIP1_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_a3: Ellipse 1 coefficient a3 (0x00000090)
- *
- *****************************************************************************/
- /* Slice: ellip1_a3:*/
- /* Ellipse 1 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP1_A3
- #endif /* ISP_AWB_ELLIP1_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_a4: Ellipse 1 coefficient a4 (0x00000094)
- *
- *****************************************************************************/
- /* Slice: ellip1_a4:*/
- /* Ellipse 1 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP1_A4
- #endif /* ISP_AWB_ELLIP1_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_a1: Ellipse 2 coefficient a1 (0x00000098)
- *
- *****************************************************************************/
- /* Slice: ellip2_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP2_A1
- #endif /* ISP_AWB_ELLIP2_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_a2: Ellipse 2 coefficient a2 (0x0000009c)
- *
- *****************************************************************************/
- /* Slice: ellip2_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP2_A2
- #endif /* ISP_AWB_ELLIP2_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_a3: Ellipse 2 coefficient a3 (0x000000a0)
- *
- *****************************************************************************/
- /* Slice: ellip2_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP2_A3
- #endif /* ISP_AWB_ELLIP2_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_a4: Ellipse 2 coefficient a4 (0x000000a4)
- *
- *****************************************************************************/
- /* Slice: ellip2_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP2_A4
- #endif /* ISP_AWB_ELLIP2_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_a1: Ellipse 3 coefficient a1 (0x000000a8)
- *
- *****************************************************************************/
- /* Slice: ellip3_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP3_A1
- #endif /* ISP_AWB_ELLIP3_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_a2: Ellipse 3 coefficient a2 (0x000000ac)
- *
- *****************************************************************************/
- /* Slice: ellip3_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP3_A2
- #endif /* ISP_AWB_ELLIP3_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_a3: Ellipse 3 coefficient a3 (0x000000b0)
- *
- *****************************************************************************/
- /* Slice: ellip3_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP3_A3
- #endif /* ISP_AWB_ELLIP3_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_a4: Ellipse 3 coefficient a4 (0x000000b4)
- *
- *****************************************************************************/
- /* Slice: ellip3_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP3_A4
- #endif /* ISP_AWB_ELLIP3_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_a1: Ellipse 4 coefficient a1 (0x000000b8)
- *
- *****************************************************************************/
- /* Slice: ellip4_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP4_A1
- #endif /* ISP_AWB_ELLIP4_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_a2: Ellipse 4 coefficient a2 (0x000000bc)
- *
- *****************************************************************************/
- /* Slice: ellip4_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP4_A2
- #endif /* ISP_AWB_ELLIP4_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_a3: Ellipse 4 coefficient a3 (0x000000c0)
- *
- *****************************************************************************/
- /* Slice: ellip4_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP4_A3
- #endif /* ISP_AWB_ELLIP4_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_a4: Ellipse 4 coefficient a4 (0x000000c4)
- *
- *****************************************************************************/
- /* Slice: ellip4_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP4_A4
- #endif /* ISP_AWB_ELLIP4_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_a1: Ellipse 5 coefficient a1 (0x000000c8)
- *
- *****************************************************************************/
- /* Slice: ellip5_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP5_A1
- #endif /* ISP_AWB_ELLIP5_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_a2: Ellipse 5 coefficient a2 (0x000000cc)
- *
- *****************************************************************************/
- /* Slice: ellip5_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP5_A2
- #endif /* ISP_AWB_ELLIP5_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_a3: Ellipse 5 coefficient a3 (0x000000d0)
- *
- *****************************************************************************/
- /* Slice: ellip5_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP5_A3
- #endif /* ISP_AWB_ELLIP5_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_a4: Ellipse 5 coefficient a4 (0x000000d4)
- *
- *****************************************************************************/
- /* Slice: ellip5_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP5_A4
- #endif /* ISP_AWB_ELLIP5_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_a1: Ellipse 6 coefficient a1 (0x000000d8)
- *
- *****************************************************************************/
- /* Slice: ellip6_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP6_A1
- #endif /* ISP_AWB_ELLIP6_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_a2: Ellipse 6 coefficient a2 (0x000000dc)
- *
- *****************************************************************************/
- /* Slice: ellip6_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP6_A2
- #endif /* ISP_AWB_ELLIP6_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_a3: Ellipse 6 coefficient a3 (0x000000e0)
- *
- *****************************************************************************/
- /* Slice: ellip6_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP6_A3
- #endif /* ISP_AWB_ELLIP6_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_a4: Ellipse 6 coefficient a4 (0x000000e4)
- *
- *****************************************************************************/
- /* Slice: ellip6_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP6_A4
- #endif /* ISP_AWB_ELLIP6_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_a1: Ellipse 7 coefficient a1 (0x000000e8)
- *
- *****************************************************************************/
- /* Slice: ellip7_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP7_A1
- #endif /* ISP_AWB_ELLIP7_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_a2: Ellipse 7 coefficient a2 (0x000000ec)
- *
- *****************************************************************************/
- /* Slice: ellip7_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP7_A2
- #endif /* ISP_AWB_ELLIP7_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_a3: Ellipse 7 coefficient a3 (0x000000f0)
- *
- *****************************************************************************/
- /* Slice: ellip7_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP7_A3
- #endif /* ISP_AWB_ELLIP7_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_a4: Ellipse 7 coefficient a4 (0x000000f4)
- *
- *****************************************************************************/
- /* Slice: ellip7_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP7_A4
- #endif /* ISP_AWB_ELLIP7_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_a1: Ellipse 8 coefficient a1 (0x000000f8)
- *
- *****************************************************************************/
- /* Slice: ellip8_a1:*/
- /* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP8_A1
- #endif /* ISP_AWB_ELLIP8_A1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_a2: Ellipse 8 coefficient a2 (0x000000fc)
- *
- *****************************************************************************/
- /* Slice: ellip8_a2:*/
- /* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP8_A2
- #endif /* ISP_AWB_ELLIP8_A2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_a3: Ellipse 8 coefficient a3 (0x00000100)
- *
- *****************************************************************************/
- /* Slice: ellip8_a3:*/
- /* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
- #ifdef ISP_AWB_ELLIP8_A3
- #endif /* ISP_AWB_ELLIP8_A3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_a4: Ellipse 8 coefficient a4 (0x00000104)
- *
- *****************************************************************************/
- /* Slice: ellip8_a4:*/
- /* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
- #ifdef ISP_AWB_ELLIP8_A4
- #endif /* ISP_AWB_ELLIP8_A4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip1_rmax: Ellipse 1 r_max (0x00000108)
- *
- *****************************************************************************/
- /* Slice: ellip1_rmax:*/
- /* Ellipse 1 max radius square compare value */
- #ifdef ISP_AWB_ELLIP1_RMAX
- #endif /* ISP_AWB_ELLIP1_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip2_rmax: Ellipse 2 r_max (0x0000010c)
- *
- *****************************************************************************/
- /* Slice: ellip2_rmax:*/
- /* Ellipse 2 max radius square compare value */
- #ifdef ISP_AWB_ELLIP2_RMAX
- #endif /* ISP_AWB_ELLIP2_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip3_rmax: Ellipse 3 r_max (0x00000110)
- *
- *****************************************************************************/
- /* Slice: ellip3_rmax:*/
- /* Ellipse 3 max radius square compare value */
- #ifdef ISP_AWB_ELLIP3_RMAX
- #endif /* ISP_AWB_ELLIP3_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip4_rmax: Ellipse 4 r_max (0x00000114)
- *
- *****************************************************************************/
- /* Slice: ellip4_rmax:*/
- /* Ellipse 4 max radius square compare value */
- #ifdef ISP_AWB_ELLIP4_RMAX
- #endif /* ISP_AWB_ELLIP4_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip5_rmax: Ellipse 5 r_max (0x00000118)
- *
- *****************************************************************************/
- /* Slice: ellip5_rmax:*/
- /* Ellipse 5 max radius square compare value */
- #ifdef ISP_AWB_ELLIP5_RMAX
- #endif /* ISP_AWB_ELLIP5_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip6_rmax: Ellipse 6 r_max (0x0000011c)
- *
- *****************************************************************************/
- /* Slice: ellip6_rmax:*/
- /* Ellipse 6 max radius square compare value */
- #ifdef ISP_AWB_ELLIP6_RMAX
- #endif /* ISP_AWB_ELLIP6_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip7_rmax: Ellipse 7 r_max (0x00000120)
- *
- *****************************************************************************/
- /* Slice: ellip7_rmax:*/
- /* Ellipse 7 max radius square compare value */
- #ifdef ISP_AWB_ELLIP7_RMAX
- #endif /* ISP_AWB_ELLIP7_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_ellip8_rmax: Ellipse 8 r_max (0x00000124)
- *
- *****************************************************************************/
- /* Slice: ellip8_rmax:*/
- /* Ellipse 8 max radius square compare value */
- #ifdef ISP_AWB_ELLIP8_RMAX
- #endif /* ISP_AWB_ELLIP8_RMAX */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_1: AWB Counter 1 (0x00000128)
- *
- *****************************************************************************/
- /* Slice: count_1:*/
- /* counted Pixels of Ellipse 1 */
- #ifdef ISP_AWB_COUNT_1
- #endif /* ISP_AWB_COUNT_1 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_2: AWB Counter 2 (0x0000012c)
- *
- *****************************************************************************/
- /* Slice: count_2:*/
- /* counted Pixels of Ellipse 2 */
- #ifdef ISP_AWB_COUNT_2
- #endif /* ISP_AWB_COUNT_2 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_3: AWB Counter 3 (0x00000130)
- *
- *****************************************************************************/
- /* Slice: count_3:*/
- /* counted Pixels of Ellipse 3 */
- #ifdef ISP_AWB_COUNT_3
- #endif /* ISP_AWB_COUNT_3 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_4: AWB Counter 4 (0x00000134)
- *
- *****************************************************************************/
- /* Slice: count_4:*/
- /* counted Pixels of Ellipse 4 */
- #ifdef ISP_AWB_COUNT_4
- #endif /* ISP_AWB_COUNT_4 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_5: AWB Counter 5 (0x00000138)
- *
- *****************************************************************************/
- /* Slice: count_5:*/
- /* counted Pixels of Ellipse 5 */
- #ifdef ISP_AWB_COUNT_5
- #endif /* ISP_AWB_COUNT_5 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_6: AWB Counter 6 (0x0000013c)
- *
- *****************************************************************************/
- /* Slice: count_6:*/
- /* counted Pixels of Ellipse 6 */
- #ifdef ISP_AWB_COUNT_6
- #endif /* ISP_AWB_COUNT_6 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_7: AWB Counter 7 (0x00000140)
- *
- *****************************************************************************/
- /* Slice: count_7:*/
- /* counted Pixels of Ellipse 7 */
- #ifdef ISP_AWB_COUNT_7
- #endif /* ISP_AWB_COUNT_7 */
- /*****************************************************************************/
- /**
- * register: awb_meas_counter_8: AWB Counter 8 (0x00000144)
- *
- *****************************************************************************/
- /* Slice: count_8:*/
- /* counted Pixels of Ellipse 8 */
- #ifdef ISP_AWB_COUNT_8
- #endif /* ISP_AWB_COUNT_8 */
- /*****************************************************************************/
- /**
- * register array: awb_meas_accu: AWB Accu Read (0x298 + n*0x4 (n=0..23))
- *
- *****************************************************************************/
- /* Slice: read_accu:*/
- /* measured sum[34:3] of RGB values.*/
- #ifdef ISP_AWB_READ_ACCU
- #endif /* ISP_AWB_READ_ACCU */
- #ifdef EE_CTRL_ENABLE
- #define EE_CTRL_ENABLE_SET 1
- #define EE_CTRL_ENABLE_CLEAR 0
- #endif
- /*****************************************************************************/
- /**
- * register array: awb_meas_accu: AWB Accu Read (0x298 + n*0x4 (n=0..23))
- *
- *****************************************************************************/
- /* Slice: read_accu:*/
- /* measured sum[34:3] of RGB values.*/
- #ifdef ISP_VSM_DELTA_H
- #endif /* ISP_AWB_READ_ACCU */
- /*****************************************************************************/
- /**
- * register: isp_vsm_h_offs: VSM window horizontal offset
- *
- *****************************************************************************/
- /* Slice: vsm_h_offset:*/
- /* Horizontal offset in pixels.*/
- #ifdef ISP_VSM_H_OFFSET
- #define ISP_VSM_H_OFFSET_MAX (ISP_VSM_H_OFFSET_MASK >> ISP_VSM_H_OFFSET_SHIFT)
- #endif /* ISP_VSM_H_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_vsm_v_offs: VSM window vertical offset
- *
- *****************************************************************************/
- /* Slice: vsm_v_offset:*/
- /* Vertical offset in pixels.*/
- #ifdef ISP_VSM_V_OFFSET
- #define ISP_VSM_V_OFFSET_MAX (ISP_VSM_V_OFFSET_MASK >> ISP_VSM_V_OFFSET_SHIFT)
- #endif /* ISP_VSM_V_OFFSET */
- /*****************************************************************************/
- /**
- * register: isp_vsm_h_size: Horizontal measure window size
- *
- *****************************************************************************/
- /* Slice: vsm_h_size:*/
- /* Horizontal size in pixels..*/
- #ifdef ISP_VSM_H_SIZE
- /* note: do not apply shift, since bit 0 is only excluded to get even values */
- #define ISP_VSM_H_SIZE_MAX ISP_VSM_H_SIZE_MASK
- #endif /* ISP_VSM_H_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_vsm_v_size: Vertical measure window size
- *
- *****************************************************************************/
- /* Slice: vsm_v_size:*/
- /* Vertical size in pixels.*/
- #ifdef ISP_VSM_V_SIZE
- /* note: do not apply shift, since bit 0 is only excluded to get even values */
- #define ISP_VSM_V_SIZE_MAX ISP_VSM_V_SIZE_MASK
- #endif /* ISP_VSM_V_SIZE */
- /*****************************************************************************/
- /**
- * register: isp_vsm_h_segments: Iteration 1 horizontal segments
- *
- *****************************************************************************/
- /* Slice: vsm_h_segments:*/
- /* number of 16 point wide segments enclosed by the first iteration sample */
- /* points in horizontal direction. Range: 1 ... 128 */
- #ifdef ISP_VSM_H_SEGMENTS
- #define ISP_VSM_H_SEGMENTS_MIN 1
- #define ISP_VSM_H_SEGMENTS_MAX 128
- #endif /* ISP_VSM_H_SEGMENTS */
- /*****************************************************************************/
- /**
- * register: isp_vsm_v_segments: Iteration 1 vertical segments
- *
- *****************************************************************************/
- /* Slice: vsm_v_segments:*/
- /* number of 16 point wide segments enclosed by the first iteration sample */
- /* points in vertical direction. Range: 1 ... 128 */
- /* Note: number of 1st iteration sample points = vsm_v_segments + 1.*/
- /* vsm_v_segments must be equal or smaller than vsm_h_segments.*/
- #ifdef ISP_VSM_V_SEGMENTS
- #define ISP_VSM_V_SEGMENTS_MIN 1
- #define ISP_VSM_V_SEGMENTS_MAX 128
- #endif /* ISP_VSM_V_SEGMENTS */
- #ifdef ISP_GCMONO
- /*****************************************************************************/
- /**
- * register: isp_gcmono_ctrl: gcmono enable and lut table cfg
- *
- *****************************************************************************/
- /*! Slice: mono_gc_enable */
- /*! Control of gamma correction for mono sensor RAW data */
- /*! 1'b0: disable GC and enter bypass mode */
- /*! 1'b1: enable GC mode */
- #ifdef ISP_GCMONO_SWITCH
- #define ISP_GCMONO_SWITCH_DISABLE 0 /* 0: disable GC */
- #define ISP_GCMONO_SWITCH_ENABLE 1 /* 1: enable GC */
- #endif
- /*! Slice: mono_gc_cfg_done */
- /*! To notify the ISP HW the LUT configuration is done, ready to use, active high.*/
- /*! Writing ZERO reset teh internal read/write pointer and also indicates that the LUT can be configured or read from CPU.*/
- #ifdef ISP_GCMONO_CFG_DONE
- #define ISP_GCMONO_CFG_DONE_CURVE_READY 1 /* 1: notify ISP HW LUT configuration is done */
- #define ISP_GCMONO_CFG_DONE_SET_CURVE 0 /* 0: Write ZERO reset the internal pointer and can cfg LUT. */
- #endif
- #ifdef ISP_GCMONO_PARA_BASE
- #endif
- #endif
- /*****************************************************************************/
- /* MIV2 Registers */
- /*****************************************************************************/
- /*****************************************************************************/
- /**
- * register: miv2_mp_fmt: main path pixel format control register (0x1314)
- *
- *****************************************************************************/
- // Slice: MP_WR_JDP_FMT
- // 1: JPEG
- // 0: DPCC
- #ifdef MP_WR_JDP_FMT
- #define MIV2_MP_WRITE_FORMAT_DPCC 0 //DPCC
- #define MIV2_MP_WRITE_FORMAT_JPEG 1 //JPEG
- #endif /* MP_WR_JDP_FMT */
- // Slice: MP_WR_YUV_BIT:
- // 1: 10bit YUV/RGB
- // 0: 8bit YUV/RGB
- #ifdef MP_WR_YUV_BIT
- #define MIV2_MP_WRITE_FORMAT_8BIT 0 //8bit YUV/RGB
- #define MIV2_MP_WRITE_FORMAT_10BIT 1 //10bit YUV/RGB
- #endif /* MP_WR_YUV_BIT */
- // Slice: MP_WR_YUV_FMT:
- #ifdef MP_WR_YUV_FMT
- #define MIV2_MP_WRITE_FORMAT_YUV420 0 // 00: YUV420
- #define MIV2_MP_WRITE_FORMAT_YUV422 1 // 01: YUV422
- #define MIV2_MP_WRITE_FORMAT_YUV444 2 // 10: YUV444
- #endif /* MP_WR_YUV_FMT */
- // Slice: MP_WR_YUV_STR:
- #ifdef MP_WR_YUV_STR
- #define MIV2_MP_WRITE_STRIDE_SEMIPLANAR 0 // 00: YUV/RGB SemiPlanar
- #define MIV2_MP_WRITE_STRIDE_INTERLEAVE 1 // 01: YUV Interleave, RGB Raster
- #define MIV2_MP_WRITE_STRIDE_PLANAR 2 // 10: YUV/RGB Planar
- #endif /* MP_WR_YUV_STR */
- // Slice: MP_WR_RAW_BIT:
- #ifdef MP_WR_RAW_BIT
- #define MIV2_MP_WRITE_FORMAT_RAW8 0 // 000: RAW8
- #define MIV2_MP_WRITE_FORMAT_RAW10 1 // 001: RAW10
- #define MIV2_MP_WRITE_FORMAT_RAW12 2 // 010: RAW12
- #define MIV2_MP_WRITE_FORMAT_RAW14 3 // 011: RAW14
- #define MIV2_MP_WRITE_FORMAT_RAW16 4 // 100: RAW16
- #define MIV2_MP_WRITE_FORMAT_RAW20 5 // 101: RAW20
- #endif /* MP_WR_RAW_BIT */
- // Slice: MP_WR_YUV_ALIGNED
- // 1: aligned
- // 0: unaligned
- #ifdef MP_WR_YUV_ALIGNED
- #define MIV2_MP_WRITE_YUV_UNALIGNED 0 //unaligned
- #define MIV2_MP_WRITE_YUV_ALIGNED 1 //aligned
- #endif /* MP_WR_YUV_ALIGNED */
- // Slice: MP_WR_RAW_ALIGNED:
- #ifdef MP_WR_RAW_ALIGNED
- #define MIV2_MP_WRITE_RAW_UNALIGNED 0 // 00: unaligned
- #define MIV2_MP_WRITE_RAW_ALIGNED_MODE1 1 // 01: aligned mode1
- #define MIV2_MP_WRITE_RAW_ALIGNED_MODE2 2 // 10: aligned mode2
- #endif /* MP_WR_RAW_ALIGNED */
- // Slice: MP_WR_YUV_NV21
- // 1: Put U before V
- // 0: Put V before U
- #ifdef MP_WR_YUV_NV21
- #define MIV2_MP_WRITE_YUV_NV21_UV 0 //Put U before V
- #define MIV2_MP_WRITE_YUV_NV21_VU 1 //Put V before U
- #endif /* MP_WR_YUV_NV21 */
- // Slice: MP_WR_YUV_NVY:
- #ifdef MP_WR_YUV_NVY
- #define MIV2_MP_WRITE_YUV_NVY_YC1C2 0 // 00: Put Y first => YC1C2
- #define MIV2_MP_WRITE_YUV_NVY_C1YC2 1 // 01: Put Y second => C1YC2
- #define MIV2_MP_WRITE_YUV_NVY_C1C2Y 2 // 10: Put Y Third => C1C2Y
- #endif /* MP_WR_YUV_NVY */
- // =========================================================================================
- #ifdef ISP_DEMOSAIC_DENOISE_STRENGTH
- #define ISP_DEMOSAIC_DENOISE_STRENGTH_MIN 0
- #define ISP_DEMOSAIC_DENOISE_STRENGTH_MAX 32
- #endif
- #ifdef ISP_DEMOSAIC_SHARPEN_SIZE
- #define ISP_DEMOSAIC_SHARPEN_SIZE_MIN 0
- #define ISP_DEMOSAIC_SHARPEN_SIZE_MAX 16
- #endif
- #ifdef ISP_DMSC_DEMOIRE_AREA_THR
- #define ISP_DMSC_DEMOIRE_AREA_THR_MIN 0
- #define ISP_DMSC_DEMOIRE_AREA_THR_MAX 32
- #endif
- #ifdef ISP_DMSC_DEMOIRE_SAT_SHRINK
- #define ISP_DMSC_DEMOIRE_SAT_SHRINK_MIN 0
- #define ISP_DMSC_DEMOIRE_SAT_SHRINK_MAX 32
- #endif
- #ifdef ISP_DMSC_SHARPEN_T4_SHIFT
- #define ISP_DMSC_SHARPEN_SHIFT_MIN 0
- #define ISP_DMSC_SHARPEN_SHIFT_MAX 11
- #endif
- #ifdef ISP_DMSC_SHARPEN_LINE_SHIFT1
- #define ISP_DMSC_SHARPEN_LINE_SHIFT1_MIN 0
- #define ISP_DMSC_SHARPEN_LINE_SHIFT1_MAX 10
- #endif
- #ifdef ISP_DMSC_HF_FILT_00
- #define ISP_DMSC_HF_FILT_MIN 0
- #define ISP_DMSC_HF_FILT_MAX 34
- #endif
- #ifdef ISP_DMSC_CBCR_MODE
- #define ISP_DMSC_CBCR_MODE_MIN 0
- #define ISP_DMSC_CBCR_MODE_MAX 3
- #endif
- #ifdef ISP_DMSC_DEPURPLE_SAT_SHRINK
- #define ISP_DMSC_DEPURPLE_SAT_SHRINK_MIN 0
- #define ISP_DMSC_DEPURPLE_SAT_SHRINK_MAX 8
- #endif
- #ifdef ISP_DMSC_X_NF
- #define ISP_DMSC_X_NF_MIN 0
- #define ISP_DMSC_X_NF_MAX 31
- #endif
- #ifdef ISP_DMSC_X_NS
- #define ISP_DMSC_X_NS_MIN 0
- #define ISP_DMSC_X_NS_MAX 15
- #endif
- #ifdef ISP_DMSC_Y_NF
- #define ISP_DMSC_Y_NF_MIN 0
- #define ISP_DMSC_Y_NF_MAX 31
- #endif
- #ifdef ISP_DMSC_Y_NS
- #define ISP_DMSC_Y_NS_MIN 0
- #define ISP_DMSC_Y_NS_MAX 15
- #endif
- /* =========================================================================================*/
- /*! returns the value of slice \a name from register or variable \a reg
- * \note "parameter" \a reg could be a hardware register or a (32bit) variable, but not a pointer! \n
- * each slice (specified as "parameter" \a name) requires two \#defines: \n
- * - <tt>\<name\>_MASK </tt>: defines the mask to use on register side
- * - <tt>\<name\>_SHIFT </tt>: defines the shift value to use (left on write, right on read)
- */
- #define REG_GET_SLICE(reg, name) \
- (((reg) & (name##_MASK)) >> (name##_SHIFT))
- /* =========================================================================================*/
- /*! writes the value \a value into slice \a name of register or variable \a reg
- * \note "parameter" \a reg could be a hardware register or a (32bit) variable, but not a pointer! \n
- * each slice (specified as "parameter" \a name) requires two \#defines: \n
- * - <tt>\<name\>_MASK </tt>: defines the mask to use on register side
- * - <tt>\<name\>_SHIFT </tt>: defines the shift value to use (left on write, right on read)
- */
- #define REG_SET_SLICE(reg, name, value) \
- { \
- ((reg) = (((reg) & ~(name##_MASK)) | (((value) << (name##_SHIFT)) & (name##_MASK))));\
- }
- #endif /* __MRV_ALL_BITS_H__ */
|