gcc-glymur.c 231 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries.
  4. */
  5. #include <linux/clk-provider.h>
  6. #include <linux/mod_devicetable.h>
  7. #include <linux/module.h>
  8. #include <linux/of.h>
  9. #include <linux/platform_device.h>
  10. #include <linux/regmap.h>
  11. #include <dt-bindings/clock/qcom,glymur-gcc.h>
  12. #include "clk-alpha-pll.h"
  13. #include "clk-branch.h"
  14. #include "clk-pll.h"
  15. #include "clk-rcg.h"
  16. #include "clk-regmap.h"
  17. #include "clk-regmap-divider.h"
  18. #include "clk-regmap-mux.h"
  19. #include "clk-regmap-phy-mux.h"
  20. #include "common.h"
  21. #include "gdsc.h"
  22. #include "reset.h"
  23. enum {
  24. DT_BI_TCXO,
  25. DT_BI_TCXO_AO,
  26. DT_SLEEP_CLK,
  27. DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
  28. DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
  29. DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
  30. DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
  31. DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
  32. DT_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC,
  33. DT_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC,
  34. DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
  35. DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
  36. DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
  37. DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
  38. DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
  39. DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
  40. DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
  41. DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
  42. DT_PCIE_3A_PIPE_CLK,
  43. DT_PCIE_3B_PIPE_CLK,
  44. DT_PCIE_4_PIPE_CLK,
  45. DT_PCIE_5_PIPE_CLK,
  46. DT_PCIE_6_PIPE_CLK,
  47. DT_QUSB4PHY_0_GCC_USB4_RX0_CLK,
  48. DT_QUSB4PHY_0_GCC_USB4_RX1_CLK,
  49. DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
  50. DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
  51. DT_QUSB4PHY_2_GCC_USB4_RX0_CLK,
  52. DT_QUSB4PHY_2_GCC_USB4_RX1_CLK,
  53. DT_UFS_PHY_RX_SYMBOL_0_CLK,
  54. DT_UFS_PHY_RX_SYMBOL_1_CLK,
  55. DT_UFS_PHY_TX_SYMBOL_0_CLK,
  56. DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
  57. DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
  58. DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
  59. DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
  60. DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
  61. DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
  62. DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  63. DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
  64. DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  65. DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
  66. DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  67. };
  68. enum {
  69. P_BI_TCXO,
  70. P_GCC_GPLL0_OUT_EVEN,
  71. P_GCC_GPLL0_OUT_MAIN,
  72. P_GCC_GPLL14_OUT_EVEN,
  73. P_GCC_GPLL14_OUT_MAIN,
  74. P_GCC_GPLL1_OUT_MAIN,
  75. P_GCC_GPLL4_OUT_MAIN,
  76. P_GCC_GPLL5_OUT_MAIN,
  77. P_GCC_GPLL7_OUT_MAIN,
  78. P_GCC_GPLL8_OUT_MAIN,
  79. P_GCC_GPLL9_OUT_MAIN,
  80. P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
  81. P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
  82. P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC,
  83. P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
  84. P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
  85. P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
  86. P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
  87. P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
  88. P_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC,
  89. P_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC,
  90. P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
  91. P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
  92. P_GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC,
  93. P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
  94. P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
  95. P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
  96. P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
  97. P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
  98. P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
  99. P_PCIE_3A_PIPE_CLK,
  100. P_PCIE_3B_PIPE_CLK,
  101. P_PCIE_4_PIPE_CLK,
  102. P_PCIE_5_PIPE_CLK,
  103. P_PCIE_6_PIPE_CLK,
  104. P_QUSB4PHY_0_GCC_USB4_RX0_CLK,
  105. P_QUSB4PHY_0_GCC_USB4_RX1_CLK,
  106. P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
  107. P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
  108. P_QUSB4PHY_2_GCC_USB4_RX0_CLK,
  109. P_QUSB4PHY_2_GCC_USB4_RX1_CLK,
  110. P_SLEEP_CLK,
  111. P_UFS_PHY_RX_SYMBOL_0_CLK,
  112. P_UFS_PHY_RX_SYMBOL_1_CLK,
  113. P_UFS_PHY_TX_SYMBOL_0_CLK,
  114. P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
  115. P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
  116. P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
  117. P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
  118. P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
  119. P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
  120. P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  121. P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
  122. P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  123. P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
  124. P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  125. };
  126. static struct clk_alpha_pll gcc_gpll0 = {
  127. .offset = 0x0,
  128. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  129. .clkr = {
  130. .enable_reg = 0x62040,
  131. .enable_mask = BIT(0),
  132. .hw.init = &(const struct clk_init_data) {
  133. .name = "gcc_gpll0",
  134. .parent_data = &(const struct clk_parent_data) {
  135. .index = DT_BI_TCXO,
  136. },
  137. .num_parents = 1,
  138. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  139. },
  140. },
  141. };
  142. static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
  143. { 0x1, 2 },
  144. { }
  145. };
  146. static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
  147. .offset = 0x0,
  148. .post_div_shift = 10,
  149. .post_div_table = post_div_table_gcc_gpll0_out_even,
  150. .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
  151. .width = 4,
  152. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  153. .clkr.hw.init = &(const struct clk_init_data) {
  154. .name = "gcc_gpll0_out_even",
  155. .parent_hws = (const struct clk_hw*[]) {
  156. &gcc_gpll0.clkr.hw,
  157. },
  158. .num_parents = 1,
  159. .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops,
  160. },
  161. };
  162. static struct clk_alpha_pll gcc_gpll1 = {
  163. .offset = 0x1000,
  164. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  165. .clkr = {
  166. .enable_reg = 0x62040,
  167. .enable_mask = BIT(1),
  168. .hw.init = &(const struct clk_init_data) {
  169. .name = "gcc_gpll1",
  170. .parent_data = &(const struct clk_parent_data) {
  171. .index = DT_BI_TCXO,
  172. },
  173. .num_parents = 1,
  174. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  175. },
  176. },
  177. };
  178. static struct clk_alpha_pll gcc_gpll14 = {
  179. .offset = 0xe000,
  180. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  181. .clkr = {
  182. .enable_reg = 0x62040,
  183. .enable_mask = BIT(14),
  184. .hw.init = &(const struct clk_init_data) {
  185. .name = "gcc_gpll14",
  186. .parent_data = &(const struct clk_parent_data) {
  187. .index = DT_BI_TCXO,
  188. },
  189. .num_parents = 1,
  190. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  191. },
  192. },
  193. };
  194. static const struct clk_div_table post_div_table_gcc_gpll14_out_even[] = {
  195. { 0x1, 2 },
  196. { }
  197. };
  198. static struct clk_alpha_pll_postdiv gcc_gpll14_out_even = {
  199. .offset = 0xe000,
  200. .post_div_shift = 10,
  201. .post_div_table = post_div_table_gcc_gpll14_out_even,
  202. .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll14_out_even),
  203. .width = 4,
  204. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  205. .clkr.hw.init = &(const struct clk_init_data) {
  206. .name = "gcc_gpll14_out_even",
  207. .parent_hws = (const struct clk_hw*[]) {
  208. &gcc_gpll14.clkr.hw,
  209. },
  210. .num_parents = 1,
  211. .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops,
  212. },
  213. };
  214. static struct clk_alpha_pll gcc_gpll4 = {
  215. .offset = 0x4000,
  216. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  217. .clkr = {
  218. .enable_reg = 0x62040,
  219. .enable_mask = BIT(4),
  220. .hw.init = &(const struct clk_init_data) {
  221. .name = "gcc_gpll4",
  222. .parent_data = &(const struct clk_parent_data) {
  223. .index = DT_BI_TCXO,
  224. },
  225. .num_parents = 1,
  226. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  227. },
  228. },
  229. };
  230. static struct clk_alpha_pll gcc_gpll5 = {
  231. .offset = 0x5000,
  232. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  233. .clkr = {
  234. .enable_reg = 0x62040,
  235. .enable_mask = BIT(5),
  236. .hw.init = &(const struct clk_init_data) {
  237. .name = "gcc_gpll5",
  238. .parent_data = &(const struct clk_parent_data) {
  239. .index = DT_BI_TCXO,
  240. },
  241. .num_parents = 1,
  242. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  243. },
  244. },
  245. };
  246. static struct clk_alpha_pll gcc_gpll7 = {
  247. .offset = 0x7000,
  248. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  249. .clkr = {
  250. .enable_reg = 0x62040,
  251. .enable_mask = BIT(7),
  252. .hw.init = &(const struct clk_init_data) {
  253. .name = "gcc_gpll7",
  254. .parent_data = &(const struct clk_parent_data) {
  255. .index = DT_BI_TCXO,
  256. },
  257. .num_parents = 1,
  258. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  259. },
  260. },
  261. };
  262. static struct clk_alpha_pll gcc_gpll8 = {
  263. .offset = 0x8000,
  264. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  265. .clkr = {
  266. .enable_reg = 0x62040,
  267. .enable_mask = BIT(8),
  268. .hw.init = &(const struct clk_init_data) {
  269. .name = "gcc_gpll8",
  270. .parent_data = &(const struct clk_parent_data) {
  271. .index = DT_BI_TCXO,
  272. },
  273. .num_parents = 1,
  274. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  275. },
  276. },
  277. };
  278. static struct clk_alpha_pll gcc_gpll9 = {
  279. .offset = 0x9000,
  280. .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
  281. .clkr = {
  282. .enable_reg = 0x62040,
  283. .enable_mask = BIT(9),
  284. .hw.init = &(const struct clk_init_data) {
  285. .name = "gcc_gpll9",
  286. .parent_data = &(const struct clk_parent_data) {
  287. .index = DT_BI_TCXO,
  288. },
  289. .num_parents = 1,
  290. .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
  291. },
  292. },
  293. };
  294. static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src;
  295. static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src;
  296. static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src;
  297. static struct clk_rcg2 gcc_usb4_1_phy_pll_pipe_clk_src;
  298. static const struct parent_map gcc_parent_map_0[] = {
  299. { P_BI_TCXO, 0 },
  300. { P_GCC_GPLL0_OUT_MAIN, 1 },
  301. { P_GCC_GPLL0_OUT_EVEN, 6 },
  302. };
  303. static const struct clk_parent_data gcc_parent_data_0[] = {
  304. { .index = DT_BI_TCXO },
  305. { .hw = &gcc_gpll0.clkr.hw },
  306. { .hw = &gcc_gpll0_out_even.clkr.hw },
  307. };
  308. static const struct parent_map gcc_parent_map_1[] = {
  309. { P_BI_TCXO, 0 },
  310. { P_GCC_GPLL0_OUT_MAIN, 1 },
  311. { P_GCC_GPLL1_OUT_MAIN, 4 },
  312. { P_GCC_GPLL0_OUT_EVEN, 6 },
  313. };
  314. static const struct clk_parent_data gcc_parent_data_1[] = {
  315. { .index = DT_BI_TCXO },
  316. { .hw = &gcc_gpll0.clkr.hw },
  317. { .hw = &gcc_gpll1.clkr.hw },
  318. { .hw = &gcc_gpll0_out_even.clkr.hw },
  319. };
  320. static const struct parent_map gcc_parent_map_2[] = {
  321. { P_BI_TCXO, 0 },
  322. { P_SLEEP_CLK, 5 },
  323. };
  324. static const struct clk_parent_data gcc_parent_data_2[] = {
  325. { .index = DT_BI_TCXO },
  326. { .index = DT_SLEEP_CLK },
  327. };
  328. static const struct parent_map gcc_parent_map_3[] = {
  329. { P_BI_TCXO, 0 },
  330. { P_GCC_GPLL0_OUT_MAIN, 1 },
  331. { P_GCC_GPLL1_OUT_MAIN, 4 },
  332. { P_GCC_GPLL4_OUT_MAIN, 5 },
  333. { P_GCC_GPLL0_OUT_EVEN, 6 },
  334. };
  335. static const struct clk_parent_data gcc_parent_data_3[] = {
  336. { .index = DT_BI_TCXO },
  337. { .hw = &gcc_gpll0.clkr.hw },
  338. { .hw = &gcc_gpll1.clkr.hw },
  339. { .hw = &gcc_gpll4.clkr.hw },
  340. { .hw = &gcc_gpll0_out_even.clkr.hw },
  341. };
  342. static const struct parent_map gcc_parent_map_4[] = {
  343. { P_BI_TCXO, 0 },
  344. { P_GCC_GPLL0_OUT_MAIN, 1 },
  345. { P_SLEEP_CLK, 5 },
  346. { P_GCC_GPLL0_OUT_EVEN, 6 },
  347. };
  348. static const struct clk_parent_data gcc_parent_data_4[] = {
  349. { .index = DT_BI_TCXO },
  350. { .hw = &gcc_gpll0.clkr.hw },
  351. { .index = DT_SLEEP_CLK },
  352. { .hw = &gcc_gpll0_out_even.clkr.hw },
  353. };
  354. static const struct parent_map gcc_parent_map_5[] = {
  355. { P_BI_TCXO, 0 },
  356. };
  357. static const struct clk_parent_data gcc_parent_data_5[] = {
  358. { .index = DT_BI_TCXO },
  359. };
  360. static const struct parent_map gcc_parent_map_6[] = {
  361. { P_BI_TCXO, 0 },
  362. { P_GCC_GPLL0_OUT_MAIN, 1 },
  363. { P_GCC_GPLL4_OUT_MAIN, 5 },
  364. { P_GCC_GPLL0_OUT_EVEN, 6 },
  365. };
  366. static const struct clk_parent_data gcc_parent_data_6[] = {
  367. { .index = DT_BI_TCXO },
  368. { .hw = &gcc_gpll0.clkr.hw },
  369. { .hw = &gcc_gpll4.clkr.hw },
  370. { .hw = &gcc_gpll0_out_even.clkr.hw },
  371. };
  372. static const struct parent_map gcc_parent_map_7[] = {
  373. { P_BI_TCXO, 0 },
  374. { P_GCC_GPLL14_OUT_MAIN, 1 },
  375. { P_GCC_GPLL14_OUT_EVEN, 6 },
  376. };
  377. static const struct clk_parent_data gcc_parent_data_7[] = {
  378. { .index = DT_BI_TCXO },
  379. { .hw = &gcc_gpll14.clkr.hw },
  380. { .hw = &gcc_gpll14_out_even.clkr.hw },
  381. };
  382. static const struct parent_map gcc_parent_map_8[] = {
  383. { P_BI_TCXO, 0 },
  384. { P_GCC_GPLL4_OUT_MAIN, 5 },
  385. };
  386. static const struct clk_parent_data gcc_parent_data_8[] = {
  387. { .index = DT_BI_TCXO },
  388. { .hw = &gcc_gpll4.clkr.hw },
  389. };
  390. static const struct parent_map gcc_parent_map_9[] = {
  391. { P_BI_TCXO, 0 },
  392. { P_GCC_GPLL0_OUT_MAIN, 1 },
  393. { P_GCC_GPLL8_OUT_MAIN, 2 },
  394. { P_GCC_GPLL0_OUT_EVEN, 6 },
  395. };
  396. static const struct clk_parent_data gcc_parent_data_9[] = {
  397. { .index = DT_BI_TCXO },
  398. { .hw = &gcc_gpll0.clkr.hw },
  399. { .hw = &gcc_gpll8.clkr.hw },
  400. { .hw = &gcc_gpll0_out_even.clkr.hw },
  401. };
  402. static const struct parent_map gcc_parent_map_10[] = {
  403. { P_BI_TCXO, 0 },
  404. { P_GCC_GPLL0_OUT_MAIN, 1 },
  405. { P_GCC_GPLL7_OUT_MAIN, 2 },
  406. };
  407. static const struct clk_parent_data gcc_parent_data_10[] = {
  408. { .index = DT_BI_TCXO },
  409. { .hw = &gcc_gpll0.clkr.hw },
  410. { .hw = &gcc_gpll7.clkr.hw },
  411. };
  412. static const struct parent_map gcc_parent_map_11[] = {
  413. { P_BI_TCXO, 0 },
  414. { P_GCC_GPLL0_OUT_MAIN, 1 },
  415. { P_GCC_GPLL7_OUT_MAIN, 2 },
  416. { P_GCC_GPLL8_OUT_MAIN, 3 },
  417. { P_SLEEP_CLK, 5 },
  418. };
  419. static const struct clk_parent_data gcc_parent_data_11[] = {
  420. { .index = DT_BI_TCXO },
  421. { .hw = &gcc_gpll0.clkr.hw },
  422. { .hw = &gcc_gpll7.clkr.hw },
  423. { .hw = &gcc_gpll8.clkr.hw },
  424. { .index = DT_SLEEP_CLK },
  425. };
  426. static const struct parent_map gcc_parent_map_17[] = {
  427. { P_BI_TCXO, 0 },
  428. { P_GCC_GPLL0_OUT_MAIN, 1 },
  429. { P_GCC_GPLL9_OUT_MAIN, 2 },
  430. { P_GCC_GPLL4_OUT_MAIN, 5 },
  431. { P_GCC_GPLL0_OUT_EVEN, 6 },
  432. };
  433. static const struct clk_parent_data gcc_parent_data_17[] = {
  434. { .index = DT_BI_TCXO },
  435. { .hw = &gcc_gpll0.clkr.hw },
  436. { .hw = &gcc_gpll9.clkr.hw },
  437. { .hw = &gcc_gpll4.clkr.hw },
  438. { .hw = &gcc_gpll0_out_even.clkr.hw },
  439. };
  440. static const struct parent_map gcc_parent_map_18[] = {
  441. { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
  442. { P_BI_TCXO, 2 },
  443. };
  444. static const struct clk_parent_data gcc_parent_data_18[] = {
  445. { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
  446. { .index = DT_BI_TCXO },
  447. };
  448. static const struct parent_map gcc_parent_map_19[] = {
  449. { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
  450. { P_BI_TCXO, 2 },
  451. };
  452. static const struct clk_parent_data gcc_parent_data_19[] = {
  453. { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
  454. { .index = DT_BI_TCXO },
  455. };
  456. static const struct parent_map gcc_parent_map_20[] = {
  457. { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
  458. { P_BI_TCXO, 2 },
  459. };
  460. static const struct clk_parent_data gcc_parent_data_20[] = {
  461. { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
  462. { .index = DT_BI_TCXO },
  463. };
  464. static const struct parent_map gcc_parent_map_21[] = {
  465. { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
  466. { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
  467. { P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 3 },
  468. };
  469. static const struct clk_parent_data gcc_parent_data_21[] = {
  470. { .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
  471. { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  472. { .index = DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC },
  473. };
  474. static const struct parent_map gcc_parent_map_22[] = {
  475. { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
  476. { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
  477. { P_GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC, 2 },
  478. { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
  479. };
  480. static const struct clk_parent_data gcc_parent_data_22[] = {
  481. { .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
  482. { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  483. { .hw = &gcc_usb4_1_phy_pll_pipe_clk_src.clkr.hw },
  484. { .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
  485. };
  486. static const struct parent_map gcc_parent_map_23[] = {
  487. { P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 0 },
  488. { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
  489. { P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 3 },
  490. };
  491. static const struct clk_parent_data gcc_parent_data_23[] = {
  492. { .hw = &gcc_usb3_tert_phy_pipe_clk_src.clkr.hw },
  493. { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  494. { .index = DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC },
  495. };
  496. static const struct parent_map gcc_parent_map_24[] = {
  497. { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
  498. { P_BI_TCXO, 2 },
  499. };
  500. static const struct clk_parent_data gcc_parent_data_24[] = {
  501. { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK },
  502. { .index = DT_BI_TCXO },
  503. };
  504. static const struct parent_map gcc_parent_map_25[] = {
  505. { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
  506. { P_BI_TCXO, 2 },
  507. };
  508. static const struct clk_parent_data gcc_parent_data_25[] = {
  509. { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK },
  510. { .index = DT_BI_TCXO },
  511. };
  512. static const struct parent_map gcc_parent_map_26[] = {
  513. { P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
  514. { P_BI_TCXO, 2 },
  515. };
  516. static const struct clk_parent_data gcc_parent_data_26[] = {
  517. { .index = DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK },
  518. { .index = DT_BI_TCXO },
  519. };
  520. static const struct parent_map gcc_parent_map_27[] = {
  521. { P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
  522. { P_BI_TCXO, 2 },
  523. };
  524. static const struct clk_parent_data gcc_parent_data_27[] = {
  525. { .index = DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK },
  526. { .index = DT_BI_TCXO },
  527. };
  528. static const struct parent_map gcc_parent_map_28[] = {
  529. { P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
  530. { P_BI_TCXO, 2 },
  531. };
  532. static const struct clk_parent_data gcc_parent_data_28[] = {
  533. { .index = DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK },
  534. { .index = DT_BI_TCXO },
  535. };
  536. static const struct parent_map gcc_parent_map_29[] = {
  537. { P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 0 },
  538. { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
  539. };
  540. static const struct clk_parent_data gcc_parent_data_29[] = {
  541. { .index = DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC },
  542. { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  543. };
  544. static const struct parent_map gcc_parent_map_30[] = {
  545. { P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 0 },
  546. { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
  547. };
  548. static const struct clk_parent_data gcc_parent_data_30[] = {
  549. { .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC },
  550. { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  551. };
  552. static const struct parent_map gcc_parent_map_31[] = {
  553. { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
  554. { P_BI_TCXO, 2 },
  555. };
  556. static const struct clk_parent_data gcc_parent_data_31[] = {
  557. { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
  558. { .index = DT_BI_TCXO },
  559. };
  560. static const struct parent_map gcc_parent_map_32[] = {
  561. { P_BI_TCXO, 0 },
  562. { P_GCC_GPLL0_OUT_MAIN, 1 },
  563. { P_GCC_GPLL7_OUT_MAIN, 2 },
  564. { P_SLEEP_CLK, 5 },
  565. };
  566. static const struct clk_parent_data gcc_parent_data_32[] = {
  567. { .index = DT_BI_TCXO },
  568. { .hw = &gcc_gpll0.clkr.hw },
  569. { .hw = &gcc_gpll7.clkr.hw },
  570. { .index = DT_SLEEP_CLK },
  571. };
  572. static const struct parent_map gcc_parent_map_33[] = {
  573. { P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
  574. { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
  575. };
  576. static const struct clk_parent_data gcc_parent_data_33[] = {
  577. { .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC },
  578. { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
  579. };
  580. static const struct parent_map gcc_parent_map_34[] = {
  581. { P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 0 },
  582. { P_BI_TCXO, 2 },
  583. };
  584. static const struct clk_parent_data gcc_parent_data_34[] = {
  585. { .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK },
  586. { .index = DT_BI_TCXO },
  587. };
  588. static const struct parent_map gcc_parent_map_35[] = {
  589. { P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 0 },
  590. { P_BI_TCXO, 2 },
  591. };
  592. static const struct clk_parent_data gcc_parent_data_35[] = {
  593. { .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK },
  594. { .index = DT_BI_TCXO },
  595. };
  596. static const struct parent_map gcc_parent_map_36[] = {
  597. { P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
  598. { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
  599. };
  600. static const struct clk_parent_data gcc_parent_data_36[] = {
  601. { .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC },
  602. { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
  603. };
  604. static const struct parent_map gcc_parent_map_37[] = {
  605. { P_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC, 0 },
  606. { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
  607. };
  608. static const struct clk_parent_data gcc_parent_data_37[] = {
  609. { .index = DT_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC },
  610. { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  611. };
  612. static const struct parent_map gcc_parent_map_38[] = {
  613. { P_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC, 0 },
  614. { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
  615. };
  616. static const struct clk_parent_data gcc_parent_data_38[] = {
  617. { .index = DT_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC },
  618. { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  619. };
  620. static const struct parent_map gcc_parent_map_39[] = {
  621. { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
  622. { P_BI_TCXO, 2 },
  623. };
  624. static const struct clk_parent_data gcc_parent_data_39[] = {
  625. { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
  626. { .index = DT_BI_TCXO },
  627. };
  628. static const struct parent_map gcc_parent_map_40[] = {
  629. { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
  630. { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
  631. };
  632. static const struct clk_parent_data gcc_parent_data_40[] = {
  633. { .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC },
  634. { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
  635. };
  636. static const struct parent_map gcc_parent_map_41[] = {
  637. { P_BI_TCXO, 0 },
  638. { P_GCC_GPLL0_OUT_MAIN, 1 },
  639. { P_GCC_GPLL5_OUT_MAIN, 3 },
  640. { P_GCC_GPLL0_OUT_EVEN, 6 },
  641. };
  642. static const struct clk_parent_data gcc_parent_data_41[] = {
  643. { .index = DT_BI_TCXO },
  644. { .hw = &gcc_gpll0.clkr.hw },
  645. { .hw = &gcc_gpll5.clkr.hw },
  646. { .hw = &gcc_gpll0_out_even.clkr.hw },
  647. };
  648. static const struct parent_map gcc_parent_map_42[] = {
  649. { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
  650. { P_BI_TCXO, 2 },
  651. };
  652. static const struct clk_parent_data gcc_parent_data_42[] = {
  653. { .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
  654. { .index = DT_BI_TCXO },
  655. };
  656. static const struct parent_map gcc_parent_map_43[] = {
  657. { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
  658. { P_BI_TCXO, 2 },
  659. };
  660. static const struct clk_parent_data gcc_parent_data_43[] = {
  661. { .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
  662. { .index = DT_BI_TCXO },
  663. };
  664. static const struct parent_map gcc_parent_map_44[] = {
  665. { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
  666. { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
  667. };
  668. static const struct clk_parent_data gcc_parent_data_44[] = {
  669. { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
  670. { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
  671. };
  672. static const struct parent_map gcc_parent_map_45[] = {
  673. { P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 0 },
  674. { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
  675. };
  676. static const struct clk_parent_data gcc_parent_data_45[] = {
  677. { .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC },
  678. { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  679. };
  680. static const struct parent_map gcc_parent_map_46[] = {
  681. { P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 0 },
  682. { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
  683. };
  684. static const struct clk_parent_data gcc_parent_data_46[] = {
  685. { .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC },
  686. { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
  687. };
  688. static const struct parent_map gcc_parent_map_47[] = {
  689. { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
  690. { P_BI_TCXO, 2 },
  691. };
  692. static const struct clk_parent_data gcc_parent_data_47[] = {
  693. { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
  694. { .index = DT_BI_TCXO },
  695. };
  696. static const struct parent_map gcc_parent_map_48[] = {
  697. { P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
  698. { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
  699. };
  700. static const struct clk_parent_data gcc_parent_data_48[] = {
  701. { .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC },
  702. { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
  703. };
  704. static const struct parent_map gcc_parent_map_49[] = {
  705. { P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 0 },
  706. { P_BI_TCXO, 2 },
  707. };
  708. static const struct clk_parent_data gcc_parent_data_49[] = {
  709. { .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK },
  710. { .index = DT_BI_TCXO },
  711. };
  712. static const struct parent_map gcc_parent_map_50[] = {
  713. { P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 0 },
  714. { P_BI_TCXO, 2 },
  715. };
  716. static const struct clk_parent_data gcc_parent_data_50[] = {
  717. { .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK },
  718. { .index = DT_BI_TCXO },
  719. };
  720. static const struct parent_map gcc_parent_map_51[] = {
  721. { P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
  722. { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
  723. };
  724. static const struct clk_parent_data gcc_parent_data_51[] = {
  725. { .index = DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC },
  726. { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
  727. };
  728. static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = {
  729. .reg = 0xdc088,
  730. .clkr = {
  731. .hw.init = &(const struct clk_init_data) {
  732. .name = "gcc_pcie_3a_pipe_clk_src",
  733. .parent_data = &(const struct clk_parent_data){
  734. .index = DT_PCIE_3A_PIPE_CLK,
  735. },
  736. .num_parents = 1,
  737. .ops = &clk_regmap_phy_mux_ops,
  738. },
  739. },
  740. };
  741. static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = {
  742. .reg = 0x941b4,
  743. .clkr = {
  744. .hw.init = &(const struct clk_init_data) {
  745. .name = "gcc_pcie_3b_pipe_clk_src",
  746. .parent_data = &(const struct clk_parent_data){
  747. .index = DT_PCIE_3B_PIPE_CLK,
  748. },
  749. .num_parents = 1,
  750. .ops = &clk_regmap_phy_mux_ops,
  751. },
  752. },
  753. };
  754. static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
  755. .reg = 0x881a4,
  756. .clkr = {
  757. .hw.init = &(const struct clk_init_data) {
  758. .name = "gcc_pcie_4_pipe_clk_src",
  759. .parent_data = &(const struct clk_parent_data){
  760. .index = DT_PCIE_4_PIPE_CLK,
  761. },
  762. .num_parents = 1,
  763. .ops = &clk_regmap_phy_mux_ops,
  764. },
  765. },
  766. };
  767. static struct clk_regmap_phy_mux gcc_pcie_5_pipe_clk_src = {
  768. .reg = 0xc309c,
  769. .clkr = {
  770. .hw.init = &(const struct clk_init_data) {
  771. .name = "gcc_pcie_5_pipe_clk_src",
  772. .parent_data = &(const struct clk_parent_data){
  773. .index = DT_PCIE_5_PIPE_CLK,
  774. },
  775. .num_parents = 1,
  776. .ops = &clk_regmap_phy_mux_ops,
  777. },
  778. },
  779. };
  780. static struct clk_regmap_phy_mux gcc_pcie_6_pipe_clk_src = {
  781. .reg = 0x8a1a4,
  782. .clkr = {
  783. .hw.init = &(const struct clk_init_data) {
  784. .name = "gcc_pcie_6_pipe_clk_src",
  785. .parent_data = &(const struct clk_parent_data){
  786. .index = DT_PCIE_6_PIPE_CLK,
  787. },
  788. .num_parents = 1,
  789. .ops = &clk_regmap_phy_mux_ops,
  790. },
  791. },
  792. };
  793. static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
  794. .reg = 0x7706c,
  795. .shift = 0,
  796. .width = 2,
  797. .parent_map = gcc_parent_map_18,
  798. .clkr = {
  799. .hw.init = &(const struct clk_init_data) {
  800. .name = "gcc_ufs_phy_rx_symbol_0_clk_src",
  801. .parent_data = gcc_parent_data_18,
  802. .num_parents = ARRAY_SIZE(gcc_parent_data_18),
  803. .ops = &clk_regmap_mux_closest_ops,
  804. },
  805. },
  806. };
  807. static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
  808. .reg = 0x770f0,
  809. .shift = 0,
  810. .width = 2,
  811. .parent_map = gcc_parent_map_19,
  812. .clkr = {
  813. .hw.init = &(const struct clk_init_data) {
  814. .name = "gcc_ufs_phy_rx_symbol_1_clk_src",
  815. .parent_data = gcc_parent_data_19,
  816. .num_parents = ARRAY_SIZE(gcc_parent_data_19),
  817. .ops = &clk_regmap_mux_closest_ops,
  818. },
  819. },
  820. };
  821. static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
  822. .reg = 0x7705c,
  823. .shift = 0,
  824. .width = 2,
  825. .parent_map = gcc_parent_map_20,
  826. .clkr = {
  827. .hw.init = &(const struct clk_init_data) {
  828. .name = "gcc_ufs_phy_tx_symbol_0_clk_src",
  829. .parent_data = gcc_parent_data_20,
  830. .num_parents = ARRAY_SIZE(gcc_parent_data_20),
  831. .ops = &clk_regmap_mux_closest_ops,
  832. },
  833. },
  834. };
  835. static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
  836. .reg = 0x2b0b8,
  837. .shift = 0,
  838. .width = 2,
  839. .parent_map = gcc_parent_map_21,
  840. .clkr = {
  841. .hw.init = &(const struct clk_init_data) {
  842. .name = "gcc_usb34_prim_phy_pipe_clk_src",
  843. .parent_data = gcc_parent_data_21,
  844. .num_parents = ARRAY_SIZE(gcc_parent_data_21),
  845. .ops = &clk_regmap_mux_closest_ops,
  846. },
  847. },
  848. };
  849. static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
  850. .reg = 0x2d0c4,
  851. .shift = 0,
  852. .width = 2,
  853. .parent_map = gcc_parent_map_22,
  854. .clkr = {
  855. .hw.init = &(const struct clk_init_data) {
  856. .name = "gcc_usb34_sec_phy_pipe_clk_src",
  857. .parent_data = gcc_parent_data_22,
  858. .num_parents = ARRAY_SIZE(gcc_parent_data_22),
  859. .ops = &clk_regmap_mux_closest_ops,
  860. },
  861. },
  862. };
  863. static struct clk_regmap_mux gcc_usb34_tert_phy_pipe_clk_src = {
  864. .reg = 0xe00bc,
  865. .shift = 0,
  866. .width = 2,
  867. .parent_map = gcc_parent_map_23,
  868. .clkr = {
  869. .hw.init = &(const struct clk_init_data) {
  870. .name = "gcc_usb34_tert_phy_pipe_clk_src",
  871. .parent_data = gcc_parent_data_23,
  872. .num_parents = ARRAY_SIZE(gcc_parent_data_23),
  873. .ops = &clk_regmap_mux_closest_ops,
  874. },
  875. },
  876. };
  877. static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
  878. .reg = 0x9a07c,
  879. .shift = 0,
  880. .width = 2,
  881. .parent_map = gcc_parent_map_24,
  882. .clkr = {
  883. .hw.init = &(const struct clk_init_data) {
  884. .name = "gcc_usb3_mp_phy_pipe_0_clk_src",
  885. .parent_data = gcc_parent_data_24,
  886. .num_parents = ARRAY_SIZE(gcc_parent_data_24),
  887. .ops = &clk_regmap_mux_closest_ops,
  888. },
  889. },
  890. };
  891. static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
  892. .reg = 0x9a084,
  893. .shift = 0,
  894. .width = 2,
  895. .parent_map = gcc_parent_map_25,
  896. .clkr = {
  897. .hw.init = &(const struct clk_init_data) {
  898. .name = "gcc_usb3_mp_phy_pipe_1_clk_src",
  899. .parent_data = gcc_parent_data_25,
  900. .num_parents = ARRAY_SIZE(gcc_parent_data_25),
  901. .ops = &clk_regmap_mux_closest_ops,
  902. },
  903. },
  904. };
  905. static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
  906. .reg = 0x3f08c,
  907. .shift = 0,
  908. .width = 2,
  909. .parent_map = gcc_parent_map_26,
  910. .clkr = {
  911. .hw.init = &(const struct clk_init_data) {
  912. .name = "gcc_usb3_prim_phy_pipe_clk_src",
  913. .parent_data = gcc_parent_data_26,
  914. .num_parents = ARRAY_SIZE(gcc_parent_data_26),
  915. .ops = &clk_regmap_mux_closest_ops,
  916. },
  917. },
  918. };
  919. static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
  920. .reg = 0xe207c,
  921. .shift = 0,
  922. .width = 2,
  923. .parent_map = gcc_parent_map_27,
  924. .clkr = {
  925. .hw.init = &(const struct clk_init_data) {
  926. .name = "gcc_usb3_sec_phy_pipe_clk_src",
  927. .parent_data = gcc_parent_data_27,
  928. .num_parents = ARRAY_SIZE(gcc_parent_data_27),
  929. .ops = &clk_regmap_mux_closest_ops,
  930. },
  931. },
  932. };
  933. static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = {
  934. .reg = 0xe107c,
  935. .shift = 0,
  936. .width = 2,
  937. .parent_map = gcc_parent_map_28,
  938. .clkr = {
  939. .hw.init = &(const struct clk_init_data) {
  940. .name = "gcc_usb3_tert_phy_pipe_clk_src",
  941. .parent_data = gcc_parent_data_28,
  942. .num_parents = ARRAY_SIZE(gcc_parent_data_28),
  943. .ops = &clk_regmap_mux_closest_ops,
  944. },
  945. },
  946. };
  947. static struct clk_regmap_mux gcc_usb4_0_phy_dp0_clk_src = {
  948. .reg = 0x2b080,
  949. .shift = 0,
  950. .width = 2,
  951. .parent_map = gcc_parent_map_29,
  952. .clkr = {
  953. .hw.init = &(const struct clk_init_data) {
  954. .name = "gcc_usb4_0_phy_dp0_clk_src",
  955. .parent_data = gcc_parent_data_29,
  956. .num_parents = ARRAY_SIZE(gcc_parent_data_29),
  957. .ops = &clk_regmap_mux_closest_ops,
  958. },
  959. },
  960. };
  961. static struct clk_regmap_mux gcc_usb4_0_phy_dp1_clk_src = {
  962. .reg = 0x2b134,
  963. .shift = 0,
  964. .width = 2,
  965. .parent_map = gcc_parent_map_30,
  966. .clkr = {
  967. .hw.init = &(const struct clk_init_data) {
  968. .name = "gcc_usb4_0_phy_dp1_clk_src",
  969. .parent_data = gcc_parent_data_30,
  970. .num_parents = ARRAY_SIZE(gcc_parent_data_30),
  971. .ops = &clk_regmap_mux_closest_ops,
  972. },
  973. },
  974. };
  975. static struct clk_regmap_mux gcc_usb4_0_phy_p2rr2p_pipe_clk_src = {
  976. .reg = 0x2b0f0,
  977. .shift = 0,
  978. .width = 2,
  979. .parent_map = gcc_parent_map_31,
  980. .clkr = {
  981. .hw.init = &(const struct clk_init_data) {
  982. .name = "gcc_usb4_0_phy_p2rr2p_pipe_clk_src",
  983. .parent_data = gcc_parent_data_31,
  984. .num_parents = ARRAY_SIZE(gcc_parent_data_31),
  985. .ops = &clk_regmap_mux_closest_ops,
  986. },
  987. },
  988. };
  989. static struct clk_regmap_mux gcc_usb4_0_phy_pcie_pipe_mux_clk_src = {
  990. .reg = 0x2b120,
  991. .shift = 0,
  992. .width = 1,
  993. .parent_map = gcc_parent_map_33,
  994. .clkr = {
  995. .hw.init = &(const struct clk_init_data) {
  996. .name = "gcc_usb4_0_phy_pcie_pipe_mux_clk_src",
  997. .parent_data = gcc_parent_data_33,
  998. .num_parents = ARRAY_SIZE(gcc_parent_data_33),
  999. .ops = &clk_regmap_mux_closest_ops,
  1000. },
  1001. },
  1002. };
  1003. static struct clk_regmap_mux gcc_usb4_0_phy_rx0_clk_src = {
  1004. .reg = 0x2b0c0,
  1005. .shift = 0,
  1006. .width = 2,
  1007. .parent_map = gcc_parent_map_34,
  1008. .clkr = {
  1009. .hw.init = &(const struct clk_init_data) {
  1010. .name = "gcc_usb4_0_phy_rx0_clk_src",
  1011. .parent_data = gcc_parent_data_34,
  1012. .num_parents = ARRAY_SIZE(gcc_parent_data_34),
  1013. .ops = &clk_regmap_mux_closest_ops,
  1014. },
  1015. },
  1016. };
  1017. static struct clk_regmap_mux gcc_usb4_0_phy_rx1_clk_src = {
  1018. .reg = 0x2b0d4,
  1019. .shift = 0,
  1020. .width = 2,
  1021. .parent_map = gcc_parent_map_35,
  1022. .clkr = {
  1023. .hw.init = &(const struct clk_init_data) {
  1024. .name = "gcc_usb4_0_phy_rx1_clk_src",
  1025. .parent_data = gcc_parent_data_35,
  1026. .num_parents = ARRAY_SIZE(gcc_parent_data_35),
  1027. .ops = &clk_regmap_mux_closest_ops,
  1028. },
  1029. },
  1030. };
  1031. static struct clk_regmap_mux gcc_usb4_0_phy_sys_clk_src = {
  1032. .reg = 0x2b100,
  1033. .shift = 0,
  1034. .width = 2,
  1035. .parent_map = gcc_parent_map_36,
  1036. .clkr = {
  1037. .hw.init = &(const struct clk_init_data) {
  1038. .name = "gcc_usb4_0_phy_sys_clk_src",
  1039. .parent_data = gcc_parent_data_36,
  1040. .num_parents = ARRAY_SIZE(gcc_parent_data_36),
  1041. .ops = &clk_regmap_mux_closest_ops,
  1042. },
  1043. },
  1044. };
  1045. static struct clk_regmap_mux gcc_usb4_1_phy_dp0_clk_src = {
  1046. .reg = 0x2d08c,
  1047. .shift = 0,
  1048. .width = 2,
  1049. .parent_map = gcc_parent_map_37,
  1050. .clkr = {
  1051. .hw.init = &(const struct clk_init_data) {
  1052. .name = "gcc_usb4_1_phy_dp0_clk_src",
  1053. .parent_data = gcc_parent_data_37,
  1054. .num_parents = ARRAY_SIZE(gcc_parent_data_37),
  1055. .ops = &clk_regmap_mux_closest_ops,
  1056. },
  1057. },
  1058. };
  1059. static struct clk_regmap_mux gcc_usb4_1_phy_dp1_clk_src = {
  1060. .reg = 0x2d154,
  1061. .shift = 0,
  1062. .width = 2,
  1063. .parent_map = gcc_parent_map_38,
  1064. .clkr = {
  1065. .hw.init = &(const struct clk_init_data) {
  1066. .name = "gcc_usb4_1_phy_dp1_clk_src",
  1067. .parent_data = gcc_parent_data_38,
  1068. .num_parents = ARRAY_SIZE(gcc_parent_data_38),
  1069. .ops = &clk_regmap_mux_closest_ops,
  1070. },
  1071. },
  1072. };
  1073. static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
  1074. .reg = 0x2d114,
  1075. .shift = 0,
  1076. .width = 2,
  1077. .parent_map = gcc_parent_map_39,
  1078. .clkr = {
  1079. .hw.init = &(const struct clk_init_data) {
  1080. .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
  1081. .parent_data = gcc_parent_data_39,
  1082. .num_parents = ARRAY_SIZE(gcc_parent_data_39),
  1083. .ops = &clk_regmap_mux_closest_ops,
  1084. },
  1085. },
  1086. };
  1087. static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
  1088. .reg = 0x2d140,
  1089. .shift = 0,
  1090. .width = 1,
  1091. .parent_map = gcc_parent_map_40,
  1092. .clkr = {
  1093. .hw.init = &(const struct clk_init_data) {
  1094. .name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
  1095. .parent_data = gcc_parent_data_40,
  1096. .num_parents = ARRAY_SIZE(gcc_parent_data_40),
  1097. .ops = &clk_regmap_mux_closest_ops,
  1098. },
  1099. },
  1100. };
  1101. static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
  1102. .reg = 0x2d0e4,
  1103. .shift = 0,
  1104. .width = 2,
  1105. .parent_map = gcc_parent_map_42,
  1106. .clkr = {
  1107. .hw.init = &(const struct clk_init_data) {
  1108. .name = "gcc_usb4_1_phy_rx0_clk_src",
  1109. .parent_data = gcc_parent_data_42,
  1110. .num_parents = ARRAY_SIZE(gcc_parent_data_42),
  1111. .ops = &clk_regmap_mux_closest_ops,
  1112. },
  1113. },
  1114. };
  1115. static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
  1116. .reg = 0x2d0f8,
  1117. .shift = 0,
  1118. .width = 2,
  1119. .parent_map = gcc_parent_map_43,
  1120. .clkr = {
  1121. .hw.init = &(const struct clk_init_data) {
  1122. .name = "gcc_usb4_1_phy_rx1_clk_src",
  1123. .parent_data = gcc_parent_data_43,
  1124. .num_parents = ARRAY_SIZE(gcc_parent_data_43),
  1125. .ops = &clk_regmap_mux_closest_ops,
  1126. },
  1127. },
  1128. };
  1129. static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
  1130. .reg = 0x2d124,
  1131. .shift = 0,
  1132. .width = 2,
  1133. .parent_map = gcc_parent_map_44,
  1134. .clkr = {
  1135. .hw.init = &(const struct clk_init_data) {
  1136. .name = "gcc_usb4_1_phy_sys_clk_src",
  1137. .parent_data = gcc_parent_data_44,
  1138. .num_parents = ARRAY_SIZE(gcc_parent_data_44),
  1139. .ops = &clk_regmap_mux_closest_ops,
  1140. },
  1141. },
  1142. };
  1143. static struct clk_regmap_mux gcc_usb4_2_phy_dp0_clk_src = {
  1144. .reg = 0xe0084,
  1145. .shift = 0,
  1146. .width = 2,
  1147. .parent_map = gcc_parent_map_45,
  1148. .clkr = {
  1149. .hw.init = &(const struct clk_init_data) {
  1150. .name = "gcc_usb4_2_phy_dp0_clk_src",
  1151. .parent_data = gcc_parent_data_45,
  1152. .num_parents = ARRAY_SIZE(gcc_parent_data_45),
  1153. .ops = &clk_regmap_mux_closest_ops,
  1154. },
  1155. },
  1156. };
  1157. static struct clk_regmap_mux gcc_usb4_2_phy_dp1_clk_src = {
  1158. .reg = 0xe013c,
  1159. .shift = 0,
  1160. .width = 2,
  1161. .parent_map = gcc_parent_map_46,
  1162. .clkr = {
  1163. .hw.init = &(const struct clk_init_data) {
  1164. .name = "gcc_usb4_2_phy_dp1_clk_src",
  1165. .parent_data = gcc_parent_data_46,
  1166. .num_parents = ARRAY_SIZE(gcc_parent_data_46),
  1167. .ops = &clk_regmap_mux_closest_ops,
  1168. },
  1169. },
  1170. };
  1171. static struct clk_regmap_mux gcc_usb4_2_phy_p2rr2p_pipe_clk_src = {
  1172. .reg = 0xe00f4,
  1173. .shift = 0,
  1174. .width = 2,
  1175. .parent_map = gcc_parent_map_47,
  1176. .clkr = {
  1177. .hw.init = &(const struct clk_init_data) {
  1178. .name = "gcc_usb4_2_phy_p2rr2p_pipe_clk_src",
  1179. .parent_data = gcc_parent_data_47,
  1180. .num_parents = ARRAY_SIZE(gcc_parent_data_47),
  1181. .ops = &clk_regmap_mux_closest_ops,
  1182. },
  1183. },
  1184. };
  1185. static struct clk_regmap_mux gcc_usb4_2_phy_pcie_pipe_mux_clk_src = {
  1186. .reg = 0xe0124,
  1187. .shift = 0,
  1188. .width = 1,
  1189. .parent_map = gcc_parent_map_48,
  1190. .clkr = {
  1191. .hw.init = &(const struct clk_init_data) {
  1192. .name = "gcc_usb4_2_phy_pcie_pipe_mux_clk_src",
  1193. .parent_data = gcc_parent_data_48,
  1194. .num_parents = ARRAY_SIZE(gcc_parent_data_48),
  1195. .ops = &clk_regmap_mux_closest_ops,
  1196. },
  1197. },
  1198. };
  1199. static struct clk_regmap_mux gcc_usb4_2_phy_rx0_clk_src = {
  1200. .reg = 0xe00c4,
  1201. .shift = 0,
  1202. .width = 2,
  1203. .parent_map = gcc_parent_map_49,
  1204. .clkr = {
  1205. .hw.init = &(const struct clk_init_data) {
  1206. .name = "gcc_usb4_2_phy_rx0_clk_src",
  1207. .parent_data = gcc_parent_data_49,
  1208. .num_parents = ARRAY_SIZE(gcc_parent_data_49),
  1209. .ops = &clk_regmap_mux_closest_ops,
  1210. },
  1211. },
  1212. };
  1213. static struct clk_regmap_mux gcc_usb4_2_phy_rx1_clk_src = {
  1214. .reg = 0xe00d8,
  1215. .shift = 0,
  1216. .width = 2,
  1217. .parent_map = gcc_parent_map_50,
  1218. .clkr = {
  1219. .hw.init = &(const struct clk_init_data) {
  1220. .name = "gcc_usb4_2_phy_rx1_clk_src",
  1221. .parent_data = gcc_parent_data_50,
  1222. .num_parents = ARRAY_SIZE(gcc_parent_data_50),
  1223. .ops = &clk_regmap_mux_closest_ops,
  1224. },
  1225. },
  1226. };
  1227. static struct clk_regmap_mux gcc_usb4_2_phy_sys_clk_src = {
  1228. .reg = 0xe0104,
  1229. .shift = 0,
  1230. .width = 2,
  1231. .parent_map = gcc_parent_map_51,
  1232. .clkr = {
  1233. .hw.init = &(const struct clk_init_data) {
  1234. .name = "gcc_usb4_2_phy_sys_clk_src",
  1235. .parent_data = gcc_parent_data_51,
  1236. .num_parents = ARRAY_SIZE(gcc_parent_data_51),
  1237. .ops = &clk_regmap_mux_closest_ops,
  1238. },
  1239. },
  1240. };
  1241. static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
  1242. F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
  1243. F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
  1244. F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
  1245. { }
  1246. };
  1247. static struct clk_rcg2 gcc_gp1_clk_src = {
  1248. .cmd_rcgr = 0x64004,
  1249. .mnd_width = 16,
  1250. .hid_width = 5,
  1251. .parent_map = gcc_parent_map_4,
  1252. .freq_tbl = ftbl_gcc_gp1_clk_src,
  1253. .clkr.hw.init = &(const struct clk_init_data) {
  1254. .name = "gcc_gp1_clk_src",
  1255. .parent_data = gcc_parent_data_4,
  1256. .num_parents = ARRAY_SIZE(gcc_parent_data_4),
  1257. .flags = CLK_SET_RATE_PARENT,
  1258. .ops = &clk_rcg2_shared_no_init_park_ops,
  1259. },
  1260. };
  1261. static struct clk_rcg2 gcc_gp2_clk_src = {
  1262. .cmd_rcgr = 0x92004,
  1263. .mnd_width = 16,
  1264. .hid_width = 5,
  1265. .parent_map = gcc_parent_map_4,
  1266. .freq_tbl = ftbl_gcc_gp1_clk_src,
  1267. .clkr.hw.init = &(const struct clk_init_data) {
  1268. .name = "gcc_gp2_clk_src",
  1269. .parent_data = gcc_parent_data_4,
  1270. .num_parents = ARRAY_SIZE(gcc_parent_data_4),
  1271. .flags = CLK_SET_RATE_PARENT,
  1272. .ops = &clk_rcg2_shared_no_init_park_ops,
  1273. },
  1274. };
  1275. static struct clk_rcg2 gcc_gp3_clk_src = {
  1276. .cmd_rcgr = 0x93004,
  1277. .mnd_width = 16,
  1278. .hid_width = 5,
  1279. .parent_map = gcc_parent_map_4,
  1280. .freq_tbl = ftbl_gcc_gp1_clk_src,
  1281. .clkr.hw.init = &(const struct clk_init_data) {
  1282. .name = "gcc_gp3_clk_src",
  1283. .parent_data = gcc_parent_data_4,
  1284. .num_parents = ARRAY_SIZE(gcc_parent_data_4),
  1285. .flags = CLK_SET_RATE_PARENT,
  1286. .ops = &clk_rcg2_shared_no_init_park_ops,
  1287. },
  1288. };
  1289. static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
  1290. F(19200000, P_BI_TCXO, 1, 0, 0),
  1291. { }
  1292. };
  1293. static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
  1294. .cmd_rcgr = 0xc8168,
  1295. .mnd_width = 16,
  1296. .hid_width = 5,
  1297. .parent_map = gcc_parent_map_2,
  1298. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1299. .clkr.hw.init = &(const struct clk_init_data) {
  1300. .name = "gcc_pcie_0_aux_clk_src",
  1301. .parent_data = gcc_parent_data_2,
  1302. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1303. .flags = CLK_SET_RATE_PARENT,
  1304. .ops = &clk_rcg2_shared_no_init_park_ops,
  1305. },
  1306. };
  1307. static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
  1308. F(19200000, P_BI_TCXO, 1, 0, 0),
  1309. F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
  1310. { }
  1311. };
  1312. static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
  1313. .cmd_rcgr = 0xc803c,
  1314. .mnd_width = 0,
  1315. .hid_width = 5,
  1316. .parent_map = gcc_parent_map_0,
  1317. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1318. .clkr.hw.init = &(const struct clk_init_data) {
  1319. .name = "gcc_pcie_0_phy_rchng_clk_src",
  1320. .parent_data = gcc_parent_data_0,
  1321. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1322. .flags = CLK_SET_RATE_PARENT,
  1323. .ops = &clk_rcg2_shared_no_init_park_ops,
  1324. },
  1325. };
  1326. static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
  1327. .cmd_rcgr = 0x2e168,
  1328. .mnd_width = 16,
  1329. .hid_width = 5,
  1330. .parent_map = gcc_parent_map_2,
  1331. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1332. .clkr.hw.init = &(const struct clk_init_data) {
  1333. .name = "gcc_pcie_1_aux_clk_src",
  1334. .parent_data = gcc_parent_data_2,
  1335. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1336. .flags = CLK_SET_RATE_PARENT,
  1337. .ops = &clk_rcg2_shared_no_init_park_ops,
  1338. },
  1339. };
  1340. static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
  1341. .cmd_rcgr = 0x2e03c,
  1342. .mnd_width = 0,
  1343. .hid_width = 5,
  1344. .parent_map = gcc_parent_map_0,
  1345. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1346. .clkr.hw.init = &(const struct clk_init_data) {
  1347. .name = "gcc_pcie_1_phy_rchng_clk_src",
  1348. .parent_data = gcc_parent_data_0,
  1349. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1350. .flags = CLK_SET_RATE_PARENT,
  1351. .ops = &clk_rcg2_shared_no_init_park_ops,
  1352. },
  1353. };
  1354. static struct clk_rcg2 gcc_pcie_2_aux_clk_src = {
  1355. .cmd_rcgr = 0xc0168,
  1356. .mnd_width = 16,
  1357. .hid_width = 5,
  1358. .parent_map = gcc_parent_map_2,
  1359. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1360. .clkr.hw.init = &(const struct clk_init_data) {
  1361. .name = "gcc_pcie_2_aux_clk_src",
  1362. .parent_data = gcc_parent_data_2,
  1363. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1364. .flags = CLK_SET_RATE_PARENT,
  1365. .ops = &clk_rcg2_shared_no_init_park_ops,
  1366. },
  1367. };
  1368. static struct clk_rcg2 gcc_pcie_2_phy_rchng_clk_src = {
  1369. .cmd_rcgr = 0xc003c,
  1370. .mnd_width = 0,
  1371. .hid_width = 5,
  1372. .parent_map = gcc_parent_map_0,
  1373. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1374. .clkr.hw.init = &(const struct clk_init_data) {
  1375. .name = "gcc_pcie_2_phy_rchng_clk_src",
  1376. .parent_data = gcc_parent_data_0,
  1377. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1378. .flags = CLK_SET_RATE_PARENT,
  1379. .ops = &clk_rcg2_shared_no_init_park_ops,
  1380. },
  1381. };
  1382. static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
  1383. .cmd_rcgr = 0xdc08c,
  1384. .mnd_width = 16,
  1385. .hid_width = 5,
  1386. .parent_map = gcc_parent_map_2,
  1387. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1388. .clkr.hw.init = &(const struct clk_init_data) {
  1389. .name = "gcc_pcie_3a_aux_clk_src",
  1390. .parent_data = gcc_parent_data_2,
  1391. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1392. .flags = CLK_SET_RATE_PARENT,
  1393. .ops = &clk_rcg2_shared_no_init_park_ops,
  1394. },
  1395. };
  1396. static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
  1397. .cmd_rcgr = 0xdc070,
  1398. .mnd_width = 0,
  1399. .hid_width = 5,
  1400. .parent_map = gcc_parent_map_0,
  1401. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1402. .clkr.hw.init = &(const struct clk_init_data) {
  1403. .name = "gcc_pcie_3a_phy_rchng_clk_src",
  1404. .parent_data = gcc_parent_data_0,
  1405. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1406. .flags = CLK_SET_RATE_PARENT,
  1407. .ops = &clk_rcg2_shared_no_init_park_ops,
  1408. },
  1409. };
  1410. static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
  1411. .cmd_rcgr = 0x941b8,
  1412. .mnd_width = 16,
  1413. .hid_width = 5,
  1414. .parent_map = gcc_parent_map_2,
  1415. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1416. .clkr.hw.init = &(const struct clk_init_data) {
  1417. .name = "gcc_pcie_3b_aux_clk_src",
  1418. .parent_data = gcc_parent_data_2,
  1419. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1420. .flags = CLK_SET_RATE_PARENT,
  1421. .ops = &clk_rcg2_shared_no_init_park_ops,
  1422. },
  1423. };
  1424. static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
  1425. .cmd_rcgr = 0x94088,
  1426. .mnd_width = 0,
  1427. .hid_width = 5,
  1428. .parent_map = gcc_parent_map_0,
  1429. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1430. .clkr.hw.init = &(const struct clk_init_data) {
  1431. .name = "gcc_pcie_3b_phy_rchng_clk_src",
  1432. .parent_data = gcc_parent_data_0,
  1433. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1434. .flags = CLK_SET_RATE_PARENT,
  1435. .ops = &clk_rcg2_shared_no_init_park_ops,
  1436. },
  1437. };
  1438. static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
  1439. .cmd_rcgr = 0x881a8,
  1440. .mnd_width = 16,
  1441. .hid_width = 5,
  1442. .parent_map = gcc_parent_map_2,
  1443. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1444. .clkr.hw.init = &(const struct clk_init_data) {
  1445. .name = "gcc_pcie_4_aux_clk_src",
  1446. .parent_data = gcc_parent_data_2,
  1447. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1448. .flags = CLK_SET_RATE_PARENT,
  1449. .ops = &clk_rcg2_shared_no_init_park_ops,
  1450. },
  1451. };
  1452. static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
  1453. .cmd_rcgr = 0x88078,
  1454. .mnd_width = 0,
  1455. .hid_width = 5,
  1456. .parent_map = gcc_parent_map_0,
  1457. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1458. .clkr.hw.init = &(const struct clk_init_data) {
  1459. .name = "gcc_pcie_4_phy_rchng_clk_src",
  1460. .parent_data = gcc_parent_data_0,
  1461. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1462. .flags = CLK_SET_RATE_PARENT,
  1463. .ops = &clk_rcg2_shared_no_init_park_ops,
  1464. },
  1465. };
  1466. static struct clk_rcg2 gcc_pcie_5_aux_clk_src = {
  1467. .cmd_rcgr = 0xc30a0,
  1468. .mnd_width = 16,
  1469. .hid_width = 5,
  1470. .parent_map = gcc_parent_map_2,
  1471. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1472. .clkr.hw.init = &(const struct clk_init_data) {
  1473. .name = "gcc_pcie_5_aux_clk_src",
  1474. .parent_data = gcc_parent_data_2,
  1475. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1476. .flags = CLK_SET_RATE_PARENT,
  1477. .ops = &clk_rcg2_shared_no_init_park_ops,
  1478. },
  1479. };
  1480. static struct clk_rcg2 gcc_pcie_5_phy_rchng_clk_src = {
  1481. .cmd_rcgr = 0xc3084,
  1482. .mnd_width = 0,
  1483. .hid_width = 5,
  1484. .parent_map = gcc_parent_map_0,
  1485. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1486. .clkr.hw.init = &(const struct clk_init_data) {
  1487. .name = "gcc_pcie_5_phy_rchng_clk_src",
  1488. .parent_data = gcc_parent_data_0,
  1489. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1490. .flags = CLK_SET_RATE_PARENT,
  1491. .ops = &clk_rcg2_shared_no_init_park_ops,
  1492. },
  1493. };
  1494. static struct clk_rcg2 gcc_pcie_6_aux_clk_src = {
  1495. .cmd_rcgr = 0x8a1a8,
  1496. .mnd_width = 16,
  1497. .hid_width = 5,
  1498. .parent_map = gcc_parent_map_2,
  1499. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1500. .clkr.hw.init = &(const struct clk_init_data) {
  1501. .name = "gcc_pcie_6_aux_clk_src",
  1502. .parent_data = gcc_parent_data_2,
  1503. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1504. .flags = CLK_SET_RATE_PARENT,
  1505. .ops = &clk_rcg2_shared_no_init_park_ops,
  1506. },
  1507. };
  1508. static struct clk_rcg2 gcc_pcie_6_phy_rchng_clk_src = {
  1509. .cmd_rcgr = 0x8a078,
  1510. .mnd_width = 0,
  1511. .hid_width = 5,
  1512. .parent_map = gcc_parent_map_0,
  1513. .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
  1514. .clkr.hw.init = &(const struct clk_init_data) {
  1515. .name = "gcc_pcie_6_phy_rchng_clk_src",
  1516. .parent_data = gcc_parent_data_0,
  1517. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1518. .flags = CLK_SET_RATE_PARENT,
  1519. .ops = &clk_rcg2_shared_no_init_park_ops,
  1520. },
  1521. };
  1522. static struct clk_rcg2 gcc_pcie_phy_3a_aux_clk_src = {
  1523. .cmd_rcgr = 0x6c01c,
  1524. .mnd_width = 16,
  1525. .hid_width = 5,
  1526. .parent_map = gcc_parent_map_2,
  1527. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1528. .clkr.hw.init = &(const struct clk_init_data) {
  1529. .name = "gcc_pcie_phy_3a_aux_clk_src",
  1530. .parent_data = gcc_parent_data_2,
  1531. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1532. .flags = CLK_SET_RATE_PARENT,
  1533. .ops = &clk_rcg2_shared_no_init_park_ops,
  1534. },
  1535. };
  1536. static struct clk_rcg2 gcc_pcie_phy_3b_aux_clk_src = {
  1537. .cmd_rcgr = 0x7501c,
  1538. .mnd_width = 16,
  1539. .hid_width = 5,
  1540. .parent_map = gcc_parent_map_2,
  1541. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1542. .clkr.hw.init = &(const struct clk_init_data) {
  1543. .name = "gcc_pcie_phy_3b_aux_clk_src",
  1544. .parent_data = gcc_parent_data_2,
  1545. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1546. .flags = CLK_SET_RATE_PARENT,
  1547. .ops = &clk_rcg2_shared_no_init_park_ops,
  1548. },
  1549. };
  1550. static struct clk_rcg2 gcc_pcie_phy_4_aux_clk_src = {
  1551. .cmd_rcgr = 0xd3018,
  1552. .mnd_width = 16,
  1553. .hid_width = 5,
  1554. .parent_map = gcc_parent_map_2,
  1555. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1556. .clkr.hw.init = &(const struct clk_init_data) {
  1557. .name = "gcc_pcie_phy_4_aux_clk_src",
  1558. .parent_data = gcc_parent_data_2,
  1559. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1560. .flags = CLK_SET_RATE_PARENT,
  1561. .ops = &clk_rcg2_shared_no_init_park_ops,
  1562. },
  1563. };
  1564. static struct clk_rcg2 gcc_pcie_phy_5_aux_clk_src = {
  1565. .cmd_rcgr = 0xd2018,
  1566. .mnd_width = 16,
  1567. .hid_width = 5,
  1568. .parent_map = gcc_parent_map_2,
  1569. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1570. .clkr.hw.init = &(const struct clk_init_data) {
  1571. .name = "gcc_pcie_phy_5_aux_clk_src",
  1572. .parent_data = gcc_parent_data_2,
  1573. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1574. .flags = CLK_SET_RATE_PARENT,
  1575. .ops = &clk_rcg2_shared_no_init_park_ops,
  1576. },
  1577. };
  1578. static struct clk_rcg2 gcc_pcie_phy_6_aux_clk_src = {
  1579. .cmd_rcgr = 0xd4018,
  1580. .mnd_width = 16,
  1581. .hid_width = 5,
  1582. .parent_map = gcc_parent_map_2,
  1583. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  1584. .clkr.hw.init = &(const struct clk_init_data) {
  1585. .name = "gcc_pcie_phy_6_aux_clk_src",
  1586. .parent_data = gcc_parent_data_2,
  1587. .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  1588. .flags = CLK_SET_RATE_PARENT,
  1589. .ops = &clk_rcg2_shared_no_init_park_ops,
  1590. },
  1591. };
  1592. static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
  1593. F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
  1594. { }
  1595. };
  1596. static struct clk_rcg2 gcc_pdm2_clk_src = {
  1597. .cmd_rcgr = 0x33010,
  1598. .mnd_width = 0,
  1599. .hid_width = 5,
  1600. .parent_map = gcc_parent_map_0,
  1601. .freq_tbl = ftbl_gcc_pdm2_clk_src,
  1602. .clkr.hw.init = &(const struct clk_init_data) {
  1603. .name = "gcc_pdm2_clk_src",
  1604. .parent_data = gcc_parent_data_0,
  1605. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  1606. .flags = CLK_SET_RATE_PARENT,
  1607. .ops = &clk_rcg2_shared_no_init_park_ops,
  1608. },
  1609. };
  1610. static const struct freq_tbl ftbl_gcc_qupv3_oob_qspi_s0_clk_src[] = {
  1611. F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
  1612. F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
  1613. F(19200000, P_BI_TCXO, 1, 0, 0),
  1614. F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
  1615. F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
  1616. F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
  1617. F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
  1618. F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
  1619. F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
  1620. F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
  1621. F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
  1622. F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
  1623. F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
  1624. F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
  1625. F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
  1626. { }
  1627. };
  1628. static struct clk_init_data gcc_qupv3_oob_qspi_s0_clk_src_init = {
  1629. .name = "gcc_qupv3_oob_qspi_s0_clk_src",
  1630. .parent_data = gcc_parent_data_3,
  1631. .num_parents = ARRAY_SIZE(gcc_parent_data_3),
  1632. .flags = CLK_SET_RATE_PARENT,
  1633. .ops = &clk_rcg2_shared_no_init_park_ops,
  1634. };
  1635. static struct clk_rcg2 gcc_qupv3_oob_qspi_s0_clk_src = {
  1636. .cmd_rcgr = 0xe7044,
  1637. .mnd_width = 16,
  1638. .hid_width = 5,
  1639. .parent_map = gcc_parent_map_3,
  1640. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s0_clk_src,
  1641. .clkr.hw.init = &gcc_qupv3_oob_qspi_s0_clk_src_init,
  1642. };
  1643. static const struct freq_tbl ftbl_gcc_qupv3_oob_qspi_s1_clk_src[] = {
  1644. F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
  1645. F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
  1646. F(19200000, P_BI_TCXO, 1, 0, 0),
  1647. F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
  1648. F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
  1649. F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
  1650. F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
  1651. F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
  1652. F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
  1653. F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
  1654. F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
  1655. F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
  1656. F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
  1657. F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
  1658. { }
  1659. };
  1660. static struct clk_init_data gcc_qupv3_oob_qspi_s1_clk_src_init = {
  1661. .name = "gcc_qupv3_oob_qspi_s1_clk_src",
  1662. .parent_data = gcc_parent_data_1,
  1663. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1664. .flags = CLK_SET_RATE_PARENT,
  1665. .ops = &clk_rcg2_shared_no_init_park_ops,
  1666. };
  1667. static struct clk_rcg2 gcc_qupv3_oob_qspi_s1_clk_src = {
  1668. .cmd_rcgr = 0xe7170,
  1669. .mnd_width = 16,
  1670. .hid_width = 5,
  1671. .parent_map = gcc_parent_map_1,
  1672. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1673. .clkr.hw.init = &gcc_qupv3_oob_qspi_s1_clk_src_init,
  1674. };
  1675. static struct clk_init_data gcc_qupv3_wrap0_qspi_s2_clk_src_init = {
  1676. .name = "gcc_qupv3_wrap0_qspi_s2_clk_src",
  1677. .parent_data = gcc_parent_data_1,
  1678. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1679. .flags = CLK_SET_RATE_PARENT,
  1680. .ops = &clk_rcg2_shared_no_init_park_ops,
  1681. };
  1682. static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s2_clk_src = {
  1683. .cmd_rcgr = 0x287a0,
  1684. .mnd_width = 16,
  1685. .hid_width = 5,
  1686. .parent_map = gcc_parent_map_1,
  1687. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1688. .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s2_clk_src_init,
  1689. };
  1690. static struct clk_init_data gcc_qupv3_wrap0_qspi_s3_clk_src_init = {
  1691. .name = "gcc_qupv3_wrap0_qspi_s3_clk_src",
  1692. .parent_data = gcc_parent_data_1,
  1693. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1694. .flags = CLK_SET_RATE_PARENT,
  1695. .ops = &clk_rcg2_shared_no_init_park_ops,
  1696. };
  1697. static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s3_clk_src = {
  1698. .cmd_rcgr = 0x288d0,
  1699. .mnd_width = 16,
  1700. .hid_width = 5,
  1701. .parent_map = gcc_parent_map_1,
  1702. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1703. .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s3_clk_src_init,
  1704. };
  1705. static struct clk_init_data gcc_qupv3_wrap0_qspi_s6_clk_src_init = {
  1706. .name = "gcc_qupv3_wrap0_qspi_s6_clk_src",
  1707. .parent_data = gcc_parent_data_1,
  1708. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1709. .flags = CLK_SET_RATE_PARENT,
  1710. .ops = &clk_rcg2_shared_no_init_park_ops,
  1711. };
  1712. static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s6_clk_src = {
  1713. .cmd_rcgr = 0x2866c,
  1714. .mnd_width = 16,
  1715. .hid_width = 5,
  1716. .parent_map = gcc_parent_map_1,
  1717. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1718. .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s6_clk_src_init,
  1719. };
  1720. static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
  1721. F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
  1722. F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
  1723. F(19200000, P_BI_TCXO, 1, 0, 0),
  1724. F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
  1725. F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
  1726. F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
  1727. F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
  1728. F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
  1729. F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
  1730. F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
  1731. F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
  1732. F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
  1733. { }
  1734. };
  1735. static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
  1736. .name = "gcc_qupv3_wrap0_s0_clk_src",
  1737. .parent_data = gcc_parent_data_1,
  1738. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1739. .flags = CLK_SET_RATE_PARENT,
  1740. .ops = &clk_rcg2_shared_no_init_park_ops,
  1741. };
  1742. static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
  1743. .cmd_rcgr = 0x28014,
  1744. .mnd_width = 16,
  1745. .hid_width = 5,
  1746. .parent_map = gcc_parent_map_1,
  1747. .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
  1748. .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
  1749. };
  1750. static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
  1751. .name = "gcc_qupv3_wrap0_s1_clk_src",
  1752. .parent_data = gcc_parent_data_1,
  1753. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1754. .flags = CLK_SET_RATE_PARENT,
  1755. .ops = &clk_rcg2_shared_no_init_park_ops,
  1756. };
  1757. static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
  1758. .cmd_rcgr = 0x28150,
  1759. .mnd_width = 16,
  1760. .hid_width = 5,
  1761. .parent_map = gcc_parent_map_1,
  1762. .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
  1763. .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
  1764. };
  1765. static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s4_clk_src[] = {
  1766. F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
  1767. F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
  1768. F(19200000, P_BI_TCXO, 1, 0, 0),
  1769. F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
  1770. F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
  1771. F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
  1772. F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
  1773. F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
  1774. F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
  1775. F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
  1776. F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
  1777. { }
  1778. };
  1779. static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
  1780. .name = "gcc_qupv3_wrap0_s4_clk_src",
  1781. .parent_data = gcc_parent_data_1,
  1782. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1783. .flags = CLK_SET_RATE_PARENT,
  1784. .ops = &clk_rcg2_shared_no_init_park_ops,
  1785. };
  1786. static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
  1787. .cmd_rcgr = 0x282b4,
  1788. .mnd_width = 16,
  1789. .hid_width = 5,
  1790. .parent_map = gcc_parent_map_1,
  1791. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  1792. .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
  1793. };
  1794. static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
  1795. .name = "gcc_qupv3_wrap0_s5_clk_src",
  1796. .parent_data = gcc_parent_data_1,
  1797. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1798. .flags = CLK_SET_RATE_PARENT,
  1799. .ops = &clk_rcg2_shared_no_init_park_ops,
  1800. };
  1801. static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
  1802. .cmd_rcgr = 0x283f0,
  1803. .mnd_width = 16,
  1804. .hid_width = 5,
  1805. .parent_map = gcc_parent_map_1,
  1806. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  1807. .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
  1808. };
  1809. static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
  1810. .name = "gcc_qupv3_wrap0_s7_clk_src",
  1811. .parent_data = gcc_parent_data_1,
  1812. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1813. .flags = CLK_SET_RATE_PARENT,
  1814. .ops = &clk_rcg2_shared_no_init_park_ops,
  1815. };
  1816. static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
  1817. .cmd_rcgr = 0x28540,
  1818. .mnd_width = 16,
  1819. .hid_width = 5,
  1820. .parent_map = gcc_parent_map_1,
  1821. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  1822. .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
  1823. };
  1824. static struct clk_init_data gcc_qupv3_wrap1_qspi_s2_clk_src_init = {
  1825. .name = "gcc_qupv3_wrap1_qspi_s2_clk_src",
  1826. .parent_data = gcc_parent_data_1,
  1827. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1828. .flags = CLK_SET_RATE_PARENT,
  1829. .ops = &clk_rcg2_shared_no_init_park_ops,
  1830. };
  1831. static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s2_clk_src = {
  1832. .cmd_rcgr = 0xb37a0,
  1833. .mnd_width = 16,
  1834. .hid_width = 5,
  1835. .parent_map = gcc_parent_map_1,
  1836. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1837. .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s2_clk_src_init,
  1838. };
  1839. static struct clk_init_data gcc_qupv3_wrap1_qspi_s3_clk_src_init = {
  1840. .name = "gcc_qupv3_wrap1_qspi_s3_clk_src",
  1841. .parent_data = gcc_parent_data_1,
  1842. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1843. .flags = CLK_SET_RATE_PARENT,
  1844. .ops = &clk_rcg2_shared_no_init_park_ops,
  1845. };
  1846. static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s3_clk_src = {
  1847. .cmd_rcgr = 0xb38d0,
  1848. .mnd_width = 16,
  1849. .hid_width = 5,
  1850. .parent_map = gcc_parent_map_1,
  1851. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1852. .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s3_clk_src_init,
  1853. };
  1854. static struct clk_init_data gcc_qupv3_wrap1_qspi_s6_clk_src_init = {
  1855. .name = "gcc_qupv3_wrap1_qspi_s6_clk_src",
  1856. .parent_data = gcc_parent_data_1,
  1857. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1858. .flags = CLK_SET_RATE_PARENT,
  1859. .ops = &clk_rcg2_shared_no_init_park_ops,
  1860. };
  1861. static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s6_clk_src = {
  1862. .cmd_rcgr = 0xb366c,
  1863. .mnd_width = 16,
  1864. .hid_width = 5,
  1865. .parent_map = gcc_parent_map_1,
  1866. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1867. .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s6_clk_src_init,
  1868. };
  1869. static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
  1870. .name = "gcc_qupv3_wrap1_s0_clk_src",
  1871. .parent_data = gcc_parent_data_1,
  1872. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1873. .flags = CLK_SET_RATE_PARENT,
  1874. .ops = &clk_rcg2_shared_no_init_park_ops,
  1875. };
  1876. static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
  1877. .cmd_rcgr = 0xb3014,
  1878. .mnd_width = 16,
  1879. .hid_width = 5,
  1880. .parent_map = gcc_parent_map_1,
  1881. .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
  1882. .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
  1883. };
  1884. static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
  1885. .name = "gcc_qupv3_wrap1_s1_clk_src",
  1886. .parent_data = gcc_parent_data_1,
  1887. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1888. .flags = CLK_SET_RATE_PARENT,
  1889. .ops = &clk_rcg2_shared_no_init_park_ops,
  1890. };
  1891. static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
  1892. .cmd_rcgr = 0xb3150,
  1893. .mnd_width = 16,
  1894. .hid_width = 5,
  1895. .parent_map = gcc_parent_map_1,
  1896. .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
  1897. .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
  1898. };
  1899. static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
  1900. .name = "gcc_qupv3_wrap1_s4_clk_src",
  1901. .parent_data = gcc_parent_data_1,
  1902. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1903. .flags = CLK_SET_RATE_PARENT,
  1904. .ops = &clk_rcg2_shared_no_init_park_ops,
  1905. };
  1906. static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
  1907. .cmd_rcgr = 0xb32b4,
  1908. .mnd_width = 16,
  1909. .hid_width = 5,
  1910. .parent_map = gcc_parent_map_1,
  1911. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  1912. .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
  1913. };
  1914. static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
  1915. .name = "gcc_qupv3_wrap1_s5_clk_src",
  1916. .parent_data = gcc_parent_data_1,
  1917. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1918. .flags = CLK_SET_RATE_PARENT,
  1919. .ops = &clk_rcg2_shared_no_init_park_ops,
  1920. };
  1921. static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
  1922. .cmd_rcgr = 0xb33f0,
  1923. .mnd_width = 16,
  1924. .hid_width = 5,
  1925. .parent_map = gcc_parent_map_1,
  1926. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  1927. .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
  1928. };
  1929. static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
  1930. .name = "gcc_qupv3_wrap1_s7_clk_src",
  1931. .parent_data = gcc_parent_data_1,
  1932. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1933. .flags = CLK_SET_RATE_PARENT,
  1934. .ops = &clk_rcg2_shared_no_init_park_ops,
  1935. };
  1936. static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
  1937. .cmd_rcgr = 0xb3540,
  1938. .mnd_width = 16,
  1939. .hid_width = 5,
  1940. .parent_map = gcc_parent_map_1,
  1941. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  1942. .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
  1943. };
  1944. static struct clk_init_data gcc_qupv3_wrap2_qspi_s2_clk_src_init = {
  1945. .name = "gcc_qupv3_wrap2_qspi_s2_clk_src",
  1946. .parent_data = gcc_parent_data_1,
  1947. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1948. .flags = CLK_SET_RATE_PARENT,
  1949. .ops = &clk_rcg2_shared_no_init_park_ops,
  1950. };
  1951. static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s2_clk_src = {
  1952. .cmd_rcgr = 0xb47a0,
  1953. .mnd_width = 16,
  1954. .hid_width = 5,
  1955. .parent_map = gcc_parent_map_1,
  1956. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1957. .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s2_clk_src_init,
  1958. };
  1959. static struct clk_init_data gcc_qupv3_wrap2_qspi_s3_clk_src_init = {
  1960. .name = "gcc_qupv3_wrap2_qspi_s3_clk_src",
  1961. .parent_data = gcc_parent_data_1,
  1962. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1963. .flags = CLK_SET_RATE_PARENT,
  1964. .ops = &clk_rcg2_shared_no_init_park_ops,
  1965. };
  1966. static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s3_clk_src = {
  1967. .cmd_rcgr = 0xb48d0,
  1968. .mnd_width = 16,
  1969. .hid_width = 5,
  1970. .parent_map = gcc_parent_map_1,
  1971. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1972. .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s3_clk_src_init,
  1973. };
  1974. static struct clk_init_data gcc_qupv3_wrap2_qspi_s6_clk_src_init = {
  1975. .name = "gcc_qupv3_wrap2_qspi_s6_clk_src",
  1976. .parent_data = gcc_parent_data_1,
  1977. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1978. .flags = CLK_SET_RATE_PARENT,
  1979. .ops = &clk_rcg2_shared_no_init_park_ops,
  1980. };
  1981. static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s6_clk_src = {
  1982. .cmd_rcgr = 0xb466c,
  1983. .mnd_width = 16,
  1984. .hid_width = 5,
  1985. .parent_map = gcc_parent_map_1,
  1986. .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
  1987. .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s6_clk_src_init,
  1988. };
  1989. static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
  1990. .name = "gcc_qupv3_wrap2_s0_clk_src",
  1991. .parent_data = gcc_parent_data_1,
  1992. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  1993. .flags = CLK_SET_RATE_PARENT,
  1994. .ops = &clk_rcg2_shared_no_init_park_ops,
  1995. };
  1996. static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
  1997. .cmd_rcgr = 0xb4014,
  1998. .mnd_width = 16,
  1999. .hid_width = 5,
  2000. .parent_map = gcc_parent_map_1,
  2001. .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
  2002. .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
  2003. };
  2004. static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
  2005. .name = "gcc_qupv3_wrap2_s1_clk_src",
  2006. .parent_data = gcc_parent_data_1,
  2007. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  2008. .flags = CLK_SET_RATE_PARENT,
  2009. .ops = &clk_rcg2_shared_no_init_park_ops,
  2010. };
  2011. static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
  2012. .cmd_rcgr = 0xb4150,
  2013. .mnd_width = 16,
  2014. .hid_width = 5,
  2015. .parent_map = gcc_parent_map_1,
  2016. .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
  2017. .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
  2018. };
  2019. static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
  2020. .name = "gcc_qupv3_wrap2_s4_clk_src",
  2021. .parent_data = gcc_parent_data_1,
  2022. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  2023. .flags = CLK_SET_RATE_PARENT,
  2024. .ops = &clk_rcg2_shared_no_init_park_ops,
  2025. };
  2026. static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
  2027. .cmd_rcgr = 0xb42b4,
  2028. .mnd_width = 16,
  2029. .hid_width = 5,
  2030. .parent_map = gcc_parent_map_1,
  2031. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  2032. .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
  2033. };
  2034. static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
  2035. .name = "gcc_qupv3_wrap2_s5_clk_src",
  2036. .parent_data = gcc_parent_data_1,
  2037. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  2038. .flags = CLK_SET_RATE_PARENT,
  2039. .ops = &clk_rcg2_shared_no_init_park_ops,
  2040. };
  2041. static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
  2042. .cmd_rcgr = 0xb43f0,
  2043. .mnd_width = 16,
  2044. .hid_width = 5,
  2045. .parent_map = gcc_parent_map_1,
  2046. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  2047. .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
  2048. };
  2049. static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
  2050. .name = "gcc_qupv3_wrap2_s7_clk_src",
  2051. .parent_data = gcc_parent_data_1,
  2052. .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  2053. .flags = CLK_SET_RATE_PARENT,
  2054. .ops = &clk_rcg2_shared_no_init_park_ops,
  2055. };
  2056. static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
  2057. .cmd_rcgr = 0xb4540,
  2058. .mnd_width = 16,
  2059. .hid_width = 5,
  2060. .parent_map = gcc_parent_map_1,
  2061. .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
  2062. .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
  2063. };
  2064. static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
  2065. F(400000, P_BI_TCXO, 12, 1, 4),
  2066. F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
  2067. F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
  2068. F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
  2069. F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
  2070. { }
  2071. };
  2072. static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
  2073. .cmd_rcgr = 0xb001c,
  2074. .mnd_width = 8,
  2075. .hid_width = 5,
  2076. .parent_map = gcc_parent_map_17,
  2077. .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
  2078. .clkr.hw.init = &(const struct clk_init_data) {
  2079. .name = "gcc_sdcc2_apps_clk_src",
  2080. .parent_data = gcc_parent_data_17,
  2081. .num_parents = ARRAY_SIZE(gcc_parent_data_17),
  2082. .flags = CLK_SET_RATE_PARENT,
  2083. .ops = &clk_rcg2_shared_floor_ops,
  2084. },
  2085. };
  2086. static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
  2087. F(400000, P_BI_TCXO, 12, 1, 4),
  2088. F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
  2089. F(75000000, P_GCC_GPLL0_OUT_MAIN, 8, 0, 0),
  2090. { }
  2091. };
  2092. static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
  2093. .cmd_rcgr = 0xdf01c,
  2094. .mnd_width = 8,
  2095. .hid_width = 5,
  2096. .parent_map = gcc_parent_map_3,
  2097. .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
  2098. .clkr.hw.init = &(const struct clk_init_data) {
  2099. .name = "gcc_sdcc4_apps_clk_src",
  2100. .parent_data = gcc_parent_data_3,
  2101. .num_parents = ARRAY_SIZE(gcc_parent_data_3),
  2102. .flags = CLK_SET_RATE_PARENT,
  2103. .ops = &clk_rcg2_shared_floor_ops,
  2104. },
  2105. };
  2106. static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
  2107. F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
  2108. F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
  2109. F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
  2110. F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
  2111. { }
  2112. };
  2113. static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
  2114. .cmd_rcgr = 0x77038,
  2115. .mnd_width = 8,
  2116. .hid_width = 5,
  2117. .parent_map = gcc_parent_map_6,
  2118. .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
  2119. .clkr.hw.init = &(const struct clk_init_data) {
  2120. .name = "gcc_ufs_phy_axi_clk_src",
  2121. .parent_data = gcc_parent_data_6,
  2122. .num_parents = ARRAY_SIZE(gcc_parent_data_6),
  2123. .flags = CLK_SET_RATE_PARENT,
  2124. .ops = &clk_rcg2_shared_no_init_park_ops,
  2125. },
  2126. };
  2127. static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
  2128. F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
  2129. F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
  2130. F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
  2131. { }
  2132. };
  2133. static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
  2134. .cmd_rcgr = 0x77090,
  2135. .mnd_width = 0,
  2136. .hid_width = 5,
  2137. .parent_map = gcc_parent_map_6,
  2138. .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
  2139. .clkr.hw.init = &(const struct clk_init_data) {
  2140. .name = "gcc_ufs_phy_ice_core_clk_src",
  2141. .parent_data = gcc_parent_data_6,
  2142. .num_parents = ARRAY_SIZE(gcc_parent_data_6),
  2143. .flags = CLK_SET_RATE_PARENT,
  2144. .ops = &clk_rcg2_shared_no_init_park_ops,
  2145. },
  2146. };
  2147. static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
  2148. .cmd_rcgr = 0x770c4,
  2149. .mnd_width = 0,
  2150. .hid_width = 5,
  2151. .parent_map = gcc_parent_map_5,
  2152. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2153. .clkr.hw.init = &(const struct clk_init_data) {
  2154. .name = "gcc_ufs_phy_phy_aux_clk_src",
  2155. .parent_data = gcc_parent_data_5,
  2156. .num_parents = ARRAY_SIZE(gcc_parent_data_5),
  2157. .flags = CLK_SET_RATE_PARENT,
  2158. .ops = &clk_rcg2_shared_no_init_park_ops,
  2159. },
  2160. };
  2161. static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
  2162. .cmd_rcgr = 0x770a8,
  2163. .mnd_width = 0,
  2164. .hid_width = 5,
  2165. .parent_map = gcc_parent_map_6,
  2166. .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
  2167. .clkr.hw.init = &(const struct clk_init_data) {
  2168. .name = "gcc_ufs_phy_unipro_core_clk_src",
  2169. .parent_data = gcc_parent_data_6,
  2170. .num_parents = ARRAY_SIZE(gcc_parent_data_6),
  2171. .flags = CLK_SET_RATE_PARENT,
  2172. .ops = &clk_rcg2_shared_no_init_park_ops,
  2173. },
  2174. };
  2175. static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = {
  2176. F(60000000, P_GCC_GPLL14_OUT_MAIN, 10, 0, 0),
  2177. F(120000000, P_GCC_GPLL14_OUT_MAIN, 5, 0, 0),
  2178. { }
  2179. };
  2180. static struct clk_rcg2 gcc_usb20_master_clk_src = {
  2181. .cmd_rcgr = 0xbc030,
  2182. .mnd_width = 8,
  2183. .hid_width = 5,
  2184. .parent_map = gcc_parent_map_7,
  2185. .freq_tbl = ftbl_gcc_usb20_master_clk_src,
  2186. .clkr.hw.init = &(const struct clk_init_data) {
  2187. .name = "gcc_usb20_master_clk_src",
  2188. .parent_data = gcc_parent_data_7,
  2189. .num_parents = ARRAY_SIZE(gcc_parent_data_7),
  2190. .flags = CLK_SET_RATE_PARENT,
  2191. .ops = &clk_rcg2_shared_no_init_park_ops,
  2192. },
  2193. };
  2194. static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = {
  2195. .cmd_rcgr = 0xbc048,
  2196. .mnd_width = 0,
  2197. .hid_width = 5,
  2198. .parent_map = gcc_parent_map_7,
  2199. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2200. .clkr.hw.init = &(const struct clk_init_data) {
  2201. .name = "gcc_usb20_mock_utmi_clk_src",
  2202. .parent_data = gcc_parent_data_7,
  2203. .num_parents = ARRAY_SIZE(gcc_parent_data_7),
  2204. .flags = CLK_SET_RATE_PARENT,
  2205. .ops = &clk_rcg2_shared_no_init_park_ops,
  2206. },
  2207. };
  2208. static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
  2209. F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
  2210. F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
  2211. F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
  2212. F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
  2213. { }
  2214. };
  2215. static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
  2216. .cmd_rcgr = 0x9a03c,
  2217. .mnd_width = 8,
  2218. .hid_width = 5,
  2219. .parent_map = gcc_parent_map_0,
  2220. .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
  2221. .clkr.hw.init = &(const struct clk_init_data) {
  2222. .name = "gcc_usb30_mp_master_clk_src",
  2223. .parent_data = gcc_parent_data_0,
  2224. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2225. .flags = CLK_SET_RATE_PARENT,
  2226. .ops = &clk_rcg2_shared_no_init_park_ops,
  2227. },
  2228. };
  2229. static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
  2230. .cmd_rcgr = 0x9a054,
  2231. .mnd_width = 0,
  2232. .hid_width = 5,
  2233. .parent_map = gcc_parent_map_0,
  2234. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2235. .clkr.hw.init = &(const struct clk_init_data) {
  2236. .name = "gcc_usb30_mp_mock_utmi_clk_src",
  2237. .parent_data = gcc_parent_data_0,
  2238. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2239. .flags = CLK_SET_RATE_PARENT,
  2240. .ops = &clk_rcg2_shared_no_init_park_ops,
  2241. },
  2242. };
  2243. static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
  2244. .cmd_rcgr = 0x3f04c,
  2245. .mnd_width = 8,
  2246. .hid_width = 5,
  2247. .parent_map = gcc_parent_map_0,
  2248. .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
  2249. .clkr.hw.init = &(const struct clk_init_data) {
  2250. .name = "gcc_usb30_prim_master_clk_src",
  2251. .parent_data = gcc_parent_data_0,
  2252. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2253. .flags = CLK_SET_RATE_PARENT,
  2254. .ops = &clk_rcg2_shared_no_init_park_ops,
  2255. },
  2256. };
  2257. static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
  2258. .cmd_rcgr = 0x3f064,
  2259. .mnd_width = 0,
  2260. .hid_width = 5,
  2261. .parent_map = gcc_parent_map_0,
  2262. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2263. .clkr.hw.init = &(const struct clk_init_data) {
  2264. .name = "gcc_usb30_prim_mock_utmi_clk_src",
  2265. .parent_data = gcc_parent_data_0,
  2266. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2267. .flags = CLK_SET_RATE_PARENT,
  2268. .ops = &clk_rcg2_shared_no_init_park_ops,
  2269. },
  2270. };
  2271. static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
  2272. .cmd_rcgr = 0xe203c,
  2273. .mnd_width = 8,
  2274. .hid_width = 5,
  2275. .parent_map = gcc_parent_map_0,
  2276. .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
  2277. .clkr.hw.init = &(const struct clk_init_data) {
  2278. .name = "gcc_usb30_sec_master_clk_src",
  2279. .parent_data = gcc_parent_data_0,
  2280. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2281. .flags = CLK_SET_RATE_PARENT,
  2282. .ops = &clk_rcg2_shared_no_init_park_ops,
  2283. },
  2284. };
  2285. static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
  2286. .cmd_rcgr = 0xe2054,
  2287. .mnd_width = 0,
  2288. .hid_width = 5,
  2289. .parent_map = gcc_parent_map_0,
  2290. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2291. .clkr.hw.init = &(const struct clk_init_data) {
  2292. .name = "gcc_usb30_sec_mock_utmi_clk_src",
  2293. .parent_data = gcc_parent_data_0,
  2294. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2295. .flags = CLK_SET_RATE_PARENT,
  2296. .ops = &clk_rcg2_shared_no_init_park_ops,
  2297. },
  2298. };
  2299. static struct clk_rcg2 gcc_usb30_tert_master_clk_src = {
  2300. .cmd_rcgr = 0xe103c,
  2301. .mnd_width = 8,
  2302. .hid_width = 5,
  2303. .parent_map = gcc_parent_map_0,
  2304. .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
  2305. .clkr.hw.init = &(const struct clk_init_data) {
  2306. .name = "gcc_usb30_tert_master_clk_src",
  2307. .parent_data = gcc_parent_data_0,
  2308. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2309. .flags = CLK_SET_RATE_PARENT,
  2310. .ops = &clk_rcg2_shared_no_init_park_ops,
  2311. },
  2312. };
  2313. static struct clk_rcg2 gcc_usb30_tert_mock_utmi_clk_src = {
  2314. .cmd_rcgr = 0xe1054,
  2315. .mnd_width = 0,
  2316. .hid_width = 5,
  2317. .parent_map = gcc_parent_map_0,
  2318. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2319. .clkr.hw.init = &(const struct clk_init_data) {
  2320. .name = "gcc_usb30_tert_mock_utmi_clk_src",
  2321. .parent_data = gcc_parent_data_0,
  2322. .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  2323. .flags = CLK_SET_RATE_PARENT,
  2324. .ops = &clk_rcg2_shared_no_init_park_ops,
  2325. },
  2326. };
  2327. static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
  2328. .cmd_rcgr = 0x9a088,
  2329. .mnd_width = 0,
  2330. .hid_width = 5,
  2331. .parent_map = gcc_parent_map_8,
  2332. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2333. .clkr.hw.init = &(const struct clk_init_data) {
  2334. .name = "gcc_usb3_mp_phy_aux_clk_src",
  2335. .parent_data = gcc_parent_data_8,
  2336. .num_parents = ARRAY_SIZE(gcc_parent_data_8),
  2337. .flags = CLK_SET_RATE_PARENT,
  2338. .ops = &clk_rcg2_shared_no_init_park_ops,
  2339. },
  2340. };
  2341. static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
  2342. .cmd_rcgr = 0x3f090,
  2343. .mnd_width = 0,
  2344. .hid_width = 5,
  2345. .parent_map = gcc_parent_map_8,
  2346. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2347. .clkr.hw.init = &(const struct clk_init_data) {
  2348. .name = "gcc_usb3_prim_phy_aux_clk_src",
  2349. .parent_data = gcc_parent_data_8,
  2350. .num_parents = ARRAY_SIZE(gcc_parent_data_8),
  2351. .flags = CLK_SET_RATE_PARENT,
  2352. .ops = &clk_rcg2_shared_no_init_park_ops,
  2353. },
  2354. };
  2355. static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
  2356. .cmd_rcgr = 0xe2080,
  2357. .mnd_width = 0,
  2358. .hid_width = 5,
  2359. .parent_map = gcc_parent_map_8,
  2360. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2361. .clkr.hw.init = &(const struct clk_init_data) {
  2362. .name = "gcc_usb3_sec_phy_aux_clk_src",
  2363. .parent_data = gcc_parent_data_8,
  2364. .num_parents = ARRAY_SIZE(gcc_parent_data_8),
  2365. .flags = CLK_SET_RATE_PARENT,
  2366. .ops = &clk_rcg2_shared_no_init_park_ops,
  2367. },
  2368. };
  2369. static struct clk_rcg2 gcc_usb3_tert_phy_aux_clk_src = {
  2370. .cmd_rcgr = 0xe1080,
  2371. .mnd_width = 0,
  2372. .hid_width = 5,
  2373. .parent_map = gcc_parent_map_8,
  2374. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2375. .clkr.hw.init = &(const struct clk_init_data) {
  2376. .name = "gcc_usb3_tert_phy_aux_clk_src",
  2377. .parent_data = gcc_parent_data_8,
  2378. .num_parents = ARRAY_SIZE(gcc_parent_data_8),
  2379. .flags = CLK_SET_RATE_PARENT,
  2380. .ops = &clk_rcg2_shared_no_init_park_ops,
  2381. },
  2382. };
  2383. static const struct freq_tbl ftbl_gcc_usb4_0_master_clk_src[] = {
  2384. F(177666750, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
  2385. F(355333500, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
  2386. { }
  2387. };
  2388. static struct clk_rcg2 gcc_usb4_0_master_clk_src = {
  2389. .cmd_rcgr = 0x2b02c,
  2390. .mnd_width = 8,
  2391. .hid_width = 5,
  2392. .parent_map = gcc_parent_map_9,
  2393. .freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
  2394. .clkr.hw.init = &(const struct clk_init_data) {
  2395. .name = "gcc_usb4_0_master_clk_src",
  2396. .parent_data = gcc_parent_data_9,
  2397. .num_parents = ARRAY_SIZE(gcc_parent_data_9),
  2398. .flags = CLK_SET_RATE_PARENT,
  2399. .ops = &clk_rcg2_shared_no_init_park_ops,
  2400. },
  2401. };
  2402. static const struct freq_tbl ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src[] = {
  2403. F(19200000, P_BI_TCXO, 1, 0, 0),
  2404. F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
  2405. F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
  2406. { }
  2407. };
  2408. static struct clk_rcg2 gcc_usb4_0_phy_pcie_pipe_clk_src = {
  2409. .cmd_rcgr = 0x2b104,
  2410. .mnd_width = 0,
  2411. .hid_width = 5,
  2412. .parent_map = gcc_parent_map_32,
  2413. .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
  2414. .clkr.hw.init = &(const struct clk_init_data) {
  2415. .name = "gcc_usb4_0_phy_pcie_pipe_clk_src",
  2416. .parent_data = gcc_parent_data_32,
  2417. .num_parents = ARRAY_SIZE(gcc_parent_data_32),
  2418. .flags = CLK_SET_RATE_PARENT,
  2419. .ops = &clk_rcg2_shared_no_init_park_ops,
  2420. },
  2421. };
  2422. static struct clk_rcg2 gcc_usb4_0_sb_if_clk_src = {
  2423. .cmd_rcgr = 0x2b0a0,
  2424. .mnd_width = 0,
  2425. .hid_width = 5,
  2426. .parent_map = gcc_parent_map_5,
  2427. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2428. .clkr.hw.init = &(const struct clk_init_data) {
  2429. .name = "gcc_usb4_0_sb_if_clk_src",
  2430. .parent_data = gcc_parent_data_5,
  2431. .num_parents = ARRAY_SIZE(gcc_parent_data_5),
  2432. .flags = CLK_SET_RATE_PARENT,
  2433. .ops = &clk_rcg2_shared_no_init_park_ops,
  2434. },
  2435. };
  2436. static struct clk_rcg2 gcc_usb4_0_tmu_clk_src = {
  2437. .cmd_rcgr = 0x2b084,
  2438. .mnd_width = 0,
  2439. .hid_width = 5,
  2440. .parent_map = gcc_parent_map_10,
  2441. .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
  2442. .clkr.hw.init = &(const struct clk_init_data) {
  2443. .name = "gcc_usb4_0_tmu_clk_src",
  2444. .parent_data = gcc_parent_data_10,
  2445. .num_parents = ARRAY_SIZE(gcc_parent_data_10),
  2446. .flags = CLK_SET_RATE_PARENT,
  2447. .ops = &clk_rcg2_shared_no_init_park_ops,
  2448. },
  2449. };
  2450. static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
  2451. .cmd_rcgr = 0x2d02c,
  2452. .mnd_width = 8,
  2453. .hid_width = 5,
  2454. .parent_map = gcc_parent_map_9,
  2455. .freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
  2456. .clkr.hw.init = &(const struct clk_init_data) {
  2457. .name = "gcc_usb4_1_master_clk_src",
  2458. .parent_data = gcc_parent_data_9,
  2459. .num_parents = ARRAY_SIZE(gcc_parent_data_9),
  2460. .flags = CLK_SET_RATE_PARENT,
  2461. .ops = &clk_rcg2_shared_no_init_park_ops,
  2462. },
  2463. };
  2464. static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
  2465. F(19200000, P_BI_TCXO, 1, 0, 0),
  2466. F(177666750, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
  2467. F(355333500, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
  2468. { }
  2469. };
  2470. static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
  2471. .cmd_rcgr = 0x2d128,
  2472. .mnd_width = 0,
  2473. .hid_width = 5,
  2474. .parent_map = gcc_parent_map_11,
  2475. .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
  2476. .clkr.hw.init = &(const struct clk_init_data) {
  2477. .name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
  2478. .parent_data = gcc_parent_data_11,
  2479. .num_parents = ARRAY_SIZE(gcc_parent_data_11),
  2480. .flags = CLK_SET_RATE_PARENT,
  2481. .ops = &clk_rcg2_shared_no_init_park_ops,
  2482. },
  2483. };
  2484. static const struct freq_tbl ftbl_gcc_usb4_1_phy_pll_pipe_clk_src[] = {
  2485. F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
  2486. F(311000000, P_GCC_GPLL5_OUT_MAIN, 3, 0, 0),
  2487. { }
  2488. };
  2489. static struct clk_rcg2 gcc_usb4_1_phy_pll_pipe_clk_src = {
  2490. .cmd_rcgr = 0x2d0c8,
  2491. .mnd_width = 0,
  2492. .hid_width = 5,
  2493. .parent_map = gcc_parent_map_41,
  2494. .freq_tbl = ftbl_gcc_usb4_1_phy_pll_pipe_clk_src,
  2495. .clkr.hw.init = &(const struct clk_init_data) {
  2496. .name = "gcc_usb4_1_phy_pll_pipe_clk_src",
  2497. .parent_data = gcc_parent_data_41,
  2498. .num_parents = ARRAY_SIZE(gcc_parent_data_41),
  2499. .flags = CLK_SET_RATE_PARENT,
  2500. .ops = &clk_rcg2_shared_no_init_park_ops,
  2501. },
  2502. };
  2503. static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
  2504. .cmd_rcgr = 0x2d0ac,
  2505. .mnd_width = 0,
  2506. .hid_width = 5,
  2507. .parent_map = gcc_parent_map_5,
  2508. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2509. .clkr.hw.init = &(const struct clk_init_data) {
  2510. .name = "gcc_usb4_1_sb_if_clk_src",
  2511. .parent_data = gcc_parent_data_5,
  2512. .num_parents = ARRAY_SIZE(gcc_parent_data_5),
  2513. .flags = CLK_SET_RATE_PARENT,
  2514. .ops = &clk_rcg2_shared_no_init_park_ops,
  2515. },
  2516. };
  2517. static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
  2518. .cmd_rcgr = 0x2d090,
  2519. .mnd_width = 0,
  2520. .hid_width = 5,
  2521. .parent_map = gcc_parent_map_10,
  2522. .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
  2523. .clkr.hw.init = &(const struct clk_init_data) {
  2524. .name = "gcc_usb4_1_tmu_clk_src",
  2525. .parent_data = gcc_parent_data_10,
  2526. .num_parents = ARRAY_SIZE(gcc_parent_data_10),
  2527. .flags = CLK_SET_RATE_PARENT,
  2528. .ops = &clk_rcg2_shared_no_init_park_ops,
  2529. },
  2530. };
  2531. static struct clk_rcg2 gcc_usb4_2_master_clk_src = {
  2532. .cmd_rcgr = 0xe002c,
  2533. .mnd_width = 8,
  2534. .hid_width = 5,
  2535. .parent_map = gcc_parent_map_9,
  2536. .freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
  2537. .clkr.hw.init = &(const struct clk_init_data) {
  2538. .name = "gcc_usb4_2_master_clk_src",
  2539. .parent_data = gcc_parent_data_9,
  2540. .num_parents = ARRAY_SIZE(gcc_parent_data_9),
  2541. .flags = CLK_SET_RATE_PARENT,
  2542. .ops = &clk_rcg2_shared_no_init_park_ops,
  2543. },
  2544. };
  2545. static struct clk_rcg2 gcc_usb4_2_phy_pcie_pipe_clk_src = {
  2546. .cmd_rcgr = 0xe0108,
  2547. .mnd_width = 0,
  2548. .hid_width = 5,
  2549. .parent_map = gcc_parent_map_11,
  2550. .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
  2551. .clkr.hw.init = &(const struct clk_init_data) {
  2552. .name = "gcc_usb4_2_phy_pcie_pipe_clk_src",
  2553. .parent_data = gcc_parent_data_11,
  2554. .num_parents = ARRAY_SIZE(gcc_parent_data_11),
  2555. .flags = CLK_SET_RATE_PARENT,
  2556. .ops = &clk_rcg2_shared_no_init_park_ops,
  2557. },
  2558. };
  2559. static struct clk_rcg2 gcc_usb4_2_sb_if_clk_src = {
  2560. .cmd_rcgr = 0xe00a4,
  2561. .mnd_width = 0,
  2562. .hid_width = 5,
  2563. .parent_map = gcc_parent_map_5,
  2564. .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
  2565. .clkr.hw.init = &(const struct clk_init_data) {
  2566. .name = "gcc_usb4_2_sb_if_clk_src",
  2567. .parent_data = gcc_parent_data_5,
  2568. .num_parents = ARRAY_SIZE(gcc_parent_data_5),
  2569. .flags = CLK_SET_RATE_PARENT,
  2570. .ops = &clk_rcg2_shared_no_init_park_ops,
  2571. },
  2572. };
  2573. static struct clk_rcg2 gcc_usb4_2_tmu_clk_src = {
  2574. .cmd_rcgr = 0xe0088,
  2575. .mnd_width = 0,
  2576. .hid_width = 5,
  2577. .parent_map = gcc_parent_map_10,
  2578. .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
  2579. .clkr.hw.init = &(const struct clk_init_data) {
  2580. .name = "gcc_usb4_2_tmu_clk_src",
  2581. .parent_data = gcc_parent_data_10,
  2582. .num_parents = ARRAY_SIZE(gcc_parent_data_10),
  2583. .flags = CLK_SET_RATE_PARENT,
  2584. .ops = &clk_rcg2_shared_no_init_park_ops,
  2585. },
  2586. };
  2587. static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
  2588. .reg = 0x94070,
  2589. .shift = 0,
  2590. .width = 4,
  2591. .clkr.hw.init = &(const struct clk_init_data) {
  2592. .name = "gcc_pcie_3b_pipe_div_clk_src",
  2593. .parent_hws = (const struct clk_hw*[]) {
  2594. &gcc_pcie_3b_pipe_clk_src.clkr.hw,
  2595. },
  2596. .num_parents = 1,
  2597. .flags = CLK_SET_RATE_PARENT,
  2598. .ops = &clk_regmap_div_ro_ops,
  2599. },
  2600. };
  2601. static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
  2602. .reg = 0x88060,
  2603. .shift = 0,
  2604. .width = 4,
  2605. .clkr.hw.init = &(const struct clk_init_data) {
  2606. .name = "gcc_pcie_4_pipe_div_clk_src",
  2607. .parent_hws = (const struct clk_hw*[]) {
  2608. &gcc_pcie_4_pipe_clk_src.clkr.hw,
  2609. },
  2610. .num_parents = 1,
  2611. .flags = CLK_SET_RATE_PARENT,
  2612. .ops = &clk_regmap_div_ro_ops,
  2613. },
  2614. };
  2615. static struct clk_regmap_div gcc_pcie_5_pipe_div_clk_src = {
  2616. .reg = 0xc306c,
  2617. .shift = 0,
  2618. .width = 4,
  2619. .clkr.hw.init = &(const struct clk_init_data) {
  2620. .name = "gcc_pcie_5_pipe_div_clk_src",
  2621. .parent_hws = (const struct clk_hw*[]) {
  2622. &gcc_pcie_5_pipe_clk_src.clkr.hw,
  2623. },
  2624. .num_parents = 1,
  2625. .flags = CLK_SET_RATE_PARENT,
  2626. .ops = &clk_regmap_div_ro_ops,
  2627. },
  2628. };
  2629. static struct clk_regmap_div gcc_pcie_6_pipe_div_clk_src = {
  2630. .reg = 0x8a060,
  2631. .shift = 0,
  2632. .width = 4,
  2633. .clkr.hw.init = &(const struct clk_init_data) {
  2634. .name = "gcc_pcie_6_pipe_div_clk_src",
  2635. .parent_hws = (const struct clk_hw*[]) {
  2636. &gcc_pcie_6_pipe_clk_src.clkr.hw,
  2637. },
  2638. .num_parents = 1,
  2639. .flags = CLK_SET_RATE_PARENT,
  2640. .ops = &clk_regmap_div_ro_ops,
  2641. },
  2642. };
  2643. static struct clk_regmap_div gcc_qupv3_oob_s0_clk_src = {
  2644. .reg = 0xe7024,
  2645. .shift = 0,
  2646. .width = 4,
  2647. .clkr.hw.init = &(const struct clk_init_data) {
  2648. .name = "gcc_qupv3_oob_s0_clk_src",
  2649. .parent_hws = (const struct clk_hw*[]) {
  2650. &gcc_qupv3_oob_qspi_s0_clk_src.clkr.hw,
  2651. },
  2652. .num_parents = 1,
  2653. .flags = CLK_SET_RATE_PARENT,
  2654. .ops = &clk_regmap_div_ro_ops,
  2655. },
  2656. };
  2657. static struct clk_regmap_div gcc_qupv3_oob_s1_clk_src = {
  2658. .reg = 0xe7038,
  2659. .shift = 0,
  2660. .width = 4,
  2661. .clkr.hw.init = &(const struct clk_init_data) {
  2662. .name = "gcc_qupv3_oob_s1_clk_src",
  2663. .parent_hws = (const struct clk_hw*[]) {
  2664. &gcc_qupv3_oob_qspi_s1_clk_src.clkr.hw,
  2665. },
  2666. .num_parents = 1,
  2667. .flags = CLK_SET_RATE_PARENT,
  2668. .ops = &clk_regmap_div_ro_ops,
  2669. },
  2670. };
  2671. static struct clk_regmap_div gcc_qupv3_wrap0_s2_clk_src = {
  2672. .reg = 0x2828c,
  2673. .shift = 0,
  2674. .width = 4,
  2675. .clkr.hw.init = &(const struct clk_init_data) {
  2676. .name = "gcc_qupv3_wrap0_s2_clk_src",
  2677. .parent_hws = (const struct clk_hw*[]) {
  2678. &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr.hw,
  2679. },
  2680. .num_parents = 1,
  2681. .flags = CLK_SET_RATE_PARENT,
  2682. .ops = &clk_regmap_div_ro_ops,
  2683. },
  2684. };
  2685. static struct clk_regmap_div gcc_qupv3_wrap0_s3_clk_src = {
  2686. .reg = 0x282a0,
  2687. .shift = 0,
  2688. .width = 4,
  2689. .clkr.hw.init = &(const struct clk_init_data) {
  2690. .name = "gcc_qupv3_wrap0_s3_clk_src",
  2691. .parent_hws = (const struct clk_hw*[]) {
  2692. &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr.hw,
  2693. },
  2694. .num_parents = 1,
  2695. .flags = CLK_SET_RATE_PARENT,
  2696. .ops = &clk_regmap_div_ro_ops,
  2697. },
  2698. };
  2699. static struct clk_regmap_div gcc_qupv3_wrap0_s6_clk_src = {
  2700. .reg = 0x2852c,
  2701. .shift = 0,
  2702. .width = 4,
  2703. .clkr.hw.init = &(const struct clk_init_data) {
  2704. .name = "gcc_qupv3_wrap0_s6_clk_src",
  2705. .parent_hws = (const struct clk_hw*[]) {
  2706. &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr.hw,
  2707. },
  2708. .num_parents = 1,
  2709. .flags = CLK_SET_RATE_PARENT,
  2710. .ops = &clk_regmap_div_ro_ops,
  2711. },
  2712. };
  2713. static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = {
  2714. .reg = 0xb328c,
  2715. .shift = 0,
  2716. .width = 4,
  2717. .clkr.hw.init = &(const struct clk_init_data) {
  2718. .name = "gcc_qupv3_wrap1_s2_clk_src",
  2719. .parent_hws = (const struct clk_hw*[]) {
  2720. &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr.hw,
  2721. },
  2722. .num_parents = 1,
  2723. .flags = CLK_SET_RATE_PARENT,
  2724. .ops = &clk_regmap_div_ro_ops,
  2725. },
  2726. };
  2727. static struct clk_regmap_div gcc_qupv3_wrap1_s3_clk_src = {
  2728. .reg = 0xb32a0,
  2729. .shift = 0,
  2730. .width = 4,
  2731. .clkr.hw.init = &(const struct clk_init_data) {
  2732. .name = "gcc_qupv3_wrap1_s3_clk_src",
  2733. .parent_hws = (const struct clk_hw*[]) {
  2734. &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr.hw,
  2735. },
  2736. .num_parents = 1,
  2737. .flags = CLK_SET_RATE_PARENT,
  2738. .ops = &clk_regmap_div_ro_ops,
  2739. },
  2740. };
  2741. static struct clk_regmap_div gcc_qupv3_wrap1_s6_clk_src = {
  2742. .reg = 0xb352c,
  2743. .shift = 0,
  2744. .width = 4,
  2745. .clkr.hw.init = &(const struct clk_init_data) {
  2746. .name = "gcc_qupv3_wrap1_s6_clk_src",
  2747. .parent_hws = (const struct clk_hw*[]) {
  2748. &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr.hw,
  2749. },
  2750. .num_parents = 1,
  2751. .flags = CLK_SET_RATE_PARENT,
  2752. .ops = &clk_regmap_div_ro_ops,
  2753. },
  2754. };
  2755. static struct clk_regmap_div gcc_qupv3_wrap2_s2_clk_src = {
  2756. .reg = 0xb428c,
  2757. .shift = 0,
  2758. .width = 4,
  2759. .clkr.hw.init = &(const struct clk_init_data) {
  2760. .name = "gcc_qupv3_wrap2_s2_clk_src",
  2761. .parent_hws = (const struct clk_hw*[]) {
  2762. &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr.hw,
  2763. },
  2764. .num_parents = 1,
  2765. .flags = CLK_SET_RATE_PARENT,
  2766. .ops = &clk_regmap_div_ro_ops,
  2767. },
  2768. };
  2769. static struct clk_regmap_div gcc_qupv3_wrap2_s3_clk_src = {
  2770. .reg = 0xb42a0,
  2771. .shift = 0,
  2772. .width = 4,
  2773. .clkr.hw.init = &(const struct clk_init_data) {
  2774. .name = "gcc_qupv3_wrap2_s3_clk_src",
  2775. .parent_hws = (const struct clk_hw*[]) {
  2776. &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr.hw,
  2777. },
  2778. .num_parents = 1,
  2779. .flags = CLK_SET_RATE_PARENT,
  2780. .ops = &clk_regmap_div_ro_ops,
  2781. },
  2782. };
  2783. static struct clk_regmap_div gcc_qupv3_wrap2_s6_clk_src = {
  2784. .reg = 0xb452c,
  2785. .shift = 0,
  2786. .width = 4,
  2787. .clkr.hw.init = &(const struct clk_init_data) {
  2788. .name = "gcc_qupv3_wrap2_s6_clk_src",
  2789. .parent_hws = (const struct clk_hw*[]) {
  2790. &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr.hw,
  2791. },
  2792. .num_parents = 1,
  2793. .flags = CLK_SET_RATE_PARENT,
  2794. .ops = &clk_regmap_div_ro_ops,
  2795. },
  2796. };
  2797. static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = {
  2798. .reg = 0xbc174,
  2799. .shift = 0,
  2800. .width = 4,
  2801. .clkr.hw.init = &(const struct clk_init_data) {
  2802. .name = "gcc_usb20_mock_utmi_postdiv_clk_src",
  2803. .parent_hws = (const struct clk_hw*[]) {
  2804. &gcc_usb20_mock_utmi_clk_src.clkr.hw,
  2805. },
  2806. .num_parents = 1,
  2807. .flags = CLK_SET_RATE_PARENT,
  2808. .ops = &clk_regmap_div_ro_ops,
  2809. },
  2810. };
  2811. static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
  2812. .reg = 0x9a06c,
  2813. .shift = 0,
  2814. .width = 4,
  2815. .clkr.hw.init = &(const struct clk_init_data) {
  2816. .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
  2817. .parent_hws = (const struct clk_hw*[]) {
  2818. &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
  2819. },
  2820. .num_parents = 1,
  2821. .flags = CLK_SET_RATE_PARENT,
  2822. .ops = &clk_regmap_div_ro_ops,
  2823. },
  2824. };
  2825. static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
  2826. .reg = 0x3f07c,
  2827. .shift = 0,
  2828. .width = 4,
  2829. .clkr.hw.init = &(const struct clk_init_data) {
  2830. .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
  2831. .parent_hws = (const struct clk_hw*[]) {
  2832. &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
  2833. },
  2834. .num_parents = 1,
  2835. .flags = CLK_SET_RATE_PARENT,
  2836. .ops = &clk_regmap_div_ro_ops,
  2837. },
  2838. };
  2839. static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
  2840. .reg = 0xe206c,
  2841. .shift = 0,
  2842. .width = 4,
  2843. .clkr.hw.init = &(const struct clk_init_data) {
  2844. .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
  2845. .parent_hws = (const struct clk_hw*[]) {
  2846. &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
  2847. },
  2848. .num_parents = 1,
  2849. .flags = CLK_SET_RATE_PARENT,
  2850. .ops = &clk_regmap_div_ro_ops,
  2851. },
  2852. };
  2853. static struct clk_regmap_div gcc_usb30_tert_mock_utmi_postdiv_clk_src = {
  2854. .reg = 0xe106c,
  2855. .shift = 0,
  2856. .width = 4,
  2857. .clkr.hw.init = &(const struct clk_init_data) {
  2858. .name = "gcc_usb30_tert_mock_utmi_postdiv_clk_src",
  2859. .parent_hws = (const struct clk_hw*[]) {
  2860. &gcc_usb30_tert_mock_utmi_clk_src.clkr.hw,
  2861. },
  2862. .num_parents = 1,
  2863. .flags = CLK_SET_RATE_PARENT,
  2864. .ops = &clk_regmap_div_ro_ops,
  2865. },
  2866. };
  2867. static struct clk_branch gcc_aggre_noc_pcie_3a_west_sf_axi_clk = {
  2868. .halt_reg = 0xdc0bc,
  2869. .halt_check = BRANCH_HALT_VOTED,
  2870. .clkr = {
  2871. .enable_reg = 0x62008,
  2872. .enable_mask = BIT(27),
  2873. .hw.init = &(const struct clk_init_data) {
  2874. .name = "gcc_aggre_noc_pcie_3a_west_sf_axi_clk",
  2875. .ops = &clk_branch2_ops,
  2876. },
  2877. },
  2878. };
  2879. static struct clk_branch gcc_aggre_noc_pcie_3b_west_sf_axi_clk = {
  2880. .halt_reg = 0x941ec,
  2881. .halt_check = BRANCH_HALT_VOTED,
  2882. .clkr = {
  2883. .enable_reg = 0x62008,
  2884. .enable_mask = BIT(28),
  2885. .hw.init = &(const struct clk_init_data) {
  2886. .name = "gcc_aggre_noc_pcie_3b_west_sf_axi_clk",
  2887. .ops = &clk_branch2_ops,
  2888. },
  2889. },
  2890. };
  2891. static struct clk_branch gcc_aggre_noc_pcie_4_west_sf_axi_clk = {
  2892. .halt_reg = 0x881d0,
  2893. .halt_check = BRANCH_HALT_VOTED,
  2894. .clkr = {
  2895. .enable_reg = 0x62008,
  2896. .enable_mask = BIT(29),
  2897. .hw.init = &(const struct clk_init_data) {
  2898. .name = "gcc_aggre_noc_pcie_4_west_sf_axi_clk",
  2899. .ops = &clk_branch2_ops,
  2900. },
  2901. },
  2902. };
  2903. static struct clk_branch gcc_aggre_noc_pcie_5_east_sf_axi_clk = {
  2904. .halt_reg = 0xc30d0,
  2905. .halt_check = BRANCH_HALT_VOTED,
  2906. .clkr = {
  2907. .enable_reg = 0x62008,
  2908. .enable_mask = BIT(30),
  2909. .hw.init = &(const struct clk_init_data) {
  2910. .name = "gcc_aggre_noc_pcie_5_east_sf_axi_clk",
  2911. .ops = &clk_branch2_ops,
  2912. },
  2913. },
  2914. };
  2915. static struct clk_branch gcc_aggre_noc_pcie_6_west_sf_axi_clk = {
  2916. .halt_reg = 0x8a1d0,
  2917. .halt_check = BRANCH_HALT_VOTED,
  2918. .clkr = {
  2919. .enable_reg = 0x62008,
  2920. .enable_mask = BIT(31),
  2921. .hw.init = &(const struct clk_init_data) {
  2922. .name = "gcc_aggre_noc_pcie_6_west_sf_axi_clk",
  2923. .ops = &clk_branch2_ops,
  2924. },
  2925. },
  2926. };
  2927. static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
  2928. .halt_reg = 0x77000,
  2929. .halt_check = BRANCH_HALT_VOTED,
  2930. .hwcg_reg = 0x77000,
  2931. .hwcg_bit = 1,
  2932. .clkr = {
  2933. .enable_reg = 0x77000,
  2934. .enable_mask = BIT(0),
  2935. .hw.init = &(const struct clk_init_data) {
  2936. .name = "gcc_aggre_ufs_phy_axi_clk",
  2937. .parent_hws = (const struct clk_hw*[]) {
  2938. &gcc_ufs_phy_axi_clk_src.clkr.hw,
  2939. },
  2940. .num_parents = 1,
  2941. .flags = CLK_SET_RATE_PARENT,
  2942. .ops = &clk_branch2_ops,
  2943. },
  2944. },
  2945. };
  2946. static struct clk_branch gcc_aggre_usb2_prim_axi_clk = {
  2947. .halt_reg = 0xbc17c,
  2948. .halt_check = BRANCH_HALT_VOTED,
  2949. .hwcg_reg = 0xbc17c,
  2950. .hwcg_bit = 1,
  2951. .clkr = {
  2952. .enable_reg = 0xbc17c,
  2953. .enable_mask = BIT(0),
  2954. .hw.init = &(const struct clk_init_data) {
  2955. .name = "gcc_aggre_usb2_prim_axi_clk",
  2956. .parent_hws = (const struct clk_hw*[]) {
  2957. &gcc_usb20_master_clk_src.clkr.hw,
  2958. },
  2959. .num_parents = 1,
  2960. .flags = CLK_SET_RATE_PARENT,
  2961. .ops = &clk_branch2_ops,
  2962. },
  2963. },
  2964. };
  2965. static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
  2966. .halt_reg = 0x9a004,
  2967. .halt_check = BRANCH_HALT_VOTED,
  2968. .hwcg_reg = 0x9a004,
  2969. .hwcg_bit = 1,
  2970. .clkr = {
  2971. .enable_reg = 0x9a004,
  2972. .enable_mask = BIT(0),
  2973. .hw.init = &(const struct clk_init_data) {
  2974. .name = "gcc_aggre_usb3_mp_axi_clk",
  2975. .parent_hws = (const struct clk_hw*[]) {
  2976. &gcc_usb30_mp_master_clk_src.clkr.hw,
  2977. },
  2978. .num_parents = 1,
  2979. .flags = CLK_SET_RATE_PARENT,
  2980. .ops = &clk_branch2_ops,
  2981. },
  2982. },
  2983. };
  2984. static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
  2985. .halt_reg = 0x3f00c,
  2986. .halt_check = BRANCH_HALT_VOTED,
  2987. .hwcg_reg = 0x3f00c,
  2988. .hwcg_bit = 1,
  2989. .clkr = {
  2990. .enable_reg = 0x3f00c,
  2991. .enable_mask = BIT(0),
  2992. .hw.init = &(const struct clk_init_data) {
  2993. .name = "gcc_aggre_usb3_prim_axi_clk",
  2994. .parent_hws = (const struct clk_hw*[]) {
  2995. &gcc_usb30_prim_master_clk_src.clkr.hw,
  2996. },
  2997. .num_parents = 1,
  2998. .flags = CLK_SET_RATE_PARENT,
  2999. .ops = &clk_branch2_ops,
  3000. },
  3001. },
  3002. };
  3003. static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
  3004. .halt_reg = 0xe2004,
  3005. .halt_check = BRANCH_HALT_VOTED,
  3006. .hwcg_reg = 0xe2004,
  3007. .hwcg_bit = 1,
  3008. .clkr = {
  3009. .enable_reg = 0xe2004,
  3010. .enable_mask = BIT(0),
  3011. .hw.init = &(const struct clk_init_data) {
  3012. .name = "gcc_aggre_usb3_sec_axi_clk",
  3013. .parent_hws = (const struct clk_hw*[]) {
  3014. &gcc_usb30_sec_master_clk_src.clkr.hw,
  3015. },
  3016. .num_parents = 1,
  3017. .flags = CLK_SET_RATE_PARENT,
  3018. .ops = &clk_branch2_ops,
  3019. },
  3020. },
  3021. };
  3022. static struct clk_branch gcc_aggre_usb3_tert_axi_clk = {
  3023. .halt_reg = 0xe1004,
  3024. .halt_check = BRANCH_HALT_VOTED,
  3025. .hwcg_reg = 0xe1004,
  3026. .hwcg_bit = 1,
  3027. .clkr = {
  3028. .enable_reg = 0xe1004,
  3029. .enable_mask = BIT(0),
  3030. .hw.init = &(const struct clk_init_data) {
  3031. .name = "gcc_aggre_usb3_tert_axi_clk",
  3032. .parent_hws = (const struct clk_hw*[]) {
  3033. &gcc_usb30_tert_master_clk_src.clkr.hw,
  3034. },
  3035. .num_parents = 1,
  3036. .flags = CLK_SET_RATE_PARENT,
  3037. .ops = &clk_branch2_ops,
  3038. },
  3039. },
  3040. };
  3041. static struct clk_branch gcc_aggre_usb4_0_axi_clk = {
  3042. .halt_reg = 0x2b000,
  3043. .halt_check = BRANCH_HALT_VOTED,
  3044. .hwcg_reg = 0x2b000,
  3045. .hwcg_bit = 1,
  3046. .clkr = {
  3047. .enable_reg = 0x2b000,
  3048. .enable_mask = BIT(0),
  3049. .hw.init = &(const struct clk_init_data) {
  3050. .name = "gcc_aggre_usb4_0_axi_clk",
  3051. .parent_hws = (const struct clk_hw*[]) {
  3052. &gcc_usb4_0_master_clk_src.clkr.hw,
  3053. },
  3054. .num_parents = 1,
  3055. .flags = CLK_SET_RATE_PARENT,
  3056. .ops = &clk_branch2_ops,
  3057. },
  3058. },
  3059. };
  3060. static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
  3061. .halt_reg = 0x2d000,
  3062. .halt_check = BRANCH_HALT_VOTED,
  3063. .hwcg_reg = 0x2d000,
  3064. .hwcg_bit = 1,
  3065. .clkr = {
  3066. .enable_reg = 0x2d000,
  3067. .enable_mask = BIT(0),
  3068. .hw.init = &(const struct clk_init_data) {
  3069. .name = "gcc_aggre_usb4_1_axi_clk",
  3070. .parent_hws = (const struct clk_hw*[]) {
  3071. &gcc_usb4_1_master_clk_src.clkr.hw,
  3072. },
  3073. .num_parents = 1,
  3074. .flags = CLK_SET_RATE_PARENT,
  3075. .ops = &clk_branch2_ops,
  3076. },
  3077. },
  3078. };
  3079. static struct clk_branch gcc_aggre_usb4_2_axi_clk = {
  3080. .halt_reg = 0xe0000,
  3081. .halt_check = BRANCH_HALT_VOTED,
  3082. .hwcg_reg = 0xe0000,
  3083. .hwcg_bit = 1,
  3084. .clkr = {
  3085. .enable_reg = 0xe0000,
  3086. .enable_mask = BIT(0),
  3087. .hw.init = &(const struct clk_init_data) {
  3088. .name = "gcc_aggre_usb4_2_axi_clk",
  3089. .parent_hws = (const struct clk_hw*[]) {
  3090. &gcc_usb4_2_master_clk_src.clkr.hw,
  3091. },
  3092. .num_parents = 1,
  3093. .flags = CLK_SET_RATE_PARENT,
  3094. .ops = &clk_branch2_ops,
  3095. },
  3096. },
  3097. };
  3098. static struct clk_branch gcc_av1e_ahb_clk = {
  3099. .halt_reg = 0x9b02c,
  3100. .halt_check = BRANCH_HALT_VOTED,
  3101. .hwcg_reg = 0x9b02c,
  3102. .hwcg_bit = 1,
  3103. .clkr = {
  3104. .enable_reg = 0x9b02c,
  3105. .enable_mask = BIT(0),
  3106. .hw.init = &(const struct clk_init_data) {
  3107. .name = "gcc_av1e_ahb_clk",
  3108. .ops = &clk_branch2_ops,
  3109. },
  3110. },
  3111. };
  3112. static struct clk_branch gcc_av1e_axi_clk = {
  3113. .halt_reg = 0x9b030,
  3114. .halt_check = BRANCH_HALT_SKIP,
  3115. .hwcg_reg = 0x9b030,
  3116. .hwcg_bit = 1,
  3117. .clkr = {
  3118. .enable_reg = 0x9b030,
  3119. .enable_mask = BIT(0),
  3120. .hw.init = &(const struct clk_init_data) {
  3121. .name = "gcc_av1e_axi_clk",
  3122. .ops = &clk_branch2_ops,
  3123. },
  3124. },
  3125. };
  3126. static struct clk_branch gcc_av1e_xo_clk = {
  3127. .halt_reg = 0x9b044,
  3128. .halt_check = BRANCH_HALT,
  3129. .clkr = {
  3130. .enable_reg = 0x9b044,
  3131. .enable_mask = BIT(0),
  3132. .hw.init = &(const struct clk_init_data) {
  3133. .name = "gcc_av1e_xo_clk",
  3134. .ops = &clk_branch2_ops,
  3135. },
  3136. },
  3137. };
  3138. static struct clk_branch gcc_boot_rom_ahb_clk = {
  3139. .halt_reg = 0x34038,
  3140. .halt_check = BRANCH_HALT_VOTED,
  3141. .hwcg_reg = 0x34038,
  3142. .hwcg_bit = 1,
  3143. .clkr = {
  3144. .enable_reg = 0x62020,
  3145. .enable_mask = BIT(27),
  3146. .hw.init = &(const struct clk_init_data) {
  3147. .name = "gcc_boot_rom_ahb_clk",
  3148. .ops = &clk_branch2_ops,
  3149. },
  3150. },
  3151. };
  3152. static struct clk_branch gcc_camera_hf_axi_clk = {
  3153. .halt_reg = 0x26014,
  3154. .halt_check = BRANCH_HALT_SKIP,
  3155. .hwcg_reg = 0x26014,
  3156. .hwcg_bit = 1,
  3157. .clkr = {
  3158. .enable_reg = 0x26014,
  3159. .enable_mask = BIT(0),
  3160. .hw.init = &(const struct clk_init_data) {
  3161. .name = "gcc_camera_hf_axi_clk",
  3162. .ops = &clk_branch2_ops,
  3163. },
  3164. },
  3165. };
  3166. static struct clk_branch gcc_camera_sf_axi_clk = {
  3167. .halt_reg = 0x26028,
  3168. .halt_check = BRANCH_HALT_SKIP,
  3169. .hwcg_reg = 0x26028,
  3170. .hwcg_bit = 1,
  3171. .clkr = {
  3172. .enable_reg = 0x26028,
  3173. .enable_mask = BIT(0),
  3174. .hw.init = &(const struct clk_init_data) {
  3175. .name = "gcc_camera_sf_axi_clk",
  3176. .ops = &clk_branch2_ops,
  3177. },
  3178. },
  3179. };
  3180. static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = {
  3181. .halt_reg = 0x82004,
  3182. .halt_check = BRANCH_HALT_VOTED,
  3183. .hwcg_reg = 0x82004,
  3184. .hwcg_bit = 1,
  3185. .clkr = {
  3186. .enable_reg = 0x62008,
  3187. .enable_mask = BIT(19),
  3188. .hw.init = &(const struct clk_init_data) {
  3189. .name = "gcc_cfg_noc_pcie_anoc_ahb_clk",
  3190. .ops = &clk_branch2_ops,
  3191. },
  3192. },
  3193. };
  3194. static struct clk_branch gcc_cfg_noc_pcie_anoc_south_ahb_clk = {
  3195. .halt_reg = 0xba2ec,
  3196. .halt_check = BRANCH_HALT_VOTED,
  3197. .hwcg_reg = 0xba2ec,
  3198. .hwcg_bit = 1,
  3199. .clkr = {
  3200. .enable_reg = 0x62008,
  3201. .enable_mask = BIT(16),
  3202. .hw.init = &(const struct clk_init_data) {
  3203. .name = "gcc_cfg_noc_pcie_anoc_south_ahb_clk",
  3204. .ops = &clk_branch2_ops,
  3205. },
  3206. },
  3207. };
  3208. static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = {
  3209. .halt_reg = 0xbc178,
  3210. .halt_check = BRANCH_HALT_VOTED,
  3211. .hwcg_reg = 0xbc178,
  3212. .hwcg_bit = 1,
  3213. .clkr = {
  3214. .enable_reg = 0xbc178,
  3215. .enable_mask = BIT(0),
  3216. .hw.init = &(const struct clk_init_data) {
  3217. .name = "gcc_cfg_noc_usb2_prim_axi_clk",
  3218. .parent_hws = (const struct clk_hw*[]) {
  3219. &gcc_usb20_master_clk_src.clkr.hw,
  3220. },
  3221. .num_parents = 1,
  3222. .flags = CLK_SET_RATE_PARENT,
  3223. .ops = &clk_branch2_ops,
  3224. },
  3225. },
  3226. };
  3227. static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
  3228. .halt_reg = 0x9a000,
  3229. .halt_check = BRANCH_HALT_VOTED,
  3230. .hwcg_reg = 0x9a000,
  3231. .hwcg_bit = 1,
  3232. .clkr = {
  3233. .enable_reg = 0x9a000,
  3234. .enable_mask = BIT(0),
  3235. .hw.init = &(const struct clk_init_data) {
  3236. .name = "gcc_cfg_noc_usb3_mp_axi_clk",
  3237. .parent_hws = (const struct clk_hw*[]) {
  3238. &gcc_usb30_mp_master_clk_src.clkr.hw,
  3239. },
  3240. .num_parents = 1,
  3241. .flags = CLK_SET_RATE_PARENT,
  3242. .ops = &clk_branch2_ops,
  3243. },
  3244. },
  3245. };
  3246. static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
  3247. .halt_reg = 0x3f000,
  3248. .halt_check = BRANCH_HALT_VOTED,
  3249. .hwcg_reg = 0x3f000,
  3250. .hwcg_bit = 1,
  3251. .clkr = {
  3252. .enable_reg = 0x3f000,
  3253. .enable_mask = BIT(0),
  3254. .hw.init = &(const struct clk_init_data) {
  3255. .name = "gcc_cfg_noc_usb3_prim_axi_clk",
  3256. .parent_hws = (const struct clk_hw*[]) {
  3257. &gcc_usb30_prim_master_clk_src.clkr.hw,
  3258. },
  3259. .num_parents = 1,
  3260. .flags = CLK_SET_RATE_PARENT,
  3261. .ops = &clk_branch2_ops,
  3262. },
  3263. },
  3264. };
  3265. static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
  3266. .halt_reg = 0xe2000,
  3267. .halt_check = BRANCH_HALT_VOTED,
  3268. .hwcg_reg = 0xe2000,
  3269. .hwcg_bit = 1,
  3270. .clkr = {
  3271. .enable_reg = 0xe2000,
  3272. .enable_mask = BIT(0),
  3273. .hw.init = &(const struct clk_init_data) {
  3274. .name = "gcc_cfg_noc_usb3_sec_axi_clk",
  3275. .parent_hws = (const struct clk_hw*[]) {
  3276. &gcc_usb30_sec_master_clk_src.clkr.hw,
  3277. },
  3278. .num_parents = 1,
  3279. .flags = CLK_SET_RATE_PARENT,
  3280. .ops = &clk_branch2_ops,
  3281. },
  3282. },
  3283. };
  3284. static struct clk_branch gcc_cfg_noc_usb3_tert_axi_clk = {
  3285. .halt_reg = 0xe1000,
  3286. .halt_check = BRANCH_HALT_VOTED,
  3287. .hwcg_reg = 0xe1000,
  3288. .hwcg_bit = 1,
  3289. .clkr = {
  3290. .enable_reg = 0xe1000,
  3291. .enable_mask = BIT(0),
  3292. .hw.init = &(const struct clk_init_data) {
  3293. .name = "gcc_cfg_noc_usb3_tert_axi_clk",
  3294. .parent_hws = (const struct clk_hw*[]) {
  3295. &gcc_usb30_tert_master_clk_src.clkr.hw,
  3296. },
  3297. .num_parents = 1,
  3298. .flags = CLK_SET_RATE_PARENT,
  3299. .ops = &clk_branch2_ops,
  3300. },
  3301. },
  3302. };
  3303. static struct clk_branch gcc_cfg_noc_usb_anoc_ahb_clk = {
  3304. .halt_reg = 0x3f004,
  3305. .halt_check = BRANCH_HALT_VOTED,
  3306. .hwcg_reg = 0x3f004,
  3307. .hwcg_bit = 1,
  3308. .clkr = {
  3309. .enable_reg = 0x62008,
  3310. .enable_mask = BIT(17),
  3311. .hw.init = &(const struct clk_init_data) {
  3312. .name = "gcc_cfg_noc_usb_anoc_ahb_clk",
  3313. .ops = &clk_branch2_ops,
  3314. },
  3315. },
  3316. };
  3317. static struct clk_branch gcc_cfg_noc_usb_anoc_south_ahb_clk = {
  3318. .halt_reg = 0x3f008,
  3319. .halt_check = BRANCH_HALT_VOTED,
  3320. .hwcg_reg = 0x3f008,
  3321. .hwcg_bit = 1,
  3322. .clkr = {
  3323. .enable_reg = 0x62008,
  3324. .enable_mask = BIT(18),
  3325. .hw.init = &(const struct clk_init_data) {
  3326. .name = "gcc_cfg_noc_usb_anoc_south_ahb_clk",
  3327. .ops = &clk_branch2_ops,
  3328. },
  3329. },
  3330. };
  3331. static struct clk_branch gcc_disp_hf_axi_clk = {
  3332. .halt_reg = 0x27008,
  3333. .halt_check = BRANCH_HALT_SKIP,
  3334. .clkr = {
  3335. .enable_reg = 0x27008,
  3336. .enable_mask = BIT(0),
  3337. .hw.init = &(const struct clk_init_data) {
  3338. .name = "gcc_disp_hf_axi_clk",
  3339. .ops = &clk_branch2_ops,
  3340. .flags = CLK_IS_CRITICAL,
  3341. },
  3342. },
  3343. };
  3344. static struct clk_branch gcc_eva_ahb_clk = {
  3345. .halt_reg = 0x9b004,
  3346. .halt_check = BRANCH_HALT_VOTED,
  3347. .hwcg_reg = 0x9b004,
  3348. .hwcg_bit = 1,
  3349. .clkr = {
  3350. .enable_reg = 0x9b004,
  3351. .enable_mask = BIT(0),
  3352. .hw.init = &(const struct clk_init_data) {
  3353. .name = "gcc_eva_ahb_clk",
  3354. .ops = &clk_branch2_ops,
  3355. },
  3356. },
  3357. };
  3358. static struct clk_branch gcc_eva_axi0_clk = {
  3359. .halt_reg = 0x9b008,
  3360. .halt_check = BRANCH_HALT_SKIP,
  3361. .hwcg_reg = 0x9b008,
  3362. .hwcg_bit = 1,
  3363. .clkr = {
  3364. .enable_reg = 0x9b008,
  3365. .enable_mask = BIT(0),
  3366. .hw.init = &(const struct clk_init_data) {
  3367. .name = "gcc_eva_axi0_clk",
  3368. .ops = &clk_branch2_ops,
  3369. },
  3370. },
  3371. };
  3372. static struct clk_branch gcc_eva_axi0c_clk = {
  3373. .halt_reg = 0x9b01c,
  3374. .halt_check = BRANCH_HALT_VOTED,
  3375. .hwcg_reg = 0x9b01c,
  3376. .hwcg_bit = 1,
  3377. .clkr = {
  3378. .enable_reg = 0x9b01c,
  3379. .enable_mask = BIT(0),
  3380. .hw.init = &(const struct clk_init_data) {
  3381. .name = "gcc_eva_axi0c_clk",
  3382. .ops = &clk_branch2_ops,
  3383. },
  3384. },
  3385. };
  3386. static struct clk_branch gcc_eva_xo_clk = {
  3387. .halt_reg = 0x9b024,
  3388. .halt_check = BRANCH_HALT,
  3389. .clkr = {
  3390. .enable_reg = 0x9b024,
  3391. .enable_mask = BIT(0),
  3392. .hw.init = &(const struct clk_init_data) {
  3393. .name = "gcc_eva_xo_clk",
  3394. .ops = &clk_branch2_ops,
  3395. },
  3396. },
  3397. };
  3398. static struct clk_branch gcc_gp1_clk = {
  3399. .halt_reg = 0x64000,
  3400. .halt_check = BRANCH_HALT,
  3401. .clkr = {
  3402. .enable_reg = 0x64000,
  3403. .enable_mask = BIT(0),
  3404. .hw.init = &(const struct clk_init_data) {
  3405. .name = "gcc_gp1_clk",
  3406. .parent_hws = (const struct clk_hw*[]) {
  3407. &gcc_gp1_clk_src.clkr.hw,
  3408. },
  3409. .num_parents = 1,
  3410. .flags = CLK_SET_RATE_PARENT,
  3411. .ops = &clk_branch2_ops,
  3412. },
  3413. },
  3414. };
  3415. static struct clk_branch gcc_gp2_clk = {
  3416. .halt_reg = 0x92000,
  3417. .halt_check = BRANCH_HALT,
  3418. .clkr = {
  3419. .enable_reg = 0x92000,
  3420. .enable_mask = BIT(0),
  3421. .hw.init = &(const struct clk_init_data) {
  3422. .name = "gcc_gp2_clk",
  3423. .parent_hws = (const struct clk_hw*[]) {
  3424. &gcc_gp2_clk_src.clkr.hw,
  3425. },
  3426. .num_parents = 1,
  3427. .flags = CLK_SET_RATE_PARENT,
  3428. .ops = &clk_branch2_ops,
  3429. },
  3430. },
  3431. };
  3432. static struct clk_branch gcc_gp3_clk = {
  3433. .halt_reg = 0x93000,
  3434. .halt_check = BRANCH_HALT,
  3435. .clkr = {
  3436. .enable_reg = 0x93000,
  3437. .enable_mask = BIT(0),
  3438. .hw.init = &(const struct clk_init_data) {
  3439. .name = "gcc_gp3_clk",
  3440. .parent_hws = (const struct clk_hw*[]) {
  3441. &gcc_gp3_clk_src.clkr.hw,
  3442. },
  3443. .num_parents = 1,
  3444. .flags = CLK_SET_RATE_PARENT,
  3445. .ops = &clk_branch2_ops,
  3446. },
  3447. },
  3448. };
  3449. static struct clk_branch gcc_gpu_gemnoc_gfx_clk = {
  3450. .halt_reg = 0x71010,
  3451. .halt_check = BRANCH_HALT_VOTED,
  3452. .hwcg_reg = 0x71010,
  3453. .hwcg_bit = 1,
  3454. .clkr = {
  3455. .enable_reg = 0x71010,
  3456. .enable_mask = BIT(0),
  3457. .hw.init = &(const struct clk_init_data) {
  3458. .name = "gcc_gpu_gemnoc_gfx_clk",
  3459. .ops = &clk_branch2_ops,
  3460. },
  3461. },
  3462. };
  3463. static struct clk_branch gcc_gpu_gpll0_clk_src = {
  3464. .halt_reg = 0x71024,
  3465. .halt_check = BRANCH_HALT_VOTED,
  3466. .hwcg_reg = 0x71024,
  3467. .hwcg_bit = 1,
  3468. .clkr = {
  3469. .enable_reg = 0x62038,
  3470. .enable_mask = BIT(0),
  3471. .hw.init = &(const struct clk_init_data) {
  3472. .name = "gcc_gpu_gpll0_clk_src",
  3473. .parent_hws = (const struct clk_hw*[]) {
  3474. &gcc_gpll0.clkr.hw,
  3475. },
  3476. .num_parents = 1,
  3477. .flags = CLK_SET_RATE_PARENT,
  3478. .ops = &clk_branch2_ops,
  3479. },
  3480. },
  3481. };
  3482. static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
  3483. .halt_reg = 0x7102c,
  3484. .halt_check = BRANCH_HALT_VOTED,
  3485. .hwcg_reg = 0x7102c,
  3486. .hwcg_bit = 1,
  3487. .clkr = {
  3488. .enable_reg = 0x62038,
  3489. .enable_mask = BIT(1),
  3490. .hw.init = &(const struct clk_init_data) {
  3491. .name = "gcc_gpu_gpll0_div_clk_src",
  3492. .parent_hws = (const struct clk_hw*[]) {
  3493. &gcc_gpll0_out_even.clkr.hw,
  3494. },
  3495. .num_parents = 1,
  3496. .flags = CLK_SET_RATE_PARENT,
  3497. .ops = &clk_branch2_ops,
  3498. },
  3499. },
  3500. };
  3501. static struct clk_branch gcc_pcie_0_aux_clk = {
  3502. .halt_reg = 0xc8018,
  3503. .halt_check = BRANCH_HALT_VOTED,
  3504. .clkr = {
  3505. .enable_reg = 0x62010,
  3506. .enable_mask = BIT(25),
  3507. .hw.init = &(const struct clk_init_data) {
  3508. .name = "gcc_pcie_0_aux_clk",
  3509. .parent_hws = (const struct clk_hw*[]) {
  3510. &gcc_pcie_0_aux_clk_src.clkr.hw,
  3511. },
  3512. .num_parents = 1,
  3513. .flags = CLK_SET_RATE_PARENT,
  3514. .ops = &clk_branch2_ops,
  3515. },
  3516. },
  3517. };
  3518. static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
  3519. .halt_reg = 0xba4a8,
  3520. .halt_check = BRANCH_HALT_VOTED,
  3521. .hwcg_reg = 0xba4a8,
  3522. .hwcg_bit = 1,
  3523. .clkr = {
  3524. .enable_reg = 0x62010,
  3525. .enable_mask = BIT(24),
  3526. .hw.init = &(const struct clk_init_data) {
  3527. .name = "gcc_pcie_0_cfg_ahb_clk",
  3528. .ops = &clk_branch2_ops,
  3529. },
  3530. },
  3531. };
  3532. static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
  3533. .halt_reg = 0xba498,
  3534. .halt_check = BRANCH_HALT_SKIP,
  3535. .hwcg_reg = 0xba498,
  3536. .hwcg_bit = 1,
  3537. .clkr = {
  3538. .enable_reg = 0x62010,
  3539. .enable_mask = BIT(23),
  3540. .hw.init = &(const struct clk_init_data) {
  3541. .name = "gcc_pcie_0_mstr_axi_clk",
  3542. .ops = &clk_branch2_ops,
  3543. },
  3544. },
  3545. };
  3546. static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
  3547. .halt_reg = 0xc8038,
  3548. .halt_check = BRANCH_HALT_VOTED,
  3549. .clkr = {
  3550. .enable_reg = 0x62010,
  3551. .enable_mask = BIT(27),
  3552. .hw.init = &(const struct clk_init_data) {
  3553. .name = "gcc_pcie_0_phy_rchng_clk",
  3554. .parent_hws = (const struct clk_hw*[]) {
  3555. &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
  3556. },
  3557. .num_parents = 1,
  3558. .flags = CLK_SET_RATE_PARENT,
  3559. .ops = &clk_branch2_ops,
  3560. },
  3561. },
  3562. };
  3563. static struct clk_branch gcc_pcie_0_pipe_clk = {
  3564. .halt_reg = 0xc8028,
  3565. .halt_check = BRANCH_HALT_SKIP,
  3566. .clkr = {
  3567. .enable_reg = 0x62010,
  3568. .enable_mask = BIT(26),
  3569. .hw.init = &(const struct clk_init_data) {
  3570. .name = "gcc_pcie_0_pipe_clk",
  3571. .parent_hws = (const struct clk_hw*[]) {
  3572. &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
  3573. },
  3574. .num_parents = 1,
  3575. .flags = CLK_SET_RATE_PARENT,
  3576. .ops = &clk_branch2_ops,
  3577. },
  3578. },
  3579. };
  3580. static struct clk_branch gcc_pcie_0_slv_axi_clk = {
  3581. .halt_reg = 0xba488,
  3582. .halt_check = BRANCH_HALT_VOTED,
  3583. .hwcg_reg = 0xba488,
  3584. .hwcg_bit = 1,
  3585. .clkr = {
  3586. .enable_reg = 0x62010,
  3587. .enable_mask = BIT(22),
  3588. .hw.init = &(const struct clk_init_data) {
  3589. .name = "gcc_pcie_0_slv_axi_clk",
  3590. .ops = &clk_branch2_ops,
  3591. },
  3592. },
  3593. };
  3594. static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
  3595. .halt_reg = 0xba484,
  3596. .halt_check = BRANCH_HALT_VOTED,
  3597. .clkr = {
  3598. .enable_reg = 0x62010,
  3599. .enable_mask = BIT(21),
  3600. .hw.init = &(const struct clk_init_data) {
  3601. .name = "gcc_pcie_0_slv_q2a_axi_clk",
  3602. .ops = &clk_branch2_ops,
  3603. },
  3604. },
  3605. };
  3606. static struct clk_branch gcc_pcie_1_aux_clk = {
  3607. .halt_reg = 0x2e018,
  3608. .halt_check = BRANCH_HALT_VOTED,
  3609. .clkr = {
  3610. .enable_reg = 0x62010,
  3611. .enable_mask = BIT(18),
  3612. .hw.init = &(const struct clk_init_data) {
  3613. .name = "gcc_pcie_1_aux_clk",
  3614. .parent_hws = (const struct clk_hw*[]) {
  3615. &gcc_pcie_1_aux_clk_src.clkr.hw,
  3616. },
  3617. .num_parents = 1,
  3618. .flags = CLK_SET_RATE_PARENT,
  3619. .ops = &clk_branch2_ops,
  3620. },
  3621. },
  3622. };
  3623. static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
  3624. .halt_reg = 0xba480,
  3625. .halt_check = BRANCH_HALT_VOTED,
  3626. .hwcg_reg = 0xba480,
  3627. .hwcg_bit = 1,
  3628. .clkr = {
  3629. .enable_reg = 0x62010,
  3630. .enable_mask = BIT(17),
  3631. .hw.init = &(const struct clk_init_data) {
  3632. .name = "gcc_pcie_1_cfg_ahb_clk",
  3633. .ops = &clk_branch2_ops,
  3634. },
  3635. },
  3636. };
  3637. static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
  3638. .halt_reg = 0xba470,
  3639. .halt_check = BRANCH_HALT_SKIP,
  3640. .hwcg_reg = 0xba470,
  3641. .hwcg_bit = 1,
  3642. .clkr = {
  3643. .enable_reg = 0x62010,
  3644. .enable_mask = BIT(16),
  3645. .hw.init = &(const struct clk_init_data) {
  3646. .name = "gcc_pcie_1_mstr_axi_clk",
  3647. .ops = &clk_branch2_ops,
  3648. },
  3649. },
  3650. };
  3651. static struct clk_branch gcc_pcie_1_phy_rchng_clk = {
  3652. .halt_reg = 0x2e038,
  3653. .halt_check = BRANCH_HALT_VOTED,
  3654. .clkr = {
  3655. .enable_reg = 0x62010,
  3656. .enable_mask = BIT(20),
  3657. .hw.init = &(const struct clk_init_data) {
  3658. .name = "gcc_pcie_1_phy_rchng_clk",
  3659. .parent_hws = (const struct clk_hw*[]) {
  3660. &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
  3661. },
  3662. .num_parents = 1,
  3663. .flags = CLK_SET_RATE_PARENT,
  3664. .ops = &clk_branch2_ops,
  3665. },
  3666. },
  3667. };
  3668. static struct clk_branch gcc_pcie_1_pipe_clk = {
  3669. .halt_reg = 0x2e028,
  3670. .halt_check = BRANCH_HALT_SKIP,
  3671. .clkr = {
  3672. .enable_reg = 0x62010,
  3673. .enable_mask = BIT(19),
  3674. .hw.init = &(const struct clk_init_data) {
  3675. .name = "gcc_pcie_1_pipe_clk",
  3676. .parent_hws = (const struct clk_hw*[]) {
  3677. &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
  3678. },
  3679. .num_parents = 1,
  3680. .flags = CLK_SET_RATE_PARENT,
  3681. .ops = &clk_branch2_ops,
  3682. },
  3683. },
  3684. };
  3685. static struct clk_branch gcc_pcie_1_slv_axi_clk = {
  3686. .halt_reg = 0xba460,
  3687. .halt_check = BRANCH_HALT_VOTED,
  3688. .hwcg_reg = 0xba460,
  3689. .hwcg_bit = 1,
  3690. .clkr = {
  3691. .enable_reg = 0x62010,
  3692. .enable_mask = BIT(15),
  3693. .hw.init = &(const struct clk_init_data) {
  3694. .name = "gcc_pcie_1_slv_axi_clk",
  3695. .ops = &clk_branch2_ops,
  3696. },
  3697. },
  3698. };
  3699. static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
  3700. .halt_reg = 0xba45c,
  3701. .halt_check = BRANCH_HALT_VOTED,
  3702. .clkr = {
  3703. .enable_reg = 0x62010,
  3704. .enable_mask = BIT(14),
  3705. .hw.init = &(const struct clk_init_data) {
  3706. .name = "gcc_pcie_1_slv_q2a_axi_clk",
  3707. .ops = &clk_branch2_ops,
  3708. },
  3709. },
  3710. };
  3711. static struct clk_branch gcc_pcie_2_aux_clk = {
  3712. .halt_reg = 0xc0018,
  3713. .halt_check = BRANCH_HALT_VOTED,
  3714. .clkr = {
  3715. .enable_reg = 0x62018,
  3716. .enable_mask = BIT(0),
  3717. .hw.init = &(const struct clk_init_data) {
  3718. .name = "gcc_pcie_2_aux_clk",
  3719. .parent_hws = (const struct clk_hw*[]) {
  3720. &gcc_pcie_2_aux_clk_src.clkr.hw,
  3721. },
  3722. .num_parents = 1,
  3723. .flags = CLK_SET_RATE_PARENT,
  3724. .ops = &clk_branch2_ops,
  3725. },
  3726. },
  3727. };
  3728. static struct clk_branch gcc_pcie_2_cfg_ahb_clk = {
  3729. .halt_reg = 0xba4d0,
  3730. .halt_check = BRANCH_HALT_VOTED,
  3731. .hwcg_reg = 0xba4d0,
  3732. .hwcg_bit = 1,
  3733. .clkr = {
  3734. .enable_reg = 0x62010,
  3735. .enable_mask = BIT(31),
  3736. .hw.init = &(const struct clk_init_data) {
  3737. .name = "gcc_pcie_2_cfg_ahb_clk",
  3738. .ops = &clk_branch2_ops,
  3739. },
  3740. },
  3741. };
  3742. static struct clk_branch gcc_pcie_2_mstr_axi_clk = {
  3743. .halt_reg = 0xba4c0,
  3744. .halt_check = BRANCH_HALT_SKIP,
  3745. .hwcg_reg = 0xba4c0,
  3746. .hwcg_bit = 1,
  3747. .clkr = {
  3748. .enable_reg = 0x62010,
  3749. .enable_mask = BIT(30),
  3750. .hw.init = &(const struct clk_init_data) {
  3751. .name = "gcc_pcie_2_mstr_axi_clk",
  3752. .ops = &clk_branch2_ops,
  3753. },
  3754. },
  3755. };
  3756. static struct clk_branch gcc_pcie_2_phy_rchng_clk = {
  3757. .halt_reg = 0xc0038,
  3758. .halt_check = BRANCH_HALT_VOTED,
  3759. .clkr = {
  3760. .enable_reg = 0x62018,
  3761. .enable_mask = BIT(2),
  3762. .hw.init = &(const struct clk_init_data) {
  3763. .name = "gcc_pcie_2_phy_rchng_clk",
  3764. .parent_hws = (const struct clk_hw*[]) {
  3765. &gcc_pcie_2_phy_rchng_clk_src.clkr.hw,
  3766. },
  3767. .num_parents = 1,
  3768. .flags = CLK_SET_RATE_PARENT,
  3769. .ops = &clk_branch2_ops,
  3770. },
  3771. },
  3772. };
  3773. static struct clk_branch gcc_pcie_2_pipe_clk = {
  3774. .halt_reg = 0xc0028,
  3775. .halt_check = BRANCH_HALT_SKIP,
  3776. .clkr = {
  3777. .enable_reg = 0x62018,
  3778. .enable_mask = BIT(1),
  3779. .hw.init = &(const struct clk_init_data) {
  3780. .name = "gcc_pcie_2_pipe_clk",
  3781. .parent_hws = (const struct clk_hw*[]) {
  3782. &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
  3783. },
  3784. .num_parents = 1,
  3785. .flags = CLK_SET_RATE_PARENT,
  3786. .ops = &clk_branch2_ops,
  3787. },
  3788. },
  3789. };
  3790. static struct clk_branch gcc_pcie_2_slv_axi_clk = {
  3791. .halt_reg = 0xba4b0,
  3792. .halt_check = BRANCH_HALT_VOTED,
  3793. .hwcg_reg = 0xba4b0,
  3794. .hwcg_bit = 1,
  3795. .clkr = {
  3796. .enable_reg = 0x62010,
  3797. .enable_mask = BIT(29),
  3798. .hw.init = &(const struct clk_init_data) {
  3799. .name = "gcc_pcie_2_slv_axi_clk",
  3800. .ops = &clk_branch2_ops,
  3801. },
  3802. },
  3803. };
  3804. static struct clk_branch gcc_pcie_2_slv_q2a_axi_clk = {
  3805. .halt_reg = 0xba4ac,
  3806. .halt_check = BRANCH_HALT_VOTED,
  3807. .clkr = {
  3808. .enable_reg = 0x62010,
  3809. .enable_mask = BIT(28),
  3810. .hw.init = &(const struct clk_init_data) {
  3811. .name = "gcc_pcie_2_slv_q2a_axi_clk",
  3812. .ops = &clk_branch2_ops,
  3813. },
  3814. },
  3815. };
  3816. static struct clk_branch gcc_pcie_3a_aux_clk = {
  3817. .halt_reg = 0xdc04c,
  3818. .halt_check = BRANCH_HALT_VOTED,
  3819. .hwcg_reg = 0xdc04c,
  3820. .hwcg_bit = 1,
  3821. .clkr = {
  3822. .enable_reg = 0x62028,
  3823. .enable_mask = BIT(16),
  3824. .hw.init = &(const struct clk_init_data) {
  3825. .name = "gcc_pcie_3a_aux_clk",
  3826. .parent_hws = (const struct clk_hw*[]) {
  3827. &gcc_pcie_3a_aux_clk_src.clkr.hw,
  3828. },
  3829. .num_parents = 1,
  3830. .flags = CLK_SET_RATE_PARENT,
  3831. .ops = &clk_branch2_ops,
  3832. },
  3833. },
  3834. };
  3835. static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
  3836. .halt_reg = 0xba4f0,
  3837. .halt_check = BRANCH_HALT_VOTED,
  3838. .hwcg_reg = 0xba4f0,
  3839. .hwcg_bit = 1,
  3840. .clkr = {
  3841. .enable_reg = 0x62028,
  3842. .enable_mask = BIT(15),
  3843. .hw.init = &(const struct clk_init_data) {
  3844. .name = "gcc_pcie_3a_cfg_ahb_clk",
  3845. .ops = &clk_branch2_ops,
  3846. },
  3847. },
  3848. };
  3849. static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
  3850. .halt_reg = 0xdc038,
  3851. .halt_check = BRANCH_HALT_SKIP,
  3852. .hwcg_reg = 0xdc038,
  3853. .hwcg_bit = 1,
  3854. .clkr = {
  3855. .enable_reg = 0x62028,
  3856. .enable_mask = BIT(14),
  3857. .hw.init = &(const struct clk_init_data) {
  3858. .name = "gcc_pcie_3a_mstr_axi_clk",
  3859. .ops = &clk_branch2_ops,
  3860. },
  3861. },
  3862. };
  3863. static struct clk_branch gcc_pcie_3a_phy_rchng_clk = {
  3864. .halt_reg = 0xdc06c,
  3865. .halt_check = BRANCH_HALT_VOTED,
  3866. .hwcg_reg = 0xdc06c,
  3867. .hwcg_bit = 1,
  3868. .clkr = {
  3869. .enable_reg = 0x62028,
  3870. .enable_mask = BIT(18),
  3871. .hw.init = &(const struct clk_init_data) {
  3872. .name = "gcc_pcie_3a_phy_rchng_clk",
  3873. .parent_hws = (const struct clk_hw*[]) {
  3874. &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
  3875. },
  3876. .num_parents = 1,
  3877. .flags = CLK_SET_RATE_PARENT,
  3878. .ops = &clk_branch2_ops,
  3879. },
  3880. },
  3881. };
  3882. static struct clk_branch gcc_pcie_3a_pipe_clk = {
  3883. .halt_reg = 0xdc05c,
  3884. .halt_check = BRANCH_HALT_SKIP,
  3885. .hwcg_reg = 0xdc05c,
  3886. .hwcg_bit = 1,
  3887. .clkr = {
  3888. .enable_reg = 0x62028,
  3889. .enable_mask = BIT(17),
  3890. .hw.init = &(const struct clk_init_data) {
  3891. .name = "gcc_pcie_3a_pipe_clk",
  3892. .parent_hws = (const struct clk_hw*[]) {
  3893. &gcc_pcie_3a_pipe_clk_src.clkr.hw,
  3894. },
  3895. .num_parents = 1,
  3896. .flags = CLK_SET_RATE_PARENT,
  3897. .ops = &clk_branch2_ops,
  3898. },
  3899. },
  3900. };
  3901. static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
  3902. .halt_reg = 0xdc024,
  3903. .halt_check = BRANCH_HALT_VOTED,
  3904. .hwcg_reg = 0xdc024,
  3905. .hwcg_bit = 1,
  3906. .clkr = {
  3907. .enable_reg = 0x62028,
  3908. .enable_mask = BIT(13),
  3909. .hw.init = &(const struct clk_init_data) {
  3910. .name = "gcc_pcie_3a_slv_axi_clk",
  3911. .ops = &clk_branch2_ops,
  3912. },
  3913. },
  3914. };
  3915. static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
  3916. .halt_reg = 0xdc01c,
  3917. .halt_check = BRANCH_HALT_VOTED,
  3918. .hwcg_reg = 0xdc01c,
  3919. .hwcg_bit = 1,
  3920. .clkr = {
  3921. .enable_reg = 0x62028,
  3922. .enable_mask = BIT(12),
  3923. .hw.init = &(const struct clk_init_data) {
  3924. .name = "gcc_pcie_3a_slv_q2a_axi_clk",
  3925. .ops = &clk_branch2_ops,
  3926. },
  3927. },
  3928. };
  3929. static struct clk_branch gcc_pcie_3b_aux_clk = {
  3930. .halt_reg = 0x94050,
  3931. .halt_check = BRANCH_HALT_VOTED,
  3932. .clkr = {
  3933. .enable_reg = 0x62028,
  3934. .enable_mask = BIT(25),
  3935. .hw.init = &(const struct clk_init_data) {
  3936. .name = "gcc_pcie_3b_aux_clk",
  3937. .parent_hws = (const struct clk_hw*[]) {
  3938. &gcc_pcie_3b_aux_clk_src.clkr.hw,
  3939. },
  3940. .num_parents = 1,
  3941. .flags = CLK_SET_RATE_PARENT,
  3942. .ops = &clk_branch2_ops,
  3943. },
  3944. },
  3945. };
  3946. static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
  3947. .halt_reg = 0xba4f4,
  3948. .halt_check = BRANCH_HALT_VOTED,
  3949. .hwcg_reg = 0xba4f4,
  3950. .hwcg_bit = 1,
  3951. .clkr = {
  3952. .enable_reg = 0x62028,
  3953. .enable_mask = BIT(24),
  3954. .hw.init = &(const struct clk_init_data) {
  3955. .name = "gcc_pcie_3b_cfg_ahb_clk",
  3956. .ops = &clk_branch2_ops,
  3957. },
  3958. },
  3959. };
  3960. static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
  3961. .halt_reg = 0x94038,
  3962. .halt_check = BRANCH_HALT_SKIP,
  3963. .hwcg_reg = 0x94038,
  3964. .hwcg_bit = 1,
  3965. .clkr = {
  3966. .enable_reg = 0x62028,
  3967. .enable_mask = BIT(23),
  3968. .hw.init = &(const struct clk_init_data) {
  3969. .name = "gcc_pcie_3b_mstr_axi_clk",
  3970. .ops = &clk_branch2_ops,
  3971. },
  3972. },
  3973. };
  3974. static struct clk_branch gcc_pcie_3b_phy_rchng_clk = {
  3975. .halt_reg = 0x94084,
  3976. .halt_check = BRANCH_HALT_VOTED,
  3977. .clkr = {
  3978. .enable_reg = 0x62028,
  3979. .enable_mask = BIT(28),
  3980. .hw.init = &(const struct clk_init_data) {
  3981. .name = "gcc_pcie_3b_phy_rchng_clk",
  3982. .parent_hws = (const struct clk_hw*[]) {
  3983. &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
  3984. },
  3985. .num_parents = 1,
  3986. .flags = CLK_SET_RATE_PARENT,
  3987. .ops = &clk_branch2_ops,
  3988. },
  3989. },
  3990. };
  3991. static struct clk_branch gcc_pcie_3b_pipe_clk = {
  3992. .halt_reg = 0x94060,
  3993. .halt_check = BRANCH_HALT_SKIP,
  3994. .clkr = {
  3995. .enable_reg = 0x62028,
  3996. .enable_mask = BIT(26),
  3997. .hw.init = &(const struct clk_init_data) {
  3998. .name = "gcc_pcie_3b_pipe_clk",
  3999. .parent_hws = (const struct clk_hw*[]) {
  4000. &gcc_pcie_3b_pipe_clk_src.clkr.hw,
  4001. },
  4002. .num_parents = 1,
  4003. .flags = CLK_SET_RATE_PARENT,
  4004. .ops = &clk_branch2_ops,
  4005. },
  4006. },
  4007. };
  4008. static struct clk_branch gcc_pcie_3b_pipe_div2_clk = {
  4009. .halt_reg = 0x94074,
  4010. .halt_check = BRANCH_HALT_SKIP,
  4011. .clkr = {
  4012. .enable_reg = 0x62028,
  4013. .enable_mask = BIT(27),
  4014. .hw.init = &(const struct clk_init_data) {
  4015. .name = "gcc_pcie_3b_pipe_div2_clk",
  4016. .parent_hws = (const struct clk_hw*[]) {
  4017. &gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
  4018. },
  4019. .num_parents = 1,
  4020. .flags = CLK_SET_RATE_PARENT,
  4021. .ops = &clk_branch2_ops,
  4022. },
  4023. },
  4024. };
  4025. static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
  4026. .halt_reg = 0x94024,
  4027. .halt_check = BRANCH_HALT_VOTED,
  4028. .hwcg_reg = 0x94024,
  4029. .hwcg_bit = 1,
  4030. .clkr = {
  4031. .enable_reg = 0x62028,
  4032. .enable_mask = BIT(22),
  4033. .hw.init = &(const struct clk_init_data) {
  4034. .name = "gcc_pcie_3b_slv_axi_clk",
  4035. .ops = &clk_branch2_ops,
  4036. },
  4037. },
  4038. };
  4039. static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
  4040. .halt_reg = 0x9401c,
  4041. .halt_check = BRANCH_HALT_VOTED,
  4042. .clkr = {
  4043. .enable_reg = 0x62028,
  4044. .enable_mask = BIT(21),
  4045. .hw.init = &(const struct clk_init_data) {
  4046. .name = "gcc_pcie_3b_slv_q2a_axi_clk",
  4047. .ops = &clk_branch2_ops,
  4048. },
  4049. },
  4050. };
  4051. static struct clk_branch gcc_pcie_4_aux_clk = {
  4052. .halt_reg = 0x88040,
  4053. .halt_check = BRANCH_HALT_VOTED,
  4054. .clkr = {
  4055. .enable_reg = 0x62030,
  4056. .enable_mask = BIT(17),
  4057. .hw.init = &(const struct clk_init_data) {
  4058. .name = "gcc_pcie_4_aux_clk",
  4059. .parent_hws = (const struct clk_hw*[]) {
  4060. &gcc_pcie_4_aux_clk_src.clkr.hw,
  4061. },
  4062. .num_parents = 1,
  4063. .flags = CLK_SET_RATE_PARENT,
  4064. .ops = &clk_branch2_ops,
  4065. },
  4066. },
  4067. };
  4068. static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
  4069. .halt_reg = 0xba4fc,
  4070. .halt_check = BRANCH_HALT_VOTED,
  4071. .hwcg_reg = 0xba4fc,
  4072. .hwcg_bit = 1,
  4073. .clkr = {
  4074. .enable_reg = 0x62030,
  4075. .enable_mask = BIT(16),
  4076. .hw.init = &(const struct clk_init_data) {
  4077. .name = "gcc_pcie_4_cfg_ahb_clk",
  4078. .ops = &clk_branch2_ops,
  4079. },
  4080. },
  4081. };
  4082. static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
  4083. .halt_reg = 0x88030,
  4084. .halt_check = BRANCH_HALT_SKIP,
  4085. .hwcg_reg = 0x88030,
  4086. .hwcg_bit = 1,
  4087. .clkr = {
  4088. .enable_reg = 0x62030,
  4089. .enable_mask = BIT(15),
  4090. .hw.init = &(const struct clk_init_data) {
  4091. .name = "gcc_pcie_4_mstr_axi_clk",
  4092. .ops = &clk_branch2_ops,
  4093. },
  4094. },
  4095. };
  4096. static struct clk_branch gcc_pcie_4_phy_rchng_clk = {
  4097. .halt_reg = 0x88074,
  4098. .halt_check = BRANCH_HALT_VOTED,
  4099. .clkr = {
  4100. .enable_reg = 0x62030,
  4101. .enable_mask = BIT(20),
  4102. .hw.init = &(const struct clk_init_data) {
  4103. .name = "gcc_pcie_4_phy_rchng_clk",
  4104. .parent_hws = (const struct clk_hw*[]) {
  4105. &gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
  4106. },
  4107. .num_parents = 1,
  4108. .flags = CLK_SET_RATE_PARENT,
  4109. .ops = &clk_branch2_ops,
  4110. },
  4111. },
  4112. };
  4113. static struct clk_branch gcc_pcie_4_pipe_clk = {
  4114. .halt_reg = 0x88050,
  4115. .halt_check = BRANCH_HALT_SKIP,
  4116. .clkr = {
  4117. .enable_reg = 0x62030,
  4118. .enable_mask = BIT(18),
  4119. .hw.init = &(const struct clk_init_data) {
  4120. .name = "gcc_pcie_4_pipe_clk",
  4121. .parent_hws = (const struct clk_hw*[]) {
  4122. &gcc_pcie_4_pipe_clk_src.clkr.hw,
  4123. },
  4124. .num_parents = 1,
  4125. .flags = CLK_SET_RATE_PARENT,
  4126. .ops = &clk_branch2_ops,
  4127. },
  4128. },
  4129. };
  4130. static struct clk_branch gcc_pcie_4_pipe_div2_clk = {
  4131. .halt_reg = 0x88064,
  4132. .halt_check = BRANCH_HALT_SKIP,
  4133. .clkr = {
  4134. .enable_reg = 0x62030,
  4135. .enable_mask = BIT(19),
  4136. .hw.init = &(const struct clk_init_data) {
  4137. .name = "gcc_pcie_4_pipe_div2_clk",
  4138. .parent_hws = (const struct clk_hw*[]) {
  4139. &gcc_pcie_4_pipe_div_clk_src.clkr.hw,
  4140. },
  4141. .num_parents = 1,
  4142. .flags = CLK_SET_RATE_PARENT,
  4143. .ops = &clk_branch2_ops,
  4144. },
  4145. },
  4146. };
  4147. static struct clk_branch gcc_pcie_4_slv_axi_clk = {
  4148. .halt_reg = 0x88020,
  4149. .halt_check = BRANCH_HALT_VOTED,
  4150. .hwcg_reg = 0x88020,
  4151. .hwcg_bit = 1,
  4152. .clkr = {
  4153. .enable_reg = 0x62030,
  4154. .enable_mask = BIT(14),
  4155. .hw.init = &(const struct clk_init_data) {
  4156. .name = "gcc_pcie_4_slv_axi_clk",
  4157. .ops = &clk_branch2_ops,
  4158. },
  4159. },
  4160. };
  4161. static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
  4162. .halt_reg = 0x8801c,
  4163. .halt_check = BRANCH_HALT_VOTED,
  4164. .clkr = {
  4165. .enable_reg = 0x62030,
  4166. .enable_mask = BIT(13),
  4167. .hw.init = &(const struct clk_init_data) {
  4168. .name = "gcc_pcie_4_slv_q2a_axi_clk",
  4169. .ops = &clk_branch2_ops,
  4170. },
  4171. },
  4172. };
  4173. static struct clk_branch gcc_pcie_5_aux_clk = {
  4174. .halt_reg = 0xc304c,
  4175. .halt_check = BRANCH_HALT_VOTED,
  4176. .clkr = {
  4177. .enable_reg = 0x62030,
  4178. .enable_mask = BIT(5),
  4179. .hw.init = &(const struct clk_init_data) {
  4180. .name = "gcc_pcie_5_aux_clk",
  4181. .parent_hws = (const struct clk_hw*[]) {
  4182. &gcc_pcie_5_aux_clk_src.clkr.hw,
  4183. },
  4184. .num_parents = 1,
  4185. .flags = CLK_SET_RATE_PARENT,
  4186. .ops = &clk_branch2_ops,
  4187. },
  4188. },
  4189. };
  4190. static struct clk_branch gcc_pcie_5_cfg_ahb_clk = {
  4191. .halt_reg = 0xba4f8,
  4192. .halt_check = BRANCH_HALT_VOTED,
  4193. .hwcg_reg = 0xba4f8,
  4194. .hwcg_bit = 1,
  4195. .clkr = {
  4196. .enable_reg = 0x62030,
  4197. .enable_mask = BIT(4),
  4198. .hw.init = &(const struct clk_init_data) {
  4199. .name = "gcc_pcie_5_cfg_ahb_clk",
  4200. .ops = &clk_branch2_ops,
  4201. },
  4202. },
  4203. };
  4204. static struct clk_branch gcc_pcie_5_mstr_axi_clk = {
  4205. .halt_reg = 0xc3038,
  4206. .halt_check = BRANCH_HALT_SKIP,
  4207. .hwcg_reg = 0xc3038,
  4208. .hwcg_bit = 1,
  4209. .clkr = {
  4210. .enable_reg = 0x62030,
  4211. .enable_mask = BIT(3),
  4212. .hw.init = &(const struct clk_init_data) {
  4213. .name = "gcc_pcie_5_mstr_axi_clk",
  4214. .ops = &clk_branch2_ops,
  4215. },
  4216. },
  4217. };
  4218. static struct clk_branch gcc_pcie_5_phy_rchng_clk = {
  4219. .halt_reg = 0xc3080,
  4220. .halt_check = BRANCH_HALT_VOTED,
  4221. .clkr = {
  4222. .enable_reg = 0x62030,
  4223. .enable_mask = BIT(8),
  4224. .hw.init = &(const struct clk_init_data) {
  4225. .name = "gcc_pcie_5_phy_rchng_clk",
  4226. .parent_hws = (const struct clk_hw*[]) {
  4227. &gcc_pcie_5_phy_rchng_clk_src.clkr.hw,
  4228. },
  4229. .num_parents = 1,
  4230. .flags = CLK_SET_RATE_PARENT,
  4231. .ops = &clk_branch2_ops,
  4232. },
  4233. },
  4234. };
  4235. static struct clk_branch gcc_pcie_5_pipe_clk = {
  4236. .halt_reg = 0xc305c,
  4237. .halt_check = BRANCH_HALT_SKIP,
  4238. .clkr = {
  4239. .enable_reg = 0x62030,
  4240. .enable_mask = BIT(6),
  4241. .hw.init = &(const struct clk_init_data) {
  4242. .name = "gcc_pcie_5_pipe_clk",
  4243. .parent_hws = (const struct clk_hw*[]) {
  4244. &gcc_pcie_5_pipe_clk_src.clkr.hw,
  4245. },
  4246. .num_parents = 1,
  4247. .flags = CLK_SET_RATE_PARENT,
  4248. .ops = &clk_branch2_ops,
  4249. },
  4250. },
  4251. };
  4252. static struct clk_branch gcc_pcie_5_pipe_div2_clk = {
  4253. .halt_reg = 0xc3070,
  4254. .halt_check = BRANCH_HALT_SKIP,
  4255. .clkr = {
  4256. .enable_reg = 0x62030,
  4257. .enable_mask = BIT(7),
  4258. .hw.init = &(const struct clk_init_data) {
  4259. .name = "gcc_pcie_5_pipe_div2_clk",
  4260. .parent_hws = (const struct clk_hw*[]) {
  4261. &gcc_pcie_5_pipe_div_clk_src.clkr.hw,
  4262. },
  4263. .num_parents = 1,
  4264. .flags = CLK_SET_RATE_PARENT,
  4265. .ops = &clk_branch2_ops,
  4266. },
  4267. },
  4268. };
  4269. static struct clk_branch gcc_pcie_5_slv_axi_clk = {
  4270. .halt_reg = 0xc3024,
  4271. .halt_check = BRANCH_HALT_VOTED,
  4272. .hwcg_reg = 0xc3024,
  4273. .hwcg_bit = 1,
  4274. .clkr = {
  4275. .enable_reg = 0x62030,
  4276. .enable_mask = BIT(2),
  4277. .hw.init = &(const struct clk_init_data) {
  4278. .name = "gcc_pcie_5_slv_axi_clk",
  4279. .ops = &clk_branch2_ops,
  4280. },
  4281. },
  4282. };
  4283. static struct clk_branch gcc_pcie_5_slv_q2a_axi_clk = {
  4284. .halt_reg = 0xc301c,
  4285. .halt_check = BRANCH_HALT_VOTED,
  4286. .clkr = {
  4287. .enable_reg = 0x62030,
  4288. .enable_mask = BIT(1),
  4289. .hw.init = &(const struct clk_init_data) {
  4290. .name = "gcc_pcie_5_slv_q2a_axi_clk",
  4291. .ops = &clk_branch2_ops,
  4292. },
  4293. },
  4294. };
  4295. static struct clk_branch gcc_pcie_6_aux_clk = {
  4296. .halt_reg = 0x8a040,
  4297. .halt_check = BRANCH_HALT_VOTED,
  4298. .clkr = {
  4299. .enable_reg = 0x62030,
  4300. .enable_mask = BIT(27),
  4301. .hw.init = &(const struct clk_init_data) {
  4302. .name = "gcc_pcie_6_aux_clk",
  4303. .parent_hws = (const struct clk_hw*[]) {
  4304. &gcc_pcie_6_aux_clk_src.clkr.hw,
  4305. },
  4306. .num_parents = 1,
  4307. .flags = CLK_SET_RATE_PARENT,
  4308. .ops = &clk_branch2_ops,
  4309. },
  4310. },
  4311. };
  4312. static struct clk_branch gcc_pcie_6_cfg_ahb_clk = {
  4313. .halt_reg = 0xba500,
  4314. .halt_check = BRANCH_HALT_VOTED,
  4315. .hwcg_reg = 0xba500,
  4316. .hwcg_bit = 1,
  4317. .clkr = {
  4318. .enable_reg = 0x62030,
  4319. .enable_mask = BIT(26),
  4320. .hw.init = &(const struct clk_init_data) {
  4321. .name = "gcc_pcie_6_cfg_ahb_clk",
  4322. .ops = &clk_branch2_ops,
  4323. },
  4324. },
  4325. };
  4326. static struct clk_branch gcc_pcie_6_mstr_axi_clk = {
  4327. .halt_reg = 0x8a030,
  4328. .halt_check = BRANCH_HALT_SKIP,
  4329. .hwcg_reg = 0x8a030,
  4330. .hwcg_bit = 1,
  4331. .clkr = {
  4332. .enable_reg = 0x62030,
  4333. .enable_mask = BIT(25),
  4334. .hw.init = &(const struct clk_init_data) {
  4335. .name = "gcc_pcie_6_mstr_axi_clk",
  4336. .ops = &clk_branch2_ops,
  4337. },
  4338. },
  4339. };
  4340. static struct clk_branch gcc_pcie_6_phy_rchng_clk = {
  4341. .halt_reg = 0x8a074,
  4342. .halt_check = BRANCH_HALT_VOTED,
  4343. .clkr = {
  4344. .enable_reg = 0x62030,
  4345. .enable_mask = BIT(30),
  4346. .hw.init = &(const struct clk_init_data) {
  4347. .name = "gcc_pcie_6_phy_rchng_clk",
  4348. .parent_hws = (const struct clk_hw*[]) {
  4349. &gcc_pcie_6_phy_rchng_clk_src.clkr.hw,
  4350. },
  4351. .num_parents = 1,
  4352. .flags = CLK_SET_RATE_PARENT,
  4353. .ops = &clk_branch2_ops,
  4354. },
  4355. },
  4356. };
  4357. static struct clk_branch gcc_pcie_6_pipe_clk = {
  4358. .halt_reg = 0x8a050,
  4359. .halt_check = BRANCH_HALT_SKIP,
  4360. .clkr = {
  4361. .enable_reg = 0x62030,
  4362. .enable_mask = BIT(28),
  4363. .hw.init = &(const struct clk_init_data) {
  4364. .name = "gcc_pcie_6_pipe_clk",
  4365. .parent_hws = (const struct clk_hw*[]) {
  4366. &gcc_pcie_6_pipe_clk_src.clkr.hw,
  4367. },
  4368. .num_parents = 1,
  4369. .flags = CLK_SET_RATE_PARENT,
  4370. .ops = &clk_branch2_ops,
  4371. },
  4372. },
  4373. };
  4374. static struct clk_branch gcc_pcie_6_pipe_div2_clk = {
  4375. .halt_reg = 0x8a064,
  4376. .halt_check = BRANCH_HALT_SKIP,
  4377. .clkr = {
  4378. .enable_reg = 0x62030,
  4379. .enable_mask = BIT(29),
  4380. .hw.init = &(const struct clk_init_data) {
  4381. .name = "gcc_pcie_6_pipe_div2_clk",
  4382. .parent_hws = (const struct clk_hw*[]) {
  4383. &gcc_pcie_6_pipe_div_clk_src.clkr.hw,
  4384. },
  4385. .num_parents = 1,
  4386. .flags = CLK_SET_RATE_PARENT,
  4387. .ops = &clk_branch2_ops,
  4388. },
  4389. },
  4390. };
  4391. static struct clk_branch gcc_pcie_6_slv_axi_clk = {
  4392. .halt_reg = 0x8a020,
  4393. .halt_check = BRANCH_HALT_VOTED,
  4394. .hwcg_reg = 0x8a020,
  4395. .hwcg_bit = 1,
  4396. .clkr = {
  4397. .enable_reg = 0x62030,
  4398. .enable_mask = BIT(24),
  4399. .hw.init = &(const struct clk_init_data) {
  4400. .name = "gcc_pcie_6_slv_axi_clk",
  4401. .ops = &clk_branch2_ops,
  4402. },
  4403. },
  4404. };
  4405. static struct clk_branch gcc_pcie_6_slv_q2a_axi_clk = {
  4406. .halt_reg = 0x8a01c,
  4407. .halt_check = BRANCH_HALT_VOTED,
  4408. .clkr = {
  4409. .enable_reg = 0x62030,
  4410. .enable_mask = BIT(23),
  4411. .hw.init = &(const struct clk_init_data) {
  4412. .name = "gcc_pcie_6_slv_q2a_axi_clk",
  4413. .ops = &clk_branch2_ops,
  4414. },
  4415. },
  4416. };
  4417. static struct clk_branch gcc_pcie_noc_pwrctl_clk = {
  4418. .halt_reg = 0xba2ac,
  4419. .halt_check = BRANCH_HALT_VOTED,
  4420. .clkr = {
  4421. .enable_reg = 0x62008,
  4422. .enable_mask = BIT(7),
  4423. .hw.init = &(const struct clk_init_data) {
  4424. .name = "gcc_pcie_noc_pwrctl_clk",
  4425. .ops = &clk_branch2_ops,
  4426. },
  4427. },
  4428. };
  4429. static struct clk_branch gcc_pcie_noc_qosgen_extref_clk = {
  4430. .halt_reg = 0xba2a8,
  4431. .halt_check = BRANCH_HALT_VOTED,
  4432. .clkr = {
  4433. .enable_reg = 0x62008,
  4434. .enable_mask = BIT(6),
  4435. .hw.init = &(const struct clk_init_data) {
  4436. .name = "gcc_pcie_noc_qosgen_extref_clk",
  4437. .ops = &clk_branch2_ops,
  4438. },
  4439. },
  4440. };
  4441. static struct clk_branch gcc_pcie_noc_sf_center_clk = {
  4442. .halt_reg = 0xba2b0,
  4443. .halt_check = BRANCH_HALT_VOTED,
  4444. .hwcg_reg = 0xba2b0,
  4445. .hwcg_bit = 1,
  4446. .clkr = {
  4447. .enable_reg = 0x62008,
  4448. .enable_mask = BIT(8),
  4449. .hw.init = &(const struct clk_init_data) {
  4450. .name = "gcc_pcie_noc_sf_center_clk",
  4451. .ops = &clk_branch2_ops,
  4452. },
  4453. },
  4454. };
  4455. static struct clk_branch gcc_pcie_noc_slave_sf_east_clk = {
  4456. .halt_reg = 0xba2b8,
  4457. .halt_check = BRANCH_HALT_VOTED,
  4458. .hwcg_reg = 0xba2b8,
  4459. .hwcg_bit = 1,
  4460. .clkr = {
  4461. .enable_reg = 0x62008,
  4462. .enable_mask = BIT(9),
  4463. .hw.init = &(const struct clk_init_data) {
  4464. .name = "gcc_pcie_noc_slave_sf_east_clk",
  4465. .ops = &clk_branch2_ops,
  4466. },
  4467. },
  4468. };
  4469. static struct clk_branch gcc_pcie_noc_slave_sf_west_clk = {
  4470. .halt_reg = 0xba2c0,
  4471. .halt_check = BRANCH_HALT_VOTED,
  4472. .hwcg_reg = 0xba2c0,
  4473. .hwcg_bit = 1,
  4474. .clkr = {
  4475. .enable_reg = 0x62008,
  4476. .enable_mask = BIT(10),
  4477. .hw.init = &(const struct clk_init_data) {
  4478. .name = "gcc_pcie_noc_slave_sf_west_clk",
  4479. .ops = &clk_branch2_ops,
  4480. },
  4481. },
  4482. };
  4483. static struct clk_branch gcc_pcie_noc_tsctr_clk = {
  4484. .halt_reg = 0xba2a4,
  4485. .halt_check = BRANCH_HALT_VOTED,
  4486. .hwcg_reg = 0xba2a4,
  4487. .hwcg_bit = 1,
  4488. .clkr = {
  4489. .enable_reg = 0x62008,
  4490. .enable_mask = BIT(5),
  4491. .hw.init = &(const struct clk_init_data) {
  4492. .name = "gcc_pcie_noc_tsctr_clk",
  4493. .ops = &clk_branch2_ops,
  4494. },
  4495. },
  4496. };
  4497. static struct clk_branch gcc_pcie_phy_3a_aux_clk = {
  4498. .halt_reg = 0x6c038,
  4499. .halt_check = BRANCH_HALT_VOTED,
  4500. .hwcg_reg = 0x6c038,
  4501. .hwcg_bit = 1,
  4502. .clkr = {
  4503. .enable_reg = 0x62028,
  4504. .enable_mask = BIT(19),
  4505. .hw.init = &(const struct clk_init_data) {
  4506. .name = "gcc_pcie_phy_3a_aux_clk",
  4507. .parent_hws = (const struct clk_hw*[]) {
  4508. &gcc_pcie_phy_3a_aux_clk_src.clkr.hw,
  4509. },
  4510. .num_parents = 1,
  4511. .flags = CLK_SET_RATE_PARENT,
  4512. .ops = &clk_branch2_ops,
  4513. },
  4514. },
  4515. };
  4516. static struct clk_branch gcc_pcie_phy_3b_aux_clk = {
  4517. .halt_reg = 0x75034,
  4518. .halt_check = BRANCH_HALT_VOTED,
  4519. .clkr = {
  4520. .enable_reg = 0x62028,
  4521. .enable_mask = BIT(31),
  4522. .hw.init = &(const struct clk_init_data) {
  4523. .name = "gcc_pcie_phy_3b_aux_clk",
  4524. .parent_hws = (const struct clk_hw*[]) {
  4525. &gcc_pcie_phy_3b_aux_clk_src.clkr.hw,
  4526. },
  4527. .num_parents = 1,
  4528. .flags = CLK_SET_RATE_PARENT,
  4529. .ops = &clk_branch2_ops,
  4530. },
  4531. },
  4532. };
  4533. static struct clk_branch gcc_pcie_phy_4_aux_clk = {
  4534. .halt_reg = 0xd3030,
  4535. .halt_check = BRANCH_HALT_VOTED,
  4536. .clkr = {
  4537. .enable_reg = 0x62030,
  4538. .enable_mask = BIT(21),
  4539. .hw.init = &(const struct clk_init_data) {
  4540. .name = "gcc_pcie_phy_4_aux_clk",
  4541. .parent_hws = (const struct clk_hw*[]) {
  4542. &gcc_pcie_phy_4_aux_clk_src.clkr.hw,
  4543. },
  4544. .num_parents = 1,
  4545. .flags = CLK_SET_RATE_PARENT,
  4546. .ops = &clk_branch2_ops,
  4547. },
  4548. },
  4549. };
  4550. static struct clk_branch gcc_pcie_phy_5_aux_clk = {
  4551. .halt_reg = 0xd2030,
  4552. .halt_check = BRANCH_HALT_VOTED,
  4553. .clkr = {
  4554. .enable_reg = 0x62030,
  4555. .enable_mask = BIT(11),
  4556. .hw.init = &(const struct clk_init_data) {
  4557. .name = "gcc_pcie_phy_5_aux_clk",
  4558. .parent_hws = (const struct clk_hw*[]) {
  4559. &gcc_pcie_phy_5_aux_clk_src.clkr.hw,
  4560. },
  4561. .num_parents = 1,
  4562. .flags = CLK_SET_RATE_PARENT,
  4563. .ops = &clk_branch2_ops,
  4564. },
  4565. },
  4566. };
  4567. static struct clk_branch gcc_pcie_phy_6_aux_clk = {
  4568. .halt_reg = 0xd4030,
  4569. .halt_check = BRANCH_HALT_VOTED,
  4570. .clkr = {
  4571. .enable_reg = 0x62030,
  4572. .enable_mask = BIT(31),
  4573. .hw.init = &(const struct clk_init_data) {
  4574. .name = "gcc_pcie_phy_6_aux_clk",
  4575. .parent_hws = (const struct clk_hw*[]) {
  4576. &gcc_pcie_phy_6_aux_clk_src.clkr.hw,
  4577. },
  4578. .num_parents = 1,
  4579. .flags = CLK_SET_RATE_PARENT,
  4580. .ops = &clk_branch2_ops,
  4581. },
  4582. },
  4583. };
  4584. static struct clk_branch gcc_pcie_rscc_cfg_ahb_clk = {
  4585. .halt_reg = 0xb8004,
  4586. .halt_check = BRANCH_HALT_VOTED,
  4587. .hwcg_reg = 0xb8004,
  4588. .hwcg_bit = 1,
  4589. .clkr = {
  4590. .enable_reg = 0x62038,
  4591. .enable_mask = BIT(2),
  4592. .hw.init = &(const struct clk_init_data) {
  4593. .name = "gcc_pcie_rscc_cfg_ahb_clk",
  4594. .ops = &clk_branch2_ops,
  4595. },
  4596. },
  4597. };
  4598. static struct clk_branch gcc_pcie_rscc_xo_clk = {
  4599. .halt_reg = 0xb8008,
  4600. .halt_check = BRANCH_HALT_VOTED,
  4601. .clkr = {
  4602. .enable_reg = 0x62038,
  4603. .enable_mask = BIT(3),
  4604. .hw.init = &(const struct clk_init_data) {
  4605. .name = "gcc_pcie_rscc_xo_clk",
  4606. .ops = &clk_branch2_ops,
  4607. },
  4608. },
  4609. };
  4610. static struct clk_branch gcc_pdm2_clk = {
  4611. .halt_reg = 0x3300c,
  4612. .halt_check = BRANCH_HALT,
  4613. .clkr = {
  4614. .enable_reg = 0x3300c,
  4615. .enable_mask = BIT(0),
  4616. .hw.init = &(const struct clk_init_data) {
  4617. .name = "gcc_pdm2_clk",
  4618. .parent_hws = (const struct clk_hw*[]) {
  4619. &gcc_pdm2_clk_src.clkr.hw,
  4620. },
  4621. .num_parents = 1,
  4622. .flags = CLK_SET_RATE_PARENT,
  4623. .ops = &clk_branch2_ops,
  4624. },
  4625. },
  4626. };
  4627. static struct clk_branch gcc_pdm_ahb_clk = {
  4628. .halt_reg = 0x33004,
  4629. .halt_check = BRANCH_HALT_VOTED,
  4630. .hwcg_reg = 0x33004,
  4631. .hwcg_bit = 1,
  4632. .clkr = {
  4633. .enable_reg = 0x33004,
  4634. .enable_mask = BIT(0),
  4635. .hw.init = &(const struct clk_init_data) {
  4636. .name = "gcc_pdm_ahb_clk",
  4637. .ops = &clk_branch2_ops,
  4638. },
  4639. },
  4640. };
  4641. static struct clk_branch gcc_pdm_xo4_clk = {
  4642. .halt_reg = 0x33008,
  4643. .halt_check = BRANCH_HALT,
  4644. .clkr = {
  4645. .enable_reg = 0x33008,
  4646. .enable_mask = BIT(0),
  4647. .hw.init = &(const struct clk_init_data) {
  4648. .name = "gcc_pdm_xo4_clk",
  4649. .ops = &clk_branch2_ops,
  4650. },
  4651. },
  4652. };
  4653. static struct clk_branch gcc_qmip_av1e_ahb_clk = {
  4654. .halt_reg = 0x9b048,
  4655. .halt_check = BRANCH_HALT_VOTED,
  4656. .hwcg_reg = 0x9b048,
  4657. .hwcg_bit = 1,
  4658. .clkr = {
  4659. .enable_reg = 0x9b048,
  4660. .enable_mask = BIT(0),
  4661. .hw.init = &(const struct clk_init_data) {
  4662. .name = "gcc_qmip_av1e_ahb_clk",
  4663. .ops = &clk_branch2_ops,
  4664. },
  4665. },
  4666. };
  4667. static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = {
  4668. .halt_reg = 0x26010,
  4669. .halt_check = BRANCH_HALT_VOTED,
  4670. .hwcg_reg = 0x26010,
  4671. .hwcg_bit = 1,
  4672. .clkr = {
  4673. .enable_reg = 0x26010,
  4674. .enable_mask = BIT(0),
  4675. .hw.init = &(const struct clk_init_data) {
  4676. .name = "gcc_qmip_camera_cmd_ahb_clk",
  4677. .ops = &clk_branch2_ops,
  4678. },
  4679. },
  4680. };
  4681. static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
  4682. .halt_reg = 0x26008,
  4683. .halt_check = BRANCH_HALT_VOTED,
  4684. .hwcg_reg = 0x26008,
  4685. .hwcg_bit = 1,
  4686. .clkr = {
  4687. .enable_reg = 0x26008,
  4688. .enable_mask = BIT(0),
  4689. .hw.init = &(const struct clk_init_data) {
  4690. .name = "gcc_qmip_camera_nrt_ahb_clk",
  4691. .ops = &clk_branch2_ops,
  4692. },
  4693. },
  4694. };
  4695. static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
  4696. .halt_reg = 0x2600c,
  4697. .halt_check = BRANCH_HALT_VOTED,
  4698. .hwcg_reg = 0x2600c,
  4699. .hwcg_bit = 1,
  4700. .clkr = {
  4701. .enable_reg = 0x2600c,
  4702. .enable_mask = BIT(0),
  4703. .hw.init = &(const struct clk_init_data) {
  4704. .name = "gcc_qmip_camera_rt_ahb_clk",
  4705. .ops = &clk_branch2_ops,
  4706. },
  4707. },
  4708. };
  4709. static struct clk_branch gcc_qmip_gpu_ahb_clk = {
  4710. .halt_reg = 0x71008,
  4711. .halt_check = BRANCH_HALT_VOTED,
  4712. .hwcg_reg = 0x71008,
  4713. .hwcg_bit = 1,
  4714. .clkr = {
  4715. .enable_reg = 0x71008,
  4716. .enable_mask = BIT(0),
  4717. .hw.init = &(const struct clk_init_data) {
  4718. .name = "gcc_qmip_gpu_ahb_clk",
  4719. .ops = &clk_branch2_ops,
  4720. },
  4721. },
  4722. };
  4723. static struct clk_branch gcc_qmip_pcie_3a_ahb_clk = {
  4724. .halt_reg = 0xdc018,
  4725. .halt_check = BRANCH_HALT_VOTED,
  4726. .hwcg_reg = 0xdc018,
  4727. .hwcg_bit = 1,
  4728. .clkr = {
  4729. .enable_reg = 0x62028,
  4730. .enable_mask = BIT(11),
  4731. .hw.init = &(const struct clk_init_data) {
  4732. .name = "gcc_qmip_pcie_3a_ahb_clk",
  4733. .ops = &clk_branch2_ops,
  4734. },
  4735. },
  4736. };
  4737. static struct clk_branch gcc_qmip_pcie_3b_ahb_clk = {
  4738. .halt_reg = 0x94018,
  4739. .halt_check = BRANCH_HALT_VOTED,
  4740. .hwcg_reg = 0x94018,
  4741. .hwcg_bit = 1,
  4742. .clkr = {
  4743. .enable_reg = 0x62028,
  4744. .enable_mask = BIT(20),
  4745. .hw.init = &(const struct clk_init_data) {
  4746. .name = "gcc_qmip_pcie_3b_ahb_clk",
  4747. .ops = &clk_branch2_ops,
  4748. },
  4749. },
  4750. };
  4751. static struct clk_branch gcc_qmip_pcie_4_ahb_clk = {
  4752. .halt_reg = 0x88018,
  4753. .halt_check = BRANCH_HALT_VOTED,
  4754. .hwcg_reg = 0x88018,
  4755. .hwcg_bit = 1,
  4756. .clkr = {
  4757. .enable_reg = 0x62030,
  4758. .enable_mask = BIT(12),
  4759. .hw.init = &(const struct clk_init_data) {
  4760. .name = "gcc_qmip_pcie_4_ahb_clk",
  4761. .ops = &clk_branch2_ops,
  4762. },
  4763. },
  4764. };
  4765. static struct clk_branch gcc_qmip_pcie_5_ahb_clk = {
  4766. .halt_reg = 0xc3018,
  4767. .halt_check = BRANCH_HALT_VOTED,
  4768. .hwcg_reg = 0xc3018,
  4769. .hwcg_bit = 1,
  4770. .clkr = {
  4771. .enable_reg = 0x62030,
  4772. .enable_mask = BIT(0),
  4773. .hw.init = &(const struct clk_init_data) {
  4774. .name = "gcc_qmip_pcie_5_ahb_clk",
  4775. .ops = &clk_branch2_ops,
  4776. },
  4777. },
  4778. };
  4779. static struct clk_branch gcc_qmip_pcie_6_ahb_clk = {
  4780. .halt_reg = 0x8a018,
  4781. .halt_check = BRANCH_HALT_VOTED,
  4782. .hwcg_reg = 0x8a018,
  4783. .hwcg_bit = 1,
  4784. .clkr = {
  4785. .enable_reg = 0x62030,
  4786. .enable_mask = BIT(22),
  4787. .hw.init = &(const struct clk_init_data) {
  4788. .name = "gcc_qmip_pcie_6_ahb_clk",
  4789. .ops = &clk_branch2_ops,
  4790. },
  4791. },
  4792. };
  4793. static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = {
  4794. .halt_reg = 0x32018,
  4795. .halt_check = BRANCH_HALT_VOTED,
  4796. .hwcg_reg = 0x32018,
  4797. .hwcg_bit = 1,
  4798. .clkr = {
  4799. .enable_reg = 0x32018,
  4800. .enable_mask = BIT(0),
  4801. .hw.init = &(const struct clk_init_data) {
  4802. .name = "gcc_qmip_video_cv_cpu_ahb_clk",
  4803. .ops = &clk_branch2_ops,
  4804. },
  4805. },
  4806. };
  4807. static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
  4808. .halt_reg = 0x32008,
  4809. .halt_check = BRANCH_HALT_VOTED,
  4810. .hwcg_reg = 0x32008,
  4811. .hwcg_bit = 1,
  4812. .clkr = {
  4813. .enable_reg = 0x32008,
  4814. .enable_mask = BIT(0),
  4815. .hw.init = &(const struct clk_init_data) {
  4816. .name = "gcc_qmip_video_cvp_ahb_clk",
  4817. .ops = &clk_branch2_ops,
  4818. },
  4819. },
  4820. };
  4821. static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = {
  4822. .halt_reg = 0x32014,
  4823. .halt_check = BRANCH_HALT_VOTED,
  4824. .hwcg_reg = 0x32014,
  4825. .hwcg_bit = 1,
  4826. .clkr = {
  4827. .enable_reg = 0x32014,
  4828. .enable_mask = BIT(0),
  4829. .hw.init = &(const struct clk_init_data) {
  4830. .name = "gcc_qmip_video_v_cpu_ahb_clk",
  4831. .ops = &clk_branch2_ops,
  4832. },
  4833. },
  4834. };
  4835. static struct clk_branch gcc_qmip_video_vcodec1_ahb_clk = {
  4836. .halt_reg = 0x32010,
  4837. .halt_check = BRANCH_HALT_VOTED,
  4838. .hwcg_reg = 0x32010,
  4839. .hwcg_bit = 1,
  4840. .clkr = {
  4841. .enable_reg = 0x32010,
  4842. .enable_mask = BIT(0),
  4843. .hw.init = &(const struct clk_init_data) {
  4844. .name = "gcc_qmip_video_vcodec1_ahb_clk",
  4845. .ops = &clk_branch2_ops,
  4846. },
  4847. },
  4848. };
  4849. static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
  4850. .halt_reg = 0x3200c,
  4851. .halt_check = BRANCH_HALT_VOTED,
  4852. .hwcg_reg = 0x3200c,
  4853. .hwcg_bit = 1,
  4854. .clkr = {
  4855. .enable_reg = 0x3200c,
  4856. .enable_mask = BIT(0),
  4857. .hw.init = &(const struct clk_init_data) {
  4858. .name = "gcc_qmip_video_vcodec_ahb_clk",
  4859. .ops = &clk_branch2_ops,
  4860. },
  4861. },
  4862. };
  4863. static struct clk_branch gcc_qupv3_oob_core_2x_clk = {
  4864. .halt_reg = 0xc5040,
  4865. .halt_check = BRANCH_HALT_VOTED,
  4866. .clkr = {
  4867. .enable_reg = 0x62018,
  4868. .enable_mask = BIT(5),
  4869. .hw.init = &(const struct clk_init_data) {
  4870. .name = "gcc_qupv3_oob_core_2x_clk",
  4871. .ops = &clk_branch2_ops,
  4872. },
  4873. },
  4874. };
  4875. static struct clk_branch gcc_qupv3_oob_core_clk = {
  4876. .halt_reg = 0xc502c,
  4877. .halt_check = BRANCH_HALT_VOTED,
  4878. .clkr = {
  4879. .enable_reg = 0x62018,
  4880. .enable_mask = BIT(4),
  4881. .hw.init = &(const struct clk_init_data) {
  4882. .name = "gcc_qupv3_oob_core_clk",
  4883. .ops = &clk_branch2_ops,
  4884. },
  4885. },
  4886. };
  4887. static struct clk_branch gcc_qupv3_oob_m_ahb_clk = {
  4888. .halt_reg = 0xe7004,
  4889. .halt_check = BRANCH_HALT_VOTED,
  4890. .hwcg_reg = 0xe7004,
  4891. .hwcg_bit = 1,
  4892. .clkr = {
  4893. .enable_reg = 0xe7004,
  4894. .enable_mask = BIT(0),
  4895. .hw.init = &(const struct clk_init_data) {
  4896. .name = "gcc_qupv3_oob_m_ahb_clk",
  4897. .ops = &clk_branch2_ops,
  4898. },
  4899. },
  4900. };
  4901. static struct clk_branch gcc_qupv3_oob_qspi_s0_clk = {
  4902. .halt_reg = 0xe7040,
  4903. .halt_check = BRANCH_HALT_VOTED,
  4904. .clkr = {
  4905. .enable_reg = 0x62018,
  4906. .enable_mask = BIT(9),
  4907. .hw.init = &(const struct clk_init_data) {
  4908. .name = "gcc_qupv3_oob_qspi_s0_clk",
  4909. .parent_hws = (const struct clk_hw*[]) {
  4910. &gcc_qupv3_oob_qspi_s0_clk_src.clkr.hw,
  4911. },
  4912. .num_parents = 1,
  4913. .flags = CLK_SET_RATE_PARENT,
  4914. .ops = &clk_branch2_ops,
  4915. },
  4916. },
  4917. };
  4918. static struct clk_branch gcc_qupv3_oob_qspi_s1_clk = {
  4919. .halt_reg = 0xe729c,
  4920. .halt_check = BRANCH_HALT_VOTED,
  4921. .clkr = {
  4922. .enable_reg = 0x62018,
  4923. .enable_mask = BIT(10),
  4924. .hw.init = &(const struct clk_init_data) {
  4925. .name = "gcc_qupv3_oob_qspi_s1_clk",
  4926. .parent_hws = (const struct clk_hw*[]) {
  4927. &gcc_qupv3_oob_qspi_s1_clk_src.clkr.hw,
  4928. },
  4929. .num_parents = 1,
  4930. .flags = CLK_SET_RATE_PARENT,
  4931. .ops = &clk_branch2_ops,
  4932. },
  4933. },
  4934. };
  4935. static struct clk_branch gcc_qupv3_oob_s0_clk = {
  4936. .halt_reg = 0xe7014,
  4937. .halt_check = BRANCH_HALT_VOTED,
  4938. .clkr = {
  4939. .enable_reg = 0x62018,
  4940. .enable_mask = BIT(6),
  4941. .hw.init = &(const struct clk_init_data) {
  4942. .name = "gcc_qupv3_oob_s0_clk",
  4943. .parent_hws = (const struct clk_hw*[]) {
  4944. &gcc_qupv3_oob_s0_clk_src.clkr.hw,
  4945. },
  4946. .num_parents = 1,
  4947. .flags = CLK_SET_RATE_PARENT,
  4948. .ops = &clk_branch2_ops,
  4949. },
  4950. },
  4951. };
  4952. static struct clk_branch gcc_qupv3_oob_s1_clk = {
  4953. .halt_reg = 0xe7028,
  4954. .halt_check = BRANCH_HALT_VOTED,
  4955. .clkr = {
  4956. .enable_reg = 0x62018,
  4957. .enable_mask = BIT(7),
  4958. .hw.init = &(const struct clk_init_data) {
  4959. .name = "gcc_qupv3_oob_s1_clk",
  4960. .parent_hws = (const struct clk_hw*[]) {
  4961. &gcc_qupv3_oob_s1_clk_src.clkr.hw,
  4962. },
  4963. .num_parents = 1,
  4964. .flags = CLK_SET_RATE_PARENT,
  4965. .ops = &clk_branch2_ops,
  4966. },
  4967. },
  4968. };
  4969. static struct clk_branch gcc_qupv3_oob_s_ahb_clk = {
  4970. .halt_reg = 0xc5028,
  4971. .halt_check = BRANCH_HALT_VOTED,
  4972. .hwcg_reg = 0xc5028,
  4973. .hwcg_bit = 1,
  4974. .clkr = {
  4975. .enable_reg = 0x62018,
  4976. .enable_mask = BIT(3),
  4977. .hw.init = &(const struct clk_init_data) {
  4978. .name = "gcc_qupv3_oob_s_ahb_clk",
  4979. .ops = &clk_branch2_ops,
  4980. },
  4981. },
  4982. };
  4983. static struct clk_branch gcc_qupv3_oob_tcxo_clk = {
  4984. .halt_reg = 0xe703c,
  4985. .halt_check = BRANCH_HALT_VOTED,
  4986. .clkr = {
  4987. .enable_reg = 0x62018,
  4988. .enable_mask = BIT(8),
  4989. .hw.init = &(const struct clk_init_data) {
  4990. .name = "gcc_qupv3_oob_tcxo_clk",
  4991. .ops = &clk_branch2_ops,
  4992. },
  4993. },
  4994. };
  4995. static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
  4996. .halt_reg = 0xc5448,
  4997. .halt_check = BRANCH_HALT_VOTED,
  4998. .clkr = {
  4999. .enable_reg = 0x62020,
  5000. .enable_mask = BIT(12),
  5001. .hw.init = &(const struct clk_init_data) {
  5002. .name = "gcc_qupv3_wrap0_core_2x_clk",
  5003. .ops = &clk_branch2_ops,
  5004. },
  5005. },
  5006. };
  5007. static struct clk_branch gcc_qupv3_wrap0_core_clk = {
  5008. .halt_reg = 0xc5434,
  5009. .halt_check = BRANCH_HALT_VOTED,
  5010. .clkr = {
  5011. .enable_reg = 0x62020,
  5012. .enable_mask = BIT(11),
  5013. .hw.init = &(const struct clk_init_data) {
  5014. .name = "gcc_qupv3_wrap0_core_clk",
  5015. .ops = &clk_branch2_ops,
  5016. },
  5017. },
  5018. };
  5019. static struct clk_branch gcc_qupv3_wrap0_qspi_s2_clk = {
  5020. .halt_reg = 0x2879c,
  5021. .halt_check = BRANCH_HALT_VOTED,
  5022. .clkr = {
  5023. .enable_reg = 0x62020,
  5024. .enable_mask = BIT(22),
  5025. .hw.init = &(const struct clk_init_data) {
  5026. .name = "gcc_qupv3_wrap0_qspi_s2_clk",
  5027. .parent_hws = (const struct clk_hw*[]) {
  5028. &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr.hw,
  5029. },
  5030. .num_parents = 1,
  5031. .flags = CLK_SET_RATE_PARENT,
  5032. .ops = &clk_branch2_ops,
  5033. },
  5034. },
  5035. };
  5036. static struct clk_branch gcc_qupv3_wrap0_qspi_s3_clk = {
  5037. .halt_reg = 0x288cc,
  5038. .halt_check = BRANCH_HALT_VOTED,
  5039. .clkr = {
  5040. .enable_reg = 0x62020,
  5041. .enable_mask = BIT(23),
  5042. .hw.init = &(const struct clk_init_data) {
  5043. .name = "gcc_qupv3_wrap0_qspi_s3_clk",
  5044. .parent_hws = (const struct clk_hw*[]) {
  5045. &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr.hw,
  5046. },
  5047. .num_parents = 1,
  5048. .flags = CLK_SET_RATE_PARENT,
  5049. .ops = &clk_branch2_ops,
  5050. },
  5051. },
  5052. };
  5053. static struct clk_branch gcc_qupv3_wrap0_qspi_s6_clk = {
  5054. .halt_reg = 0x28798,
  5055. .halt_check = BRANCH_HALT_VOTED,
  5056. .clkr = {
  5057. .enable_reg = 0x62020,
  5058. .enable_mask = BIT(21),
  5059. .hw.init = &(const struct clk_init_data) {
  5060. .name = "gcc_qupv3_wrap0_qspi_s6_clk",
  5061. .parent_hws = (const struct clk_hw*[]) {
  5062. &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr.hw,
  5063. },
  5064. .num_parents = 1,
  5065. .flags = CLK_SET_RATE_PARENT,
  5066. .ops = &clk_branch2_ops,
  5067. },
  5068. },
  5069. };
  5070. static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
  5071. .halt_reg = 0x28004,
  5072. .halt_check = BRANCH_HALT_VOTED,
  5073. .clkr = {
  5074. .enable_reg = 0x62020,
  5075. .enable_mask = BIT(13),
  5076. .hw.init = &(const struct clk_init_data) {
  5077. .name = "gcc_qupv3_wrap0_s0_clk",
  5078. .parent_hws = (const struct clk_hw*[]) {
  5079. &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
  5080. },
  5081. .num_parents = 1,
  5082. .flags = CLK_SET_RATE_PARENT,
  5083. .ops = &clk_branch2_ops,
  5084. },
  5085. },
  5086. };
  5087. static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
  5088. .halt_reg = 0x28140,
  5089. .halt_check = BRANCH_HALT_VOTED,
  5090. .clkr = {
  5091. .enable_reg = 0x62020,
  5092. .enable_mask = BIT(14),
  5093. .hw.init = &(const struct clk_init_data) {
  5094. .name = "gcc_qupv3_wrap0_s1_clk",
  5095. .parent_hws = (const struct clk_hw*[]) {
  5096. &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
  5097. },
  5098. .num_parents = 1,
  5099. .flags = CLK_SET_RATE_PARENT,
  5100. .ops = &clk_branch2_ops,
  5101. },
  5102. },
  5103. };
  5104. static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
  5105. .halt_reg = 0x2827c,
  5106. .halt_check = BRANCH_HALT_VOTED,
  5107. .clkr = {
  5108. .enable_reg = 0x62020,
  5109. .enable_mask = BIT(15),
  5110. .hw.init = &(const struct clk_init_data) {
  5111. .name = "gcc_qupv3_wrap0_s2_clk",
  5112. .parent_hws = (const struct clk_hw*[]) {
  5113. &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
  5114. },
  5115. .num_parents = 1,
  5116. .flags = CLK_SET_RATE_PARENT,
  5117. .ops = &clk_branch2_ops,
  5118. },
  5119. },
  5120. };
  5121. static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
  5122. .halt_reg = 0x28290,
  5123. .halt_check = BRANCH_HALT_VOTED,
  5124. .clkr = {
  5125. .enable_reg = 0x62020,
  5126. .enable_mask = BIT(16),
  5127. .hw.init = &(const struct clk_init_data) {
  5128. .name = "gcc_qupv3_wrap0_s3_clk",
  5129. .parent_hws = (const struct clk_hw*[]) {
  5130. &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
  5131. },
  5132. .num_parents = 1,
  5133. .flags = CLK_SET_RATE_PARENT,
  5134. .ops = &clk_branch2_ops,
  5135. },
  5136. },
  5137. };
  5138. static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
  5139. .halt_reg = 0x282a4,
  5140. .halt_check = BRANCH_HALT_VOTED,
  5141. .clkr = {
  5142. .enable_reg = 0x62020,
  5143. .enable_mask = BIT(17),
  5144. .hw.init = &(const struct clk_init_data) {
  5145. .name = "gcc_qupv3_wrap0_s4_clk",
  5146. .parent_hws = (const struct clk_hw*[]) {
  5147. &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
  5148. },
  5149. .num_parents = 1,
  5150. .flags = CLK_SET_RATE_PARENT,
  5151. .ops = &clk_branch2_ops,
  5152. },
  5153. },
  5154. };
  5155. static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
  5156. .halt_reg = 0x283e0,
  5157. .halt_check = BRANCH_HALT_VOTED,
  5158. .clkr = {
  5159. .enable_reg = 0x62020,
  5160. .enable_mask = BIT(18),
  5161. .hw.init = &(const struct clk_init_data) {
  5162. .name = "gcc_qupv3_wrap0_s5_clk",
  5163. .parent_hws = (const struct clk_hw*[]) {
  5164. &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
  5165. },
  5166. .num_parents = 1,
  5167. .flags = CLK_SET_RATE_PARENT,
  5168. .ops = &clk_branch2_ops,
  5169. },
  5170. },
  5171. };
  5172. static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
  5173. .halt_reg = 0x2851c,
  5174. .halt_check = BRANCH_HALT_VOTED,
  5175. .clkr = {
  5176. .enable_reg = 0x62020,
  5177. .enable_mask = BIT(19),
  5178. .hw.init = &(const struct clk_init_data) {
  5179. .name = "gcc_qupv3_wrap0_s6_clk",
  5180. .parent_hws = (const struct clk_hw*[]) {
  5181. &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
  5182. },
  5183. .num_parents = 1,
  5184. .flags = CLK_SET_RATE_PARENT,
  5185. .ops = &clk_branch2_ops,
  5186. },
  5187. },
  5188. };
  5189. static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
  5190. .halt_reg = 0x28530,
  5191. .halt_check = BRANCH_HALT_VOTED,
  5192. .clkr = {
  5193. .enable_reg = 0x62020,
  5194. .enable_mask = BIT(20),
  5195. .hw.init = &(const struct clk_init_data) {
  5196. .name = "gcc_qupv3_wrap0_s7_clk",
  5197. .parent_hws = (const struct clk_hw*[]) {
  5198. &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
  5199. },
  5200. .num_parents = 1,
  5201. .flags = CLK_SET_RATE_PARENT,
  5202. .ops = &clk_branch2_ops,
  5203. },
  5204. },
  5205. };
  5206. static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
  5207. .halt_reg = 0xc5198,
  5208. .halt_check = BRANCH_HALT_VOTED,
  5209. .clkr = {
  5210. .enable_reg = 0x62018,
  5211. .enable_mask = BIT(14),
  5212. .hw.init = &(const struct clk_init_data) {
  5213. .name = "gcc_qupv3_wrap1_core_2x_clk",
  5214. .ops = &clk_branch2_ops,
  5215. },
  5216. },
  5217. };
  5218. static struct clk_branch gcc_qupv3_wrap1_core_clk = {
  5219. .halt_reg = 0xc5184,
  5220. .halt_check = BRANCH_HALT_VOTED,
  5221. .clkr = {
  5222. .enable_reg = 0x62018,
  5223. .enable_mask = BIT(13),
  5224. .hw.init = &(const struct clk_init_data) {
  5225. .name = "gcc_qupv3_wrap1_core_clk",
  5226. .ops = &clk_branch2_ops,
  5227. },
  5228. },
  5229. };
  5230. static struct clk_branch gcc_qupv3_wrap1_qspi_s2_clk = {
  5231. .halt_reg = 0xb379c,
  5232. .halt_check = BRANCH_HALT_VOTED,
  5233. .clkr = {
  5234. .enable_reg = 0x62018,
  5235. .enable_mask = BIT(24),
  5236. .hw.init = &(const struct clk_init_data) {
  5237. .name = "gcc_qupv3_wrap1_qspi_s2_clk",
  5238. .parent_hws = (const struct clk_hw*[]) {
  5239. &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr.hw,
  5240. },
  5241. .num_parents = 1,
  5242. .flags = CLK_SET_RATE_PARENT,
  5243. .ops = &clk_branch2_ops,
  5244. },
  5245. },
  5246. };
  5247. static struct clk_branch gcc_qupv3_wrap1_qspi_s3_clk = {
  5248. .halt_reg = 0xb38cc,
  5249. .halt_check = BRANCH_HALT_VOTED,
  5250. .clkr = {
  5251. .enable_reg = 0x62018,
  5252. .enable_mask = BIT(25),
  5253. .hw.init = &(const struct clk_init_data) {
  5254. .name = "gcc_qupv3_wrap1_qspi_s3_clk",
  5255. .parent_hws = (const struct clk_hw*[]) {
  5256. &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr.hw,
  5257. },
  5258. .num_parents = 1,
  5259. .flags = CLK_SET_RATE_PARENT,
  5260. .ops = &clk_branch2_ops,
  5261. },
  5262. },
  5263. };
  5264. static struct clk_branch gcc_qupv3_wrap1_qspi_s6_clk = {
  5265. .halt_reg = 0xb3798,
  5266. .halt_check = BRANCH_HALT_VOTED,
  5267. .clkr = {
  5268. .enable_reg = 0x62018,
  5269. .enable_mask = BIT(23),
  5270. .hw.init = &(const struct clk_init_data) {
  5271. .name = "gcc_qupv3_wrap1_qspi_s6_clk",
  5272. .parent_hws = (const struct clk_hw*[]) {
  5273. &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr.hw,
  5274. },
  5275. .num_parents = 1,
  5276. .flags = CLK_SET_RATE_PARENT,
  5277. .ops = &clk_branch2_ops,
  5278. },
  5279. },
  5280. };
  5281. static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
  5282. .halt_reg = 0xb3004,
  5283. .halt_check = BRANCH_HALT_VOTED,
  5284. .clkr = {
  5285. .enable_reg = 0x62018,
  5286. .enable_mask = BIT(15),
  5287. .hw.init = &(const struct clk_init_data) {
  5288. .name = "gcc_qupv3_wrap1_s0_clk",
  5289. .parent_hws = (const struct clk_hw*[]) {
  5290. &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
  5291. },
  5292. .num_parents = 1,
  5293. .flags = CLK_SET_RATE_PARENT,
  5294. .ops = &clk_branch2_ops,
  5295. },
  5296. },
  5297. };
  5298. static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
  5299. .halt_reg = 0xb3140,
  5300. .halt_check = BRANCH_HALT_VOTED,
  5301. .clkr = {
  5302. .enable_reg = 0x62018,
  5303. .enable_mask = BIT(16),
  5304. .hw.init = &(const struct clk_init_data) {
  5305. .name = "gcc_qupv3_wrap1_s1_clk",
  5306. .parent_hws = (const struct clk_hw*[]) {
  5307. &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
  5308. },
  5309. .num_parents = 1,
  5310. .flags = CLK_SET_RATE_PARENT,
  5311. .ops = &clk_branch2_ops,
  5312. },
  5313. },
  5314. };
  5315. static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
  5316. .halt_reg = 0xb327c,
  5317. .halt_check = BRANCH_HALT_VOTED,
  5318. .clkr = {
  5319. .enable_reg = 0x62018,
  5320. .enable_mask = BIT(17),
  5321. .hw.init = &(const struct clk_init_data) {
  5322. .name = "gcc_qupv3_wrap1_s2_clk",
  5323. .parent_hws = (const struct clk_hw*[]) {
  5324. &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
  5325. },
  5326. .num_parents = 1,
  5327. .flags = CLK_SET_RATE_PARENT,
  5328. .ops = &clk_branch2_ops,
  5329. },
  5330. },
  5331. };
  5332. static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
  5333. .halt_reg = 0xb3290,
  5334. .halt_check = BRANCH_HALT_VOTED,
  5335. .clkr = {
  5336. .enable_reg = 0x62018,
  5337. .enable_mask = BIT(18),
  5338. .hw.init = &(const struct clk_init_data) {
  5339. .name = "gcc_qupv3_wrap1_s3_clk",
  5340. .parent_hws = (const struct clk_hw*[]) {
  5341. &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
  5342. },
  5343. .num_parents = 1,
  5344. .flags = CLK_SET_RATE_PARENT,
  5345. .ops = &clk_branch2_ops,
  5346. },
  5347. },
  5348. };
  5349. static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
  5350. .halt_reg = 0xb32a4,
  5351. .halt_check = BRANCH_HALT_VOTED,
  5352. .clkr = {
  5353. .enable_reg = 0x62018,
  5354. .enable_mask = BIT(19),
  5355. .hw.init = &(const struct clk_init_data) {
  5356. .name = "gcc_qupv3_wrap1_s4_clk",
  5357. .parent_hws = (const struct clk_hw*[]) {
  5358. &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
  5359. },
  5360. .num_parents = 1,
  5361. .flags = CLK_SET_RATE_PARENT,
  5362. .ops = &clk_branch2_ops,
  5363. },
  5364. },
  5365. };
  5366. static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
  5367. .halt_reg = 0xb33e0,
  5368. .halt_check = BRANCH_HALT_VOTED,
  5369. .clkr = {
  5370. .enable_reg = 0x62018,
  5371. .enable_mask = BIT(20),
  5372. .hw.init = &(const struct clk_init_data) {
  5373. .name = "gcc_qupv3_wrap1_s5_clk",
  5374. .parent_hws = (const struct clk_hw*[]) {
  5375. &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
  5376. },
  5377. .num_parents = 1,
  5378. .flags = CLK_SET_RATE_PARENT,
  5379. .ops = &clk_branch2_ops,
  5380. },
  5381. },
  5382. };
  5383. static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
  5384. .halt_reg = 0xb351c,
  5385. .halt_check = BRANCH_HALT_VOTED,
  5386. .clkr = {
  5387. .enable_reg = 0x62018,
  5388. .enable_mask = BIT(21),
  5389. .hw.init = &(const struct clk_init_data) {
  5390. .name = "gcc_qupv3_wrap1_s6_clk",
  5391. .parent_hws = (const struct clk_hw*[]) {
  5392. &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
  5393. },
  5394. .num_parents = 1,
  5395. .flags = CLK_SET_RATE_PARENT,
  5396. .ops = &clk_branch2_ops,
  5397. },
  5398. },
  5399. };
  5400. static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
  5401. .halt_reg = 0xb3530,
  5402. .halt_check = BRANCH_HALT_VOTED,
  5403. .clkr = {
  5404. .enable_reg = 0x62018,
  5405. .enable_mask = BIT(22),
  5406. .hw.init = &(const struct clk_init_data) {
  5407. .name = "gcc_qupv3_wrap1_s7_clk",
  5408. .parent_hws = (const struct clk_hw*[]) {
  5409. &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
  5410. },
  5411. .num_parents = 1,
  5412. .flags = CLK_SET_RATE_PARENT,
  5413. .ops = &clk_branch2_ops,
  5414. },
  5415. },
  5416. };
  5417. static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
  5418. .halt_reg = 0xc52f0,
  5419. .halt_check = BRANCH_HALT_VOTED,
  5420. .clkr = {
  5421. .enable_reg = 0x62018,
  5422. .enable_mask = BIT(29),
  5423. .hw.init = &(const struct clk_init_data) {
  5424. .name = "gcc_qupv3_wrap2_core_2x_clk",
  5425. .ops = &clk_branch2_ops,
  5426. },
  5427. },
  5428. };
  5429. static struct clk_branch gcc_qupv3_wrap2_core_clk = {
  5430. .halt_reg = 0xc52dc,
  5431. .halt_check = BRANCH_HALT_VOTED,
  5432. .clkr = {
  5433. .enable_reg = 0x62018,
  5434. .enable_mask = BIT(28),
  5435. .hw.init = &(const struct clk_init_data) {
  5436. .name = "gcc_qupv3_wrap2_core_clk",
  5437. .ops = &clk_branch2_ops,
  5438. },
  5439. },
  5440. };
  5441. static struct clk_branch gcc_qupv3_wrap2_qspi_s2_clk = {
  5442. .halt_reg = 0xb479c,
  5443. .halt_check = BRANCH_HALT_VOTED,
  5444. .clkr = {
  5445. .enable_reg = 0x62020,
  5446. .enable_mask = BIT(7),
  5447. .hw.init = &(const struct clk_init_data) {
  5448. .name = "gcc_qupv3_wrap2_qspi_s2_clk",
  5449. .parent_hws = (const struct clk_hw*[]) {
  5450. &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr.hw,
  5451. },
  5452. .num_parents = 1,
  5453. .flags = CLK_SET_RATE_PARENT,
  5454. .ops = &clk_branch2_ops,
  5455. },
  5456. },
  5457. };
  5458. static struct clk_branch gcc_qupv3_wrap2_qspi_s3_clk = {
  5459. .halt_reg = 0xb48cc,
  5460. .halt_check = BRANCH_HALT_VOTED,
  5461. .clkr = {
  5462. .enable_reg = 0x62020,
  5463. .enable_mask = BIT(8),
  5464. .hw.init = &(const struct clk_init_data) {
  5465. .name = "gcc_qupv3_wrap2_qspi_s3_clk",
  5466. .parent_hws = (const struct clk_hw*[]) {
  5467. &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr.hw,
  5468. },
  5469. .num_parents = 1,
  5470. .flags = CLK_SET_RATE_PARENT,
  5471. .ops = &clk_branch2_ops,
  5472. },
  5473. },
  5474. };
  5475. static struct clk_branch gcc_qupv3_wrap2_qspi_s6_clk = {
  5476. .halt_reg = 0xb4798,
  5477. .halt_check = BRANCH_HALT_VOTED,
  5478. .clkr = {
  5479. .enable_reg = 0x62020,
  5480. .enable_mask = BIT(6),
  5481. .hw.init = &(const struct clk_init_data) {
  5482. .name = "gcc_qupv3_wrap2_qspi_s6_clk",
  5483. .parent_hws = (const struct clk_hw*[]) {
  5484. &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr.hw,
  5485. },
  5486. .num_parents = 1,
  5487. .flags = CLK_SET_RATE_PARENT,
  5488. .ops = &clk_branch2_ops,
  5489. },
  5490. },
  5491. };
  5492. static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
  5493. .halt_reg = 0xb4004,
  5494. .halt_check = BRANCH_HALT_VOTED,
  5495. .clkr = {
  5496. .enable_reg = 0x62018,
  5497. .enable_mask = BIT(30),
  5498. .hw.init = &(const struct clk_init_data) {
  5499. .name = "gcc_qupv3_wrap2_s0_clk",
  5500. .parent_hws = (const struct clk_hw*[]) {
  5501. &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
  5502. },
  5503. .num_parents = 1,
  5504. .flags = CLK_SET_RATE_PARENT,
  5505. .ops = &clk_branch2_ops,
  5506. },
  5507. },
  5508. };
  5509. static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
  5510. .halt_reg = 0xb4140,
  5511. .halt_check = BRANCH_HALT_VOTED,
  5512. .clkr = {
  5513. .enable_reg = 0x62018,
  5514. .enable_mask = BIT(31),
  5515. .hw.init = &(const struct clk_init_data) {
  5516. .name = "gcc_qupv3_wrap2_s1_clk",
  5517. .parent_hws = (const struct clk_hw*[]) {
  5518. &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
  5519. },
  5520. .num_parents = 1,
  5521. .flags = CLK_SET_RATE_PARENT,
  5522. .ops = &clk_branch2_ops,
  5523. },
  5524. },
  5525. };
  5526. static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
  5527. .halt_reg = 0xb427c,
  5528. .halt_check = BRANCH_HALT_VOTED,
  5529. .clkr = {
  5530. .enable_reg = 0x62020,
  5531. .enable_mask = BIT(0),
  5532. .hw.init = &(const struct clk_init_data) {
  5533. .name = "gcc_qupv3_wrap2_s2_clk",
  5534. .parent_hws = (const struct clk_hw*[]) {
  5535. &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
  5536. },
  5537. .num_parents = 1,
  5538. .flags = CLK_SET_RATE_PARENT,
  5539. .ops = &clk_branch2_ops,
  5540. },
  5541. },
  5542. };
  5543. static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
  5544. .halt_reg = 0xb4290,
  5545. .halt_check = BRANCH_HALT_VOTED,
  5546. .clkr = {
  5547. .enable_reg = 0x62020,
  5548. .enable_mask = BIT(1),
  5549. .hw.init = &(const struct clk_init_data) {
  5550. .name = "gcc_qupv3_wrap2_s3_clk",
  5551. .parent_hws = (const struct clk_hw*[]) {
  5552. &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
  5553. },
  5554. .num_parents = 1,
  5555. .flags = CLK_SET_RATE_PARENT,
  5556. .ops = &clk_branch2_ops,
  5557. },
  5558. },
  5559. };
  5560. static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
  5561. .halt_reg = 0xb42a4,
  5562. .halt_check = BRANCH_HALT_VOTED,
  5563. .clkr = {
  5564. .enable_reg = 0x62020,
  5565. .enable_mask = BIT(2),
  5566. .hw.init = &(const struct clk_init_data) {
  5567. .name = "gcc_qupv3_wrap2_s4_clk",
  5568. .parent_hws = (const struct clk_hw*[]) {
  5569. &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
  5570. },
  5571. .num_parents = 1,
  5572. .flags = CLK_SET_RATE_PARENT,
  5573. .ops = &clk_branch2_ops,
  5574. },
  5575. },
  5576. };
  5577. static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
  5578. .halt_reg = 0xb43e0,
  5579. .halt_check = BRANCH_HALT_VOTED,
  5580. .clkr = {
  5581. .enable_reg = 0x62020,
  5582. .enable_mask = BIT(3),
  5583. .hw.init = &(const struct clk_init_data) {
  5584. .name = "gcc_qupv3_wrap2_s5_clk",
  5585. .parent_hws = (const struct clk_hw*[]) {
  5586. &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
  5587. },
  5588. .num_parents = 1,
  5589. .flags = CLK_SET_RATE_PARENT,
  5590. .ops = &clk_branch2_ops,
  5591. },
  5592. },
  5593. };
  5594. static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
  5595. .halt_reg = 0xb451c,
  5596. .halt_check = BRANCH_HALT_VOTED,
  5597. .clkr = {
  5598. .enable_reg = 0x62020,
  5599. .enable_mask = BIT(4),
  5600. .hw.init = &(const struct clk_init_data) {
  5601. .name = "gcc_qupv3_wrap2_s6_clk",
  5602. .parent_hws = (const struct clk_hw*[]) {
  5603. &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
  5604. },
  5605. .num_parents = 1,
  5606. .flags = CLK_SET_RATE_PARENT,
  5607. .ops = &clk_branch2_ops,
  5608. },
  5609. },
  5610. };
  5611. static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
  5612. .halt_reg = 0xb4530,
  5613. .halt_check = BRANCH_HALT_VOTED,
  5614. .clkr = {
  5615. .enable_reg = 0x62020,
  5616. .enable_mask = BIT(5),
  5617. .hw.init = &(const struct clk_init_data) {
  5618. .name = "gcc_qupv3_wrap2_s7_clk",
  5619. .parent_hws = (const struct clk_hw*[]) {
  5620. &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
  5621. },
  5622. .num_parents = 1,
  5623. .flags = CLK_SET_RATE_PARENT,
  5624. .ops = &clk_branch2_ops,
  5625. },
  5626. },
  5627. };
  5628. static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
  5629. .halt_reg = 0xc542c,
  5630. .halt_check = BRANCH_HALT_VOTED,
  5631. .hwcg_reg = 0xc542c,
  5632. .hwcg_bit = 1,
  5633. .clkr = {
  5634. .enable_reg = 0x62020,
  5635. .enable_mask = BIT(9),
  5636. .hw.init = &(const struct clk_init_data) {
  5637. .name = "gcc_qupv3_wrap_0_m_ahb_clk",
  5638. .ops = &clk_branch2_ops,
  5639. },
  5640. },
  5641. };
  5642. static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
  5643. .halt_reg = 0xc5430,
  5644. .halt_check = BRANCH_HALT_VOTED,
  5645. .hwcg_reg = 0xc5430,
  5646. .hwcg_bit = 1,
  5647. .clkr = {
  5648. .enable_reg = 0x62020,
  5649. .enable_mask = BIT(10),
  5650. .hw.init = &(const struct clk_init_data) {
  5651. .name = "gcc_qupv3_wrap_0_s_ahb_clk",
  5652. .ops = &clk_branch2_ops,
  5653. },
  5654. },
  5655. };
  5656. static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
  5657. .halt_reg = 0xc517c,
  5658. .halt_check = BRANCH_HALT_VOTED,
  5659. .hwcg_reg = 0xc517c,
  5660. .hwcg_bit = 1,
  5661. .clkr = {
  5662. .enable_reg = 0x62018,
  5663. .enable_mask = BIT(11),
  5664. .hw.init = &(const struct clk_init_data) {
  5665. .name = "gcc_qupv3_wrap_1_m_ahb_clk",
  5666. .ops = &clk_branch2_ops,
  5667. },
  5668. },
  5669. };
  5670. static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
  5671. .halt_reg = 0xc5180,
  5672. .halt_check = BRANCH_HALT_VOTED,
  5673. .hwcg_reg = 0xc5180,
  5674. .hwcg_bit = 1,
  5675. .clkr = {
  5676. .enable_reg = 0x62018,
  5677. .enable_mask = BIT(12),
  5678. .hw.init = &(const struct clk_init_data) {
  5679. .name = "gcc_qupv3_wrap_1_s_ahb_clk",
  5680. .ops = &clk_branch2_ops,
  5681. },
  5682. },
  5683. };
  5684. static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
  5685. .halt_reg = 0xc52d4,
  5686. .halt_check = BRANCH_HALT_VOTED,
  5687. .hwcg_reg = 0xc52d4,
  5688. .hwcg_bit = 1,
  5689. .clkr = {
  5690. .enable_reg = 0x62018,
  5691. .enable_mask = BIT(26),
  5692. .hw.init = &(const struct clk_init_data) {
  5693. .name = "gcc_qupv3_wrap_2_m_ahb_clk",
  5694. .ops = &clk_branch2_ops,
  5695. },
  5696. },
  5697. };
  5698. static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
  5699. .halt_reg = 0xc52d8,
  5700. .halt_check = BRANCH_HALT_VOTED,
  5701. .hwcg_reg = 0xc52d8,
  5702. .hwcg_bit = 1,
  5703. .clkr = {
  5704. .enable_reg = 0x62018,
  5705. .enable_mask = BIT(27),
  5706. .hw.init = &(const struct clk_init_data) {
  5707. .name = "gcc_qupv3_wrap_2_s_ahb_clk",
  5708. .ops = &clk_branch2_ops,
  5709. },
  5710. },
  5711. };
  5712. static struct clk_branch gcc_sdcc2_ahb_clk = {
  5713. .halt_reg = 0xb0014,
  5714. .halt_check = BRANCH_HALT,
  5715. .clkr = {
  5716. .enable_reg = 0xb0014,
  5717. .enable_mask = BIT(0),
  5718. .hw.init = &(const struct clk_init_data) {
  5719. .name = "gcc_sdcc2_ahb_clk",
  5720. .ops = &clk_branch2_ops,
  5721. },
  5722. },
  5723. };
  5724. static struct clk_branch gcc_sdcc2_apps_clk = {
  5725. .halt_reg = 0xb0004,
  5726. .halt_check = BRANCH_HALT,
  5727. .clkr = {
  5728. .enable_reg = 0xb0004,
  5729. .enable_mask = BIT(0),
  5730. .hw.init = &(const struct clk_init_data) {
  5731. .name = "gcc_sdcc2_apps_clk",
  5732. .parent_hws = (const struct clk_hw*[]) {
  5733. &gcc_sdcc2_apps_clk_src.clkr.hw,
  5734. },
  5735. .num_parents = 1,
  5736. .flags = CLK_SET_RATE_PARENT,
  5737. .ops = &clk_branch2_ops,
  5738. },
  5739. },
  5740. };
  5741. static struct clk_branch gcc_sdcc4_ahb_clk = {
  5742. .halt_reg = 0xdf014,
  5743. .halt_check = BRANCH_HALT,
  5744. .clkr = {
  5745. .enable_reg = 0xdf014,
  5746. .enable_mask = BIT(0),
  5747. .hw.init = &(const struct clk_init_data) {
  5748. .name = "gcc_sdcc4_ahb_clk",
  5749. .ops = &clk_branch2_ops,
  5750. },
  5751. },
  5752. };
  5753. static struct clk_branch gcc_sdcc4_apps_clk = {
  5754. .halt_reg = 0xdf004,
  5755. .halt_check = BRANCH_HALT,
  5756. .clkr = {
  5757. .enable_reg = 0xdf004,
  5758. .enable_mask = BIT(0),
  5759. .hw.init = &(const struct clk_init_data) {
  5760. .name = "gcc_sdcc4_apps_clk",
  5761. .parent_hws = (const struct clk_hw*[]) {
  5762. &gcc_sdcc4_apps_clk_src.clkr.hw,
  5763. },
  5764. .num_parents = 1,
  5765. .flags = CLK_SET_RATE_PARENT,
  5766. .ops = &clk_branch2_ops,
  5767. },
  5768. },
  5769. };
  5770. static struct clk_branch gcc_ufs_phy_ahb_clk = {
  5771. .halt_reg = 0xba504,
  5772. .halt_check = BRANCH_HALT_VOTED,
  5773. .hwcg_reg = 0xba504,
  5774. .hwcg_bit = 1,
  5775. .clkr = {
  5776. .enable_reg = 0xba504,
  5777. .enable_mask = BIT(0),
  5778. .hw.init = &(const struct clk_init_data) {
  5779. .name = "gcc_ufs_phy_ahb_clk",
  5780. .ops = &clk_branch2_ops,
  5781. },
  5782. },
  5783. };
  5784. static struct clk_branch gcc_ufs_phy_axi_clk = {
  5785. .halt_reg = 0x7701c,
  5786. .halt_check = BRANCH_HALT_VOTED,
  5787. .hwcg_reg = 0x7701c,
  5788. .hwcg_bit = 1,
  5789. .clkr = {
  5790. .enable_reg = 0x7701c,
  5791. .enable_mask = BIT(0),
  5792. .hw.init = &(const struct clk_init_data) {
  5793. .name = "gcc_ufs_phy_axi_clk",
  5794. .parent_hws = (const struct clk_hw*[]) {
  5795. &gcc_ufs_phy_axi_clk_src.clkr.hw,
  5796. },
  5797. .num_parents = 1,
  5798. .flags = CLK_SET_RATE_PARENT,
  5799. .ops = &clk_branch2_ops,
  5800. },
  5801. },
  5802. };
  5803. static struct clk_branch gcc_ufs_phy_ice_core_clk = {
  5804. .halt_reg = 0x77080,
  5805. .halt_check = BRANCH_HALT_VOTED,
  5806. .hwcg_reg = 0x77080,
  5807. .hwcg_bit = 1,
  5808. .clkr = {
  5809. .enable_reg = 0x77080,
  5810. .enable_mask = BIT(0),
  5811. .hw.init = &(const struct clk_init_data) {
  5812. .name = "gcc_ufs_phy_ice_core_clk",
  5813. .parent_hws = (const struct clk_hw*[]) {
  5814. &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
  5815. },
  5816. .num_parents = 1,
  5817. .flags = CLK_SET_RATE_PARENT,
  5818. .ops = &clk_branch2_ops,
  5819. },
  5820. },
  5821. };
  5822. static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
  5823. .halt_reg = 0x770c0,
  5824. .halt_check = BRANCH_HALT_VOTED,
  5825. .hwcg_reg = 0x770c0,
  5826. .hwcg_bit = 1,
  5827. .clkr = {
  5828. .enable_reg = 0x770c0,
  5829. .enable_mask = BIT(0),
  5830. .hw.init = &(const struct clk_init_data) {
  5831. .name = "gcc_ufs_phy_phy_aux_clk",
  5832. .parent_hws = (const struct clk_hw*[]) {
  5833. &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
  5834. },
  5835. .num_parents = 1,
  5836. .flags = CLK_SET_RATE_PARENT,
  5837. .ops = &clk_branch2_ops,
  5838. },
  5839. },
  5840. };
  5841. static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
  5842. .halt_reg = 0x77034,
  5843. .halt_check = BRANCH_HALT_DELAY,
  5844. .clkr = {
  5845. .enable_reg = 0x77034,
  5846. .enable_mask = BIT(0),
  5847. .hw.init = &(const struct clk_init_data) {
  5848. .name = "gcc_ufs_phy_rx_symbol_0_clk",
  5849. .parent_hws = (const struct clk_hw*[]) {
  5850. &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
  5851. },
  5852. .num_parents = 1,
  5853. .flags = CLK_SET_RATE_PARENT,
  5854. .ops = &clk_branch2_ops,
  5855. },
  5856. },
  5857. };
  5858. static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
  5859. .halt_reg = 0x770dc,
  5860. .halt_check = BRANCH_HALT_DELAY,
  5861. .clkr = {
  5862. .enable_reg = 0x770dc,
  5863. .enable_mask = BIT(0),
  5864. .hw.init = &(const struct clk_init_data) {
  5865. .name = "gcc_ufs_phy_rx_symbol_1_clk",
  5866. .parent_hws = (const struct clk_hw*[]) {
  5867. &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
  5868. },
  5869. .num_parents = 1,
  5870. .flags = CLK_SET_RATE_PARENT,
  5871. .ops = &clk_branch2_ops,
  5872. },
  5873. },
  5874. };
  5875. static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
  5876. .halt_reg = 0x77030,
  5877. .halt_check = BRANCH_HALT_DELAY,
  5878. .clkr = {
  5879. .enable_reg = 0x77030,
  5880. .enable_mask = BIT(0),
  5881. .hw.init = &(const struct clk_init_data) {
  5882. .name = "gcc_ufs_phy_tx_symbol_0_clk",
  5883. .parent_hws = (const struct clk_hw*[]) {
  5884. &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
  5885. },
  5886. .num_parents = 1,
  5887. .flags = CLK_SET_RATE_PARENT,
  5888. .ops = &clk_branch2_ops,
  5889. },
  5890. },
  5891. };
  5892. static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
  5893. .halt_reg = 0x77070,
  5894. .halt_check = BRANCH_HALT_VOTED,
  5895. .hwcg_reg = 0x77070,
  5896. .hwcg_bit = 1,
  5897. .clkr = {
  5898. .enable_reg = 0x77070,
  5899. .enable_mask = BIT(0),
  5900. .hw.init = &(const struct clk_init_data) {
  5901. .name = "gcc_ufs_phy_unipro_core_clk",
  5902. .parent_hws = (const struct clk_hw*[]) {
  5903. &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
  5904. },
  5905. .num_parents = 1,
  5906. .flags = CLK_SET_RATE_PARENT,
  5907. .ops = &clk_branch2_ops,
  5908. },
  5909. },
  5910. };
  5911. static struct clk_branch gcc_usb20_master_clk = {
  5912. .halt_reg = 0xbc018,
  5913. .halt_check = BRANCH_HALT,
  5914. .clkr = {
  5915. .enable_reg = 0xbc018,
  5916. .enable_mask = BIT(0),
  5917. .hw.init = &(const struct clk_init_data) {
  5918. .name = "gcc_usb20_master_clk",
  5919. .parent_hws = (const struct clk_hw*[]) {
  5920. &gcc_usb20_master_clk_src.clkr.hw,
  5921. },
  5922. .num_parents = 1,
  5923. .flags = CLK_SET_RATE_PARENT,
  5924. .ops = &clk_branch2_ops,
  5925. },
  5926. },
  5927. };
  5928. static struct clk_branch gcc_usb20_mock_utmi_clk = {
  5929. .halt_reg = 0xbc02c,
  5930. .halt_check = BRANCH_HALT,
  5931. .clkr = {
  5932. .enable_reg = 0xbc02c,
  5933. .enable_mask = BIT(0),
  5934. .hw.init = &(const struct clk_init_data) {
  5935. .name = "gcc_usb20_mock_utmi_clk",
  5936. .parent_hws = (const struct clk_hw*[]) {
  5937. &gcc_usb20_mock_utmi_postdiv_clk_src.clkr.hw,
  5938. },
  5939. .num_parents = 1,
  5940. .flags = CLK_SET_RATE_PARENT,
  5941. .ops = &clk_branch2_ops,
  5942. },
  5943. },
  5944. };
  5945. static struct clk_branch gcc_usb20_sleep_clk = {
  5946. .halt_reg = 0xbc028,
  5947. .halt_check = BRANCH_HALT,
  5948. .clkr = {
  5949. .enable_reg = 0xbc028,
  5950. .enable_mask = BIT(0),
  5951. .hw.init = &(const struct clk_init_data) {
  5952. .name = "gcc_usb20_sleep_clk",
  5953. .ops = &clk_branch2_ops,
  5954. },
  5955. },
  5956. };
  5957. static struct clk_branch gcc_usb30_mp_master_clk = {
  5958. .halt_reg = 0x9a024,
  5959. .halt_check = BRANCH_HALT,
  5960. .clkr = {
  5961. .enable_reg = 0x9a024,
  5962. .enable_mask = BIT(0),
  5963. .hw.init = &(const struct clk_init_data) {
  5964. .name = "gcc_usb30_mp_master_clk",
  5965. .parent_hws = (const struct clk_hw*[]) {
  5966. &gcc_usb30_mp_master_clk_src.clkr.hw,
  5967. },
  5968. .num_parents = 1,
  5969. .flags = CLK_SET_RATE_PARENT,
  5970. .ops = &clk_branch2_ops,
  5971. },
  5972. },
  5973. };
  5974. static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
  5975. .halt_reg = 0x9a038,
  5976. .halt_check = BRANCH_HALT,
  5977. .clkr = {
  5978. .enable_reg = 0x9a038,
  5979. .enable_mask = BIT(0),
  5980. .hw.init = &(const struct clk_init_data) {
  5981. .name = "gcc_usb30_mp_mock_utmi_clk",
  5982. .parent_hws = (const struct clk_hw*[]) {
  5983. &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
  5984. },
  5985. .num_parents = 1,
  5986. .flags = CLK_SET_RATE_PARENT,
  5987. .ops = &clk_branch2_ops,
  5988. },
  5989. },
  5990. };
  5991. static struct clk_branch gcc_usb30_mp_sleep_clk = {
  5992. .halt_reg = 0x9a034,
  5993. .halt_check = BRANCH_HALT,
  5994. .clkr = {
  5995. .enable_reg = 0x9a034,
  5996. .enable_mask = BIT(0),
  5997. .hw.init = &(const struct clk_init_data) {
  5998. .name = "gcc_usb30_mp_sleep_clk",
  5999. .ops = &clk_branch2_ops,
  6000. },
  6001. },
  6002. };
  6003. static struct clk_branch gcc_usb30_prim_master_clk = {
  6004. .halt_reg = 0x3f030,
  6005. .halt_check = BRANCH_HALT,
  6006. .clkr = {
  6007. .enable_reg = 0x3f030,
  6008. .enable_mask = BIT(0),
  6009. .hw.init = &(const struct clk_init_data) {
  6010. .name = "gcc_usb30_prim_master_clk",
  6011. .parent_hws = (const struct clk_hw*[]) {
  6012. &gcc_usb30_prim_master_clk_src.clkr.hw,
  6013. },
  6014. .num_parents = 1,
  6015. .flags = CLK_SET_RATE_PARENT,
  6016. .ops = &clk_branch2_ops,
  6017. },
  6018. },
  6019. };
  6020. static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
  6021. .halt_reg = 0x3f048,
  6022. .halt_check = BRANCH_HALT,
  6023. .clkr = {
  6024. .enable_reg = 0x3f048,
  6025. .enable_mask = BIT(0),
  6026. .hw.init = &(const struct clk_init_data) {
  6027. .name = "gcc_usb30_prim_mock_utmi_clk",
  6028. .parent_hws = (const struct clk_hw*[]) {
  6029. &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
  6030. },
  6031. .num_parents = 1,
  6032. .flags = CLK_SET_RATE_PARENT,
  6033. .ops = &clk_branch2_ops,
  6034. },
  6035. },
  6036. };
  6037. static struct clk_branch gcc_usb30_prim_sleep_clk = {
  6038. .halt_reg = 0x3f044,
  6039. .halt_check = BRANCH_HALT,
  6040. .clkr = {
  6041. .enable_reg = 0x3f044,
  6042. .enable_mask = BIT(0),
  6043. .hw.init = &(const struct clk_init_data) {
  6044. .name = "gcc_usb30_prim_sleep_clk",
  6045. .ops = &clk_branch2_ops,
  6046. },
  6047. },
  6048. };
  6049. static struct clk_branch gcc_usb30_sec_master_clk = {
  6050. .halt_reg = 0xe2024,
  6051. .halt_check = BRANCH_HALT,
  6052. .clkr = {
  6053. .enable_reg = 0xe2024,
  6054. .enable_mask = BIT(0),
  6055. .hw.init = &(const struct clk_init_data) {
  6056. .name = "gcc_usb30_sec_master_clk",
  6057. .parent_hws = (const struct clk_hw*[]) {
  6058. &gcc_usb30_sec_master_clk_src.clkr.hw,
  6059. },
  6060. .num_parents = 1,
  6061. .flags = CLK_SET_RATE_PARENT,
  6062. .ops = &clk_branch2_ops,
  6063. },
  6064. },
  6065. };
  6066. static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
  6067. .halt_reg = 0xe2038,
  6068. .halt_check = BRANCH_HALT,
  6069. .clkr = {
  6070. .enable_reg = 0xe2038,
  6071. .enable_mask = BIT(0),
  6072. .hw.init = &(const struct clk_init_data) {
  6073. .name = "gcc_usb30_sec_mock_utmi_clk",
  6074. .parent_hws = (const struct clk_hw*[]) {
  6075. &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
  6076. },
  6077. .num_parents = 1,
  6078. .flags = CLK_SET_RATE_PARENT,
  6079. .ops = &clk_branch2_ops,
  6080. },
  6081. },
  6082. };
  6083. static struct clk_branch gcc_usb30_sec_sleep_clk = {
  6084. .halt_reg = 0xe2034,
  6085. .halt_check = BRANCH_HALT,
  6086. .clkr = {
  6087. .enable_reg = 0xe2034,
  6088. .enable_mask = BIT(0),
  6089. .hw.init = &(const struct clk_init_data) {
  6090. .name = "gcc_usb30_sec_sleep_clk",
  6091. .ops = &clk_branch2_ops,
  6092. },
  6093. },
  6094. };
  6095. static struct clk_branch gcc_usb30_tert_master_clk = {
  6096. .halt_reg = 0xe1024,
  6097. .halt_check = BRANCH_HALT,
  6098. .clkr = {
  6099. .enable_reg = 0xe1024,
  6100. .enable_mask = BIT(0),
  6101. .hw.init = &(const struct clk_init_data) {
  6102. .name = "gcc_usb30_tert_master_clk",
  6103. .parent_hws = (const struct clk_hw*[]) {
  6104. &gcc_usb30_tert_master_clk_src.clkr.hw,
  6105. },
  6106. .num_parents = 1,
  6107. .flags = CLK_SET_RATE_PARENT,
  6108. .ops = &clk_branch2_ops,
  6109. },
  6110. },
  6111. };
  6112. static struct clk_branch gcc_usb30_tert_mock_utmi_clk = {
  6113. .halt_reg = 0xe1038,
  6114. .halt_check = BRANCH_HALT,
  6115. .clkr = {
  6116. .enable_reg = 0xe1038,
  6117. .enable_mask = BIT(0),
  6118. .hw.init = &(const struct clk_init_data) {
  6119. .name = "gcc_usb30_tert_mock_utmi_clk",
  6120. .parent_hws = (const struct clk_hw*[]) {
  6121. &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr.hw,
  6122. },
  6123. .num_parents = 1,
  6124. .flags = CLK_SET_RATE_PARENT,
  6125. .ops = &clk_branch2_ops,
  6126. },
  6127. },
  6128. };
  6129. static struct clk_branch gcc_usb30_tert_sleep_clk = {
  6130. .halt_reg = 0xe1034,
  6131. .halt_check = BRANCH_HALT,
  6132. .clkr = {
  6133. .enable_reg = 0xe1034,
  6134. .enable_mask = BIT(0),
  6135. .hw.init = &(const struct clk_init_data) {
  6136. .name = "gcc_usb30_tert_sleep_clk",
  6137. .ops = &clk_branch2_ops,
  6138. },
  6139. },
  6140. };
  6141. static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
  6142. .halt_reg = 0x9a070,
  6143. .halt_check = BRANCH_HALT,
  6144. .clkr = {
  6145. .enable_reg = 0x9a070,
  6146. .enable_mask = BIT(0),
  6147. .hw.init = &(const struct clk_init_data) {
  6148. .name = "gcc_usb3_mp_phy_aux_clk",
  6149. .parent_hws = (const struct clk_hw*[]) {
  6150. &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
  6151. },
  6152. .num_parents = 1,
  6153. .flags = CLK_SET_RATE_PARENT,
  6154. .ops = &clk_branch2_ops,
  6155. },
  6156. },
  6157. };
  6158. static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
  6159. .halt_reg = 0x9a074,
  6160. .halt_check = BRANCH_HALT,
  6161. .clkr = {
  6162. .enable_reg = 0x9a074,
  6163. .enable_mask = BIT(0),
  6164. .hw.init = &(const struct clk_init_data) {
  6165. .name = "gcc_usb3_mp_phy_com_aux_clk",
  6166. .parent_hws = (const struct clk_hw*[]) {
  6167. &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
  6168. },
  6169. .num_parents = 1,
  6170. .flags = CLK_SET_RATE_PARENT,
  6171. .ops = &clk_branch2_ops,
  6172. },
  6173. },
  6174. };
  6175. static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
  6176. .halt_reg = 0x9a078,
  6177. .halt_check = BRANCH_HALT_SKIP,
  6178. .clkr = {
  6179. .enable_reg = 0x9a078,
  6180. .enable_mask = BIT(0),
  6181. .hw.init = &(const struct clk_init_data) {
  6182. .name = "gcc_usb3_mp_phy_pipe_0_clk",
  6183. .parent_hws = (const struct clk_hw*[]) {
  6184. &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
  6185. },
  6186. .num_parents = 1,
  6187. .flags = CLK_SET_RATE_PARENT,
  6188. .ops = &clk_branch2_ops,
  6189. },
  6190. },
  6191. };
  6192. static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
  6193. .halt_reg = 0x9a080,
  6194. .halt_check = BRANCH_HALT_SKIP,
  6195. .clkr = {
  6196. .enable_reg = 0x9a080,
  6197. .enable_mask = BIT(0),
  6198. .hw.init = &(const struct clk_init_data) {
  6199. .name = "gcc_usb3_mp_phy_pipe_1_clk",
  6200. .parent_hws = (const struct clk_hw*[]) {
  6201. &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
  6202. },
  6203. .num_parents = 1,
  6204. .flags = CLK_SET_RATE_PARENT,
  6205. .ops = &clk_branch2_ops,
  6206. },
  6207. },
  6208. };
  6209. static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
  6210. .halt_reg = 0x3f080,
  6211. .halt_check = BRANCH_HALT,
  6212. .clkr = {
  6213. .enable_reg = 0x3f080,
  6214. .enable_mask = BIT(0),
  6215. .hw.init = &(const struct clk_init_data) {
  6216. .name = "gcc_usb3_prim_phy_aux_clk",
  6217. .parent_hws = (const struct clk_hw*[]) {
  6218. &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
  6219. },
  6220. .num_parents = 1,
  6221. .flags = CLK_SET_RATE_PARENT,
  6222. .ops = &clk_branch2_ops,
  6223. },
  6224. },
  6225. };
  6226. static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
  6227. .halt_reg = 0x3f084,
  6228. .halt_check = BRANCH_HALT,
  6229. .clkr = {
  6230. .enable_reg = 0x3f084,
  6231. .enable_mask = BIT(0),
  6232. .hw.init = &(const struct clk_init_data) {
  6233. .name = "gcc_usb3_prim_phy_com_aux_clk",
  6234. .parent_hws = (const struct clk_hw*[]) {
  6235. &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
  6236. },
  6237. .num_parents = 1,
  6238. .flags = CLK_SET_RATE_PARENT,
  6239. .ops = &clk_branch2_ops,
  6240. },
  6241. },
  6242. };
  6243. static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
  6244. .halt_reg = 0x3f088,
  6245. .halt_check = BRANCH_HALT_SKIP,
  6246. .hwcg_reg = 0x3f088,
  6247. .hwcg_bit = 1,
  6248. .clkr = {
  6249. .enable_reg = 0x3f088,
  6250. .enable_mask = BIT(0),
  6251. .hw.init = &(const struct clk_init_data) {
  6252. .name = "gcc_usb3_prim_phy_pipe_clk",
  6253. .parent_hws = (const struct clk_hw*[]) {
  6254. &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
  6255. },
  6256. .num_parents = 1,
  6257. .flags = CLK_SET_RATE_PARENT,
  6258. .ops = &clk_branch2_ops,
  6259. },
  6260. },
  6261. };
  6262. static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
  6263. .halt_reg = 0xe2070,
  6264. .halt_check = BRANCH_HALT,
  6265. .clkr = {
  6266. .enable_reg = 0xe2070,
  6267. .enable_mask = BIT(0),
  6268. .hw.init = &(const struct clk_init_data) {
  6269. .name = "gcc_usb3_sec_phy_aux_clk",
  6270. .parent_hws = (const struct clk_hw*[]) {
  6271. &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
  6272. },
  6273. .num_parents = 1,
  6274. .flags = CLK_SET_RATE_PARENT,
  6275. .ops = &clk_branch2_ops,
  6276. },
  6277. },
  6278. };
  6279. static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
  6280. .halt_reg = 0xe2074,
  6281. .halt_check = BRANCH_HALT,
  6282. .clkr = {
  6283. .enable_reg = 0xe2074,
  6284. .enable_mask = BIT(0),
  6285. .hw.init = &(const struct clk_init_data) {
  6286. .name = "gcc_usb3_sec_phy_com_aux_clk",
  6287. .parent_hws = (const struct clk_hw*[]) {
  6288. &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
  6289. },
  6290. .num_parents = 1,
  6291. .flags = CLK_SET_RATE_PARENT,
  6292. .ops = &clk_branch2_ops,
  6293. },
  6294. },
  6295. };
  6296. static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
  6297. .halt_reg = 0xe2078,
  6298. .halt_check = BRANCH_HALT_SKIP,
  6299. .hwcg_reg = 0xe2078,
  6300. .hwcg_bit = 1,
  6301. .clkr = {
  6302. .enable_reg = 0xe2078,
  6303. .enable_mask = BIT(0),
  6304. .hw.init = &(const struct clk_init_data) {
  6305. .name = "gcc_usb3_sec_phy_pipe_clk",
  6306. .parent_hws = (const struct clk_hw*[]) {
  6307. &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
  6308. },
  6309. .num_parents = 1,
  6310. .flags = CLK_SET_RATE_PARENT,
  6311. .ops = &clk_branch2_ops,
  6312. },
  6313. },
  6314. };
  6315. static struct clk_branch gcc_usb3_tert_phy_aux_clk = {
  6316. .halt_reg = 0xe1070,
  6317. .halt_check = BRANCH_HALT,
  6318. .clkr = {
  6319. .enable_reg = 0xe1070,
  6320. .enable_mask = BIT(0),
  6321. .hw.init = &(const struct clk_init_data) {
  6322. .name = "gcc_usb3_tert_phy_aux_clk",
  6323. .parent_hws = (const struct clk_hw*[]) {
  6324. &gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
  6325. },
  6326. .num_parents = 1,
  6327. .flags = CLK_SET_RATE_PARENT,
  6328. .ops = &clk_branch2_ops,
  6329. },
  6330. },
  6331. };
  6332. static struct clk_branch gcc_usb3_tert_phy_com_aux_clk = {
  6333. .halt_reg = 0xe1074,
  6334. .halt_check = BRANCH_HALT,
  6335. .clkr = {
  6336. .enable_reg = 0xe1074,
  6337. .enable_mask = BIT(0),
  6338. .hw.init = &(const struct clk_init_data) {
  6339. .name = "gcc_usb3_tert_phy_com_aux_clk",
  6340. .parent_hws = (const struct clk_hw*[]) {
  6341. &gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
  6342. },
  6343. .num_parents = 1,
  6344. .flags = CLK_SET_RATE_PARENT,
  6345. .ops = &clk_branch2_ops,
  6346. },
  6347. },
  6348. };
  6349. static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
  6350. .halt_reg = 0xe1078,
  6351. .halt_check = BRANCH_HALT_SKIP,
  6352. .hwcg_reg = 0xe1078,
  6353. .hwcg_bit = 1,
  6354. .clkr = {
  6355. .enable_reg = 0xe1078,
  6356. .enable_mask = BIT(0),
  6357. .hw.init = &(const struct clk_init_data) {
  6358. .name = "gcc_usb3_tert_phy_pipe_clk",
  6359. .parent_hws = (const struct clk_hw*[]) {
  6360. &gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
  6361. },
  6362. .num_parents = 1,
  6363. .flags = CLK_SET_RATE_PARENT,
  6364. .ops = &clk_branch2_ops,
  6365. },
  6366. },
  6367. };
  6368. static struct clk_branch gcc_usb4_0_cfg_ahb_clk = {
  6369. .halt_reg = 0xba450,
  6370. .halt_check = BRANCH_HALT_VOTED,
  6371. .hwcg_reg = 0xba450,
  6372. .hwcg_bit = 1,
  6373. .clkr = {
  6374. .enable_reg = 0xba450,
  6375. .enable_mask = BIT(0),
  6376. .hw.init = &(const struct clk_init_data) {
  6377. .name = "gcc_usb4_0_cfg_ahb_clk",
  6378. .ops = &clk_branch2_ops,
  6379. },
  6380. },
  6381. };
  6382. static struct clk_branch gcc_usb4_0_dp0_clk = {
  6383. .halt_reg = 0x2b070,
  6384. .halt_check = BRANCH_HALT,
  6385. .clkr = {
  6386. .enable_reg = 0x2b070,
  6387. .enable_mask = BIT(0),
  6388. .hw.init = &(const struct clk_init_data) {
  6389. .name = "gcc_usb4_0_dp0_clk",
  6390. .parent_hws = (const struct clk_hw*[]) {
  6391. &gcc_usb4_0_phy_dp0_clk_src.clkr.hw,
  6392. },
  6393. .num_parents = 1,
  6394. .flags = CLK_SET_RATE_PARENT,
  6395. .ops = &clk_branch2_ops,
  6396. },
  6397. },
  6398. };
  6399. static struct clk_branch gcc_usb4_0_dp1_clk = {
  6400. .halt_reg = 0x2b124,
  6401. .halt_check = BRANCH_HALT,
  6402. .clkr = {
  6403. .enable_reg = 0x2b124,
  6404. .enable_mask = BIT(0),
  6405. .hw.init = &(const struct clk_init_data) {
  6406. .name = "gcc_usb4_0_dp1_clk",
  6407. .parent_hws = (const struct clk_hw*[]) {
  6408. &gcc_usb4_0_phy_dp1_clk_src.clkr.hw,
  6409. },
  6410. .num_parents = 1,
  6411. .flags = CLK_SET_RATE_PARENT,
  6412. .ops = &clk_branch2_ops,
  6413. },
  6414. },
  6415. };
  6416. static struct clk_branch gcc_usb4_0_master_clk = {
  6417. .halt_reg = 0x2b01c,
  6418. .halt_check = BRANCH_HALT,
  6419. .clkr = {
  6420. .enable_reg = 0x2b01c,
  6421. .enable_mask = BIT(0),
  6422. .hw.init = &(const struct clk_init_data) {
  6423. .name = "gcc_usb4_0_master_clk",
  6424. .parent_hws = (const struct clk_hw*[]) {
  6425. &gcc_usb4_0_master_clk_src.clkr.hw,
  6426. },
  6427. .num_parents = 1,
  6428. .flags = CLK_SET_RATE_PARENT,
  6429. .ops = &clk_branch2_ops,
  6430. },
  6431. },
  6432. };
  6433. static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
  6434. .halt_reg = 0x2b0f4,
  6435. .halt_check = BRANCH_HALT_SKIP,
  6436. .clkr = {
  6437. .enable_reg = 0x2b0f4,
  6438. .enable_mask = BIT(0),
  6439. .hw.init = &(const struct clk_init_data) {
  6440. .name = "gcc_usb4_0_phy_p2rr2p_pipe_clk",
  6441. .parent_hws = (const struct clk_hw*[]) {
  6442. &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr.hw,
  6443. },
  6444. .num_parents = 1,
  6445. .flags = CLK_SET_RATE_PARENT,
  6446. .ops = &clk_branch2_ops,
  6447. },
  6448. },
  6449. };
  6450. static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
  6451. .halt_reg = 0x2b04c,
  6452. .halt_check = BRANCH_HALT_SKIP,
  6453. .clkr = {
  6454. .enable_reg = 0x62010,
  6455. .enable_mask = BIT(11),
  6456. .hw.init = &(const struct clk_init_data) {
  6457. .name = "gcc_usb4_0_phy_pcie_pipe_clk",
  6458. .parent_hws = (const struct clk_hw*[]) {
  6459. &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
  6460. },
  6461. .num_parents = 1,
  6462. .flags = CLK_SET_RATE_PARENT,
  6463. .ops = &clk_branch2_ops,
  6464. },
  6465. },
  6466. };
  6467. static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
  6468. .halt_reg = 0x2b0c4,
  6469. .halt_check = BRANCH_HALT,
  6470. .clkr = {
  6471. .enable_reg = 0x2b0c4,
  6472. .enable_mask = BIT(0),
  6473. .hw.init = &(const struct clk_init_data) {
  6474. .name = "gcc_usb4_0_phy_rx0_clk",
  6475. .parent_hws = (const struct clk_hw*[]) {
  6476. &gcc_usb4_0_phy_rx0_clk_src.clkr.hw,
  6477. },
  6478. .num_parents = 1,
  6479. .flags = CLK_SET_RATE_PARENT,
  6480. .ops = &clk_branch2_ops,
  6481. },
  6482. },
  6483. };
  6484. static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
  6485. .halt_reg = 0x2b0d8,
  6486. .halt_check = BRANCH_HALT,
  6487. .clkr = {
  6488. .enable_reg = 0x2b0d8,
  6489. .enable_mask = BIT(0),
  6490. .hw.init = &(const struct clk_init_data) {
  6491. .name = "gcc_usb4_0_phy_rx1_clk",
  6492. .parent_hws = (const struct clk_hw*[]) {
  6493. &gcc_usb4_0_phy_rx1_clk_src.clkr.hw,
  6494. },
  6495. .num_parents = 1,
  6496. .flags = CLK_SET_RATE_PARENT,
  6497. .ops = &clk_branch2_ops,
  6498. },
  6499. },
  6500. };
  6501. static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
  6502. .halt_reg = 0x2b0bc,
  6503. .halt_check = BRANCH_HALT_SKIP,
  6504. .hwcg_reg = 0x2b0bc,
  6505. .hwcg_bit = 1,
  6506. .clkr = {
  6507. .enable_reg = 0x2b0bc,
  6508. .enable_mask = BIT(0),
  6509. .hw.init = &(const struct clk_init_data) {
  6510. .name = "gcc_usb4_0_phy_usb_pipe_clk",
  6511. .parent_hws = (const struct clk_hw*[]) {
  6512. &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
  6513. },
  6514. .num_parents = 1,
  6515. .flags = CLK_SET_RATE_PARENT,
  6516. .ops = &clk_branch2_ops,
  6517. },
  6518. },
  6519. };
  6520. static struct clk_branch gcc_usb4_0_sb_if_clk = {
  6521. .halt_reg = 0x2b048,
  6522. .halt_check = BRANCH_HALT,
  6523. .clkr = {
  6524. .enable_reg = 0x2b048,
  6525. .enable_mask = BIT(0),
  6526. .hw.init = &(const struct clk_init_data) {
  6527. .name = "gcc_usb4_0_sb_if_clk",
  6528. .parent_hws = (const struct clk_hw*[]) {
  6529. &gcc_usb4_0_sb_if_clk_src.clkr.hw,
  6530. },
  6531. .num_parents = 1,
  6532. .flags = CLK_SET_RATE_PARENT,
  6533. .ops = &clk_branch2_ops,
  6534. },
  6535. },
  6536. };
  6537. static struct clk_branch gcc_usb4_0_sys_clk = {
  6538. .halt_reg = 0x2b05c,
  6539. .halt_check = BRANCH_HALT,
  6540. .clkr = {
  6541. .enable_reg = 0x2b05c,
  6542. .enable_mask = BIT(0),
  6543. .hw.init = &(const struct clk_init_data) {
  6544. .name = "gcc_usb4_0_sys_clk",
  6545. .parent_hws = (const struct clk_hw*[]) {
  6546. &gcc_usb4_0_phy_sys_clk_src.clkr.hw,
  6547. },
  6548. .num_parents = 1,
  6549. .flags = CLK_SET_RATE_PARENT,
  6550. .ops = &clk_branch2_ops,
  6551. },
  6552. },
  6553. };
  6554. static struct clk_branch gcc_usb4_0_tmu_clk = {
  6555. .halt_reg = 0x2b09c,
  6556. .halt_check = BRANCH_HALT_VOTED,
  6557. .hwcg_reg = 0x2b09c,
  6558. .hwcg_bit = 1,
  6559. .clkr = {
  6560. .enable_reg = 0x2b09c,
  6561. .enable_mask = BIT(0),
  6562. .hw.init = &(const struct clk_init_data) {
  6563. .name = "gcc_usb4_0_tmu_clk",
  6564. .parent_hws = (const struct clk_hw*[]) {
  6565. &gcc_usb4_0_tmu_clk_src.clkr.hw,
  6566. },
  6567. .num_parents = 1,
  6568. .flags = CLK_SET_RATE_PARENT,
  6569. .ops = &clk_branch2_ops,
  6570. },
  6571. },
  6572. };
  6573. static struct clk_branch gcc_usb4_0_uc_hrr_clk = {
  6574. .halt_reg = 0x2b06c,
  6575. .halt_check = BRANCH_HALT,
  6576. .clkr = {
  6577. .enable_reg = 0x2b06c,
  6578. .enable_mask = BIT(0),
  6579. .hw.init = &(const struct clk_init_data) {
  6580. .name = "gcc_usb4_0_uc_hrr_clk",
  6581. .parent_hws = (const struct clk_hw*[]) {
  6582. &gcc_usb4_0_phy_sys_clk_src.clkr.hw,
  6583. },
  6584. .num_parents = 1,
  6585. .flags = CLK_SET_RATE_PARENT,
  6586. .ops = &clk_branch2_ops,
  6587. },
  6588. },
  6589. };
  6590. static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
  6591. .halt_reg = 0xba454,
  6592. .halt_check = BRANCH_HALT_VOTED,
  6593. .hwcg_reg = 0xba454,
  6594. .hwcg_bit = 1,
  6595. .clkr = {
  6596. .enable_reg = 0xba454,
  6597. .enable_mask = BIT(0),
  6598. .hw.init = &(const struct clk_init_data) {
  6599. .name = "gcc_usb4_1_cfg_ahb_clk",
  6600. .ops = &clk_branch2_ops,
  6601. },
  6602. },
  6603. };
  6604. static struct clk_branch gcc_usb4_1_dp0_clk = {
  6605. .halt_reg = 0x2d07c,
  6606. .halt_check = BRANCH_HALT,
  6607. .clkr = {
  6608. .enable_reg = 0x2d07c,
  6609. .enable_mask = BIT(0),
  6610. .hw.init = &(const struct clk_init_data) {
  6611. .name = "gcc_usb4_1_dp0_clk",
  6612. .parent_hws = (const struct clk_hw*[]) {
  6613. &gcc_usb4_1_phy_dp0_clk_src.clkr.hw,
  6614. },
  6615. .num_parents = 1,
  6616. .flags = CLK_SET_RATE_PARENT,
  6617. .ops = &clk_branch2_ops,
  6618. },
  6619. },
  6620. };
  6621. static struct clk_branch gcc_usb4_1_dp1_clk = {
  6622. .halt_reg = 0x2d144,
  6623. .halt_check = BRANCH_HALT,
  6624. .clkr = {
  6625. .enable_reg = 0x2d144,
  6626. .enable_mask = BIT(0),
  6627. .hw.init = &(const struct clk_init_data) {
  6628. .name = "gcc_usb4_1_dp1_clk",
  6629. .parent_hws = (const struct clk_hw*[]) {
  6630. &gcc_usb4_1_phy_dp1_clk_src.clkr.hw,
  6631. },
  6632. .num_parents = 1,
  6633. .flags = CLK_SET_RATE_PARENT,
  6634. .ops = &clk_branch2_ops,
  6635. },
  6636. },
  6637. };
  6638. static struct clk_branch gcc_usb4_1_master_clk = {
  6639. .halt_reg = 0x2d01c,
  6640. .halt_check = BRANCH_HALT,
  6641. .clkr = {
  6642. .enable_reg = 0x2d01c,
  6643. .enable_mask = BIT(0),
  6644. .hw.init = &(const struct clk_init_data) {
  6645. .name = "gcc_usb4_1_master_clk",
  6646. .parent_hws = (const struct clk_hw*[]) {
  6647. &gcc_usb4_1_master_clk_src.clkr.hw,
  6648. },
  6649. .num_parents = 1,
  6650. .flags = CLK_SET_RATE_PARENT,
  6651. .ops = &clk_branch2_ops,
  6652. },
  6653. },
  6654. };
  6655. static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
  6656. .halt_reg = 0x2d118,
  6657. .halt_check = BRANCH_HALT_SKIP,
  6658. .clkr = {
  6659. .enable_reg = 0x2d118,
  6660. .enable_mask = BIT(0),
  6661. .hw.init = &(const struct clk_init_data) {
  6662. .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
  6663. .parent_hws = (const struct clk_hw*[]) {
  6664. &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
  6665. },
  6666. .num_parents = 1,
  6667. .flags = CLK_SET_RATE_PARENT,
  6668. .ops = &clk_branch2_ops,
  6669. },
  6670. },
  6671. };
  6672. static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
  6673. .halt_reg = 0x2d04c,
  6674. .halt_check = BRANCH_HALT_SKIP,
  6675. .clkr = {
  6676. .enable_reg = 0x62010,
  6677. .enable_mask = BIT(12),
  6678. .hw.init = &(const struct clk_init_data) {
  6679. .name = "gcc_usb4_1_phy_pcie_pipe_clk",
  6680. .parent_hws = (const struct clk_hw*[]) {
  6681. &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
  6682. },
  6683. .num_parents = 1,
  6684. .flags = CLK_SET_RATE_PARENT,
  6685. .ops = &clk_branch2_ops,
  6686. },
  6687. },
  6688. };
  6689. static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
  6690. .halt_reg = 0x2d0e8,
  6691. .halt_check = BRANCH_HALT,
  6692. .clkr = {
  6693. .enable_reg = 0x2d0e8,
  6694. .enable_mask = BIT(0),
  6695. .hw.init = &(const struct clk_init_data) {
  6696. .name = "gcc_usb4_1_phy_rx0_clk",
  6697. .parent_hws = (const struct clk_hw*[]) {
  6698. &gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
  6699. },
  6700. .num_parents = 1,
  6701. .flags = CLK_SET_RATE_PARENT,
  6702. .ops = &clk_branch2_ops,
  6703. },
  6704. },
  6705. };
  6706. static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
  6707. .halt_reg = 0x2d0fc,
  6708. .halt_check = BRANCH_HALT,
  6709. .clkr = {
  6710. .enable_reg = 0x2d0fc,
  6711. .enable_mask = BIT(0),
  6712. .hw.init = &(const struct clk_init_data) {
  6713. .name = "gcc_usb4_1_phy_rx1_clk",
  6714. .parent_hws = (const struct clk_hw*[]) {
  6715. &gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
  6716. },
  6717. .num_parents = 1,
  6718. .flags = CLK_SET_RATE_PARENT,
  6719. .ops = &clk_branch2_ops,
  6720. },
  6721. },
  6722. };
  6723. static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
  6724. .halt_reg = 0x2d0e0,
  6725. .halt_check = BRANCH_HALT_SKIP,
  6726. .hwcg_reg = 0x2d0e0,
  6727. .hwcg_bit = 1,
  6728. .clkr = {
  6729. .enable_reg = 0x2d0e0,
  6730. .enable_mask = BIT(0),
  6731. .hw.init = &(const struct clk_init_data) {
  6732. .name = "gcc_usb4_1_phy_usb_pipe_clk",
  6733. .parent_hws = (const struct clk_hw*[]) {
  6734. &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
  6735. },
  6736. .num_parents = 1,
  6737. .flags = CLK_SET_RATE_PARENT,
  6738. .ops = &clk_branch2_ops,
  6739. },
  6740. },
  6741. };
  6742. static struct clk_branch gcc_usb4_1_sb_if_clk = {
  6743. .halt_reg = 0x2d048,
  6744. .halt_check = BRANCH_HALT,
  6745. .clkr = {
  6746. .enable_reg = 0x2d048,
  6747. .enable_mask = BIT(0),
  6748. .hw.init = &(const struct clk_init_data) {
  6749. .name = "gcc_usb4_1_sb_if_clk",
  6750. .parent_hws = (const struct clk_hw*[]) {
  6751. &gcc_usb4_1_sb_if_clk_src.clkr.hw,
  6752. },
  6753. .num_parents = 1,
  6754. .flags = CLK_SET_RATE_PARENT,
  6755. .ops = &clk_branch2_ops,
  6756. },
  6757. },
  6758. };
  6759. static struct clk_branch gcc_usb4_1_sys_clk = {
  6760. .halt_reg = 0x2d05c,
  6761. .halt_check = BRANCH_HALT,
  6762. .clkr = {
  6763. .enable_reg = 0x2d05c,
  6764. .enable_mask = BIT(0),
  6765. .hw.init = &(const struct clk_init_data) {
  6766. .name = "gcc_usb4_1_sys_clk",
  6767. .parent_hws = (const struct clk_hw*[]) {
  6768. &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
  6769. },
  6770. .num_parents = 1,
  6771. .flags = CLK_SET_RATE_PARENT,
  6772. .ops = &clk_branch2_ops,
  6773. },
  6774. },
  6775. };
  6776. static struct clk_branch gcc_usb4_1_tmu_clk = {
  6777. .halt_reg = 0x2d0a8,
  6778. .halt_check = BRANCH_HALT_VOTED,
  6779. .hwcg_reg = 0x2d0a8,
  6780. .hwcg_bit = 1,
  6781. .clkr = {
  6782. .enable_reg = 0x2d0a8,
  6783. .enable_mask = BIT(0),
  6784. .hw.init = &(const struct clk_init_data) {
  6785. .name = "gcc_usb4_1_tmu_clk",
  6786. .parent_hws = (const struct clk_hw*[]) {
  6787. &gcc_usb4_1_tmu_clk_src.clkr.hw,
  6788. },
  6789. .num_parents = 1,
  6790. .flags = CLK_SET_RATE_PARENT,
  6791. .ops = &clk_branch2_ops,
  6792. },
  6793. },
  6794. };
  6795. static struct clk_branch gcc_usb4_1_uc_hrr_clk = {
  6796. .halt_reg = 0x2d06c,
  6797. .halt_check = BRANCH_HALT,
  6798. .clkr = {
  6799. .enable_reg = 0x2d06c,
  6800. .enable_mask = BIT(0),
  6801. .hw.init = &(const struct clk_init_data) {
  6802. .name = "gcc_usb4_1_uc_hrr_clk",
  6803. .parent_hws = (const struct clk_hw*[]) {
  6804. &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
  6805. },
  6806. .num_parents = 1,
  6807. .flags = CLK_SET_RATE_PARENT,
  6808. .ops = &clk_branch2_ops,
  6809. },
  6810. },
  6811. };
  6812. static struct clk_branch gcc_usb4_2_cfg_ahb_clk = {
  6813. .halt_reg = 0xba458,
  6814. .halt_check = BRANCH_HALT_VOTED,
  6815. .hwcg_reg = 0xba458,
  6816. .hwcg_bit = 1,
  6817. .clkr = {
  6818. .enable_reg = 0xba458,
  6819. .enable_mask = BIT(0),
  6820. .hw.init = &(const struct clk_init_data) {
  6821. .name = "gcc_usb4_2_cfg_ahb_clk",
  6822. .ops = &clk_branch2_ops,
  6823. },
  6824. },
  6825. };
  6826. static struct clk_branch gcc_usb4_2_dp0_clk = {
  6827. .halt_reg = 0xe0070,
  6828. .halt_check = BRANCH_HALT,
  6829. .clkr = {
  6830. .enable_reg = 0xe0070,
  6831. .enable_mask = BIT(0),
  6832. .hw.init = &(const struct clk_init_data) {
  6833. .name = "gcc_usb4_2_dp0_clk",
  6834. .parent_hws = (const struct clk_hw*[]) {
  6835. &gcc_usb4_2_phy_dp0_clk_src.clkr.hw,
  6836. },
  6837. .num_parents = 1,
  6838. .flags = CLK_SET_RATE_PARENT,
  6839. .ops = &clk_branch2_ops,
  6840. },
  6841. },
  6842. };
  6843. static struct clk_branch gcc_usb4_2_dp1_clk = {
  6844. .halt_reg = 0xe0128,
  6845. .halt_check = BRANCH_HALT,
  6846. .clkr = {
  6847. .enable_reg = 0xe0128,
  6848. .enable_mask = BIT(0),
  6849. .hw.init = &(const struct clk_init_data) {
  6850. .name = "gcc_usb4_2_dp1_clk",
  6851. .parent_hws = (const struct clk_hw*[]) {
  6852. &gcc_usb4_2_phy_dp1_clk_src.clkr.hw,
  6853. },
  6854. .num_parents = 1,
  6855. .flags = CLK_SET_RATE_PARENT,
  6856. .ops = &clk_branch2_ops,
  6857. },
  6858. },
  6859. };
  6860. static struct clk_branch gcc_usb4_2_master_clk = {
  6861. .halt_reg = 0xe001c,
  6862. .halt_check = BRANCH_HALT,
  6863. .clkr = {
  6864. .enable_reg = 0xe001c,
  6865. .enable_mask = BIT(0),
  6866. .hw.init = &(const struct clk_init_data) {
  6867. .name = "gcc_usb4_2_master_clk",
  6868. .parent_hws = (const struct clk_hw*[]) {
  6869. &gcc_usb4_2_master_clk_src.clkr.hw,
  6870. },
  6871. .num_parents = 1,
  6872. .flags = CLK_SET_RATE_PARENT,
  6873. .ops = &clk_branch2_ops,
  6874. },
  6875. },
  6876. };
  6877. static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
  6878. .halt_reg = 0xe00f8,
  6879. .halt_check = BRANCH_HALT_SKIP,
  6880. .clkr = {
  6881. .enable_reg = 0xe00f8,
  6882. .enable_mask = BIT(0),
  6883. .hw.init = &(const struct clk_init_data) {
  6884. .name = "gcc_usb4_2_phy_p2rr2p_pipe_clk",
  6885. .parent_hws = (const struct clk_hw*[]) {
  6886. &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr.hw,
  6887. },
  6888. .num_parents = 1,
  6889. .flags = CLK_SET_RATE_PARENT,
  6890. .ops = &clk_branch2_ops,
  6891. },
  6892. },
  6893. };
  6894. static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
  6895. .halt_reg = 0xe004c,
  6896. .halt_check = BRANCH_HALT_SKIP,
  6897. .clkr = {
  6898. .enable_reg = 0x62010,
  6899. .enable_mask = BIT(13),
  6900. .hw.init = &(const struct clk_init_data) {
  6901. .name = "gcc_usb4_2_phy_pcie_pipe_clk",
  6902. .parent_hws = (const struct clk_hw*[]) {
  6903. &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
  6904. },
  6905. .num_parents = 1,
  6906. .flags = CLK_SET_RATE_PARENT,
  6907. .ops = &clk_branch2_ops,
  6908. },
  6909. },
  6910. };
  6911. static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
  6912. .halt_reg = 0xe00c8,
  6913. .halt_check = BRANCH_HALT,
  6914. .clkr = {
  6915. .enable_reg = 0xe00c8,
  6916. .enable_mask = BIT(0),
  6917. .hw.init = &(const struct clk_init_data) {
  6918. .name = "gcc_usb4_2_phy_rx0_clk",
  6919. .parent_hws = (const struct clk_hw*[]) {
  6920. &gcc_usb4_2_phy_rx0_clk_src.clkr.hw,
  6921. },
  6922. .num_parents = 1,
  6923. .flags = CLK_SET_RATE_PARENT,
  6924. .ops = &clk_branch2_ops,
  6925. },
  6926. },
  6927. };
  6928. static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
  6929. .halt_reg = 0xe00dc,
  6930. .halt_check = BRANCH_HALT,
  6931. .clkr = {
  6932. .enable_reg = 0xe00dc,
  6933. .enable_mask = BIT(0),
  6934. .hw.init = &(const struct clk_init_data) {
  6935. .name = "gcc_usb4_2_phy_rx1_clk",
  6936. .parent_hws = (const struct clk_hw*[]) {
  6937. &gcc_usb4_2_phy_rx1_clk_src.clkr.hw,
  6938. },
  6939. .num_parents = 1,
  6940. .flags = CLK_SET_RATE_PARENT,
  6941. .ops = &clk_branch2_ops,
  6942. },
  6943. },
  6944. };
  6945. static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
  6946. .halt_reg = 0xe00c0,
  6947. .halt_check = BRANCH_HALT_SKIP,
  6948. .hwcg_reg = 0xe00c0,
  6949. .hwcg_bit = 1,
  6950. .clkr = {
  6951. .enable_reg = 0xe00c0,
  6952. .enable_mask = BIT(0),
  6953. .hw.init = &(const struct clk_init_data) {
  6954. .name = "gcc_usb4_2_phy_usb_pipe_clk",
  6955. .parent_hws = (const struct clk_hw*[]) {
  6956. &gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
  6957. },
  6958. .num_parents = 1,
  6959. .flags = CLK_SET_RATE_PARENT,
  6960. .ops = &clk_branch2_ops,
  6961. },
  6962. },
  6963. };
  6964. static struct clk_branch gcc_usb4_2_sb_if_clk = {
  6965. .halt_reg = 0xe0048,
  6966. .halt_check = BRANCH_HALT,
  6967. .clkr = {
  6968. .enable_reg = 0xe0048,
  6969. .enable_mask = BIT(0),
  6970. .hw.init = &(const struct clk_init_data) {
  6971. .name = "gcc_usb4_2_sb_if_clk",
  6972. .parent_hws = (const struct clk_hw*[]) {
  6973. &gcc_usb4_2_sb_if_clk_src.clkr.hw,
  6974. },
  6975. .num_parents = 1,
  6976. .flags = CLK_SET_RATE_PARENT,
  6977. .ops = &clk_branch2_ops,
  6978. },
  6979. },
  6980. };
  6981. static struct clk_branch gcc_usb4_2_sys_clk = {
  6982. .halt_reg = 0xe005c,
  6983. .halt_check = BRANCH_HALT,
  6984. .clkr = {
  6985. .enable_reg = 0xe005c,
  6986. .enable_mask = BIT(0),
  6987. .hw.init = &(const struct clk_init_data) {
  6988. .name = "gcc_usb4_2_sys_clk",
  6989. .parent_hws = (const struct clk_hw*[]) {
  6990. &gcc_usb4_2_phy_sys_clk_src.clkr.hw,
  6991. },
  6992. .num_parents = 1,
  6993. .flags = CLK_SET_RATE_PARENT,
  6994. .ops = &clk_branch2_ops,
  6995. },
  6996. },
  6997. };
  6998. static struct clk_branch gcc_usb4_2_tmu_clk = {
  6999. .halt_reg = 0xe00a0,
  7000. .halt_check = BRANCH_HALT_VOTED,
  7001. .hwcg_reg = 0xe00a0,
  7002. .hwcg_bit = 1,
  7003. .clkr = {
  7004. .enable_reg = 0xe00a0,
  7005. .enable_mask = BIT(0),
  7006. .hw.init = &(const struct clk_init_data) {
  7007. .name = "gcc_usb4_2_tmu_clk",
  7008. .parent_hws = (const struct clk_hw*[]) {
  7009. &gcc_usb4_2_tmu_clk_src.clkr.hw,
  7010. },
  7011. .num_parents = 1,
  7012. .flags = CLK_SET_RATE_PARENT,
  7013. .ops = &clk_branch2_ops,
  7014. },
  7015. },
  7016. };
  7017. static struct clk_branch gcc_usb4_2_uc_hrr_clk = {
  7018. .halt_reg = 0xe006c,
  7019. .halt_check = BRANCH_HALT,
  7020. .clkr = {
  7021. .enable_reg = 0xe006c,
  7022. .enable_mask = BIT(0),
  7023. .hw.init = &(const struct clk_init_data) {
  7024. .name = "gcc_usb4_2_uc_hrr_clk",
  7025. .parent_hws = (const struct clk_hw*[]) {
  7026. &gcc_usb4_2_phy_sys_clk_src.clkr.hw,
  7027. },
  7028. .num_parents = 1,
  7029. .flags = CLK_SET_RATE_PARENT,
  7030. .ops = &clk_branch2_ops,
  7031. },
  7032. },
  7033. };
  7034. static struct clk_branch gcc_video_axi0_clk = {
  7035. .halt_reg = 0x3201c,
  7036. .halt_check = BRANCH_HALT_SKIP,
  7037. .hwcg_reg = 0x3201c,
  7038. .hwcg_bit = 1,
  7039. .clkr = {
  7040. .enable_reg = 0x3201c,
  7041. .enable_mask = BIT(0),
  7042. .hw.init = &(const struct clk_init_data) {
  7043. .name = "gcc_video_axi0_clk",
  7044. .ops = &clk_branch2_ops,
  7045. },
  7046. },
  7047. };
  7048. static struct clk_branch gcc_video_axi0c_clk = {
  7049. .halt_reg = 0x32030,
  7050. .halt_check = BRANCH_HALT_SKIP,
  7051. .hwcg_reg = 0x32030,
  7052. .hwcg_bit = 1,
  7053. .clkr = {
  7054. .enable_reg = 0x32030,
  7055. .enable_mask = BIT(0),
  7056. .hw.init = &(const struct clk_init_data) {
  7057. .name = "gcc_video_axi0c_clk",
  7058. .ops = &clk_branch2_ops,
  7059. },
  7060. },
  7061. };
  7062. static struct clk_branch gcc_video_axi1_clk = {
  7063. .halt_reg = 0x32044,
  7064. .halt_check = BRANCH_HALT_SKIP,
  7065. .hwcg_reg = 0x32044,
  7066. .hwcg_bit = 1,
  7067. .clkr = {
  7068. .enable_reg = 0x32044,
  7069. .enable_mask = BIT(0),
  7070. .hw.init = &(const struct clk_init_data) {
  7071. .name = "gcc_video_axi1_clk",
  7072. .ops = &clk_branch2_ops,
  7073. },
  7074. },
  7075. };
  7076. static struct gdsc gcc_pcie_0_tunnel_gdsc = {
  7077. .gdscr = 0xc8004,
  7078. .en_rest_wait_val = 0x2,
  7079. .en_few_wait_val = 0x2,
  7080. .clk_dis_wait_val = 0xf,
  7081. .pd = {
  7082. .name = "gcc_pcie_0_tunnel_gdsc",
  7083. },
  7084. .pwrsts = PWRSTS_OFF_ON,
  7085. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7086. };
  7087. static struct gdsc gcc_pcie_1_tunnel_gdsc = {
  7088. .gdscr = 0x2e004,
  7089. .en_rest_wait_val = 0x2,
  7090. .en_few_wait_val = 0x2,
  7091. .clk_dis_wait_val = 0xf,
  7092. .pd = {
  7093. .name = "gcc_pcie_1_tunnel_gdsc",
  7094. },
  7095. .pwrsts = PWRSTS_OFF_ON,
  7096. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7097. };
  7098. static struct gdsc gcc_pcie_2_tunnel_gdsc = {
  7099. .gdscr = 0xc0004,
  7100. .en_rest_wait_val = 0x2,
  7101. .en_few_wait_val = 0x2,
  7102. .clk_dis_wait_val = 0xf,
  7103. .pd = {
  7104. .name = "gcc_pcie_2_tunnel_gdsc",
  7105. },
  7106. .pwrsts = PWRSTS_OFF_ON,
  7107. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7108. };
  7109. static struct gdsc gcc_pcie_3a_gdsc = {
  7110. .gdscr = 0xdc004,
  7111. .en_rest_wait_val = 0x2,
  7112. .en_few_wait_val = 0x2,
  7113. .clk_dis_wait_val = 0xf,
  7114. .pd = {
  7115. .name = "gcc_pcie_3a_gdsc",
  7116. },
  7117. .pwrsts = PWRSTS_OFF_ON,
  7118. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7119. };
  7120. static struct gdsc gcc_pcie_3a_phy_gdsc = {
  7121. .gdscr = 0x6c004,
  7122. .en_rest_wait_val = 0x2,
  7123. .en_few_wait_val = 0x2,
  7124. .clk_dis_wait_val = 0x2,
  7125. .pd = {
  7126. .name = "gcc_pcie_3a_phy_gdsc",
  7127. },
  7128. .pwrsts = PWRSTS_OFF_ON,
  7129. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7130. };
  7131. static struct gdsc gcc_pcie_3b_gdsc = {
  7132. .gdscr = 0x94004,
  7133. .en_rest_wait_val = 0x2,
  7134. .en_few_wait_val = 0x2,
  7135. .clk_dis_wait_val = 0xf,
  7136. .pd = {
  7137. .name = "gcc_pcie_3b_gdsc",
  7138. },
  7139. .pwrsts = PWRSTS_OFF_ON,
  7140. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7141. };
  7142. static struct gdsc gcc_pcie_3b_phy_gdsc = {
  7143. .gdscr = 0x75004,
  7144. .en_rest_wait_val = 0x2,
  7145. .en_few_wait_val = 0x2,
  7146. .clk_dis_wait_val = 0x2,
  7147. .pd = {
  7148. .name = "gcc_pcie_3b_phy_gdsc",
  7149. },
  7150. .pwrsts = PWRSTS_OFF_ON,
  7151. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7152. };
  7153. static struct gdsc gcc_pcie_4_gdsc = {
  7154. .gdscr = 0x88004,
  7155. .en_rest_wait_val = 0x2,
  7156. .en_few_wait_val = 0x2,
  7157. .clk_dis_wait_val = 0xf,
  7158. .pd = {
  7159. .name = "gcc_pcie_4_gdsc",
  7160. },
  7161. .pwrsts = PWRSTS_OFF_ON,
  7162. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7163. };
  7164. static struct gdsc gcc_pcie_4_phy_gdsc = {
  7165. .gdscr = 0xd3004,
  7166. .en_rest_wait_val = 0x2,
  7167. .en_few_wait_val = 0x2,
  7168. .clk_dis_wait_val = 0x2,
  7169. .pd = {
  7170. .name = "gcc_pcie_4_phy_gdsc",
  7171. },
  7172. .pwrsts = PWRSTS_OFF_ON,
  7173. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7174. };
  7175. static struct gdsc gcc_pcie_5_gdsc = {
  7176. .gdscr = 0xc3004,
  7177. .en_rest_wait_val = 0x2,
  7178. .en_few_wait_val = 0x2,
  7179. .clk_dis_wait_val = 0xf,
  7180. .pd = {
  7181. .name = "gcc_pcie_5_gdsc",
  7182. },
  7183. .pwrsts = PWRSTS_OFF_ON,
  7184. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7185. };
  7186. static struct gdsc gcc_pcie_5_phy_gdsc = {
  7187. .gdscr = 0xd2004,
  7188. .en_rest_wait_val = 0x2,
  7189. .en_few_wait_val = 0x2,
  7190. .clk_dis_wait_val = 0x2,
  7191. .pd = {
  7192. .name = "gcc_pcie_5_phy_gdsc",
  7193. },
  7194. .pwrsts = PWRSTS_OFF_ON,
  7195. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7196. };
  7197. static struct gdsc gcc_pcie_6_gdsc = {
  7198. .gdscr = 0x8a004,
  7199. .en_rest_wait_val = 0x2,
  7200. .en_few_wait_val = 0x2,
  7201. .clk_dis_wait_val = 0xf,
  7202. .pd = {
  7203. .name = "gcc_pcie_6_gdsc",
  7204. },
  7205. .pwrsts = PWRSTS_OFF_ON,
  7206. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7207. };
  7208. static struct gdsc gcc_pcie_6_phy_gdsc = {
  7209. .gdscr = 0xd4004,
  7210. .en_rest_wait_val = 0x2,
  7211. .en_few_wait_val = 0x2,
  7212. .clk_dis_wait_val = 0x2,
  7213. .pd = {
  7214. .name = "gcc_pcie_6_phy_gdsc",
  7215. },
  7216. .pwrsts = PWRSTS_OFF_ON,
  7217. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
  7218. };
  7219. static struct gdsc gcc_ufs_phy_gdsc = {
  7220. .gdscr = 0x77008,
  7221. .en_rest_wait_val = 0x2,
  7222. .en_few_wait_val = 0x2,
  7223. .clk_dis_wait_val = 0xf,
  7224. .pd = {
  7225. .name = "gcc_ufs_phy_gdsc",
  7226. },
  7227. .pwrsts = PWRSTS_OFF_ON,
  7228. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7229. };
  7230. static struct gdsc gcc_usb20_prim_gdsc = {
  7231. .gdscr = 0xbc004,
  7232. .en_rest_wait_val = 0x2,
  7233. .en_few_wait_val = 0x2,
  7234. .clk_dis_wait_val = 0xf,
  7235. .pd = {
  7236. .name = "gcc_usb20_prim_gdsc",
  7237. },
  7238. .pwrsts = PWRSTS_OFF_ON,
  7239. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7240. };
  7241. static struct gdsc gcc_usb30_mp_gdsc = {
  7242. .gdscr = 0x9a010,
  7243. .en_rest_wait_val = 0x2,
  7244. .en_few_wait_val = 0x2,
  7245. .clk_dis_wait_val = 0xf,
  7246. .pd = {
  7247. .name = "gcc_usb30_mp_gdsc",
  7248. },
  7249. .pwrsts = PWRSTS_OFF_ON,
  7250. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7251. };
  7252. static struct gdsc gcc_usb30_prim_gdsc = {
  7253. .gdscr = 0x3f01c,
  7254. .en_rest_wait_val = 0x2,
  7255. .en_few_wait_val = 0x2,
  7256. .clk_dis_wait_val = 0xf,
  7257. .pd = {
  7258. .name = "gcc_usb30_prim_gdsc",
  7259. },
  7260. .pwrsts = PWRSTS_OFF_ON,
  7261. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7262. };
  7263. static struct gdsc gcc_usb30_sec_gdsc = {
  7264. .gdscr = 0xe2010,
  7265. .en_rest_wait_val = 0x2,
  7266. .en_few_wait_val = 0x2,
  7267. .clk_dis_wait_val = 0xf,
  7268. .pd = {
  7269. .name = "gcc_usb30_sec_gdsc",
  7270. },
  7271. .pwrsts = PWRSTS_OFF_ON,
  7272. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7273. };
  7274. static struct gdsc gcc_usb30_tert_gdsc = {
  7275. .gdscr = 0xe1010,
  7276. .en_rest_wait_val = 0x2,
  7277. .en_few_wait_val = 0x2,
  7278. .clk_dis_wait_val = 0xf,
  7279. .pd = {
  7280. .name = "gcc_usb30_tert_gdsc",
  7281. },
  7282. .pwrsts = PWRSTS_OFF_ON,
  7283. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7284. };
  7285. static struct gdsc gcc_usb3_mp_ss0_phy_gdsc = {
  7286. .gdscr = 0x5400c,
  7287. .en_rest_wait_val = 0x2,
  7288. .en_few_wait_val = 0x2,
  7289. .clk_dis_wait_val = 0x2,
  7290. .pd = {
  7291. .name = "gcc_usb3_mp_ss0_phy_gdsc",
  7292. },
  7293. .pwrsts = PWRSTS_OFF_ON,
  7294. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7295. };
  7296. static struct gdsc gcc_usb3_mp_ss1_phy_gdsc = {
  7297. .gdscr = 0x5402c,
  7298. .en_rest_wait_val = 0x2,
  7299. .en_few_wait_val = 0x2,
  7300. .clk_dis_wait_val = 0x2,
  7301. .pd = {
  7302. .name = "gcc_usb3_mp_ss1_phy_gdsc",
  7303. },
  7304. .pwrsts = PWRSTS_OFF_ON,
  7305. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7306. };
  7307. static struct gdsc gcc_usb4_0_gdsc = {
  7308. .gdscr = 0x2b008,
  7309. .en_rest_wait_val = 0x2,
  7310. .en_few_wait_val = 0x2,
  7311. .clk_dis_wait_val = 0xf,
  7312. .pd = {
  7313. .name = "gcc_usb4_0_gdsc",
  7314. },
  7315. .pwrsts = PWRSTS_OFF_ON,
  7316. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7317. };
  7318. static struct gdsc gcc_usb4_1_gdsc = {
  7319. .gdscr = 0x2d008,
  7320. .en_rest_wait_val = 0x2,
  7321. .en_few_wait_val = 0x2,
  7322. .clk_dis_wait_val = 0xf,
  7323. .pd = {
  7324. .name = "gcc_usb4_1_gdsc",
  7325. },
  7326. .pwrsts = PWRSTS_OFF_ON,
  7327. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7328. };
  7329. static struct gdsc gcc_usb4_2_gdsc = {
  7330. .gdscr = 0xe0008,
  7331. .en_rest_wait_val = 0x2,
  7332. .en_few_wait_val = 0x2,
  7333. .clk_dis_wait_val = 0xf,
  7334. .pd = {
  7335. .name = "gcc_usb4_2_gdsc",
  7336. },
  7337. .pwrsts = PWRSTS_OFF_ON,
  7338. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7339. };
  7340. static struct gdsc gcc_usb_0_phy_gdsc = {
  7341. .gdscr = 0xdb024,
  7342. .en_rest_wait_val = 0x2,
  7343. .en_few_wait_val = 0x2,
  7344. .clk_dis_wait_val = 0x2,
  7345. .pd = {
  7346. .name = "gcc_usb_0_phy_gdsc",
  7347. },
  7348. .pwrsts = PWRSTS_OFF_ON,
  7349. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7350. };
  7351. static struct gdsc gcc_usb_1_phy_gdsc = {
  7352. .gdscr = 0x2c024,
  7353. .en_rest_wait_val = 0x2,
  7354. .en_few_wait_val = 0x2,
  7355. .clk_dis_wait_val = 0x2,
  7356. .pd = {
  7357. .name = "gcc_usb_1_phy_gdsc",
  7358. },
  7359. .pwrsts = PWRSTS_OFF_ON,
  7360. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7361. };
  7362. static struct gdsc gcc_usb_2_phy_gdsc = {
  7363. .gdscr = 0xbe024,
  7364. .en_rest_wait_val = 0x2,
  7365. .en_few_wait_val = 0x2,
  7366. .clk_dis_wait_val = 0x2,
  7367. .pd = {
  7368. .name = "gcc_usb_2_phy_gdsc",
  7369. },
  7370. .pwrsts = PWRSTS_OFF_ON,
  7371. .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
  7372. };
  7373. static struct clk_regmap *gcc_glymur_clocks[] = {
  7374. [GCC_AGGRE_NOC_PCIE_3A_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_3a_west_sf_axi_clk.clkr,
  7375. [GCC_AGGRE_NOC_PCIE_3B_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_3b_west_sf_axi_clk.clkr,
  7376. [GCC_AGGRE_NOC_PCIE_4_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_4_west_sf_axi_clk.clkr,
  7377. [GCC_AGGRE_NOC_PCIE_5_EAST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_5_east_sf_axi_clk.clkr,
  7378. [GCC_AGGRE_NOC_PCIE_6_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_6_west_sf_axi_clk.clkr,
  7379. [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
  7380. [GCC_AGGRE_USB2_PRIM_AXI_CLK] = &gcc_aggre_usb2_prim_axi_clk.clkr,
  7381. [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
  7382. [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
  7383. [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
  7384. [GCC_AGGRE_USB3_TERT_AXI_CLK] = &gcc_aggre_usb3_tert_axi_clk.clkr,
  7385. [GCC_AGGRE_USB4_0_AXI_CLK] = &gcc_aggre_usb4_0_axi_clk.clkr,
  7386. [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
  7387. [GCC_AGGRE_USB4_2_AXI_CLK] = &gcc_aggre_usb4_2_axi_clk.clkr,
  7388. [GCC_AV1E_AHB_CLK] = &gcc_av1e_ahb_clk.clkr,
  7389. [GCC_AV1E_AXI_CLK] = &gcc_av1e_axi_clk.clkr,
  7390. [GCC_AV1E_XO_CLK] = &gcc_av1e_xo_clk.clkr,
  7391. [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
  7392. [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
  7393. [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
  7394. [GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
  7395. [GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_south_ahb_clk.clkr,
  7396. [GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr,
  7397. [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
  7398. [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
  7399. [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
  7400. [GCC_CFG_NOC_USB3_TERT_AXI_CLK] = &gcc_cfg_noc_usb3_tert_axi_clk.clkr,
  7401. [GCC_CFG_NOC_USB_ANOC_AHB_CLK] = &gcc_cfg_noc_usb_anoc_ahb_clk.clkr,
  7402. [GCC_CFG_NOC_USB_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_south_ahb_clk.clkr,
  7403. [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
  7404. [GCC_EVA_AHB_CLK] = &gcc_eva_ahb_clk.clkr,
  7405. [GCC_EVA_AXI0_CLK] = &gcc_eva_axi0_clk.clkr,
  7406. [GCC_EVA_AXI0C_CLK] = &gcc_eva_axi0c_clk.clkr,
  7407. [GCC_EVA_XO_CLK] = &gcc_eva_xo_clk.clkr,
  7408. [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
  7409. [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
  7410. [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
  7411. [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
  7412. [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
  7413. [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
  7414. [GCC_GPLL0] = &gcc_gpll0.clkr,
  7415. [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
  7416. [GCC_GPLL1] = &gcc_gpll1.clkr,
  7417. [GCC_GPLL14] = &gcc_gpll14.clkr,
  7418. [GCC_GPLL14_OUT_EVEN] = &gcc_gpll14_out_even.clkr,
  7419. [GCC_GPLL4] = &gcc_gpll4.clkr,
  7420. [GCC_GPLL5] = &gcc_gpll5.clkr,
  7421. [GCC_GPLL7] = &gcc_gpll7.clkr,
  7422. [GCC_GPLL8] = &gcc_gpll8.clkr,
  7423. [GCC_GPLL9] = &gcc_gpll9.clkr,
  7424. [GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr,
  7425. [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
  7426. [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
  7427. [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
  7428. [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
  7429. [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
  7430. [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
  7431. [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
  7432. [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
  7433. [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
  7434. [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
  7435. [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
  7436. [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
  7437. [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
  7438. [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
  7439. [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
  7440. [GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr,
  7441. [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
  7442. [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
  7443. [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
  7444. [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
  7445. [GCC_PCIE_2_AUX_CLK] = &gcc_pcie_2_aux_clk.clkr,
  7446. [GCC_PCIE_2_AUX_CLK_SRC] = &gcc_pcie_2_aux_clk_src.clkr,
  7447. [GCC_PCIE_2_CFG_AHB_CLK] = &gcc_pcie_2_cfg_ahb_clk.clkr,
  7448. [GCC_PCIE_2_MSTR_AXI_CLK] = &gcc_pcie_2_mstr_axi_clk.clkr,
  7449. [GCC_PCIE_2_PHY_RCHNG_CLK] = &gcc_pcie_2_phy_rchng_clk.clkr,
  7450. [GCC_PCIE_2_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2_phy_rchng_clk_src.clkr,
  7451. [GCC_PCIE_2_PIPE_CLK] = &gcc_pcie_2_pipe_clk.clkr,
  7452. [GCC_PCIE_2_SLV_AXI_CLK] = &gcc_pcie_2_slv_axi_clk.clkr,
  7453. [GCC_PCIE_2_SLV_Q2A_AXI_CLK] = &gcc_pcie_2_slv_q2a_axi_clk.clkr,
  7454. [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
  7455. [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
  7456. [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
  7457. [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
  7458. [GCC_PCIE_3A_PHY_RCHNG_CLK] = &gcc_pcie_3a_phy_rchng_clk.clkr,
  7459. [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
  7460. [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
  7461. [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
  7462. [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
  7463. [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
  7464. [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
  7465. [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
  7466. [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
  7467. [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
  7468. [GCC_PCIE_3B_PHY_RCHNG_CLK] = &gcc_pcie_3b_phy_rchng_clk.clkr,
  7469. [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
  7470. [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
  7471. [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
  7472. [GCC_PCIE_3B_PIPE_DIV2_CLK] = &gcc_pcie_3b_pipe_div2_clk.clkr,
  7473. [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
  7474. [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
  7475. [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
  7476. [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
  7477. [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
  7478. [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
  7479. [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
  7480. [GCC_PCIE_4_PHY_RCHNG_CLK] = &gcc_pcie_4_phy_rchng_clk.clkr,
  7481. [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
  7482. [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
  7483. [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
  7484. [GCC_PCIE_4_PIPE_DIV2_CLK] = &gcc_pcie_4_pipe_div2_clk.clkr,
  7485. [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
  7486. [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
  7487. [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
  7488. [GCC_PCIE_5_AUX_CLK] = &gcc_pcie_5_aux_clk.clkr,
  7489. [GCC_PCIE_5_AUX_CLK_SRC] = &gcc_pcie_5_aux_clk_src.clkr,
  7490. [GCC_PCIE_5_CFG_AHB_CLK] = &gcc_pcie_5_cfg_ahb_clk.clkr,
  7491. [GCC_PCIE_5_MSTR_AXI_CLK] = &gcc_pcie_5_mstr_axi_clk.clkr,
  7492. [GCC_PCIE_5_PHY_RCHNG_CLK] = &gcc_pcie_5_phy_rchng_clk.clkr,
  7493. [GCC_PCIE_5_PHY_RCHNG_CLK_SRC] = &gcc_pcie_5_phy_rchng_clk_src.clkr,
  7494. [GCC_PCIE_5_PIPE_CLK] = &gcc_pcie_5_pipe_clk.clkr,
  7495. [GCC_PCIE_5_PIPE_CLK_SRC] = &gcc_pcie_5_pipe_clk_src.clkr,
  7496. [GCC_PCIE_5_PIPE_DIV2_CLK] = &gcc_pcie_5_pipe_div2_clk.clkr,
  7497. [GCC_PCIE_5_PIPE_DIV_CLK_SRC] = &gcc_pcie_5_pipe_div_clk_src.clkr,
  7498. [GCC_PCIE_5_SLV_AXI_CLK] = &gcc_pcie_5_slv_axi_clk.clkr,
  7499. [GCC_PCIE_5_SLV_Q2A_AXI_CLK] = &gcc_pcie_5_slv_q2a_axi_clk.clkr,
  7500. [GCC_PCIE_6_AUX_CLK] = &gcc_pcie_6_aux_clk.clkr,
  7501. [GCC_PCIE_6_AUX_CLK_SRC] = &gcc_pcie_6_aux_clk_src.clkr,
  7502. [GCC_PCIE_6_CFG_AHB_CLK] = &gcc_pcie_6_cfg_ahb_clk.clkr,
  7503. [GCC_PCIE_6_MSTR_AXI_CLK] = &gcc_pcie_6_mstr_axi_clk.clkr,
  7504. [GCC_PCIE_6_PHY_RCHNG_CLK] = &gcc_pcie_6_phy_rchng_clk.clkr,
  7505. [GCC_PCIE_6_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6_phy_rchng_clk_src.clkr,
  7506. [GCC_PCIE_6_PIPE_CLK] = &gcc_pcie_6_pipe_clk.clkr,
  7507. [GCC_PCIE_6_PIPE_CLK_SRC] = &gcc_pcie_6_pipe_clk_src.clkr,
  7508. [GCC_PCIE_6_PIPE_DIV2_CLK] = &gcc_pcie_6_pipe_div2_clk.clkr,
  7509. [GCC_PCIE_6_PIPE_DIV_CLK_SRC] = &gcc_pcie_6_pipe_div_clk_src.clkr,
  7510. [GCC_PCIE_6_SLV_AXI_CLK] = &gcc_pcie_6_slv_axi_clk.clkr,
  7511. [GCC_PCIE_6_SLV_Q2A_AXI_CLK] = &gcc_pcie_6_slv_q2a_axi_clk.clkr,
  7512. [GCC_PCIE_NOC_PWRCTL_CLK] = &gcc_pcie_noc_pwrctl_clk.clkr,
  7513. [GCC_PCIE_NOC_QOSGEN_EXTREF_CLK] = &gcc_pcie_noc_qosgen_extref_clk.clkr,
  7514. [GCC_PCIE_NOC_SF_CENTER_CLK] = &gcc_pcie_noc_sf_center_clk.clkr,
  7515. [GCC_PCIE_NOC_SLAVE_SF_EAST_CLK] = &gcc_pcie_noc_slave_sf_east_clk.clkr,
  7516. [GCC_PCIE_NOC_SLAVE_SF_WEST_CLK] = &gcc_pcie_noc_slave_sf_west_clk.clkr,
  7517. [GCC_PCIE_NOC_TSCTR_CLK] = &gcc_pcie_noc_tsctr_clk.clkr,
  7518. [GCC_PCIE_PHY_3A_AUX_CLK] = &gcc_pcie_phy_3a_aux_clk.clkr,
  7519. [GCC_PCIE_PHY_3A_AUX_CLK_SRC] = &gcc_pcie_phy_3a_aux_clk_src.clkr,
  7520. [GCC_PCIE_PHY_3B_AUX_CLK] = &gcc_pcie_phy_3b_aux_clk.clkr,
  7521. [GCC_PCIE_PHY_3B_AUX_CLK_SRC] = &gcc_pcie_phy_3b_aux_clk_src.clkr,
  7522. [GCC_PCIE_PHY_4_AUX_CLK] = &gcc_pcie_phy_4_aux_clk.clkr,
  7523. [GCC_PCIE_PHY_4_AUX_CLK_SRC] = &gcc_pcie_phy_4_aux_clk_src.clkr,
  7524. [GCC_PCIE_PHY_5_AUX_CLK] = &gcc_pcie_phy_5_aux_clk.clkr,
  7525. [GCC_PCIE_PHY_5_AUX_CLK_SRC] = &gcc_pcie_phy_5_aux_clk_src.clkr,
  7526. [GCC_PCIE_PHY_6_AUX_CLK] = &gcc_pcie_phy_6_aux_clk.clkr,
  7527. [GCC_PCIE_PHY_6_AUX_CLK_SRC] = &gcc_pcie_phy_6_aux_clk_src.clkr,
  7528. [GCC_PCIE_RSCC_CFG_AHB_CLK] = &gcc_pcie_rscc_cfg_ahb_clk.clkr,
  7529. [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
  7530. [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
  7531. [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
  7532. [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
  7533. [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
  7534. [GCC_QMIP_AV1E_AHB_CLK] = &gcc_qmip_av1e_ahb_clk.clkr,
  7535. [GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr,
  7536. [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
  7537. [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
  7538. [GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
  7539. [GCC_QMIP_PCIE_3A_AHB_CLK] = &gcc_qmip_pcie_3a_ahb_clk.clkr,
  7540. [GCC_QMIP_PCIE_3B_AHB_CLK] = &gcc_qmip_pcie_3b_ahb_clk.clkr,
  7541. [GCC_QMIP_PCIE_4_AHB_CLK] = &gcc_qmip_pcie_4_ahb_clk.clkr,
  7542. [GCC_QMIP_PCIE_5_AHB_CLK] = &gcc_qmip_pcie_5_ahb_clk.clkr,
  7543. [GCC_QMIP_PCIE_6_AHB_CLK] = &gcc_qmip_pcie_6_ahb_clk.clkr,
  7544. [GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr,
  7545. [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
  7546. [GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
  7547. [GCC_QMIP_VIDEO_VCODEC1_AHB_CLK] = &gcc_qmip_video_vcodec1_ahb_clk.clkr,
  7548. [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
  7549. [GCC_QUPV3_OOB_CORE_2X_CLK] = &gcc_qupv3_oob_core_2x_clk.clkr,
  7550. [GCC_QUPV3_OOB_CORE_CLK] = &gcc_qupv3_oob_core_clk.clkr,
  7551. [GCC_QUPV3_OOB_M_AHB_CLK] = &gcc_qupv3_oob_m_ahb_clk.clkr,
  7552. [GCC_QUPV3_OOB_QSPI_S0_CLK] = &gcc_qupv3_oob_qspi_s0_clk.clkr,
  7553. [GCC_QUPV3_OOB_QSPI_S0_CLK_SRC] = &gcc_qupv3_oob_qspi_s0_clk_src.clkr,
  7554. [GCC_QUPV3_OOB_QSPI_S1_CLK] = &gcc_qupv3_oob_qspi_s1_clk.clkr,
  7555. [GCC_QUPV3_OOB_QSPI_S1_CLK_SRC] = &gcc_qupv3_oob_qspi_s1_clk_src.clkr,
  7556. [GCC_QUPV3_OOB_S0_CLK] = &gcc_qupv3_oob_s0_clk.clkr,
  7557. [GCC_QUPV3_OOB_S0_CLK_SRC] = &gcc_qupv3_oob_s0_clk_src.clkr,
  7558. [GCC_QUPV3_OOB_S1_CLK] = &gcc_qupv3_oob_s1_clk.clkr,
  7559. [GCC_QUPV3_OOB_S1_CLK_SRC] = &gcc_qupv3_oob_s1_clk_src.clkr,
  7560. [GCC_QUPV3_OOB_S_AHB_CLK] = &gcc_qupv3_oob_s_ahb_clk.clkr,
  7561. [GCC_QUPV3_OOB_TCXO_CLK] = &gcc_qupv3_oob_tcxo_clk.clkr,
  7562. [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
  7563. [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
  7564. [GCC_QUPV3_WRAP0_QSPI_S2_CLK] = &gcc_qupv3_wrap0_qspi_s2_clk.clkr,
  7565. [GCC_QUPV3_WRAP0_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr,
  7566. [GCC_QUPV3_WRAP0_QSPI_S3_CLK] = &gcc_qupv3_wrap0_qspi_s3_clk.clkr,
  7567. [GCC_QUPV3_WRAP0_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr,
  7568. [GCC_QUPV3_WRAP0_QSPI_S6_CLK] = &gcc_qupv3_wrap0_qspi_s6_clk.clkr,
  7569. [GCC_QUPV3_WRAP0_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr,
  7570. [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
  7571. [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
  7572. [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
  7573. [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
  7574. [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
  7575. [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
  7576. [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
  7577. [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
  7578. [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
  7579. [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
  7580. [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
  7581. [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
  7582. [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
  7583. [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
  7584. [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
  7585. [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
  7586. [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
  7587. [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
  7588. [GCC_QUPV3_WRAP1_QSPI_S2_CLK] = &gcc_qupv3_wrap1_qspi_s2_clk.clkr,
  7589. [GCC_QUPV3_WRAP1_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr,
  7590. [GCC_QUPV3_WRAP1_QSPI_S3_CLK] = &gcc_qupv3_wrap1_qspi_s3_clk.clkr,
  7591. [GCC_QUPV3_WRAP1_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr,
  7592. [GCC_QUPV3_WRAP1_QSPI_S6_CLK] = &gcc_qupv3_wrap1_qspi_s6_clk.clkr,
  7593. [GCC_QUPV3_WRAP1_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr,
  7594. [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
  7595. [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
  7596. [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
  7597. [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
  7598. [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
  7599. [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
  7600. [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
  7601. [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
  7602. [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
  7603. [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
  7604. [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
  7605. [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
  7606. [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
  7607. [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
  7608. [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
  7609. [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
  7610. [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
  7611. [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
  7612. [GCC_QUPV3_WRAP2_QSPI_S2_CLK] = &gcc_qupv3_wrap2_qspi_s2_clk.clkr,
  7613. [GCC_QUPV3_WRAP2_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr,
  7614. [GCC_QUPV3_WRAP2_QSPI_S3_CLK] = &gcc_qupv3_wrap2_qspi_s3_clk.clkr,
  7615. [GCC_QUPV3_WRAP2_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr,
  7616. [GCC_QUPV3_WRAP2_QSPI_S6_CLK] = &gcc_qupv3_wrap2_qspi_s6_clk.clkr,
  7617. [GCC_QUPV3_WRAP2_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr,
  7618. [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
  7619. [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
  7620. [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
  7621. [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
  7622. [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
  7623. [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
  7624. [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
  7625. [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
  7626. [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
  7627. [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
  7628. [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
  7629. [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
  7630. [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
  7631. [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
  7632. [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
  7633. [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
  7634. [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
  7635. [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
  7636. [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
  7637. [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
  7638. [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
  7639. [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
  7640. [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
  7641. [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
  7642. [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
  7643. [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
  7644. [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
  7645. [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
  7646. [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
  7647. [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
  7648. [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
  7649. [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
  7650. [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
  7651. [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
  7652. [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
  7653. [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
  7654. [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
  7655. [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
  7656. [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
  7657. [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
  7658. [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
  7659. [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
  7660. [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
  7661. [GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
  7662. [GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr,
  7663. [GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
  7664. [GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr,
  7665. [GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr,
  7666. [GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
  7667. [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
  7668. [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
  7669. [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
  7670. [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
  7671. [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
  7672. [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
  7673. [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
  7674. [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
  7675. [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
  7676. [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
  7677. [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
  7678. [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
  7679. [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
  7680. [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
  7681. [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
  7682. [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
  7683. [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
  7684. [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
  7685. [GCC_USB30_TERT_MASTER_CLK] = &gcc_usb30_tert_master_clk.clkr,
  7686. [GCC_USB30_TERT_MASTER_CLK_SRC] = &gcc_usb30_tert_master_clk_src.clkr,
  7687. [GCC_USB30_TERT_MOCK_UTMI_CLK] = &gcc_usb30_tert_mock_utmi_clk.clkr,
  7688. [GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr,
  7689. [GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr,
  7690. [GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr,
  7691. [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
  7692. [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
  7693. [GCC_USB34_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb34_tert_phy_pipe_clk_src.clkr,
  7694. [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
  7695. [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
  7696. [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
  7697. [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
  7698. [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
  7699. [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
  7700. [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
  7701. [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
  7702. [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
  7703. [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
  7704. [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
  7705. [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
  7706. [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
  7707. [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
  7708. [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
  7709. [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
  7710. [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
  7711. [GCC_USB3_TERT_PHY_AUX_CLK] = &gcc_usb3_tert_phy_aux_clk.clkr,
  7712. [GCC_USB3_TERT_PHY_AUX_CLK_SRC] = &gcc_usb3_tert_phy_aux_clk_src.clkr,
  7713. [GCC_USB3_TERT_PHY_COM_AUX_CLK] = &gcc_usb3_tert_phy_com_aux_clk.clkr,
  7714. [GCC_USB3_TERT_PHY_PIPE_CLK] = &gcc_usb3_tert_phy_pipe_clk.clkr,
  7715. [GCC_USB3_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb3_tert_phy_pipe_clk_src.clkr,
  7716. [GCC_USB4_0_CFG_AHB_CLK] = &gcc_usb4_0_cfg_ahb_clk.clkr,
  7717. [GCC_USB4_0_DP0_CLK] = &gcc_usb4_0_dp0_clk.clkr,
  7718. [GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr,
  7719. [GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr,
  7720. [GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr,
  7721. [GCC_USB4_0_PHY_DP0_CLK_SRC] = &gcc_usb4_0_phy_dp0_clk_src.clkr,
  7722. [GCC_USB4_0_PHY_DP1_CLK_SRC] = &gcc_usb4_0_phy_dp1_clk_src.clkr,
  7723. [GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr,
  7724. [GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr,
  7725. [GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr,
  7726. [GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr,
  7727. [GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr,
  7728. [GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr,
  7729. [GCC_USB4_0_PHY_RX0_CLK_SRC] = &gcc_usb4_0_phy_rx0_clk_src.clkr,
  7730. [GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr,
  7731. [GCC_USB4_0_PHY_RX1_CLK_SRC] = &gcc_usb4_0_phy_rx1_clk_src.clkr,
  7732. [GCC_USB4_0_PHY_SYS_CLK_SRC] = &gcc_usb4_0_phy_sys_clk_src.clkr,
  7733. [GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr,
  7734. [GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr,
  7735. [GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr,
  7736. [GCC_USB4_0_SYS_CLK] = &gcc_usb4_0_sys_clk.clkr,
  7737. [GCC_USB4_0_TMU_CLK] = &gcc_usb4_0_tmu_clk.clkr,
  7738. [GCC_USB4_0_TMU_CLK_SRC] = &gcc_usb4_0_tmu_clk_src.clkr,
  7739. [GCC_USB4_0_UC_HRR_CLK] = &gcc_usb4_0_uc_hrr_clk.clkr,
  7740. [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
  7741. [GCC_USB4_1_DP0_CLK] = &gcc_usb4_1_dp0_clk.clkr,
  7742. [GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr,
  7743. [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
  7744. [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
  7745. [GCC_USB4_1_PHY_DP0_CLK_SRC] = &gcc_usb4_1_phy_dp0_clk_src.clkr,
  7746. [GCC_USB4_1_PHY_DP1_CLK_SRC] = &gcc_usb4_1_phy_dp1_clk_src.clkr,
  7747. [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
  7748. [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
  7749. [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
  7750. [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
  7751. [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
  7752. [GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pll_pipe_clk_src.clkr,
  7753. [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
  7754. [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
  7755. [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
  7756. [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
  7757. [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
  7758. [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
  7759. [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
  7760. [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
  7761. [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
  7762. [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
  7763. [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
  7764. [GCC_USB4_1_UC_HRR_CLK] = &gcc_usb4_1_uc_hrr_clk.clkr,
  7765. [GCC_USB4_2_CFG_AHB_CLK] = &gcc_usb4_2_cfg_ahb_clk.clkr,
  7766. [GCC_USB4_2_DP0_CLK] = &gcc_usb4_2_dp0_clk.clkr,
  7767. [GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr,
  7768. [GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr,
  7769. [GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr,
  7770. [GCC_USB4_2_PHY_DP0_CLK_SRC] = &gcc_usb4_2_phy_dp0_clk_src.clkr,
  7771. [GCC_USB4_2_PHY_DP1_CLK_SRC] = &gcc_usb4_2_phy_dp1_clk_src.clkr,
  7772. [GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr,
  7773. [GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr,
  7774. [GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr,
  7775. [GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr,
  7776. [GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr,
  7777. [GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr,
  7778. [GCC_USB4_2_PHY_RX0_CLK_SRC] = &gcc_usb4_2_phy_rx0_clk_src.clkr,
  7779. [GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr,
  7780. [GCC_USB4_2_PHY_RX1_CLK_SRC] = &gcc_usb4_2_phy_rx1_clk_src.clkr,
  7781. [GCC_USB4_2_PHY_SYS_CLK_SRC] = &gcc_usb4_2_phy_sys_clk_src.clkr,
  7782. [GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr,
  7783. [GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr,
  7784. [GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr,
  7785. [GCC_USB4_2_SYS_CLK] = &gcc_usb4_2_sys_clk.clkr,
  7786. [GCC_USB4_2_TMU_CLK] = &gcc_usb4_2_tmu_clk.clkr,
  7787. [GCC_USB4_2_TMU_CLK_SRC] = &gcc_usb4_2_tmu_clk_src.clkr,
  7788. [GCC_USB4_2_UC_HRR_CLK] = &gcc_usb4_2_uc_hrr_clk.clkr,
  7789. [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
  7790. [GCC_VIDEO_AXI0C_CLK] = &gcc_video_axi0c_clk.clkr,
  7791. [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
  7792. };
  7793. static struct gdsc *gcc_glymur_gdscs[] = {
  7794. [GCC_PCIE_0_TUNNEL_GDSC] = &gcc_pcie_0_tunnel_gdsc,
  7795. [GCC_PCIE_1_TUNNEL_GDSC] = &gcc_pcie_1_tunnel_gdsc,
  7796. [GCC_PCIE_2_TUNNEL_GDSC] = &gcc_pcie_2_tunnel_gdsc,
  7797. [GCC_PCIE_3A_GDSC] = &gcc_pcie_3a_gdsc,
  7798. [GCC_PCIE_3A_PHY_GDSC] = &gcc_pcie_3a_phy_gdsc,
  7799. [GCC_PCIE_3B_GDSC] = &gcc_pcie_3b_gdsc,
  7800. [GCC_PCIE_3B_PHY_GDSC] = &gcc_pcie_3b_phy_gdsc,
  7801. [GCC_PCIE_4_GDSC] = &gcc_pcie_4_gdsc,
  7802. [GCC_PCIE_4_PHY_GDSC] = &gcc_pcie_4_phy_gdsc,
  7803. [GCC_PCIE_5_GDSC] = &gcc_pcie_5_gdsc,
  7804. [GCC_PCIE_5_PHY_GDSC] = &gcc_pcie_5_phy_gdsc,
  7805. [GCC_PCIE_6_GDSC] = &gcc_pcie_6_gdsc,
  7806. [GCC_PCIE_6_PHY_GDSC] = &gcc_pcie_6_phy_gdsc,
  7807. [GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
  7808. [GCC_USB20_PRIM_GDSC] = &gcc_usb20_prim_gdsc,
  7809. [GCC_USB30_MP_GDSC] = &gcc_usb30_mp_gdsc,
  7810. [GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
  7811. [GCC_USB30_SEC_GDSC] = &gcc_usb30_sec_gdsc,
  7812. [GCC_USB30_TERT_GDSC] = &gcc_usb30_tert_gdsc,
  7813. [GCC_USB3_MP_SS0_PHY_GDSC] = &gcc_usb3_mp_ss0_phy_gdsc,
  7814. [GCC_USB3_MP_SS1_PHY_GDSC] = &gcc_usb3_mp_ss1_phy_gdsc,
  7815. [GCC_USB4_0_GDSC] = &gcc_usb4_0_gdsc,
  7816. [GCC_USB4_1_GDSC] = &gcc_usb4_1_gdsc,
  7817. [GCC_USB4_2_GDSC] = &gcc_usb4_2_gdsc,
  7818. [GCC_USB_0_PHY_GDSC] = &gcc_usb_0_phy_gdsc,
  7819. [GCC_USB_1_PHY_GDSC] = &gcc_usb_1_phy_gdsc,
  7820. [GCC_USB_2_PHY_GDSC] = &gcc_usb_2_phy_gdsc,
  7821. };
  7822. static const struct qcom_reset_map gcc_glymur_resets[] = {
  7823. [GCC_AV1E_BCR] = { 0x9b028 },
  7824. [GCC_CAMERA_BCR] = { 0x26000 },
  7825. [GCC_DISPLAY_BCR] = { 0x27000 },
  7826. [GCC_EVA_BCR] = { 0x9b000 },
  7827. [GCC_GPU_BCR] = { 0x71000 },
  7828. [GCC_PCIE_0_LINK_DOWN_BCR] = { 0xbc2d0 },
  7829. [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0xbc2dc },
  7830. [GCC_PCIE_0_PHY_BCR] = { 0xbc2d8 },
  7831. [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0xbc2e0 },
  7832. [GCC_PCIE_0_TUNNEL_BCR] = { 0xc8000 },
  7833. [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x7f018 },
  7834. [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x7f024 },
  7835. [GCC_PCIE_1_PHY_BCR] = { 0x7f020 },
  7836. [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x7f028 },
  7837. [GCC_PCIE_1_TUNNEL_BCR] = { 0x2e000 },
  7838. [GCC_PCIE_2_LINK_DOWN_BCR] = { 0x281d0 },
  7839. [GCC_PCIE_2_NOCSR_COM_PHY_BCR] = { 0x281dc },
  7840. [GCC_PCIE_2_PHY_BCR] = { 0x281d8 },
  7841. [GCC_PCIE_2_PHY_NOCSR_COM_PHY_BCR] = { 0x281e0 },
  7842. [GCC_PCIE_2_TUNNEL_BCR] = { 0xc0000 },
  7843. [GCC_PCIE_3A_BCR] = { 0xdc000 },
  7844. [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0x7b0a0 },
  7845. [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0x7b0ac },
  7846. [GCC_PCIE_3A_PHY_BCR] = { 0x6c000 },
  7847. [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0x7b0b0 },
  7848. [GCC_PCIE_3B_BCR] = { 0x94000 },
  7849. [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0x7a0c0 },
  7850. [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0x7a0cc },
  7851. [GCC_PCIE_3B_PHY_BCR] = { 0x75000 },
  7852. [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0x7a0c8 },
  7853. [GCC_PCIE_4_BCR] = { 0x88000 },
  7854. [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x980c0 },
  7855. [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x980cc },
  7856. [GCC_PCIE_4_PHY_BCR] = { 0xd3000 },
  7857. [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x980d0 },
  7858. [GCC_PCIE_5_BCR] = { 0xc3000 },
  7859. [GCC_PCIE_5_LINK_DOWN_BCR] = { 0x850c0 },
  7860. [GCC_PCIE_5_NOCSR_COM_PHY_BCR] = { 0x850cc },
  7861. [GCC_PCIE_5_PHY_BCR] = { 0xd2000 },
  7862. [GCC_PCIE_5_PHY_NOCSR_COM_PHY_BCR] = { 0x850d0 },
  7863. [GCC_PCIE_6_BCR] = { 0x8a000 },
  7864. [GCC_PCIE_6_LINK_DOWN_BCR] = { 0x3a0b0 },
  7865. [GCC_PCIE_6_NOCSR_COM_PHY_BCR] = { 0x3a0bc },
  7866. [GCC_PCIE_6_PHY_BCR] = { 0xd4000 },
  7867. [GCC_PCIE_6_PHY_NOCSR_COM_PHY_BCR] = { 0x3a0c0 },
  7868. [GCC_PCIE_NOC_BCR] = { 0xba294 },
  7869. [GCC_PCIE_PHY_BCR] = { 0x6f000 },
  7870. [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x7f00c },
  7871. [GCC_PCIE_PHY_COM_BCR] = { 0x7f010 },
  7872. [GCC_PCIE_RSCC_BCR] = { 0xb8000 },
  7873. [GCC_PDM_BCR] = { 0x33000 },
  7874. [GCC_QUPV3_WRAPPER_0_BCR] = { 0x28000 },
  7875. [GCC_QUPV3_WRAPPER_1_BCR] = { 0xb3000 },
  7876. [GCC_QUPV3_WRAPPER_2_BCR] = { 0xb4000 },
  7877. [GCC_QUPV3_WRAPPER_OOB_BCR] = { 0xe7000 },
  7878. [GCC_QUSB2PHY_HS0_MP_BCR] = { 0xca000 },
  7879. [GCC_QUSB2PHY_HS1_MP_BCR] = { 0xe6000 },
  7880. [GCC_QUSB2PHY_PRIM_BCR] = { 0xad024 },
  7881. [GCC_QUSB2PHY_SEC_BCR] = { 0xae000 },
  7882. [GCC_QUSB2PHY_TERT_BCR] = { 0xc9000 },
  7883. [GCC_QUSB2PHY_USB20_HS_BCR] = { 0xe9000 },
  7884. [GCC_SDCC2_BCR] = { 0xb0000 },
  7885. [GCC_SDCC4_BCR] = { 0xdf000 },
  7886. [GCC_TCSR_PCIE_BCR] = { 0x281e4 },
  7887. [GCC_UFS_PHY_BCR] = { 0x77004 },
  7888. [GCC_USB20_PRIM_BCR] = { 0xbc000 },
  7889. [GCC_USB30_MP_BCR] = { 0x9a00c },
  7890. [GCC_USB30_PRIM_BCR] = { 0x3f018 },
  7891. [GCC_USB30_SEC_BCR] = { 0xe200c },
  7892. [GCC_USB30_TERT_BCR] = { 0xe100c },
  7893. [GCC_USB3_MP_SS0_PHY_BCR] = { 0x54008 },
  7894. [GCC_USB3_MP_SS1_PHY_BCR] = { 0x54028 },
  7895. [GCC_USB3_PHY_PRIM_BCR] = { 0xdb000 },
  7896. [GCC_USB3_PHY_SEC_BCR] = { 0x2c000 },
  7897. [GCC_USB3_PHY_TERT_BCR] = { 0xbe000 },
  7898. [GCC_USB3_UNIPHY_MP0_BCR] = { 0x54000 },
  7899. [GCC_USB3_UNIPHY_MP1_BCR] = { 0x54020 },
  7900. [GCC_USB3PHY_PHY_PRIM_BCR] = { 0xdb004 },
  7901. [GCC_USB3PHY_PHY_SEC_BCR] = { 0x2c004 },
  7902. [GCC_USB3PHY_PHY_TERT_BCR] = { 0xbe004 },
  7903. [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x54004 },
  7904. [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54024 },
  7905. [GCC_USB4_0_BCR] = { 0x2b004 },
  7906. [GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0xdb010 },
  7907. [GCC_USB4_1_BCR] = { 0x2d004 },
  7908. [GCC_USB4_2_BCR] = { 0xe0004 },
  7909. [GCC_USB_0_PHY_BCR] = { 0xdb020 },
  7910. [GCC_USB_1_PHY_BCR] = { 0x2c020 },
  7911. [GCC_USB_2_PHY_BCR] = { 0xbe020 },
  7912. [GCC_VIDEO_AXI0_CLK_ARES] = { 0x3201c, 2 },
  7913. [GCC_VIDEO_AXI1_CLK_ARES] = { 0x32044, 2 },
  7914. [GCC_VIDEO_BCR] = { 0x32000 },
  7915. };
  7916. static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
  7917. DEFINE_RCG_DFS(gcc_qupv3_oob_qspi_s0_clk_src),
  7918. DEFINE_RCG_DFS(gcc_qupv3_oob_qspi_s1_clk_src),
  7919. DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s2_clk_src),
  7920. DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s3_clk_src),
  7921. DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s6_clk_src),
  7922. DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
  7923. DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
  7924. DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
  7925. DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
  7926. DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
  7927. DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s2_clk_src),
  7928. DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s3_clk_src),
  7929. DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s6_clk_src),
  7930. DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
  7931. DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
  7932. DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
  7933. DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
  7934. DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
  7935. DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s2_clk_src),
  7936. DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s3_clk_src),
  7937. DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s6_clk_src),
  7938. DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
  7939. DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
  7940. DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
  7941. DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
  7942. DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
  7943. };
  7944. static u32 gcc_glymur_critical_cbcrs[] = {
  7945. 0x26004, /* GCC_CAMERA_AHB_CLK */
  7946. 0x26040, /* GCC_CAMERA_XO_CLK */
  7947. 0x27004, /* GCC_DISP_AHB_CLK */
  7948. 0x71004, /* GCC_GPU_CFG_AHB_CLK */
  7949. 0x32004, /* GCC_VIDEO_AHB_CLK */
  7950. 0x32058, /* GCC_VIDEO_XO_CLK */
  7951. };
  7952. static const struct regmap_config gcc_glymur_regmap_config = {
  7953. .reg_bits = 32,
  7954. .reg_stride = 4,
  7955. .val_bits = 32,
  7956. .max_register = 0x1f8ff0,
  7957. .fast_io = true,
  7958. };
  7959. static void clk_glymur_regs_configure(struct device *dev, struct regmap *regmap)
  7960. {
  7961. /* FORCE_MEM_CORE_ON for ufs phy ice core clocks */
  7962. qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
  7963. }
  7964. static struct qcom_cc_driver_data gcc_glymur_driver_data = {
  7965. .clk_cbcrs = gcc_glymur_critical_cbcrs,
  7966. .num_clk_cbcrs = ARRAY_SIZE(gcc_glymur_critical_cbcrs),
  7967. .dfs_rcgs = gcc_dfs_clocks,
  7968. .num_dfs_rcgs = ARRAY_SIZE(gcc_dfs_clocks),
  7969. .clk_regs_configure = clk_glymur_regs_configure,
  7970. };
  7971. static const struct qcom_cc_desc gcc_glymur_desc = {
  7972. .config = &gcc_glymur_regmap_config,
  7973. .clks = gcc_glymur_clocks,
  7974. .num_clks = ARRAY_SIZE(gcc_glymur_clocks),
  7975. .resets = gcc_glymur_resets,
  7976. .num_resets = ARRAY_SIZE(gcc_glymur_resets),
  7977. .gdscs = gcc_glymur_gdscs,
  7978. .num_gdscs = ARRAY_SIZE(gcc_glymur_gdscs),
  7979. .driver_data = &gcc_glymur_driver_data,
  7980. };
  7981. static const struct of_device_id gcc_glymur_match_table[] = {
  7982. { .compatible = "qcom,glymur-gcc" },
  7983. { }
  7984. };
  7985. MODULE_DEVICE_TABLE(of, gcc_glymur_match_table);
  7986. static int gcc_glymur_probe(struct platform_device *pdev)
  7987. {
  7988. return qcom_cc_probe(pdev, &gcc_glymur_desc);
  7989. }
  7990. static struct platform_driver gcc_glymur_driver = {
  7991. .probe = gcc_glymur_probe,
  7992. .driver = {
  7993. .name = "gcc-glymur",
  7994. .of_match_table = gcc_glymur_match_table,
  7995. },
  7996. };
  7997. static int __init gcc_glymur_init(void)
  7998. {
  7999. return platform_driver_register(&gcc_glymur_driver);
  8000. }
  8001. subsys_initcall(gcc_glymur_init);
  8002. static void __exit gcc_glymur_exit(void)
  8003. {
  8004. platform_driver_unregister(&gcc_glymur_driver);
  8005. }
  8006. module_exit(gcc_glymur_exit);
  8007. MODULE_DESCRIPTION("QTI GCC GLYMUR Driver");
  8008. MODULE_LICENSE("GPL");