fc8300_bb.c 161 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424
  1. /*****************************************************************************
  2. Copyright(c) 2013 FCI Inc. All Rights Reserved
  3. File name : fc8300_bb.c
  4. Description : source of baseband driver
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program; if not, write to the Free Software
  15. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  16. History :
  17. ----------------------------------------------------------------------
  18. *******************************************************************************/
  19. #include "fci_types.h"
  20. #include "fci_oal.h"
  21. #include "fci_hal.h"
  22. #include "fci_tun.h"
  23. #include "fc8300_regs.h"
  24. #define SCAN_CHK_PERIOD 1 /* 1 ms */
  25. static enum BROADCAST_TYPE broadcast_type;
  26. static u32 fc8300_get_current_clk(HANDLE handle, DEVICEID devid)
  27. {
  28. u32 pre_sel, post_sel, multi;
  29. u16 pll_set = 0;
  30. bbm_word_read(handle, devid, BBM_PLL1_PRE_POST_SELECTION, &pll_set);
  31. multi = ((pll_set & 0xff00) >> 8) + 2;
  32. pre_sel = pll_set & 0x000f;
  33. post_sel = (pll_set & 0x00f0) >> 4;
  34. return ((BBM_XTAL_FREQ >> pre_sel) * multi) >> post_sel;
  35. }
  36. static u32 fc8300_get_core_clk(HANDLE handle, DEVICEID devid,
  37. enum BROADCAST_TYPE broadcast, u32 freq)
  38. {
  39. u32 clk;
  40. #if (BBM_BAND_WIDTH == 6)
  41. #if (BBM_XTAL_FREQ == 16000)
  42. clk = 100000;
  43. #elif (BBM_XTAL_FREQ == 16384)
  44. clk = 98304;
  45. #elif (BBM_XTAL_FREQ == 18000)
  46. clk = 99000;
  47. #elif (BBM_XTAL_FREQ == 19200)
  48. clk = 100800;
  49. switch (broadcast) {
  50. case ISDBT_1SEG:
  51. switch (freq) {
  52. case 503143:
  53. case 605143:
  54. case 707143:
  55. clk = 110400;
  56. }
  57. break;
  58. case ISDBT_13SEG:
  59. switch (freq) {
  60. case 503143:
  61. case 605143:
  62. case 707143:
  63. clk = 110400;
  64. }
  65. break;
  66. }
  67. #elif (BBM_XTAL_FREQ == 24000)
  68. clk = 99000;
  69. switch (broadcast) {
  70. case ISDBT_1SEG:
  71. break;
  72. case ISDBT_13SEG:
  73. switch (freq) {
  74. case 497143:
  75. case 593143:
  76. case 695143:
  77. clk = 120000;
  78. }
  79. break;
  80. }
  81. #elif (BBM_XTAL_FREQ == 24576)
  82. clk = 98304;
  83. #elif (BBM_XTAL_FREQ == 26000)
  84. clk = 100750;
  85. switch (broadcast) {
  86. case ISDBT_1SEG:
  87. switch (freq) {
  88. case 479143:
  89. case 503143:
  90. case 521143:
  91. case 569143:
  92. case 605143:
  93. case 653143:
  94. case 707143:
  95. case 731143:
  96. case 755143:
  97. case 773143:
  98. case 809143:
  99. clk = 107250;
  100. }
  101. break;
  102. case ISDBT_13SEG:
  103. switch (freq) {
  104. case 479143:
  105. case 503143:
  106. case 521143:
  107. case 569143:
  108. case 605143:
  109. case 653143:
  110. case 707143:
  111. case 731143:
  112. case 755143:
  113. case 773143:
  114. case 803143:
  115. case 809143:
  116. clk = 107250;
  117. }
  118. break;
  119. }
  120. #elif (BBM_XTAL_FREQ == 27000)
  121. clk = 97875;
  122. #elif (BBM_XTAL_FREQ == 27120)
  123. clk = 98310;
  124. switch (broadcast) {
  125. case ISDBT_1SEG:
  126. switch (freq) {
  127. case 491143:
  128. case 587143:
  129. case 689143:
  130. clk = 101700;
  131. }
  132. break;
  133. case ISDBT_13SEG:
  134. switch (freq) {
  135. case 491143:
  136. case 587143:
  137. case 689143:
  138. clk = 101700;
  139. }
  140. break;
  141. }
  142. #elif (BBM_XTAL_FREQ == 32000)
  143. clk = 100000;
  144. switch (broadcast) {
  145. case ISDBT_1SEG:
  146. switch (freq) {
  147. case 683143:
  148. clk = 104000;
  149. }
  150. break;
  151. case ISDBT_13SEG:
  152. switch (freq) {
  153. case 599143:
  154. case 701143:
  155. clk = 116000;
  156. }
  157. break;
  158. }
  159. #elif (BBM_XTAL_FREQ == 37200)
  160. clk = 97650;
  161. switch (broadcast) {
  162. case ISDBT_1SEG:
  163. switch (freq) {
  164. case 659143:
  165. clk = 111600;
  166. }
  167. break;
  168. case ISDBT_13SEG:
  169. switch (freq) {
  170. case 587143:
  171. case 683143:
  172. clk = 111600;
  173. }
  174. break;
  175. }
  176. #elif (BBM_XTAL_FREQ == 37400)
  177. clk = 98175;
  178. switch (broadcast) {
  179. case ISDBT_1SEG:
  180. switch (freq) {
  181. case 491143:
  182. clk = 102850;
  183. }
  184. break;
  185. case ISDBT_13SEG:
  186. switch (freq) {
  187. case 491143:
  188. case 587143:
  189. case 683143:
  190. clk = 102850;
  191. }
  192. break;
  193. }
  194. #else /* (BBM_XTAL_FREQ == 38400) */
  195. clk = 100800;
  196. #endif /* BBM_XTAL_FREQ */
  197. #elif (BBM_BAND_WIDTH == 7)
  198. #if (BBM_XTAL_FREQ == 16000)
  199. clk = 116000;
  200. #elif (BBM_XTAL_FREQ == 16384)
  201. clk = 114688;
  202. #elif (BBM_XTAL_FREQ == 18000)
  203. clk = 117000;
  204. #elif (BBM_XTAL_FREQ == 19200)
  205. clk = 115200;
  206. #elif (BBM_XTAL_FREQ == 24000)
  207. clk = 114000;
  208. #elif (BBM_XTAL_FREQ == 24576)
  209. clk = 116736;
  210. #elif (BBM_XTAL_FREQ == 26000)
  211. clk = 117000;
  212. #elif (BBM_XTAL_FREQ == 27000)
  213. clk = 114750;
  214. #elif (BBM_XTAL_FREQ == 27120)
  215. clk = 115260;
  216. #elif (BBM_XTAL_FREQ == 32000)
  217. clk = 116000;
  218. #elif (BBM_XTAL_FREQ == 37200)
  219. clk = 116250;
  220. #elif (BBM_XTAL_FREQ == 37400)
  221. clk = 116875;
  222. #else /* (BBM_XTAL_FREQ == 38400) */
  223. clk = 115200;
  224. #endif /* BBM_XTAL_FREQ */
  225. #else /* (BBM_BAND_WIDTH == 8) */
  226. #if (BBM_XTAL_FREQ == 16000)
  227. clk = 132000;
  228. #elif (BBM_XTAL_FREQ == 16384)
  229. clk = 131072;
  230. #elif (BBM_XTAL_FREQ == 18000)
  231. clk = 130500;
  232. #elif (BBM_XTAL_FREQ == 19200)
  233. clk = 134400;
  234. #elif (BBM_XTAL_FREQ == 24000)
  235. clk = 132000;
  236. #elif (BBM_XTAL_FREQ == 24576)
  237. clk = 135168;
  238. #elif (BBM_XTAL_FREQ == 26000)
  239. clk = 136500;
  240. #elif (BBM_XTAL_FREQ == 27000)
  241. clk = 131625;
  242. #elif (BBM_XTAL_FREQ == 27120)
  243. clk = 132210;
  244. #elif (BBM_XTAL_FREQ == 32000)
  245. clk = 132000;
  246. #elif (BBM_XTAL_FREQ == 37200)
  247. clk = 130200;
  248. #elif (BBM_XTAL_FREQ == 37400)
  249. clk = 130900;
  250. #else /* (BBM_XTAL_FREQ == 38400) */
  251. clk = 134400;
  252. #endif /* BBM_XTAL_FREQ */
  253. #endif /* #if (BBM_BAND_WIDTH == 6) */
  254. return clk;
  255. }
  256. static s32 fc8300_set_acif_b31_1seg(HANDLE handle, DEVICEID devid, u32 clk)
  257. {
  258. #if (BBM_BAND_WIDTH == 6)
  259. switch (clk) {
  260. case 100750:
  261. case 100800:
  262. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  263. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040200);
  264. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfcf5f7fe);
  265. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x453c270e);
  266. break;
  267. case 105600:
  268. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  269. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  270. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f6fc);
  271. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423a2710);
  272. break;
  273. case 110400:
  274. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  275. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  276. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x00f7f6fb);
  277. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x40392712);
  278. break;
  279. case 115200:
  280. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  281. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xff020302);
  282. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x02f8f6fa);
  283. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3e382713);
  284. break;
  285. case 99000:
  286. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  287. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  288. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  289. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473e270d);
  290. break;
  291. case 102000:
  292. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  293. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040201);
  294. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  295. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x443c270f);
  296. break;
  297. case 105000:
  298. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  299. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  300. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  301. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423b2710);
  302. break;
  303. case 108000:
  304. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  305. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  306. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  307. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  308. break;
  309. case 98310:
  310. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  311. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03030200);
  312. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  313. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473e260c);
  314. break;
  315. case 101700:
  316. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  317. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040201);
  318. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfcf5f7fd);
  319. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x443c270f);
  320. break;
  321. case 105090:
  322. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  323. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  324. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  325. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423b2710);
  326. break;
  327. case 108480:
  328. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  329. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  330. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  331. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  332. break;
  333. case 100000:
  334. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  335. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  336. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfbf5f8fe);
  337. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x463d270d);
  338. break;
  339. case 104000:
  340. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  341. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  342. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  343. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b2710);
  344. break;
  345. /*case 108000:
  346. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  347. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  348. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  349. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  350. break;*/
  351. case 112000:
  352. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  353. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  354. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x01f7f6fa);
  355. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  356. break;
  357. case 97650:
  358. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  359. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x030301ff);
  360. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf9f4f9ff);
  361. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x483e260b);
  362. break;
  363. case 102300:
  364. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  365. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040201);
  366. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  367. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x443c270f);
  368. break;
  369. case 106950:
  370. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  371. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  372. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  373. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  374. break;
  375. case 111600:
  376. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  377. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  378. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x00f7f6fa);
  379. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  380. break;
  381. case 98175:
  382. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  383. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03030100);
  384. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  385. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x483e260c);
  386. break;
  387. case 102850:
  388. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  389. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02030301);
  390. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  391. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b270f);
  392. break;
  393. case 107250:
  394. case 107525:
  395. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  396. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  397. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  398. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  399. break;
  400. case 112200:
  401. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  402. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  403. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x01f7f6fa);
  404. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  405. break;
  406. default:
  407. return BBM_NOK;
  408. }
  409. #elif (BBM_BAND_WIDTH == 7)
  410. switch (clk) {
  411. case 115200:
  412. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  413. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  414. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  415. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473e260c);
  416. break;
  417. case 120000:
  418. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  419. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02030301);
  420. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  421. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b270f);
  422. break;
  423. case 124800:
  424. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  425. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  426. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  427. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  428. break;
  429. case 129600:
  430. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  431. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  432. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x00f7f6fb);
  433. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x40392712);
  434. break;
  435. case 114000:
  436. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  437. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03030100);
  438. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf9f4f9ff);
  439. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x483e260c);
  440. break;
  441. case 117000:
  442. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  443. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040200);
  444. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfbf5f7fe);
  445. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x453d270e);
  446. break;
  447. /*case 120000:
  448. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  449. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02030301);
  450. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  451. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b270f);
  452. break;*/
  453. case 126000:
  454. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  455. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  456. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  457. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  458. break;
  459. case 115260:
  460. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  461. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  462. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  463. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473e260c);
  464. break;
  465. case 118650:
  466. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  467. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040201);
  468. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfcf5f7fd);
  469. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x443c270f);
  470. break;
  471. case 122040:
  472. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  473. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  474. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  475. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423b2710);
  476. break;
  477. case 125430:
  478. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  479. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  480. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  481. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  482. break;
  483. case 116000:
  484. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  485. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  486. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfbf5f8fe);
  487. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x463d270d);
  488. break;
  489. /*case 120000:
  490. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  491. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02030301);
  492. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  493. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b270f);
  494. break;*/
  495. case 124000:
  496. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  497. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  498. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fc);
  499. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423a2711);
  500. break;
  501. case 128000:
  502. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  503. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  504. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x00f7f6fb);
  505. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x40392712);
  506. break;
  507. case 116250:
  508. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  509. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  510. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfbf5f8fe);
  511. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x463d270d);
  512. break;
  513. case 120900:
  514. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ff0000);
  515. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  516. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  517. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b2710);
  518. break;
  519. case 125550:
  520. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  521. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  522. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  523. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  524. break;
  525. case 130200:
  526. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  527. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  528. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x00f7f6fa);
  529. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  530. break;
  531. case 116875:
  532. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  533. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  534. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfbf5f8fe);
  535. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x463d270e);
  536. break;
  537. default:
  538. return BBM_NOK;
  539. }
  540. #else /* BBM_BAND_WIDTH == 8) */
  541. switch (clk) {
  542. case 134400:
  543. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  544. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040200);
  545. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfcf5f7fe);
  546. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x453c270e);
  547. break;
  548. case 139200:
  549. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  550. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  551. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  552. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b2710);
  553. break;
  554. case 144000:
  555. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  556. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  557. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  558. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  559. break;
  560. case 148800:
  561. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  562. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  563. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x00f7f6fa);
  564. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  565. break;
  566. case 132000:
  567. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  568. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  569. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  570. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473e270d);
  571. break;
  572. case 138000:
  573. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ff0000);
  574. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  575. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf6f7fc);
  576. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x433b2710);
  577. break;
  578. /*case 144000:
  579. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  580. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  581. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  582. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  583. break;*/
  584. case 150000:
  585. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  586. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  587. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x01f7f6fa);
  588. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  589. break;
  590. case 132210:
  591. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  592. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  593. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfbf4f8fe);
  594. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473d270d);
  595. break;
  596. case 135600:
  597. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  598. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040201);
  599. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfcf5f7fd);
  600. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x443c270f);
  601. break;
  602. case 142380:
  603. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  604. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  605. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  606. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  607. break;
  608. case 149160:
  609. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  610. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030302);
  611. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x01f7f6fa);
  612. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x3f392712);
  613. break;
  614. /*case 132000:
  615. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  616. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03040200);
  617. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  618. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x473e270d);
  619. break;*/
  620. case 136000:
  621. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  622. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040201);
  623. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfdf5f7fd);
  624. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x443c270f);
  625. break;
  626. case 140000:
  627. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  628. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  629. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  630. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423b2710);
  631. break;
  632. /*case 144000:
  633. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  634. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  635. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  636. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  637. break;*/
  638. case 130200:
  639. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  640. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x030301ff);
  641. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf9f4f9ff);
  642. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x483e260b);
  643. break;
  644. case 134850:
  645. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  646. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02040200);
  647. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfcf5f7fd);
  648. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x453c270e);
  649. break;
  650. case 139500:
  651. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  652. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01030301);
  653. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfef6f7fc);
  654. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x423b2710);
  655. break;
  656. case 144150:
  657. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00ffff00);
  658. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00030301);
  659. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfff6f6fb);
  660. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x413a2711);
  661. break;
  662. case 130900:
  663. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xffff0000);
  664. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03030100);
  665. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xfaf4f8ff);
  666. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x483e260c);
  667. break;
  668. default:
  669. return BBM_NOK;
  670. }
  671. #endif /* #if (BBM_BAND_WIDTH == 6) */
  672. return BBM_OK;
  673. }
  674. #if 0
  675. static s32 fc8300_set_acif_1seg(HANDLE handle, DEVICEID devid, u32 clk)
  676. {
  677. #if (BBM_BAND_WIDTH == 6)
  678. switch (clk) {
  679. case 100750:
  680. case 100800:
  681. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfeff0001);
  682. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfafbfc);
  683. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  684. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2624201a);
  685. break;
  686. case 105600:
  687. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfeff00);
  688. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  689. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  690. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221f19);
  691. break;
  692. case 110400:
  693. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdff00);
  694. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffcfbfb);
  695. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  696. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x22211e19);
  697. break;
  698. case 115200:
  699. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfeff);
  700. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fdfcfb);
  701. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130e0804);
  702. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x201f1d19);
  703. break;
  704. case 99000:
  705. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  706. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  707. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  708. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  709. break;
  710. case 102000:
  711. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  712. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  713. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130b0500);
  714. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  715. break;
  716. case 105000:
  717. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0000);
  718. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  719. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  720. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24221f19);
  721. break;
  722. case 108000:
  723. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  724. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  725. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  726. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  727. break;
  728. case 98310:
  729. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  730. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  731. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  732. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  733. break;
  734. case 101700:
  735. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  736. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  737. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130b05ff);
  738. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  739. break;
  740. case 105090:
  741. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0000);
  742. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  743. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  744. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24221f19);
  745. break;
  746. case 108480:
  747. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  748. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  749. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  750. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x22211e19);
  751. break;
  752. case 100000:
  753. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfeff0101);
  754. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfafbfc);
  755. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  756. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2625201a);
  757. break;
  758. case 104000:
  759. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0001);
  760. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  761. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  762. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24231f1a);
  763. break;
  764. /*case 108000:
  765. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  766. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  767. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  768. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  769. break;*/
  770. case 112000:
  771. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfeff);
  772. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffdfbfb);
  773. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  774. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  775. break;
  776. case 97650:
  777. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  778. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  779. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  780. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2726211a);
  781. break;
  782. case 102300:
  783. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  784. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  785. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130b0500);
  786. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  787. break;
  788. case 106950:
  789. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  790. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  791. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0601);
  792. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221e19);
  793. break;
  794. case 111600:
  795. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfe00);
  796. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffcfbfb);
  797. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  798. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  799. break;
  800. case 98175:
  801. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  802. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  803. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  804. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  805. break;
  806. case 102850:
  807. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  808. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  809. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  810. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x25231f1a);
  811. break;
  812. case 107250:
  813. case 107525:
  814. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  815. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  816. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  817. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221e19);
  818. break;
  819. case 112200:
  820. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfeff);
  821. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffdfbfb);
  822. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  823. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  824. break;
  825. default:
  826. return BBM_NOK;
  827. }
  828. #elif (BBM_BAND_WIDTH == 7)
  829. switch (clk) {
  830. case 115200:
  831. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  832. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  833. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  834. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  835. break;
  836. case 120000:
  837. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  838. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  839. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  840. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x25231f1a);
  841. break;
  842. case 124800:
  843. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  844. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  845. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0601);
  846. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221e19);
  847. break;
  848. case 129600:
  849. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfe00);
  850. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffcfbfb);
  851. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  852. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x22201d19);
  853. break;
  854. case 114000:
  855. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  856. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  857. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  858. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2726211a);
  859. break;
  860. case 117000:
  861. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfeff0101);
  862. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfafbfc);
  863. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  864. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2624201a);
  865. break;
  866. /*case 120000:
  867. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  868. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  869. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  870. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x25231f1a);
  871. break;*/
  872. case 126000:
  873. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  874. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  875. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  876. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  877. break;
  878. case 115260:
  879. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  880. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  881. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  882. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  883. break;
  884. case 118650:
  885. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  886. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  887. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130b05ff);
  888. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  889. break;
  890. case 122040:
  891. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0001);
  892. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  893. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  894. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24231f19);
  895. break;
  896. case 125430:
  897. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  898. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  899. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  900. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221e19);
  901. break;
  902. case 116000:
  903. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  904. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  905. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a04ff);
  906. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2625201a);
  907. break;
  908. /*case 120000:
  909. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  910. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  911. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  912. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x25231f1a);
  913. break;*/
  914. case 124000:
  915. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfeff00);
  916. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefbfbfb);
  917. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  918. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221f19);
  919. break;
  920. case 128000:
  921. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdff00);
  922. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  923. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  924. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x22211e19);
  925. break;
  926. case 116250:
  927. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfeff0101);
  928. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  929. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  930. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2625201a);
  931. break;
  932. case 120900:
  933. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0001);
  934. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  935. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  936. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24231f1a);
  937. break;
  938. case 125550:
  939. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  940. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  941. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  942. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221e19);
  943. break;
  944. case 130200:
  945. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfe00);
  946. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffcfbfb);
  947. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  948. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  949. break;
  950. case 116875:
  951. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfeff0101);
  952. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfafbfc);
  953. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  954. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2624201a);
  955. break;
  956. default:
  957. return BBM_NOK;
  958. }
  959. #else /* BBM_BAND_WIDTH == 8) */
  960. switch (clk) {
  961. case 134400:
  962. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfeff0001);
  963. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfafbfc);
  964. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  965. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2624201a);
  966. break;
  967. case 139200:
  968. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0001);
  969. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  970. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  971. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24231f19);
  972. break;
  973. case 144000:
  974. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  975. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  976. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  977. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  978. break;
  979. case 148800:
  980. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfe00);
  981. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffcfbfb);
  982. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  983. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  984. break;
  985. case 132000:
  986. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  987. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  988. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  989. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  990. break;
  991. case 138000:
  992. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  993. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfc);
  994. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0500);
  995. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24231f1a);
  996. break;
  997. /*case 144000:
  998. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  999. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  1000. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  1001. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  1002. break;*/
  1003. case 150000:
  1004. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfeff);
  1005. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffdfbfb);
  1006. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130e0803);
  1007. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  1008. break;
  1009. case 132210:
  1010. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  1011. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  1012. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a04fe);
  1013. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2625211a);
  1014. break;
  1015. case 135600:
  1016. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  1017. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  1018. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130b05ff);
  1019. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  1020. break;
  1021. case 142380:
  1022. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  1023. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  1024. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0601);
  1025. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23221e19);
  1026. break;
  1027. case 149160:
  1028. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfdfeff);
  1029. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffdfbfb);
  1030. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0803);
  1031. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x21201d19);
  1032. break;
  1033. /*case 132000:
  1034. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  1035. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  1036. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  1037. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2725211a);
  1038. break;*/
  1039. case 136000:
  1040. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  1041. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  1042. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130b0500);
  1043. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  1044. break;
  1045. case 140000:
  1046. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0000);
  1047. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  1048. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  1049. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24221f19);
  1050. break;
  1051. /*case 144000:
  1052. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  1053. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  1054. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  1055. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  1056. break;*/
  1057. case 130200:
  1058. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe000101);
  1059. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfbfafbfc);
  1060. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120a03fe);
  1061. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2726211a);
  1062. break;
  1063. case 134850:
  1064. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdff0001);
  1065. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfcfbfbfc);
  1066. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x120b04ff);
  1067. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x2524201a);
  1068. break;
  1069. case 139500:
  1070. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfdfe0001);
  1071. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfdfbfbfb);
  1072. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130c0601);
  1073. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x24231f19);
  1074. break;
  1075. case 144150:
  1076. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  1077. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  1078. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  1079. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  1080. break;
  1081. case 130900:
  1082. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfcfeff00);
  1083. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefcfbfb);
  1084. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0x130d0702);
  1085. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x23211e19);
  1086. break;
  1087. default:
  1088. return BBM_NOK;
  1089. }
  1090. #endif /* #if (BBM_BAND_WIDTH == 6) */
  1091. return BBM_OK;
  1092. }
  1093. static s32 fc8300_set_acif_3seg(HANDLE handle, DEVICEID devid, u32 clk)
  1094. {
  1095. #if (BBM_BAND_WIDTH == 6)
  1096. switch (clk) {
  1097. case 100750:
  1098. case 100800:
  1099. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1100. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1101. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1102. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x604b1cf6);
  1103. break;
  1104. case 105600:
  1105. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1106. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1107. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80509);
  1108. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c491ffa);
  1109. break;
  1110. case 110400:
  1111. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x01020100);
  1112. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fffcfe);
  1113. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff50208);
  1114. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x584721fe);
  1115. break;
  1116. case 115200:
  1117. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xff010200);
  1118. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0701fdfd);
  1119. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f3fe07);
  1120. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x53452302);
  1121. break;
  1122. case 99000:
  1123. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1124. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1125. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0807);
  1126. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1127. break;
  1128. case 102000:
  1129. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1130. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfd01);
  1131. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1132. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5f4a1df7);
  1133. break;
  1134. case 105000:
  1135. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020100ff);
  1136. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1137. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80609);
  1138. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef9);
  1139. break;
  1140. /*case 108000:
  1141. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1142. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1143. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1144. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1145. break;*/
  1146. case 98310:
  1147. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1148. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1149. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0907);
  1150. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x624b1bf5);
  1151. break;
  1152. case 101700:
  1153. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1154. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfd01);
  1155. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1156. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5f4b1df7);
  1157. break;
  1158. case 105090:
  1159. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1160. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1161. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80609);
  1162. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d491ef9);
  1163. break;
  1164. case 108480:
  1165. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1166. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fefcff);
  1167. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60309);
  1168. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1169. break;
  1170. case 100000:
  1171. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1172. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1173. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1174. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x604b1cf6);
  1175. break;
  1176. case 104000:
  1177. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1178. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1179. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90608);
  1180. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef8);
  1181. break;
  1182. case 108000:
  1183. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1184. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1185. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1186. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1187. break;
  1188. case 112000:
  1189. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1190. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0600fcfd);
  1191. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f40108);
  1192. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x564722ff);
  1193. break;
  1194. case 97650:
  1195. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1196. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefbfe02);
  1197. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefd0907);
  1198. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x624c1af4);
  1199. break;
  1200. case 102300:
  1201. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1202. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfd01);
  1203. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1204. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5f4a1df7);
  1205. break;
  1206. case 106950:
  1207. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1208. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fdfcff);
  1209. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70409);
  1210. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5b491ffb);
  1211. break;
  1212. case 111600:
  1213. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1214. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fffcfd);
  1215. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff40108);
  1216. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722ff);
  1217. break;
  1218. case 98175:
  1219. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1220. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1221. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0907);
  1222. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x624c1bf5);
  1223. break;
  1224. case 102850:
  1225. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1226. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfc01);
  1227. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90708);
  1228. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1df8);
  1229. break;
  1230. case 107250:
  1231. case 107525:
  1232. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1233. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1234. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70409);
  1235. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1236. break;
  1237. case 112200:
  1238. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1239. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0600fcfd);
  1240. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f40008);
  1241. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x564622ff);
  1242. break;
  1243. default:
  1244. return BBM_NOK;
  1245. }
  1246. #elif (BBM_BAND_WIDTH == 7)
  1247. switch (clk) {
  1248. case 115200:
  1249. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1250. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1251. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0807);
  1252. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1253. break;
  1254. case 120000:
  1255. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1256. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfc01);
  1257. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90708);
  1258. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1df8);
  1259. break;
  1260. case 124800:
  1261. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1262. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fdfcff);
  1263. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70409);
  1264. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5b491ffb);
  1265. break;
  1266. case 129600:
  1267. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x01020100);
  1268. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fffcfe);
  1269. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff50108);
  1270. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722fe);
  1271. break;
  1272. case 114000:
  1273. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1274. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1275. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefd0907);
  1276. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x624c1af4);
  1277. break;
  1278. case 117000:
  1279. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1280. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1281. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1282. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x604b1cf6);
  1283. break;
  1284. /*case 120000:
  1285. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1286. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfc01);
  1287. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90708);
  1288. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1df8);
  1289. break;*/
  1290. case 126000:
  1291. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1292. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1293. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1294. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1295. break;
  1296. case 115260:
  1297. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1298. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1299. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0807);
  1300. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1301. break;
  1302. case 118650:
  1303. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1304. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfd01);
  1305. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1306. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5f4b1df7);
  1307. break;
  1308. case 122040:
  1309. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020100ff);
  1310. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1311. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80609);
  1312. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef9);
  1313. break;
  1314. case 125430:
  1315. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1316. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fdfcff);
  1317. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70409);
  1318. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1319. break;
  1320. case 116000:
  1321. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1322. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfd02);
  1323. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1324. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1325. break;
  1326. /*case 120000:
  1327. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1328. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfc01);
  1329. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90708);
  1330. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1df8);
  1331. break;*/
  1332. case 124000:
  1333. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1334. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fdfcff);
  1335. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70509);
  1336. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c491ffa);
  1337. break;
  1338. case 128000:
  1339. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x010201ff);
  1340. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fefcfe);
  1341. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff50208);
  1342. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x584821fd);
  1343. break;
  1344. case 116250:
  1345. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1346. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1347. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1348. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1cf6);
  1349. break;
  1350. case 120900:
  1351. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1352. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fcfc00);
  1353. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90608);
  1354. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1355. break;
  1356. case 125550:
  1357. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1358. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1359. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70409);
  1360. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1361. break;
  1362. case 130200:
  1363. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1364. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fffcfd);
  1365. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff40108);
  1366. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722ff);
  1367. break;
  1368. case 116875:
  1369. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1370. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1371. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1372. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x604b1cf6);
  1373. break;
  1374. default:
  1375. return BBM_NOK;
  1376. }
  1377. #else /* BBM_BAND_WIDTH == 8) */
  1378. switch (clk) {
  1379. case 134400:
  1380. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1381. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1382. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefb0808);
  1383. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x604b1cf6);
  1384. break;
  1385. case 139200:
  1386. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020100ff);
  1387. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1388. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80609);
  1389. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef9);
  1390. break;
  1391. case 144000:
  1392. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1393. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1394. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1395. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1396. break;
  1397. case 148800:
  1398. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1399. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fffcfd);
  1400. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff40108);
  1401. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722ff);
  1402. break;
  1403. case 132000:
  1404. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1405. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1406. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0807);
  1407. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1408. break;
  1409. case 138000:
  1410. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1411. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fcfc00);
  1412. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef90608);
  1413. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1414. break;
  1415. /*case 144000:
  1416. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1417. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1418. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1419. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1420. break;*/
  1421. case 150000:
  1422. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1423. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0600fcfd);
  1424. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f40008);
  1425. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x56462200);
  1426. break;
  1427. case 132210:
  1428. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1429. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfd02);
  1430. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0807);
  1431. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1432. break;
  1433. case 135600:
  1434. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1435. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfd01);
  1436. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1437. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5f4b1df7);
  1438. break;
  1439. case 142380:
  1440. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1441. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fdfcff);
  1442. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef70509);
  1443. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5b491ffb);
  1444. break;
  1445. case 149160:
  1446. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00020100);
  1447. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fffcfd);
  1448. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f40108);
  1449. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x564722ff);
  1450. break;
  1451. /*case 132000:
  1452. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1453. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfffbfe02);
  1454. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefc0807);
  1455. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x614b1bf5);
  1456. break;*/
  1457. case 136000:
  1458. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1459. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x01fbfd01);
  1460. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1461. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5f4a1df7);
  1462. break;
  1463. case 140000:
  1464. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020100ff);
  1465. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1466. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80609);
  1467. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef9);
  1468. break;
  1469. /*case 144000:
  1470. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1471. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1472. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1473. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1474. break;*/
  1475. case 130200:
  1476. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0200ffff);
  1477. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0xfefbfe02);
  1478. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefd0907);
  1479. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x624c1af4);
  1480. break;
  1481. case 134850:
  1482. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0201ffff);
  1483. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x00fbfd01);
  1484. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeefa0708);
  1485. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x604b1cf7);
  1486. break;
  1487. case 139500:
  1488. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020100ff);
  1489. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fcfc00);
  1490. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef80609);
  1491. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef9);
  1492. break;
  1493. case 144150:
  1494. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1495. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1496. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1497. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1498. break;
  1499. case 130900:
  1500. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020200ff);
  1501. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fdfcff);
  1502. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef60409);
  1503. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4820fc);
  1504. break;
  1505. default:
  1506. return BBM_NOK;
  1507. }
  1508. #endif /* #if (BBM_BAND_WIDTH == 6) */
  1509. return BBM_OK;
  1510. }
  1511. #endif
  1512. static s32 fc8300_set_acif_13seg(HANDLE handle, DEVICEID devid, u32 clk)
  1513. {
  1514. #if (BBM_BAND_WIDTH == 6)
  1515. switch (clk) {
  1516. case 100750:
  1517. case 100800:
  1518. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040400fd);
  1519. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fbf9fe);
  1520. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf6050b);
  1521. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5b4920fa);
  1522. break;
  1523. case 105600:
  1524. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x010503ff);
  1525. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fff9fb);
  1526. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef3010a);
  1527. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722fe);
  1528. break;
  1529. case 110400:
  1530. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe030402);
  1531. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0902fbfa);
  1532. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f1fe08);
  1533. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x53452402);
  1534. break;
  1535. case 115200:
  1536. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfc010403);
  1537. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0905fefa);
  1538. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf2f0fb06);
  1539. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x50432606);
  1540. break;
  1541. case 99000:
  1542. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffc);
  1543. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafa00);
  1544. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7070b);
  1545. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ff9);
  1546. break;
  1547. case 102000:
  1548. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fd);
  1549. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fcf9fe);
  1550. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1551. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1552. break;
  1553. case 105000:
  1554. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020503ff);
  1555. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fef9fc);
  1556. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef4020a);
  1557. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722fe);
  1558. break;
  1559. case 108000:
  1560. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1561. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafa);
  1562. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1563. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1564. break;
  1565. case 120000:
  1566. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfbfe0304);
  1567. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x090700fb);
  1568. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf4f0f803);
  1569. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x4d422709);
  1570. break;
  1571. case 98310:
  1572. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0503fffc);
  1573. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fafa00);
  1574. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8070b);
  1575. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ef8);
  1576. break;
  1577. case 101700:
  1578. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040401fd);
  1579. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fcf9fe);
  1580. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5050b);
  1581. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1582. break;
  1583. case 105090:
  1584. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020503ff);
  1585. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fef9fc);
  1586. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef3020a);
  1587. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722fe);
  1588. break;
  1589. case 108480:
  1590. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xff040401);
  1591. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0801fafa);
  1592. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1593. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x54462401);
  1594. break;
  1595. case 100000:
  1596. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040400fd);
  1597. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fbf9ff);
  1598. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf7060b);
  1599. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c4a1ffa);
  1600. break;
  1601. case 104000:
  1602. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020502fe);
  1603. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fc);
  1604. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef4030a);
  1605. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x584821fd);
  1606. break;
  1607. /*case 108000:
  1608. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1609. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafa);
  1610. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1611. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1612. break;*/
  1613. case 112000:
  1614. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020402);
  1615. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1616. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fd07);
  1617. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452504);
  1618. break;
  1619. case 97650:
  1620. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0503fefc);
  1621. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fafa01);
  1622. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8080a);
  1623. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1624. break;
  1625. case 102300:
  1626. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fd);
  1627. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fcf9fd);
  1628. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1629. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4921fc);
  1630. break;
  1631. case 106950:
  1632. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1633. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafb);
  1634. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff3000a);
  1635. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x56472300);
  1636. break;
  1637. case 111600:
  1638. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020402);
  1639. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1640. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fd07);
  1641. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452503);
  1642. break;
  1643. case 116000:
  1644. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfc000404);
  1645. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0905fefa);
  1646. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf3f0fa05);
  1647. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x4f432606);
  1648. break;
  1649. case 98175:
  1650. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0503fffc);
  1651. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fafa00);
  1652. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8070b);
  1653. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1654. break;
  1655. case 102850:
  1656. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fe);
  1657. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fd);
  1658. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1659. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x594821fc);
  1660. break;
  1661. case 107250:
  1662. case 107525:
  1663. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1664. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafb);
  1665. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff20009);
  1666. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462300);
  1667. break;
  1668. case 112200:
  1669. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020402);
  1670. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1671. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fc07);
  1672. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452504);
  1673. break;
  1674. default:
  1675. return BBM_NOK;
  1676. }
  1677. #elif (BBM_BAND_WIDTH == 7)
  1678. switch (clk) {
  1679. case 115200:
  1680. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffc);
  1681. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafa00);
  1682. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8070b);
  1683. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ff9);
  1684. break;
  1685. case 120000:
  1686. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fe);
  1687. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fd);
  1688. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1689. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x594821fc);
  1690. break;
  1691. case 124800:
  1692. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1693. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafb);
  1694. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff30009);
  1695. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x56472300);
  1696. break;
  1697. case 129600:
  1698. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe030402);
  1699. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1700. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f1fd08);
  1701. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452403);
  1702. break;
  1703. case 114000:
  1704. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0503fefc);
  1705. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fafa01);
  1706. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8080a);
  1707. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1708. break;
  1709. case 117000:
  1710. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040400fd);
  1711. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fbf9ff);
  1712. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf6060b);
  1713. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c4920fa);
  1714. break;
  1715. /*case 120000:
  1716. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fe);
  1717. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fd);
  1718. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1719. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x594821fc);
  1720. break;*/
  1721. case 126000:
  1722. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1723. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafa);
  1724. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1725. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1726. break;
  1727. case 115260:
  1728. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffc);
  1729. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafa00);
  1730. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7070b);
  1731. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ff9);
  1732. break;
  1733. case 118650:
  1734. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040401fd);
  1735. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fcf9fe);
  1736. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5050b);
  1737. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1738. break;
  1739. case 122040:
  1740. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020502fe);
  1741. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fef9fc);
  1742. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef4020a);
  1743. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x584822fe);
  1744. break;
  1745. case 125430:
  1746. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1747. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafb);
  1748. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff20009);
  1749. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462300);
  1750. break;
  1751. case 116000:
  1752. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffd);
  1753. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafaff);
  1754. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7060b);
  1755. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c4a1ff9);
  1756. break;
  1757. /*case 120000:
  1758. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fe);
  1759. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fd);
  1760. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1761. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x594821fc);
  1762. break;*/
  1763. case 124000:
  1764. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x010403ff);
  1765. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x08fffafb);
  1766. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef3010a);
  1767. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x564723ff);
  1768. break;
  1769. case 128000:
  1770. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfe030401);
  1771. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0902fbfa);
  1772. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf0f2fe08);
  1773. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x53452402);
  1774. break;
  1775. case 116250:
  1776. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0404fffd);
  1777. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fbfaff);
  1778. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7060b);
  1779. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c4a1ff9);
  1780. break;
  1781. case 120900:
  1782. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020502fe);
  1783. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fd);
  1784. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf4030a);
  1785. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x594821fd);
  1786. break;
  1787. case 125550:
  1788. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1789. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafb);
  1790. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff20009);
  1791. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462300);
  1792. break;
  1793. case 130200:
  1794. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020402);
  1795. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1796. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fd07);
  1797. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452503);
  1798. break;
  1799. case 116875:
  1800. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040400fd);
  1801. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fbf9ff);
  1802. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf7060b);
  1803. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5c491ffa);
  1804. break;
  1805. default:
  1806. return BBM_NOK;
  1807. }
  1808. #else /* BBM_BAND_WIDTH == 8) */
  1809. switch (clk) {
  1810. case 134400:
  1811. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040400fd);
  1812. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fbf9fe);
  1813. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf6050b);
  1814. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5b4920fa);
  1815. break;
  1816. case 139200:
  1817. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020502fe);
  1818. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fef9fc);
  1819. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef4020a);
  1820. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x584822fd);
  1821. break;
  1822. case 144000:
  1823. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1824. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafa);
  1825. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1826. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1827. break;
  1828. case 148800:
  1829. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020402);
  1830. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1831. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fd07);
  1832. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452503);
  1833. break;
  1834. case 132000:
  1835. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffc);
  1836. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafa00);
  1837. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7070b);
  1838. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ff9);
  1839. break;
  1840. case 138000:
  1841. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030502fe);
  1842. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x06fdf9fd);
  1843. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf4030a);
  1844. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x594821fd);
  1845. break;
  1846. /*case 144000:
  1847. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1848. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafa);
  1849. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1850. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1851. break;*/
  1852. case 150000:
  1853. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020403);
  1854. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1855. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fc07);
  1856. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x51442504);
  1857. break;
  1858. case 132210:
  1859. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffc);
  1860. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafa00);
  1861. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7070b);
  1862. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ff9);
  1863. break;
  1864. case 135600:
  1865. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040401fd);
  1866. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fcf9fe);
  1867. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5050b);
  1868. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1869. break;
  1870. case 142380:
  1871. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040300);
  1872. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafb);
  1873. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff3000a);
  1874. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x56472300);
  1875. break;
  1876. case 149160:
  1877. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xfd020402);
  1878. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0903fcfa);
  1879. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xf1f1fd07);
  1880. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x52452503);
  1881. break;
  1882. /*case 132000:
  1883. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0504fffc);
  1884. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x03fafa00);
  1885. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf7070b);
  1886. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5d4a1ff9);
  1887. break;*/
  1888. case 136000:
  1889. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x030501fd);
  1890. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x05fcf9fe);
  1891. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf5040b);
  1892. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5a4920fb);
  1893. break;
  1894. case 140000:
  1895. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020503ff);
  1896. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fef9fc);
  1897. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef4020a);
  1898. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x574722fe);
  1899. break;
  1900. /*case 144000:
  1901. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x00040400);
  1902. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0800fafa);
  1903. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1904. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1905. break;*/
  1906. case 130200:
  1907. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0503fefc);
  1908. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fafa01);
  1909. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8080a);
  1910. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1911. break;
  1912. case 134850:
  1913. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x040400fd);
  1914. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x04fbf9fe);
  1915. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xedf6050b);
  1916. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5b4920fb);
  1917. break;
  1918. case 139500:
  1919. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x020502fe);
  1920. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x07fef9fc);
  1921. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeef4020a);
  1922. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x584822fe);
  1923. break;
  1924. case 144150:
  1925. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0xff040400);
  1926. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x0801fafa);
  1927. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xeff2ff09);
  1928. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x55462301);
  1929. break;
  1930. case 130900:
  1931. bbm_long_write(handle, devid, BBM_ACIF_COEF_00, 0x0503fffc);
  1932. bbm_long_write(handle, devid, BBM_ACIF_COEF_04, 0x02fafa00);
  1933. bbm_long_write(handle, devid, BBM_ACIF_COEF_08, 0xecf8070b);
  1934. bbm_long_write(handle, devid, BBM_ACIF_COEF_12, 0x5e4a1ef8);
  1935. break;
  1936. default:
  1937. return BBM_NOK;
  1938. }
  1939. #endif /* #if (BBM_BAND_WIDTH == 6) */
  1940. return BBM_OK;
  1941. }
  1942. static s32 fc8300_set_cal_front_1seg(HANDLE handle, DEVICEID devid, u32 clk)
  1943. {
  1944. #if (BBM_BAND_WIDTH == 6)
  1945. switch (clk) {
  1946. case 97650:
  1947. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2fd1);
  1948. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fead);
  1949. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x200a999a);
  1950. break;
  1951. case 97875:
  1952. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2fb5);
  1953. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fc53);
  1954. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x201d8000);
  1955. break;
  1956. case 98175:
  1957. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2f90);
  1958. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f935);
  1959. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2036b333);
  1960. break;
  1961. case 98304:
  1962. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2f80);
  1963. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7df);
  1964. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20418937);
  1965. break;
  1966. case 98310:
  1967. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2f7f);
  1968. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7d0);
  1969. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20420a3d);
  1970. break;
  1971. case 99000:
  1972. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2f2b);
  1973. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f0bb);
  1974. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x207c0000);
  1975. break;
  1976. case 100000:
  1977. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2eb2);
  1978. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3e6a5);
  1979. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20d00000);
  1980. break;
  1981. case 100750:
  1982. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2e59);
  1983. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3df36);
  1984. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x210f0000);
  1985. break;
  1986. case 100800:
  1987. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2e53);
  1988. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3deb8);
  1989. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21133333);
  1990. break;
  1991. case 101250:
  1992. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2e1e);
  1993. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3da51);
  1994. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21390000);
  1995. break;
  1996. case 101376:
  1997. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2e10);
  1998. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d917);
  1999. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21439581);
  2000. break;
  2001. case 101700:
  2002. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2dea);
  2003. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d5f3);
  2004. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x215ecccd);
  2005. break;
  2006. case 102400:
  2007. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2d9a);
  2008. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cf3d);
  2009. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2199999a);
  2010. break;
  2011. case 102850:
  2012. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2d67);
  2013. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3caf9);
  2014. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21bf6666);
  2015. break;
  2016. case 103125:
  2017. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2d48);
  2018. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c862);
  2019. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21d68000);
  2020. break;
  2021. case 104000:
  2022. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2ce6);
  2023. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c03c);
  2024. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x22200000);
  2025. break;
  2026. case 105600:
  2027. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2c38);
  2028. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3b1af);
  2029. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x22a66666);
  2030. break;
  2031. case 107250:
  2032. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2b8a);
  2033. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3a323);
  2034. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x23310000);
  2035. break;
  2036. case 107525:
  2037. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2b6d);
  2038. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3a0c1);
  2039. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2348199a);
  2040. break;
  2041. case 108000:
  2042. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2b3c);
  2043. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x39cac);
  2044. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x23700000);
  2045. break;
  2046. case 110400:
  2047. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2a4c);
  2048. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x38892);
  2049. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2439999a);
  2050. break;
  2051. case 111600:
  2052. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x29d7);
  2053. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x37ed8);
  2054. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x249e6666);
  2055. break;
  2056. case 112000:
  2057. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x29b1);
  2058. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x37ba5);
  2059. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x24c00000);
  2060. break;
  2061. case 112200:
  2062. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x299e);
  2063. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x37a0f);
  2064. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x24d0cccd);
  2065. break;
  2066. default:
  2067. return BBM_NOK;
  2068. }
  2069. #elif (BBM_BAND_WIDTH == 7)
  2070. switch (clk) {
  2071. case 114000:
  2072. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x28f6);
  2073. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fe01);
  2074. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20100000);
  2075. break;
  2076. case 114688:
  2077. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x28b7);
  2078. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7df);
  2079. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20418937);
  2080. break;
  2081. case 114750:
  2082. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x28b1);
  2083. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f753);
  2084. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20460000);
  2085. break;
  2086. case 115200:
  2087. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2889);
  2088. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f35c);
  2089. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20666666);
  2090. break;
  2091. case 115260:
  2092. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2883);
  2093. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f2d5);
  2094. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x206ab852);
  2095. break;
  2096. case 115625:
  2097. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2862);
  2098. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3efa4);
  2099. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20850000);
  2100. break;
  2101. case 116000:
  2102. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2841);
  2103. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ec62);
  2104. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20a00000);
  2105. break;
  2106. case 116250:
  2107. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x282b);
  2108. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ea39);
  2109. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20b20000);
  2110. break;
  2111. case 116736:
  2112. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2800);
  2113. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3e60d);
  2114. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20d4fdf4);
  2115. break;
  2116. case 116875:
  2117. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x27f4);
  2118. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x35674);
  2119. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x26598000);
  2120. break;
  2121. case 117000:
  2122. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x27e9);
  2123. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3e3cc);
  2124. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20e80000);
  2125. break;
  2126. case 118125:
  2127. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2788);
  2128. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3da51);
  2129. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21390000);
  2130. break;
  2131. case 118650:
  2132. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x275b);
  2133. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d5f3);
  2134. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x215ecccd);
  2135. break;
  2136. case 118750:
  2137. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2752);
  2138. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d520);
  2139. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21660000);
  2140. break;
  2141. case 118784:
  2142. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x274f);
  2143. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d4d8);
  2144. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x216872b0);
  2145. break;
  2146. case 120000:
  2147. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x26e9);
  2148. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cae7);
  2149. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21c00000);
  2150. break;
  2151. case 120900:
  2152. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x269f);
  2153. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c3ad);
  2154. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2200cccd);
  2155. break;
  2156. default:
  2157. return BBM_NOK;
  2158. }
  2159. #else /* (BBM_BAND_WIDTH == 8) */
  2160. switch (clk) {
  2161. case 130200:
  2162. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x23dd);
  2163. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fead);
  2164. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x200a999a);
  2165. break;
  2166. case 130500:
  2167. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x23c8);
  2168. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fc53);
  2169. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x201d8000);
  2170. break;
  2171. case 130900:
  2172. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x23ac);
  2173. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x2fae8);
  2174. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2af3999a);
  2175. break;
  2176. case 131072:
  2177. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x23a0);
  2178. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7df);
  2179. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20418937);
  2180. break;
  2181. case 131250:
  2182. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2394);
  2183. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f67f);
  2184. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x204cc000);
  2185. break;
  2186. case 131625:
  2187. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x237a);
  2188. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f39b);
  2189. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20646000);
  2190. break;
  2191. case 132000:
  2192. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2360);
  2193. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f0bb);
  2194. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x207c0000);
  2195. break;
  2196. case 132210:
  2197. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2351);
  2198. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ef21);
  2199. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x20893ae1);
  2200. break;
  2201. case 134400:
  2202. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x22be);
  2203. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3deb8);
  2204. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21133333);
  2205. break;
  2206. case 134850:
  2207. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x22a0);
  2208. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3db69);
  2209. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x212f8ccd);
  2210. break;
  2211. case 135000:
  2212. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2297);
  2213. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3da51);
  2214. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21390000);
  2215. break;
  2216. case 135168:
  2217. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x228c);
  2218. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d917);
  2219. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21439581);
  2220. break;
  2221. case 135600:
  2222. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x226f);
  2223. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d5f3);
  2224. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x215ecccd);
  2225. break;
  2226. case 136000:
  2227. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2256);
  2228. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d310);
  2229. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21780000);
  2230. break;
  2231. case 136500:
  2232. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2235);
  2233. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cf7a);
  2234. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21978000);
  2235. break;
  2236. case 137500:
  2237. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x21f6);
  2238. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c862);
  2239. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21d68000);
  2240. break;
  2241. case 138000:
  2242. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x21d6);
  2243. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c4e0);
  2244. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x21f60000);
  2245. break;
  2246. case 139200:
  2247. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x218b);
  2248. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3bc8e);
  2249. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2241999a);
  2250. break;
  2251. case 139264:
  2252. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2188);
  2253. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3bc1e);
  2254. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x2245a1cb);
  2255. break;
  2256. case 139500:
  2257. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x2179);
  2258. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ba80);
  2259. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x22548000);
  2260. break;
  2261. case 141312:
  2262. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x210b);
  2263. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ae42);
  2264. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x22c6a7f0);
  2265. break;
  2266. case 141750:
  2267. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x20f1);
  2268. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ab59);
  2269. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x22e24000);
  2270. break;
  2271. case 143000:
  2272. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x20a7);
  2273. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3a323);
  2274. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x23310000);
  2275. break;
  2276. default:
  2277. return BBM_NOK;
  2278. }
  2279. #endif
  2280. return BBM_OK;
  2281. }
  2282. #if 0
  2283. static s32 fc8300_set_cal_front_3seg(HANDLE handle, DEVICEID devid, u32 clk)
  2284. {
  2285. #if (BBM_BAND_WIDTH == 6)
  2286. switch (clk) {
  2287. case 97650:
  2288. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7dd6);
  2289. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fead);
  2290. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10054ccd);
  2291. break;
  2292. case 97875:
  2293. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7d8c);
  2294. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fc53);
  2295. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x100ec000);
  2296. break;
  2297. case 98175:
  2298. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7d2a);
  2299. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f935);
  2300. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x101b599a);
  2301. break;
  2302. case 98304:
  2303. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7d00);
  2304. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7df);
  2305. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1020c49c);
  2306. break;
  2307. case 98310:
  2308. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7cfe);
  2309. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7d0);
  2310. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1021051f);
  2311. break;
  2312. case 99000:
  2313. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7c1f);
  2314. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f0bb);
  2315. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x103e0000);
  2316. break;
  2317. case 100000:
  2318. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7ae1);
  2319. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3e6a5);
  2320. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10680000);
  2321. break;
  2322. case 100750:
  2323. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x79f7);
  2324. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3df36);
  2325. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10878000);
  2326. break;
  2327. case 100800:
  2328. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x79e8);
  2329. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3deb8);
  2330. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1089999a);
  2331. break;
  2332. case 101250:
  2333. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x795d);
  2334. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3da51);
  2335. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x109c8000);
  2336. break;
  2337. case 101376:
  2338. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7936);
  2339. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d917);
  2340. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10a1cac1);
  2341. break;
  2342. case 101700:
  2343. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x78d3);
  2344. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d5f3);
  2345. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10af6666);
  2346. break;
  2347. case 102000:
  2348. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7878);
  2349. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d310);
  2350. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10bc0000);
  2351. break;
  2352. case 102300:
  2353. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x781e);
  2354. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d031);
  2355. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10c8999a);
  2356. break;
  2357. case 102400:
  2358. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7800);
  2359. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cf3d);
  2360. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10cccccd);
  2361. break;
  2362. case 102850:
  2363. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x777a);
  2364. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3caf9);
  2365. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10dfb333);
  2366. break;
  2367. case 103125:
  2368. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7728);
  2369. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c862);
  2370. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10eb4000);
  2371. break;
  2372. case 103500:
  2373. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x76ba);
  2374. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c4e0);
  2375. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10fb0000);
  2376. break;
  2377. case 104000:
  2378. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7627);
  2379. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c03c);
  2380. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11100000);
  2381. break;
  2382. case 105600:
  2383. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x745d);
  2384. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3b1af);
  2385. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11533333);
  2386. break;
  2387. case 107250:
  2388. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7293);
  2389. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3a323);
  2390. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11988000);
  2391. break;
  2392. case 107525:
  2393. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x7248);
  2394. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3a0c1);
  2395. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11a40ccd);
  2396. break;
  2397. case 108000:
  2398. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x71c7);
  2399. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x39cac);
  2400. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11b80000);
  2401. break;
  2402. case 112000:
  2403. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6db7);
  2404. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x37ba5);
  2405. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12600000);
  2406. break;
  2407. case 112200:
  2408. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6d85);
  2409. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x37a0f);
  2410. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12686666);
  2411. break;
  2412. default:
  2413. return BBM_NOK;
  2414. }
  2415. #elif (BBM_BAND_WIDTH == 7)
  2416. switch (clk) {
  2417. case 114000:
  2418. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6bca);
  2419. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fe01);
  2420. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10080000);
  2421. break;
  2422. case 114688:
  2423. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6b25);
  2424. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7df);
  2425. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1020c49c);
  2426. break;
  2427. case 114750:
  2428. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6b16);
  2429. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f753);
  2430. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10230000);
  2431. break;
  2432. case 115200:
  2433. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6aab);
  2434. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f35c);
  2435. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10333333);
  2436. break;
  2437. case 115260:
  2438. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6a9c);
  2439. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f2d5);
  2440. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10355c29);
  2441. break;
  2442. case 115625:
  2443. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6a46);
  2444. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3efa4);
  2445. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10428000);
  2446. break;
  2447. case 116000:
  2448. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x69ee);
  2449. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ec62);
  2450. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10500000);
  2451. break;
  2452. case 116250:
  2453. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x69b4);
  2454. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ea39);
  2455. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10590000);
  2456. break;
  2457. case 116736:
  2458. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6943);
  2459. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3e60d);
  2460. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x106a7efa);
  2461. break;
  2462. case 116875:
  2463. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6923);
  2464. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x35674);
  2465. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x132cc000);
  2466. break;
  2467. case 117000:
  2468. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6907);
  2469. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3e3cc);
  2470. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10740000);
  2471. break;
  2472. case 118125:
  2473. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6807);
  2474. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3da51);
  2475. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x109c8000);
  2476. break;
  2477. case 118650:
  2478. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6791);
  2479. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d5f3);
  2480. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10af6666);
  2481. break;
  2482. case 118750:
  2483. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x677a);
  2484. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d520);
  2485. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10b30000);
  2486. break;
  2487. case 118784:
  2488. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6773);
  2489. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d4d8);
  2490. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10b43958);
  2491. break;
  2492. case 119808:
  2493. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6690);
  2494. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cc76);
  2495. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10d91687);
  2496. break;
  2497. case 120000:
  2498. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6666);
  2499. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cae7);
  2500. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10e00000);
  2501. break;
  2502. case 120250:
  2503. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6630);
  2504. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c8e3);
  2505. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10e90000);
  2506. break;
  2507. case 120900:
  2508. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x65a3);
  2509. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3c3ad);
  2510. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11006666);
  2511. break;
  2512. case 121500:
  2513. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x6523);
  2514. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3beeb);
  2515. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11160000);
  2516. break;
  2517. default:
  2518. return BBM_NOK;
  2519. }
  2520. #else /* BBM_BAND_WIDTH == 8) */
  2521. switch (clk) {
  2522. case 130200:
  2523. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5e61);
  2524. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fead);
  2525. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10054ccd);
  2526. break;
  2527. case 130500:
  2528. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5e29);
  2529. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3fc53);
  2530. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x100ec000);
  2531. break;
  2532. case 130900:
  2533. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5de0);
  2534. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x2fae8);
  2535. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1579cccd);
  2536. break;
  2537. case 131072:
  2538. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5dc0);
  2539. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f7df);
  2540. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1020c49c);
  2541. break;
  2542. case 131250:
  2543. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5d9f);
  2544. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f67f);
  2545. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10266000);
  2546. break;
  2547. case 131625:
  2548. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5d5b);
  2549. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f39b);
  2550. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10323000);
  2551. break;
  2552. case 132000:
  2553. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5d17);
  2554. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3f0bb);
  2555. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x103e0000);
  2556. break;
  2557. case 132210:
  2558. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5cf1);
  2559. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ef21);
  2560. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10449d71);
  2561. break;
  2562. case 134400:
  2563. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5b6e);
  2564. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3deb8);
  2565. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1089999a);
  2566. break;
  2567. case 135168:
  2568. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5ae9);
  2569. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3d917);
  2570. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10a1cac1);
  2571. break;
  2572. case 136500:
  2573. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x5a06);
  2574. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3cf7a);
  2575. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10cbc000);
  2576. break;
  2577. case 141312:
  2578. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x56f5);
  2579. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3ae42);
  2580. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x116353f8);
  2581. break;
  2582. case 143000:
  2583. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x55ee);
  2584. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0x3a323);
  2585. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11988000);
  2586. break;
  2587. default:
  2588. return BBM_NOK;
  2589. }
  2590. #endif /* #if (BBM_BAND_WIDTH == 6) */
  2591. return BBM_OK;
  2592. }
  2593. #endif
  2594. static s32 fc8300_set_cal_front_13seg(HANDLE handle, DEVICEID devid, u32 clk)
  2595. {
  2596. #if (BBM_BAND_WIDTH == 6)
  2597. switch (clk) {
  2598. case 97650:
  2599. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2600. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xffab);
  2601. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10054ccd);
  2602. break;
  2603. case 97875:
  2604. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2605. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xff15);
  2606. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x100ec000);
  2607. break;
  2608. case 98175:
  2609. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2610. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfe4d);
  2611. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x101b599a);
  2612. break;
  2613. case 98304:
  2614. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2615. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfdf8);
  2616. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1020c49c);
  2617. break;
  2618. case 98310:
  2619. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2620. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfdf4);
  2621. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1021051f);
  2622. break;
  2623. case 99000:
  2624. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2625. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfc2f);
  2626. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x103e0000);
  2627. break;
  2628. case 100000:
  2629. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2630. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf9a9);
  2631. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10680000);
  2632. break;
  2633. case 100750:
  2634. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2635. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf7cd);
  2636. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10878000);
  2637. break;
  2638. case 100800:
  2639. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2640. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf7ae);
  2641. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1089999a);
  2642. break;
  2643. case 101250:
  2644. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2645. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf694);
  2646. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x109c8000);
  2647. break;
  2648. case 101376:
  2649. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2650. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf646);
  2651. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10a1cac1);
  2652. break;
  2653. case 101700:
  2654. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2655. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf57d);
  2656. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10af6666);
  2657. break;
  2658. case 102000:
  2659. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2660. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf4c4);
  2661. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10bc0000);
  2662. break;
  2663. case 102300:
  2664. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2665. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf40c);
  2666. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10c8999a);
  2667. break;
  2668. case 102400:
  2669. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2670. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf3cf);
  2671. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10cccccd);
  2672. break;
  2673. case 102850:
  2674. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2675. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf2be);
  2676. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10dfb333);
  2677. break;
  2678. case 103125:
  2679. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2680. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf218);
  2681. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10eb4000);
  2682. break;
  2683. case 103500:
  2684. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2685. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf138);
  2686. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10fb0000);
  2687. break;
  2688. case 104000:
  2689. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2690. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf00f);
  2691. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11100000);
  2692. break;
  2693. case 104448:
  2694. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2695. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xef07);
  2696. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1122d0e5);
  2697. break;
  2698. case 104625:
  2699. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2700. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeea0);
  2701. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x112a4000);
  2702. break;
  2703. case 105000:
  2704. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2705. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xedc6);
  2706. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x113a0000);
  2707. break;
  2708. case 105090:
  2709. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2710. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xed92);
  2711. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x113dc7ae);
  2712. break;
  2713. case 105600:
  2714. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2715. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xec6c);
  2716. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11533333);
  2717. break;
  2718. case 106250:
  2719. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2720. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeafa);
  2721. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x116e8000);
  2722. break;
  2723. case 106496:
  2724. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2725. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xea6f);
  2726. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1178d4fe);
  2727. break;
  2728. case 106950:
  2729. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2730. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe970);
  2731. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x118be666);
  2732. break;
  2733. case 107250:
  2734. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2735. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe8c9);
  2736. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11988000);
  2737. break;
  2738. case 107525:
  2739. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2740. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe830);
  2741. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11a40ccd);
  2742. break;
  2743. case 108000:
  2744. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2745. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe72b);
  2746. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11b80000);
  2747. break;
  2748. case 108480:
  2749. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2750. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe625);
  2751. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11cc28f6);
  2752. break;
  2753. case 109375:
  2754. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2755. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe443);
  2756. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11f1c000);
  2757. break;
  2758. case 110400:
  2759. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2760. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe224);
  2761. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x121ccccd);
  2762. break;
  2763. case 110500:
  2764. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2765. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe1f0);
  2766. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12210000);
  2767. break;
  2768. case 110592:
  2769. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2770. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe1c0);
  2771. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1224dd2f);
  2772. break;
  2773. case 111600:
  2774. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2775. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdfb6);
  2776. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x124f3333);
  2777. break;
  2778. case 112000:
  2779. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2780. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdee9);
  2781. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12600000);
  2782. break;
  2783. case 112200:
  2784. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2785. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xde84);
  2786. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12686666);
  2787. break;
  2788. case 112500:
  2789. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2790. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xddec);
  2791. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12750000);
  2792. break;
  2793. case 114000:
  2794. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2795. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdb00);
  2796. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12b40000);
  2797. break;
  2798. case 114750:
  2799. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2800. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd992);
  2801. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12d38000);
  2802. break;
  2803. case 115200:
  2804. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2805. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd8b8);
  2806. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12e66666);
  2807. break;
  2808. case 116000:
  2809. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2810. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd73a);
  2811. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13080000);
  2812. break;
  2813. case 117000:
  2814. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2815. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd563);
  2816. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13320000);
  2817. break;
  2818. case 118125:
  2819. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2820. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd35a);
  2821. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13614000);
  2822. break;
  2823. case 118750:
  2824. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2825. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd23e);
  2826. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x137b8000);
  2827. break;
  2828. case 120000:
  2829. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2830. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd00d);
  2831. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13b00000);
  2832. break;
  2833. case 120250:
  2834. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2835. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xcf9e);
  2836. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13ba8000);
  2837. break;
  2838. default:
  2839. return BBM_NOK;
  2840. }
  2841. #elif (BBM_BAND_WIDTH == 7)
  2842. switch (clk) {
  2843. case 114000:
  2844. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2845. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xff80);
  2846. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10080000);
  2847. break;
  2848. case 114688:
  2849. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2850. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfdf8);
  2851. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1020c49c);
  2852. break;
  2853. case 114750:
  2854. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2855. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfdd5);
  2856. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10230000);
  2857. break;
  2858. case 115200:
  2859. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2860. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfcd7);
  2861. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10333333);
  2862. break;
  2863. case 115260:
  2864. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2865. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfcb5);
  2866. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10355c29);
  2867. break;
  2868. case 115625:
  2869. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2870. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfbe9);
  2871. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10428000);
  2872. break;
  2873. case 116000:
  2874. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2875. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfb19);
  2876. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10500000);
  2877. break;
  2878. case 116250:
  2879. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2880. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfa8e);
  2881. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10590000);
  2882. break;
  2883. case 116736:
  2884. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2885. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf983);
  2886. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x106a7efa);
  2887. break;
  2888. case 116875:
  2889. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2890. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd59d);
  2891. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x132cc000);
  2892. break;
  2893. case 117000:
  2894. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2895. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf8f3);
  2896. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10740000);
  2897. break;
  2898. case 118125:
  2899. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2900. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf694);
  2901. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x109c8000);
  2902. break;
  2903. case 118650:
  2904. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2905. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf57d);
  2906. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10af6666);
  2907. break;
  2908. case 118750:
  2909. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2910. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf548);
  2911. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10b30000);
  2912. break;
  2913. case 118784:
  2914. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2915. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf536);
  2916. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10b43958);
  2917. break;
  2918. case 119808:
  2919. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2920. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf31d);
  2921. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10d91687);
  2922. break;
  2923. case 120000:
  2924. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2925. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf2ba);
  2926. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10e00000);
  2927. break;
  2928. case 120250:
  2929. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2930. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf239);
  2931. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10e90000);
  2932. break;
  2933. case 120900:
  2934. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2935. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf0eb);
  2936. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11006666);
  2937. break;
  2938. case 121500:
  2939. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2940. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xefbb);
  2941. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11160000);
  2942. break;
  2943. case 121875:
  2944. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2945. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeefe);
  2946. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11238000);
  2947. break;
  2948. case 122040:
  2949. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2950. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeeab);
  2951. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x112970a4);
  2952. break;
  2953. case 122880:
  2954. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2955. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xed09);
  2956. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1147ae14);
  2957. break;
  2958. case 123500:
  2959. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2960. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xebd9);
  2961. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x115e0000);
  2962. break;
  2963. case 124000:
  2964. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2965. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeae5);
  2966. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11700000);
  2967. break;
  2968. case 124800:
  2969. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2970. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe964);
  2971. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x118ccccd);
  2972. break;
  2973. case 124875:
  2974. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2975. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe940);
  2976. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x118f8000);
  2977. break;
  2978. case 125000:
  2979. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2980. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe904);
  2981. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11940000);
  2982. break;
  2983. case 125430:
  2984. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2985. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe838);
  2986. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11a37ae1);
  2987. break;
  2988. case 125550:
  2989. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2990. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe7ff);
  2991. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11a7cccd);
  2992. break;
  2993. case 126000:
  2994. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  2995. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe72b);
  2996. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11b80000);
  2997. break;
  2998. case 126750:
  2999. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3000. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe5cd);
  3001. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11d30000);
  3002. break;
  3003. case 126976:
  3004. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3005. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe564);
  3006. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11db22d1);
  3007. break;
  3008. case 128000:
  3009. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3010. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe38e);
  3011. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12000000);
  3012. break;
  3013. case 128250:
  3014. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3015. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe31d);
  3016. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12090000);
  3017. break;
  3018. case 128820:
  3019. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3020. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe21b);
  3021. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x121d851f);
  3022. break;
  3023. case 129024:
  3024. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3025. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe1c0);
  3026. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1224dd2f);
  3027. break;
  3028. case 129600:
  3029. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3030. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe0bf);
  3031. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1239999a);
  3032. break;
  3033. case 130000:
  3034. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3035. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe00e);
  3036. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12480000);
  3037. break;
  3038. case 130200:
  3039. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3040. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdfb6);
  3041. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x124f3333);
  3042. break;
  3043. case 130500:
  3044. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3045. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdf32);
  3046. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x125a0000);
  3047. break;
  3048. case 131072:
  3049. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3050. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xde39);
  3051. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x126e978d);
  3052. break;
  3053. case 131250:
  3054. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3055. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xddec);
  3056. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12750000);
  3057. break;
  3058. case 131625:
  3059. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3060. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdd4a);
  3061. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12828000);
  3062. break;
  3063. case 132000:
  3064. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3065. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdca9);
  3066. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12900000);
  3067. break;
  3068. case 132210:
  3069. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3070. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdc4f);
  3071. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12978f5c);
  3072. break;
  3073. case 134400:
  3074. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3075. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd8b8);
  3076. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12e66666);
  3077. break;
  3078. case 134850:
  3079. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3080. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd7ff);
  3081. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12f6999a);
  3082. break;
  3083. case 135000:
  3084. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3085. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd7c2);
  3086. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12fc0000);
  3087. break;
  3088. case 135168:
  3089. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3090. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd77d);
  3091. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13020c4a);
  3092. break;
  3093. case 136000:
  3094. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3095. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd62c);
  3096. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13200000);
  3097. break;
  3098. case 136500:
  3099. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3100. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd563);
  3101. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13320000);
  3102. break;
  3103. case 139200:
  3104. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3105. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd13f);
  3106. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13933333);
  3107. break;
  3108. case 139500:
  3109. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3110. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd0cc);
  3111. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x139e0000);
  3112. break;
  3113. case 140000:
  3114. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3115. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd00d);
  3116. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13b00000);
  3117. break;
  3118. case 141750:
  3119. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3120. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xcd7b);
  3121. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13ef0000);
  3122. break;
  3123. default:
  3124. return BBM_NOK;
  3125. }
  3126. #else /* BBM_BAND_WIDTH == 8) */
  3127. switch (clk) {
  3128. case 130200:
  3129. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3130. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xffab);
  3131. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10054ccd);
  3132. break;
  3133. case 130500:
  3134. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3135. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xff15);
  3136. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x100ec000);
  3137. break;
  3138. case 130900:
  3139. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3140. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xbeba);
  3141. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1579cccd);
  3142. break;
  3143. case 131072:
  3144. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3145. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfdf8);
  3146. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1020c49c);
  3147. break;
  3148. case 131250:
  3149. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3150. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfda0);
  3151. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10266000);
  3152. break;
  3153. case 131625:
  3154. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3155. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfce7);
  3156. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10323000);
  3157. break;
  3158. case 132000:
  3159. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3160. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfc2f);
  3161. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x103e0000);
  3162. break;
  3163. case 132210:
  3164. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3165. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xfbc8);
  3166. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10449d71);
  3167. break;
  3168. case 134400:
  3169. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3170. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf7ae);
  3171. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1089999a);
  3172. break;
  3173. case 134850:
  3174. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3175. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf6da);
  3176. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1097c666);
  3177. break;
  3178. case 135000:
  3179. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3180. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf694);
  3181. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x109c8000);
  3182. break;
  3183. case 135168:
  3184. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3185. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf646);
  3186. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10a1cac1);
  3187. break;
  3188. case 135600:
  3189. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3190. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf57d);
  3191. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10af6666);
  3192. break;
  3193. case 136000:
  3194. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3195. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf4c4);
  3196. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10bc0000);
  3197. break;
  3198. case 136500:
  3199. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3200. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf3de);
  3201. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10cbc000);
  3202. break;
  3203. case 137500:
  3204. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3205. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf218);
  3206. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10eb4000);
  3207. break;
  3208. case 138000:
  3209. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3210. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xf138);
  3211. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x10fb0000);
  3212. break;
  3213. case 139200:
  3214. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3215. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xef24);
  3216. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1120cccd);
  3217. break;
  3218. case 139264:
  3219. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3220. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xef07);
  3221. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1122d0e5);
  3222. break;
  3223. case 139500:
  3224. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3225. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeea0);
  3226. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x112a4000);
  3227. break;
  3228. case 140000:
  3229. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3230. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xedc6);
  3231. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x113a0000);
  3232. break;
  3233. case 141312:
  3234. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3235. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xeb91);
  3236. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x116353f8);
  3237. break;
  3238. case 141750:
  3239. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3240. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xead6);
  3241. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11712000);
  3242. break;
  3243. case 142380:
  3244. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3245. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe9cc);
  3246. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1184f852);
  3247. break;
  3248. case 143000:
  3249. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3250. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe8c9);
  3251. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11988000);
  3252. break;
  3253. case 143360:
  3254. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3255. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe833);
  3256. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11a3d70a);
  3257. break;
  3258. case 143750:
  3259. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3260. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe792);
  3261. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11b02000);
  3262. break;
  3263. case 144000:
  3264. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3265. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe72b);
  3266. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11b80000);
  3267. break;
  3268. case 144150:
  3269. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3270. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe6ed);
  3271. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x11bcb99a);
  3272. break;
  3273. case 147456:
  3274. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3275. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe1c0);
  3276. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1224dd2f);
  3277. break;
  3278. case 148500:
  3279. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3280. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xe02a);
  3281. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1245c000);
  3282. break;
  3283. case 149500:
  3284. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3285. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdeaa);
  3286. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12654000);
  3287. break;
  3288. case 150000:
  3289. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3290. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xddec);
  3291. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12750000);
  3292. break;
  3293. case 152000:
  3294. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3295. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xdb00);
  3296. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12b40000);
  3297. break;
  3298. case 153000:
  3299. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3300. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd992);
  3301. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12d38000);
  3302. break;
  3303. case 153450:
  3304. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3305. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd8ee);
  3306. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12e1accd);
  3307. break;
  3308. case 153600:
  3309. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3310. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd8b8);
  3311. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x12e66666);
  3312. break;
  3313. case 156000:
  3314. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3315. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd563);
  3316. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13320000);
  3317. break;
  3318. case 156250:
  3319. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3320. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd50b);
  3321. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x1339e000);
  3322. break;
  3323. case 157500:
  3324. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3325. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd35a);
  3326. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13614000);
  3327. break;
  3328. case 158100:
  3329. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3330. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd28d);
  3331. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13742666);
  3332. break;
  3333. case 158400:
  3334. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3335. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd227);
  3336. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x137d999a);
  3337. break;
  3338. case 159744:
  3339. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3340. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xd062);
  3341. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13a7ef9e);
  3342. break;
  3343. case 162000:
  3344. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3345. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xcd7b);
  3346. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13ef0000);
  3347. break;
  3348. case 162500:
  3349. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3350. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xccda);
  3351. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x13fec000);
  3352. break;
  3353. case 165888:
  3354. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3355. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xc8ab);
  3356. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x146978d5);
  3357. break;
  3358. case 169000:
  3359. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3360. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xc4f9);
  3361. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x14cb8000);
  3362. break;
  3363. case 172032:
  3364. bbm_word_write(handle, devid, BBM_LOW_IF_VALUE, 0x0);
  3365. bbm_long_write(handle, devid, BBM_FREQ_COMPEN_VAL0, 0xc180);
  3366. bbm_long_write(handle, devid, BBM_NCO_OFFSET, 0x152b020c);
  3367. break;
  3368. default:
  3369. return BBM_NOK;
  3370. }
  3371. #endif /* #if (BBM_BAND_WIDTH == 6) */
  3372. return BBM_OK;
  3373. }
  3374. static s32 fc8300_set_default_core_clk(HANDLE handle, DEVICEID devid)
  3375. {
  3376. u16 pll_set;
  3377. #if (BBM_BAND_WIDTH == 6)
  3378. #if (BBM_XTAL_FREQ == 16000)
  3379. pll_set = 0x1711;
  3380. #elif (BBM_XTAL_FREQ == 16384)
  3381. pll_set = 0x1611;
  3382. #elif (BBM_XTAL_FREQ == 18000)
  3383. pll_set = 0x1411;
  3384. #elif (BBM_XTAL_FREQ == 19200)
  3385. pll_set = 0x1311;
  3386. #elif (BBM_XTAL_FREQ == 24000)
  3387. pll_set = 0x1f12;
  3388. #elif (BBM_XTAL_FREQ == 24576)
  3389. pll_set = 0x1e12;
  3390. #elif (BBM_XTAL_FREQ == 26000)
  3391. pll_set = 0x1d12;
  3392. #elif (BBM_XTAL_FREQ == 27000)
  3393. pll_set = 0x1b12;
  3394. #elif (BBM_XTAL_FREQ == 27120)
  3395. pll_set = 0x1b12;
  3396. #elif (BBM_XTAL_FREQ == 32000)
  3397. pll_set = 0x1712;
  3398. #elif (BBM_XTAL_FREQ == 37200)
  3399. pll_set = 0x1312;
  3400. #elif (BBM_XTAL_FREQ == 37400)
  3401. pll_set = 0x1312;
  3402. #elif (BBM_XTAL_FREQ == 38400)
  3403. pll_set = 0x1312;
  3404. #endif /* BBM_XTAL_FREQ */
  3405. #elif (BBM_BAND_WIDTH == 7)
  3406. #if (BBM_XTAL_FREQ == 16000)
  3407. pll_set = 0x1b11;
  3408. #elif (BBM_XTAL_FREQ == 16384)
  3409. pll_set = 0x1a11;
  3410. #elif (BBM_XTAL_FREQ == 18000)
  3411. pll_set = 0x1811;
  3412. #elif (BBM_XTAL_FREQ == 19200)
  3413. pll_set = 0x1611;
  3414. #elif (BBM_XTAL_FREQ == 24000)
  3415. pll_set = 0x2412;
  3416. #elif (BBM_XTAL_FREQ == 24576)
  3417. pll_set = 0x2412;
  3418. #elif (BBM_XTAL_FREQ == 26000)
  3419. pll_set = 0x2212;
  3420. #elif (BBM_XTAL_FREQ == 27000)
  3421. pll_set = 0x2012;
  3422. #elif (BBM_XTAL_FREQ == 27120)
  3423. pll_set = 0x2012;
  3424. #elif (BBM_XTAL_FREQ == 32000)
  3425. pll_set = 0x1b12;
  3426. #elif (BBM_XTAL_FREQ == 37200)
  3427. pll_set = 0x1712;
  3428. #elif (BBM_XTAL_FREQ == 37400)
  3429. pll_set = 0x1712;
  3430. #elif (BBM_XTAL_FREQ == 38400)
  3431. pll_set = 0x1612;
  3432. #endif /* BBM_XTAL_FREQ */
  3433. #else /* BBM_BAND_WIDTH == 8 */
  3434. #if (BBM_XTAL_FREQ == 16000)
  3435. pll_set = 0x1f11;
  3436. #elif (BBM_XTAL_FREQ == 16384)
  3437. pll_set = 0x1e11;
  3438. #elif (BBM_XTAL_FREQ == 18000)
  3439. pll_set = 0x1b11;
  3440. #elif (BBM_XTAL_FREQ == 19200)
  3441. pll_set = 0x1a11;
  3442. #elif (BBM_XTAL_FREQ == 24000)
  3443. pll_set = 0x1402;
  3444. #elif (BBM_XTAL_FREQ == 24576)
  3445. pll_set = 0x1402;
  3446. #elif (BBM_XTAL_FREQ == 26000)
  3447. pll_set = 0x1302;
  3448. #elif (BBM_XTAL_FREQ == 27000)
  3449. pll_set = 0x2512;
  3450. #elif (BBM_XTAL_FREQ == 27120)
  3451. pll_set = 0x2512;
  3452. #elif (BBM_XTAL_FREQ == 32000)
  3453. pll_set = 0x1f12;
  3454. #elif (BBM_XTAL_FREQ == 37200)
  3455. pll_set = 0x1a12;
  3456. #elif (BBM_XTAL_FREQ == 37400)
  3457. pll_set = 0x1a12;
  3458. #elif (BBM_XTAL_FREQ == 38400)
  3459. pll_set = 0x1a12;
  3460. #endif /* BBM_XTAL_FREQ */
  3461. #endif /* BBM_BAND_WIDTH */
  3462. bbm_byte_write(handle, devid, BBM_PLL_SEL, 0x00);
  3463. bbm_byte_write(handle, devid, BBM_PLL1_RESET, 0x01);
  3464. bbm_word_write(handle, devid, BBM_PLL1_PRE_POST_SELECTION, pll_set);
  3465. bbm_byte_write(handle, devid, BBM_PLL1_RESET, 0x00);
  3466. msWait(1);
  3467. bbm_byte_write(handle, devid, BBM_PLL_SEL, 0x01);
  3468. return fc8300_get_current_clk(handle, devid);
  3469. }
  3470. #ifdef BBM_I2C_TSIF
  3471. static s32 fc8300_set_tsif_clk(HANDLE handle, DEVICEID devid)
  3472. {
  3473. bbm_byte_write(handle, devid, BBM_TS_CLK_DIV, 0x00);
  3474. #ifdef BBM_TSIF_CLK_ARBITRARY
  3475. u32 pre_sel, post_sel = 0, multi = 0, div_sel;
  3476. u32 input_freq;
  3477. u32 multi_3, multi_2, multi_1;
  3478. if (BBM_XTAL_FREQ <= 10000)
  3479. pre_sel = 0;
  3480. else if (BBM_XTAL_FREQ <= 20000)
  3481. pre_sel = 1;
  3482. else if (BBM_XTAL_FREQ <= 40000)
  3483. pre_sel = 2;
  3484. else
  3485. pre_sel = 3;
  3486. input_freq = BBM_XTAL_FREQ >> pre_sel;
  3487. multi_3 = (BBM_TSIF_CLK << 3) / input_freq;
  3488. multi_2 = (BBM_TSIF_CLK << 2) / input_freq;
  3489. multi_1 = (BBM_TSIF_CLK << 1) / input_freq;
  3490. if (multi_3 >= 10 && multi_3 <= 40) {
  3491. post_sel = 3;
  3492. multi = multi_3;
  3493. } else if (multi_2 >= 10 && multi_2 <= 40) {
  3494. post_sel = 2;
  3495. multi = multi_2;
  3496. } else if (multi_1 >= 10 && multi_1 <= 40) {
  3497. post_sel = 1;
  3498. multi = multi_1;
  3499. } else { /* post_sel == 0 */
  3500. multi = BBM_TSIF_CLK / input_freq;
  3501. }
  3502. div_sel = multi - 2;
  3503. /*pll_out = (input_freq * multi) >> post_sel;*/
  3504. bbm_byte_write(handle, devid, BBM_PLL2_ENABLE, 0x01);
  3505. bbm_byte_write(handle, devid, BBM_PLL2_PD, 0x00);
  3506. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION,
  3507. (post_sel << 4) | pre_sel | (div_sel << 8));
  3508. #else
  3509. bbm_byte_write(handle, devid, BBM_PLL2_ENABLE, 0x01);
  3510. bbm_byte_write(handle, devid, BBM_PLL2_PD, 0x00);
  3511. #if (BBM_TSIF_CLK == 48000)
  3512. #if (BBM_XTAL_FREQ == 16000)
  3513. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1621);
  3514. #elif (BBM_XTAL_FREQ == 16384)
  3515. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1521);
  3516. #elif (BBM_XTAL_FREQ == 18000)
  3517. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1321);
  3518. #elif (BBM_XTAL_FREQ == 19200)
  3519. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1221);
  3520. #elif (BBM_XTAL_FREQ == 24000)
  3521. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1e22);
  3522. #elif (BBM_XTAL_FREQ == 24576)
  3523. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1d22);
  3524. #elif (BBM_XTAL_FREQ == 26000)
  3525. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1c22);
  3526. #elif (BBM_XTAL_FREQ == 27000)
  3527. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1b22);
  3528. #elif (BBM_XTAL_FREQ == 27120)
  3529. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1a22);
  3530. #elif (BBM_XTAL_FREQ == 32000)
  3531. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1622);
  3532. #elif (BBM_XTAL_FREQ == 37200)
  3533. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1322);
  3534. #elif (BBM_XTAL_FREQ == 37400)
  3535. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1322);
  3536. #elif (BBM_XTAL_FREQ == 38400)
  3537. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1222);
  3538. #endif /* BBM_XTAL_FREQ */
  3539. #elif (BBM_TSIF_CLK == 32000)
  3540. #if (BBM_XTAL_FREQ == 16000)
  3541. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0e21);
  3542. #elif (BBM_XTAL_FREQ == 16384)
  3543. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0e21);
  3544. #elif (BBM_XTAL_FREQ == 18000)
  3545. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0c21);
  3546. #elif (BBM_XTAL_FREQ == 19200)
  3547. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0b21);
  3548. #elif (BBM_XTAL_FREQ == 24000)
  3549. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1322);
  3550. #elif (BBM_XTAL_FREQ == 24576)
  3551. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1322);
  3552. #elif (BBM_XTAL_FREQ == 26000)
  3553. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1222);
  3554. #elif (BBM_XTAL_FREQ == 27000)
  3555. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1122);
  3556. #elif (BBM_XTAL_FREQ == 27120)
  3557. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x1122);
  3558. #elif (BBM_XTAL_FREQ == 32000)
  3559. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0e22);
  3560. #elif (BBM_XTAL_FREQ == 37200)
  3561. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0c22);
  3562. #elif (BBM_XTAL_FREQ == 37400)
  3563. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0c22);
  3564. #elif (BBM_XTAL_FREQ == 38400)
  3565. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0b22);
  3566. #endif /* BBM_XTAL_FREQ */
  3567. #else /* (BBM_TSIF_CLK == 26000) */
  3568. #if (BBM_XTAL_FREQ == 16000)
  3569. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0b21);
  3570. #elif (BBM_XTAL_FREQ == 16384)
  3571. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0b21);
  3572. #elif (BBM_XTAL_FREQ == 18000)
  3573. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0921);
  3574. #elif (BBM_XTAL_FREQ == 19200)
  3575. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0921);
  3576. #elif (BBM_XTAL_FREQ == 24000)
  3577. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0f22);
  3578. #elif (BBM_XTAL_FREQ == 24576)
  3579. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0f22);
  3580. #elif (BBM_XTAL_FREQ == 26000)
  3581. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0e22);
  3582. #elif (BBM_XTAL_FREQ == 27000)
  3583. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0d22);
  3584. #elif (BBM_XTAL_FREQ == 27120)
  3585. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0d22);
  3586. #elif (BBM_XTAL_FREQ == 32000)
  3587. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0b22);
  3588. #elif (BBM_XTAL_FREQ == 37200)
  3589. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0922);
  3590. #elif (BBM_XTAL_FREQ == 37400)
  3591. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0922);
  3592. #elif (BBM_XTAL_FREQ == 38400)
  3593. bbm_word_write(handle, devid, BBM_PLL2_PRE_POST_SELECTION, 0x0922);
  3594. #endif /* BBM_XTAL_FREQ */
  3595. #endif /* #if (BBM_TSIF_CLK == 48000) */
  3596. #endif /* #ifdef BBM_TSIF_CLK_ARBITRARY */
  3597. bbm_byte_write(handle, devid, BBM_PLL2_RESET, 0x00);
  3598. return BBM_OK;
  3599. }
  3600. #endif /* #ifdef BBM_I2C_TSIF */
  3601. s32 fc8300_reset(HANDLE handle, DEVICEID devid)
  3602. {
  3603. bbm_byte_write(handle, DIV_BROADCAST, BBM_SW_RESET, 0x7f);
  3604. msWait(2);
  3605. bbm_byte_write(handle, DIV_BROADCAST, BBM_SW_RESET, 0xcf);
  3606. msWait(2);
  3607. bbm_byte_write(handle, DIV_MASTER, BBM_SW_RESET, 0xff);
  3608. msWait(2);
  3609. return BBM_OK;
  3610. }
  3611. s32 fc8300_probe(HANDLE handle, DEVICEID devid)
  3612. {
  3613. u16 ver;
  3614. bbm_word_read(handle, devid, BBM_CHIP_ID, &ver);
  3615. return (ver == 0x8300) ? BBM_OK : BBM_NOK;
  3616. }
  3617. s32 fc8300_set_core_clk(HANDLE handle, DEVICEID devid,
  3618. enum BROADCAST_TYPE broadcast, u32 freq)
  3619. {
  3620. u32 input_freq, new_pll_clk;
  3621. u32 pre_sel, post_sel = 0, multi = 0, div_sel;
  3622. u32 current_clk, new_clk, pll_set;
  3623. u32 multi_3, multi_2, multi_1;
  3624. s32 res = BBM_OK;
  3625. current_clk = fc8300_get_current_clk(handle, devid);
  3626. new_clk = fc8300_get_core_clk(handle, devid, broadcast, freq);
  3627. if (new_clk == current_clk)
  3628. return BBM_OK;
  3629. if (BBM_XTAL_FREQ <= 10000)
  3630. pre_sel = 0;
  3631. else if (BBM_XTAL_FREQ <= 20000)
  3632. pre_sel = 1;
  3633. else if (BBM_XTAL_FREQ <= 40000)
  3634. pre_sel = 2;
  3635. else
  3636. pre_sel = 3;
  3637. input_freq = BBM_XTAL_FREQ >> pre_sel;
  3638. multi_3 = (new_clk << 3) / input_freq;
  3639. multi_2 = (new_clk << 2) / input_freq;
  3640. multi_1 = (new_clk << 1) / input_freq;
  3641. if (multi_3 >= 10 && multi_3 <= 40) {
  3642. post_sel = 3;
  3643. multi = multi_3;
  3644. } else if (multi_2 >= 10 && multi_2 <= 40) {
  3645. post_sel = 2;
  3646. multi = multi_2;
  3647. } else if (multi_1 >= 10 && multi_1 <= 40) {
  3648. post_sel = 1;
  3649. multi = multi_1;
  3650. } else { /* post_sel == 0 */
  3651. multi = new_clk / input_freq;
  3652. }
  3653. new_pll_clk = (input_freq * multi) >> post_sel;
  3654. if (new_clk != new_pll_clk)
  3655. return BBM_NOK;
  3656. div_sel = multi - 2;
  3657. bbm_byte_write(handle, devid, BBM_PLL_SEL, 0x00);
  3658. bbm_byte_write(handle, devid, BBM_PLL1_RESET, 0x01);
  3659. pll_set = (div_sel << 8) | (post_sel << 4) | pre_sel;
  3660. bbm_word_write(handle, devid, BBM_PLL1_PRE_POST_SELECTION, pll_set);
  3661. bbm_byte_write(handle, devid, BBM_PLL1_RESET, 0x00);
  3662. msWait(1);
  3663. bbm_byte_write(handle, devid, BBM_PLL_SEL, 0x01);
  3664. switch (broadcast) {
  3665. case ISDBT_1SEG:
  3666. res |= fc8300_set_cal_front_1seg(handle, devid, new_clk);
  3667. break;
  3668. case ISDBT_13SEG:
  3669. res |= fc8300_set_cal_front_13seg(handle, devid, new_clk);
  3670. break;
  3671. }
  3672. switch (broadcast) {
  3673. case ISDBT_1SEG:
  3674. res |= fc8300_set_acif_b31_1seg(handle, devid, new_clk);
  3675. break;
  3676. case ISDBT_13SEG:
  3677. res |= fc8300_set_acif_13seg(handle, devid, new_clk);
  3678. break;
  3679. }
  3680. return res;
  3681. }
  3682. s32 fc8300_init(HANDLE handle, DEVICEID devid)
  3683. {
  3684. #if defined(BBM_4_DIVERSITY) /* Don't change following lines */
  3685. bbm_byte_write(handle, DIV_MASTER, BBM_XTAL_OUTBUF_EN, 0x01);
  3686. msWait(1);
  3687. bbm_byte_write(handle, DIV_SLAVE2, BBM_XTAL_OUTBUF_EN, 0x01);
  3688. msWait(1);
  3689. bbm_byte_write(handle, DIV_SLAVE1, BBM_XTAL_OUTBUF_EN, 0x01);
  3690. msWait(1);
  3691. #ifdef BBM_I2C_TSIF
  3692. #ifdef BBM_TS_204
  3693. bbm_byte_write(handle, DIV_MASTER, BBM_TS_SEL, 0xc0);
  3694. #else
  3695. bbm_byte_write(handle, DIV_MASTER, BBM_TS_SEL, 0x80);
  3696. #endif /* #ifdef BBM_TS_204 */
  3697. #endif /* #ifdef BBM_I2C_TSIF */
  3698. #else
  3699. #ifdef BBM_I2C_TSIF
  3700. #ifdef BBM_TS_204
  3701. bbm_byte_write(handle, DIV_MASTER, BBM_TS_SEL, 0xc0);
  3702. #else
  3703. bbm_byte_write(handle, DIV_MASTER, BBM_TS_SEL, 0x80);
  3704. #endif /* #ifdef BBM_TS_204 */
  3705. #endif /* #ifdef BBM_I2C_TSIF */
  3706. #if defined(BBM_2_DIVERSITY)
  3707. bbm_byte_write(handle, DIV_MASTER, BBM_XTAL_OUTBUF_EN, 0x01);
  3708. msWait(1);
  3709. #endif /* #ifdef BBM_2_DIVERSITY */
  3710. #endif
  3711. #if (BBM_XTAL_FREQ < 30000)
  3712. bbm_byte_write(handle, DIV_BROADCAST, BBM_FUSELOAD, 0x03);
  3713. #else
  3714. bbm_byte_write(handle, DIV_BROADCAST, BBM_FUSELOAD, 0x07);
  3715. #endif
  3716. msWait(1);
  3717. bbm_byte_write(handle, DIV_BROADCAST, BBM_FUSELOAD, 0x00);
  3718. bbm_byte_write(handle, DIV_BROADCAST, BBM_PLL1_ENABLE, 0x01);
  3719. bbm_byte_write(handle, DIV_BROADCAST, BBM_PLL1_PD, 0x00);
  3720. fc8300_set_default_core_clk(handle, DIV_BROADCAST);
  3721. #ifdef BBM_I2C_TSIF
  3722. fc8300_set_tsif_clk(handle, DIV_MASTER);
  3723. #endif
  3724. #ifdef BBM_2_DIVERSITY
  3725. bbm_byte_write(handle, DIV_MASTER, BBM_DIVERSITY_DEVICE_SEL, 0x01);
  3726. bbm_byte_write(handle, DIV_MASTER, BBM_DIVERSITY_MODE, 0x00);
  3727. bbm_byte_write(handle, DIV_SLAVE0, BBM_DIVERSITY_DEVICE_SEL, 0x02);
  3728. bbm_byte_write(handle, DIV_SLAVE0, BBM_DIVERSITY_MODE, 0x01);
  3729. bbm_byte_write(handle, DIV_SLAVE0, BBM_RESYNC_ENABLE, 0x8f);
  3730. bbm_byte_write(handle, DIV_BROADCAST, BBM_DIVERSITY_EN, 0x21);
  3731. bbm_byte_write(handle, DIV_SLAVE0, BBM_RESTART_BY_TS_EN, 0x00);
  3732. #endif /* BBM_2_DIVERSITY */
  3733. #ifdef BBM_4_DIVERSITY /* I2C+TSIF or I2C+SPI */
  3734. bbm_byte_write(handle, DIV_MASTER, BBM_DIVERSITY_DEVICE_SEL, 0x01);
  3735. bbm_byte_write(handle, DIV_MASTER, BBM_DIVERSITY_MODE, 0x00);
  3736. /* end slave */
  3737. bbm_byte_write(handle, DIV_SLAVE0, BBM_DIVERSITY_DEVICE_SEL, 0x02);
  3738. bbm_byte_write(handle, DIV_SLAVE0, BBM_DIVERSITY_MODE, 0x03);
  3739. bbm_byte_write(handle, DIV_SLAVE0, BBM_RESYNC_ENABLE, 0x8f);
  3740. /* 2nd slave */
  3741. bbm_byte_write(handle, DIV_SLAVE1, BBM_DIVERSITY_DEVICE_SEL, 0x03);
  3742. bbm_byte_write(handle, DIV_SLAVE1, BBM_DIVERSITY_MODE, 0x02);
  3743. bbm_byte_write(handle, DIV_SLAVE1, BBM_RESYNC_ENABLE, 0x8f);
  3744. bbm_word_write(handle, DIV_SLAVE1, BBM_D_SYNC_TIME_OUT_TH, 0x0100);
  3745. /* 1st slave */
  3746. bbm_byte_write(handle, DIV_SLAVE2, BBM_DIVERSITY_DEVICE_SEL, 0x03);
  3747. bbm_byte_write(handle, DIV_SLAVE2, BBM_DIVERSITY_MODE, 0x01);
  3748. bbm_byte_write(handle, DIV_SLAVE2, BBM_RESYNC_ENABLE, 0x8f);
  3749. bbm_word_write(handle, DIV_SLAVE2, BBM_D_SYNC_TIME_OUT_TH, 0x0200);
  3750. bbm_byte_write(handle, DIV_BROADCAST, BBM_DIVERSITY_EN, 0x41);
  3751. bbm_byte_write(handle, DIV_SLAVE0, BBM_RESTART_BY_TS_EN, 0x00);
  3752. bbm_byte_write(handle, DIV_SLAVE1, BBM_RESTART_BY_TS_EN, 0x00);
  3753. bbm_byte_write(handle, DIV_SLAVE2, BBM_RESTART_BY_TS_EN, 0x00);
  3754. #endif /* BBM_4_DIVERSITY */
  3755. fc8300_reset(handle, DIV_BROADCAST);
  3756. bbm_byte_write(handle, DIV_BROADCAST, BBM_ADC_PWRDN, 0x00);
  3757. bbm_byte_write(handle, DIV_BROADCAST, BBM_ADC_RST, 0x00);
  3758. bbm_byte_write(handle, DIV_BROADCAST, BBM_ADC_BIAS, 0x06);
  3759. bbm_byte_write(handle, DIV_BROADCAST, BBM_BB2RF_RFEN, 0x01);
  3760. bbm_byte_write(handle, DIV_BROADCAST, BBM_RF_RST, 0x00);
  3761. bbm_byte_write(handle, DIV_BROADCAST, BBM_RF_POWER_SAVE, 0x00);
  3762. bbm_long_write(handle, DIV_BROADCAST, BBM_MEMORY_RWM0, 0x07777777);
  3763. bbm_byte_write(handle, DIV_BROADCAST, BBM_IQC_EN, 0x71);
  3764. bbm_byte_write(handle, DIV_BROADCAST, BBM_CSF_GAIN_MAX, 0x0a);
  3765. bbm_byte_write(handle, DIV_BROADCAST, BBM_ADC_CTRL, 0x27);
  3766. bbm_byte_write(handle, DIV_BROADCAST, BBM_PSAT_ON_REF_1SEG_QPSK, 0x16);
  3767. bbm_byte_write(handle, DIV_BROADCAST, BBM_PSAT_ON_REF_1SEG_16QAM, 0x16);
  3768. bbm_byte_write(handle, DIV_BROADCAST, BBM_HOLD_RST_EN, 0x06);
  3769. bbm_word_write(handle, DIV_BROADCAST, BBM_REF_DELAY_POST, 0x1900);
  3770. bbm_word_write(handle, DIV_BROADCAST, BBM_REF_AMP, 0x03e0);
  3771. bbm_word_write(handle, DIV_BROADCAST, BBM_AD_GAIN_PERIOD, 0x003f);
  3772. bbm_word_write(handle, DIV_BROADCAST, BBM_FD_RD_LATENCY_1SEG, 0x0620);
  3773. bbm_byte_write(handle, DIV_MASTER, BBM_FD_OUT_MODE, 0x02);
  3774. bbm_byte_write(handle, DIV_MASTER, BBM_DIV_START_MODE, 0x16);
  3775. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_TS0_START, TS0_BUF_START);
  3776. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_TS0_END, TS0_BUF_END);
  3777. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_TS0_THR, TS0_BUF_THR);
  3778. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_A_START,
  3779. AC_A_BUF_START);
  3780. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_A_END, AC_A_BUF_END);
  3781. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_A_THR, AC_A_BUF_THR);
  3782. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_B_START,
  3783. AC_B_BUF_START);
  3784. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_B_END, AC_B_BUF_END);
  3785. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_B_THR, AC_B_BUF_THR);
  3786. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_C_START,
  3787. AC_C_BUF_START);
  3788. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_C_END, AC_C_BUF_END);
  3789. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_C_THR, AC_C_BUF_THR);
  3790. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_D_START,
  3791. AC_D_BUF_START);
  3792. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_D_END, AC_D_BUF_END);
  3793. bbm_word_write(handle, DIV_BROADCAST, BBM_BUF_AC_D_THR, AC_D_BUF_THR);
  3794. #ifdef BBM_I2C_SPI
  3795. bbm_byte_write(handle, DIV_MASTER, BBM_BUF_SPIOUT, 0x10);
  3796. #endif
  3797. #ifdef BBM_I2C_PARALLEL_TSIF
  3798. bbm_byte_write(handle, DIV_MASTER, BBM_TS_CTRL, 0x8e);
  3799. #endif
  3800. #ifdef BBM_AUX_INT
  3801. bbm_byte_write(handle, DIV_MASTER, BBM_SYS_MD_INT_EN, 0x7f);
  3802. bbm_byte_write(handle, DIV_MASTER, BBM_AUX_INT_EN, 0xff);
  3803. bbm_byte_write(handle, DIV_MASTER, BBM_FEC_INT_EN, 0x07);
  3804. bbm_byte_write(handle, DIV_MASTER, BBM_BER_AUTO_UP, 0xff);
  3805. bbm_byte_write(handle, DIV_MASTER, BBM_OSS_CFG_EN, 0x01);
  3806. #endif
  3807. #ifdef BBM_NULL_PID_FILTER
  3808. bbm_byte_write(handle, DIV_MASTER, BBM_NULL_PID_FILTERING, 0x01);
  3809. #endif
  3810. #ifdef BBM_FAIL_FRAME
  3811. bbm_byte_write(handle, DIV_MASTER, BBM_FAIL_FRAME_TX, 0x07);
  3812. #endif
  3813. #ifdef BBM_TS_204
  3814. bbm_byte_write(handle, DIV_MASTER, BBM_FEC_CTRL_A, 0x03);
  3815. bbm_byte_write(handle, DIV_MASTER, BBM_FEC_CTRL_B, 0x03);
  3816. bbm_byte_write(handle, DIV_MASTER, BBM_FEC_CTRL_C, 0x03);
  3817. bbm_byte_write(handle, DIV_MASTER, BBM_FEC_CTRL, 0x03);
  3818. #endif
  3819. #ifdef BBM_INT_LOW_ACTIVE
  3820. bbm_byte_write(handle, DIV_BROADCAST, BBM_INT_POLAR_SEL, 0x00);
  3821. #endif
  3822. #ifdef BBM_SPI_30M
  3823. bbm_byte_write(handle, DIV_BROADCAST, BBM_MD_MISO, 0x1f);
  3824. #endif
  3825. #ifdef BBM_DESCRAMBLER
  3826. bbm_byte_write(handle, DIV_BROADCAST, BBM_BCAS_ENABLE, 0x01);
  3827. #else
  3828. bbm_byte_write(handle, DIV_BROADCAST, BBM_BCAS_ENABLE, 0x00);
  3829. #endif
  3830. bbm_byte_write(handle, DIV_MASTER, BBM_INT_AUTO_CLEAR, 0x01);
  3831. bbm_byte_write(handle, DIV_MASTER, BBM_BUF_ENABLE, 0x01);
  3832. bbm_byte_write(handle, DIV_MASTER, BBM_BUF_INT_ENABLE, 0x01);
  3833. bbm_byte_write(handle, DIV_MASTER, BBM_INT_MASK, 0x01);
  3834. bbm_byte_write(handle, DIV_MASTER, BBM_INT_STS_EN, 0x01);
  3835. return BBM_OK;
  3836. }
  3837. s32 fc8300_deinit(HANDLE handle, DEVICEID devid)
  3838. {
  3839. #ifdef BBM_I2C_TSIF
  3840. bbm_byte_write(handle, DIV_MASTER, BBM_TS_SEL, 0x00);
  3841. msWait(24);
  3842. #endif
  3843. bbm_byte_write(handle, devid, BBM_SW_RESET, 0x00);
  3844. return BBM_OK;
  3845. }
  3846. #if defined(BBM_2_DIVERSITY) || defined(BBM_4_DIVERSITY)
  3847. s32 fc8300_scan_status(HANDLE handle, DEVICEID devid)
  3848. {
  3849. u32 ifagc_timeout = 70;
  3850. u32 ofdm_timeout = 160;
  3851. u32 ffs_lock_timeout = 100;
  3852. u32 cfs_timeout = 120;
  3853. u32 tmcc_timeout = 1050;
  3854. u32 ts_err_free_timeout = 0;
  3855. u32 data = 0;
  3856. u8 a, run;
  3857. u32 i;
  3858. #ifdef BBM_2_DIVERSITY
  3859. u8 done = 0x03;
  3860. #else
  3861. u8 done = 0x0f;
  3862. #endif
  3863. for (i = 0; i < ifagc_timeout; i++) {
  3864. bbm_byte_read(handle, DIV_MASTER, 0x3025, &a);
  3865. if (a & 0x01)
  3866. break;
  3867. bbm_byte_read(handle, DIV_SLAVE0, 0x3025, &a);
  3868. if (a & 0x01)
  3869. break;
  3870. #ifdef BBM_4_DIVERSITY
  3871. bbm_byte_read(handle, DIV_SLAVE1, 0x3025, &a);
  3872. if (a & 0x01)
  3873. break;
  3874. bbm_byte_read(handle, DIV_SLAVE2, 0x3025, &a);
  3875. if (a & 0x01)
  3876. break;
  3877. #endif
  3878. msWait(SCAN_CHK_PERIOD);
  3879. }
  3880. if (i == ifagc_timeout)
  3881. return BBM_NOK;
  3882. for (run = done; i < ofdm_timeout; i++) {
  3883. if (run & 0x01) {
  3884. bbm_byte_read(handle, DIV_MASTER, 0x3025, &a);
  3885. if (a & 0x08) {
  3886. if (a & 0x04)
  3887. break;
  3888. run -= 0x01; /* master done */
  3889. }
  3890. }
  3891. if (run & 0x02) {
  3892. bbm_byte_read(handle, DIV_SLAVE0, 0x3025, &a);
  3893. if (a & 0x08) {
  3894. if (a & 0x04)
  3895. break;
  3896. run -= 0x02; /* slave0 done */
  3897. }
  3898. }
  3899. #ifdef BBM_4_DIVERSITY
  3900. if (run & 0x04) {
  3901. bbm_byte_read(handle, DIV_SLAVE1, 0x3025, &a);
  3902. if (a & 0x08) {
  3903. if (a & 0x04)
  3904. break;
  3905. run -= 0x04; /* slave1 done */
  3906. }
  3907. }
  3908. if (run & 0x08) {
  3909. bbm_byte_read(handle, DIV_SLAVE2, 0x3025, &a);
  3910. if (a & 0x08) {
  3911. if (a & 0x04)
  3912. break;
  3913. run -= 0x08; /* slave2 done */
  3914. }
  3915. }
  3916. #endif
  3917. if (run == 0)
  3918. return BBM_NOK;
  3919. msWait(SCAN_CHK_PERIOD);
  3920. }
  3921. if (i == ofdm_timeout)
  3922. return BBM_NOK;
  3923. for (; i < ffs_lock_timeout; i++) {
  3924. bbm_byte_read(handle, DIV_MASTER, 0x3026, &a);
  3925. if ((a & 0x11) == 0x11)
  3926. break;
  3927. bbm_byte_read(handle, DIV_SLAVE0, 0x3026, &a);
  3928. if ((a & 0x11) == 0x11)
  3929. break;
  3930. #ifdef BBM_4_DIVERSITY
  3931. bbm_byte_read(handle, DIV_SLAVE1, 0x3026, &a);
  3932. if ((a & 0x11) == 0x11)
  3933. break;
  3934. bbm_byte_read(handle, DIV_SLAVE2, 0x3026, &a);
  3935. if ((a & 0x11) == 0x11)
  3936. break;
  3937. #endif
  3938. msWait(SCAN_CHK_PERIOD);
  3939. }
  3940. if (i == ffs_lock_timeout)
  3941. return BBM_NOK;
  3942. for (i = 0, run = done; i < cfs_timeout; i++) {
  3943. if (run & 0x01) {
  3944. bbm_byte_read(handle, DIV_MASTER, 0x3025, &a);
  3945. if (a & 0x40) {
  3946. bbm_byte_read(handle, DIV_MASTER, 0x2023, &a);
  3947. if ((a & 0x01) == 0x00)
  3948. break;
  3949. run -= 0x01; /* master done */
  3950. }
  3951. }
  3952. if (run & 0x02) {
  3953. bbm_byte_read(handle, DIV_SLAVE0, 0x3025, &a);
  3954. if (a & 0x40) {
  3955. bbm_byte_read(handle, DIV_SLAVE0, 0x2023, &a);
  3956. if ((a & 0x01) == 0x00)
  3957. break;
  3958. run -= 0x02; /* slave0 done */
  3959. }
  3960. }
  3961. #ifdef BBM_4_DIVERSITY
  3962. if (run & 0x04) {
  3963. bbm_byte_read(handle, DIV_SLAVE1, 0x3025, &a);
  3964. if (a & 0x40) {
  3965. bbm_byte_read(handle, DIV_SLAVE1, 0x2023, &a);
  3966. if ((a & 0x01) == 0x00)
  3967. break;
  3968. run -= 0x04; /* slave1 done */
  3969. }
  3970. }
  3971. if (run & 0x08) {
  3972. bbm_byte_read(handle, DIV_SLAVE2, 0x3025, &a);
  3973. if (a & 0x40) {
  3974. bbm_byte_read(handle, DIV_SLAVE2, 0x2023, &a);
  3975. if ((a & 0x01) == 0x00)
  3976. break;
  3977. run -= 0x08; /* slave2 done */
  3978. }
  3979. }
  3980. #endif
  3981. if (run == 0)
  3982. return BBM_NOK;
  3983. msWait(SCAN_CHK_PERIOD);
  3984. }
  3985. if (i == cfs_timeout)
  3986. return BBM_NOK;
  3987. for (i = 0; i < tmcc_timeout; i++) {
  3988. bbm_byte_read(handle, DIV_MASTER, 0x3026, &a);
  3989. if (a & 0x02) {
  3990. bbm_long_read(handle, DIV_MASTER, 0x4113, &data);
  3991. break;
  3992. }
  3993. bbm_byte_read(handle, DIV_SLAVE0, 0x3026, &a);
  3994. if (a & 0x02) {
  3995. bbm_long_read(handle, DIV_SLAVE0, 0x4113, &data);
  3996. break;
  3997. }
  3998. #ifdef BBM_4_DIVERSITY
  3999. bbm_byte_read(handle, DIV_SLAVE1, 0x3026, &a);
  4000. if (a & 0x02) {
  4001. bbm_long_read(handle, DIV_SLAVE1, 0x4113, &data);
  4002. break;
  4003. }
  4004. bbm_byte_read(handle, DIV_SLAVE2, 0x3026, &a);
  4005. if (a & 0x02) {
  4006. bbm_long_read(handle, DIV_SLAVE2, 0x4113, &data);
  4007. break;
  4008. }
  4009. #endif
  4010. msWait(SCAN_CHK_PERIOD);
  4011. }
  4012. if (i == tmcc_timeout)
  4013. return BBM_NOK;
  4014. ts_err_free_timeout = 950;
  4015. switch (broadcast_type) {
  4016. case ISDBT_1SEG:
  4017. if ((data & 0x00000008) == 0x00000000)
  4018. return BBM_NOK;
  4019. if ((data & 0x00001c70) == 0x00001840)
  4020. ts_err_free_timeout = 700;
  4021. break;
  4022. case ISDBT_13SEG:
  4023. if ((data & 0x3f8e1c78) == 0x0d0c1848)
  4024. ts_err_free_timeout = 700;
  4025. break;
  4026. default:
  4027. break;
  4028. }
  4029. for (i = 0; i < ts_err_free_timeout; i++) {
  4030. bbm_byte_read(handle, DIV_MASTER, 0x50c5, &a);
  4031. if (a)
  4032. break;
  4033. msWait(SCAN_CHK_PERIOD);
  4034. }
  4035. if (i == ts_err_free_timeout)
  4036. return BBM_NOK;
  4037. return BBM_OK;
  4038. }
  4039. #else /* SINGLE */
  4040. s32 fc8300_scan_status(HANDLE handle, DEVICEID devid)
  4041. {
  4042. u32 ifagc_timeout = 70;
  4043. u32 ofdm_timeout = 160;
  4044. u32 ffs_lock_timeout = 100;
  4045. u32 cfs_timeout = 120;
  4046. u32 tmcc_timeout = 1050;
  4047. u32 ts_err_free_timeout = 0;
  4048. u32 data = 0;
  4049. u8 a;
  4050. u32 i;
  4051. for (i = 0; i < ifagc_timeout; i++) {
  4052. bbm_byte_read(handle, DIV_MASTER, 0x3025, &a);
  4053. if (a & 0x01)
  4054. break;
  4055. msWait(SCAN_CHK_PERIOD);
  4056. }
  4057. if (i == ifagc_timeout)
  4058. return BBM_NOK;
  4059. for (; i < ofdm_timeout; i++) {
  4060. bbm_byte_read(handle, DIV_MASTER, 0x3025, &a);
  4061. if (a & 0x08)
  4062. break;
  4063. msWait(SCAN_CHK_PERIOD);
  4064. }
  4065. if (i == ofdm_timeout)
  4066. return BBM_NOK;
  4067. if (0 == (a & 0x04))
  4068. return BBM_NOK;
  4069. for (; i < ffs_lock_timeout; i++) {
  4070. bbm_byte_read(handle, DIV_MASTER, 0x3026, &a);
  4071. if ((a & 0x11) == 0x11)
  4072. break;
  4073. msWait(SCAN_CHK_PERIOD);
  4074. }
  4075. if (i == ffs_lock_timeout)
  4076. return BBM_NOK;
  4077. for (i = 0; i < cfs_timeout; i++) {
  4078. bbm_byte_read(handle, DIV_MASTER, 0x3025, &a);
  4079. if (a & 0x40)
  4080. break;
  4081. msWait(SCAN_CHK_PERIOD);
  4082. }
  4083. if (i == cfs_timeout)
  4084. return BBM_NOK;
  4085. bbm_byte_read(handle, DIV_MASTER, 0x2023, &a);
  4086. if (a & 0x01)
  4087. return BBM_NOK;
  4088. for (i = 0; i < tmcc_timeout; i++) {
  4089. bbm_byte_read(handle, DIV_MASTER, 0x3026, &a);
  4090. if (a & 0x02)
  4091. break;
  4092. msWait(SCAN_CHK_PERIOD);
  4093. }
  4094. if (i == tmcc_timeout)
  4095. return BBM_NOK;
  4096. ts_err_free_timeout = 950;
  4097. switch (broadcast_type) {
  4098. case ISDBT_1SEG:
  4099. bbm_word_read(handle, DIV_MASTER, 0x4113, (u16 *) &data);
  4100. if ((data & 0x0008) == 0x0000)
  4101. return BBM_NOK;
  4102. if ((data & 0x1c70) == 0x1840)
  4103. ts_err_free_timeout = 700;
  4104. break;
  4105. case ISDBT_13SEG:
  4106. bbm_long_read(handle, DIV_MASTER, 0x4113, &data);
  4107. if ((data & 0x3f8e1c78) == 0x0d0c1848)
  4108. ts_err_free_timeout = 700;
  4109. break;
  4110. default:
  4111. break;
  4112. }
  4113. for (i = 0; i < ts_err_free_timeout; i++) {
  4114. bbm_byte_read(handle, DIV_MASTER, 0x50c5, &a);
  4115. if (a)
  4116. break;
  4117. msWait(SCAN_CHK_PERIOD);
  4118. }
  4119. if (i == ts_err_free_timeout)
  4120. return BBM_NOK;
  4121. return BBM_OK;
  4122. }
  4123. #endif /* #if defined(BBM_2_DIVERSITY) || defined(BBM_4_DIVERSITY) */
  4124. s32 fc8300_set_broadcast_mode(HANDLE handle, DEVICEID devid,
  4125. enum BROADCAST_TYPE broadcast)
  4126. {
  4127. s32 res = BBM_OK;
  4128. u32 clk = fc8300_set_default_core_clk(handle, devid);
  4129. broadcast_type = broadcast;
  4130. switch (broadcast) {
  4131. case ISDBT_1SEG:
  4132. res |= fc8300_set_cal_front_1seg(handle, devid, clk);
  4133. break;
  4134. case ISDBT_13SEG:
  4135. res |= fc8300_set_cal_front_13seg(handle, devid, clk);
  4136. break;
  4137. }
  4138. switch (broadcast) {
  4139. case ISDBT_1SEG:
  4140. res |= fc8300_set_acif_b31_1seg(handle, devid, clk);
  4141. break;
  4142. case ISDBT_13SEG:
  4143. res |= fc8300_set_acif_13seg(handle, devid, clk);
  4144. break;
  4145. }
  4146. /* system mode */
  4147. switch (broadcast) {
  4148. case ISDBT_1SEG:
  4149. bbm_byte_write(handle, devid, BBM_CLK_CTRL, 0x05);
  4150. bbm_byte_write(handle, devid, BBM_SYSTEM_MODE, 0x01);
  4151. break;
  4152. case ISDBT_13SEG:
  4153. bbm_byte_write(handle, devid, BBM_CLK_CTRL, 0x07);
  4154. bbm_byte_write(handle, devid, BBM_SYSTEM_MODE, 0x00);
  4155. break;
  4156. }
  4157. /* pre-run */
  4158. switch (broadcast) {
  4159. case ISDBT_1SEG:
  4160. bbm_long_write(handle, devid, BBM_MAN_PARTIAL_EN, 0x000c0101);
  4161. bbm_long_write(handle, devid, BBM_MAN_LAYER_A_MOD_TYPE,
  4162. 0x01000301);
  4163. bbm_long_write(handle, devid, BBM_MAN_LAYER_B_CODE_RATE,
  4164. 0x02030002);
  4165. bbm_byte_write(handle, devid, BBM_MAN_LAYER_C_TI_LENGTH, 0x00);
  4166. bbm_word_write(handle, devid, BBM_TDI_PRE_A, 0xc213);
  4167. bbm_byte_write(handle, devid, BBM_TDI_PRE_C, 0x03);
  4168. bbm_byte_write(handle, devid, BBM_FEC_LAYER, 0x01);
  4169. break;
  4170. case ISDBT_13SEG:
  4171. bbm_long_write(handle, devid, BBM_MAN_PARTIAL_EN, 0x000C0101);
  4172. bbm_long_write(handle, devid, BBM_MAN_LAYER_A_MOD_TYPE,
  4173. 0x01000301);
  4174. bbm_long_write(handle, devid, BBM_MAN_LAYER_B_CODE_RATE,
  4175. 0x02030002);
  4176. bbm_byte_write(handle, devid, BBM_MAN_LAYER_C_TI_LENGTH, 0x00);
  4177. bbm_word_write(handle, devid, BBM_TDI_PRE_A, 0xC21B);
  4178. bbm_byte_write(handle, devid, BBM_TDI_PRE_C, 0x03);
  4179. bbm_byte_write(handle, devid, BBM_FEC_LAYER, 0x02);
  4180. break;
  4181. }
  4182. if (broadcast == ISDBT_13SEG)
  4183. bbm_byte_write(handle, devid, BBM_IIFOECFG_EARLYSTOP_THM, 0x18);
  4184. else
  4185. bbm_byte_write(handle, devid, BBM_IIFOECFG_EARLYSTOP_THM, 0x0e);
  4186. switch (broadcast) {
  4187. case ISDBT_1SEG:
  4188. bbm_word_write(handle, devid, BBM_MSNR_FREQ_S_POW_MAN_VALUE3,
  4189. 0xb00f);
  4190. break;
  4191. case ISDBT_13SEG:
  4192. bbm_word_write(handle, devid, BBM_MSNR_FREQ_S_POW_MAN_VALUE3,
  4193. 0x00c3);
  4194. break;
  4195. }
  4196. bbm_byte_write(handle, devid, BBM_ECHOC_EN, 0x01);
  4197. bbm_byte_write(handle, DIV_BROADCAST, BBM_PGA_GAIN_MAX, 0x0c);
  4198. return res;
  4199. }