123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431 |
- From bb084c1d09e7b81ba4eda974ab0d7abcd6e3a114 Mon Sep 17 00:00:00 2001
- From: AmadeusGhost <[email protected]>
- Date: Mon, 10 Apr 2023 23:15:08 +0800
- Subject: [PATCH] uboot-rockchip: bump to v2023.04
- For the python problem, just make clean.
- Skip the gpio patch due to it may broken boot.
- ---
- package/boot/uboot-rockchip/Makefile | 88 +-
- ...hip-rk3568-add-boot-device-detection.patch | 43 -
- ...k3568-enable-automatic-power-savings.patch | 52 -
- ...le-rockchip-HACK-build-rk3568-images.patch | 47 -
- .../004-arm-dts-sync-rk3568-with-linux.patch | 3520 -----------------
- ...ckchip-rk356x-HACK-fix-sdmmc-support.patch | 50 -
- ...rockchip-rk356x-add-quartz64-a-board.patch | 214 -
- ...p-rk_gpio-support-v2-gpio-controller.patch | 755 ----
- ...8-rockchip-allow-sdmmc-at-full-speed.patch | 22 -
- ...ip-defconfig-add-gpio-v2-to-quartz64.patch | 25 -
- ...6x-enable-usb2-support-on-quartz64-a.patch | 97 -
- ...-rk356x-attempt-to-fix-ram-detection.patch | 173 -
- ...ync-rk3566-device-tree-with-mainline.patch | 1060 -----
- ...rockchip-rk356x-add-bpi-r2-pro-board.patch | 795 ----
- .../014-uboot-add-Radxa-ROCK-3A-board.patch | 690 ----
- .../015-uboot-add-NanoPi-R5S-board.patch | 132 +-
- .../016-rk356x-ddr-fix-dbw-detect-bug.patch | 42 -
- ...7-gpio-rockchip-fix-building-for-spl.patch | 44 -
- ...lk-rockchip-rk3568-fix-reset-handler.patch | 28 -
- ...8-driver-Makefile-support-adc-in-SPL.patch | 35 +
- ...-rockchip-handle-bootrom-mode-in-spl.patch | 6 +-
- ...CONFIG_USB_OHCI_NEW-et-al-to-Kconfig.patch | 282 --
- ...104-mkimage-add-public-key-for-image.patch | 166 -
- .../105-Only-build-dtc-if-needed.patch | 125 -
- .../patches/106-no-kwbimage.patch | 2 +-
- .../patches/110-force-pylibfdt-build.patch | 30 +
- .../patches/111-fix-mkimage-host-build.patch | 24 +
- ...-clk-scmi-Add-Kconfig-option-for-SPL.patch | 72 +
- ...trl-rockchip-Fix-IO-mux-selection-on.patch | 126 +
- ...rock64pro-disable-CONFIG_USE_PREBOOT.patch | 6 +-
- ...s-rockchip-Add-GuangMiao-G4C-support.patch | 2 +-
- ...328-Add-support-for-Orangepi-R1-Plus.patch | 22 +-
- ...Add-support-for-Orangepi-R1-Plus-LTS.patch | 24 +-
- ...Add-support-for-FriendlyARM-NanoPi-R.patch | 34 +-
- ...Add-support-for-FriendlyARM-NanoPi-R.patch | 2 +-
- ...399-Add-support-for-Rongpin-king3399.patch | 2 +-
- ...399-Add-support-for-Rocktech-MPC1903.patch | 2 +-
- ...399-Add-support-for-sharevdi-h3399pc.patch | 2 +-
- ...68-Add-support-for-ezpro_mrkaio-m68s.patch | 56 +-
- ...568-Add-support-for-hinlink-opc-h68k.patch | 56 +-
- ...k3568-Add-support-for-fastrhino-r66s.patch | 54 +-
- ...ip-rk3568-Add-support-for-Station-P2.patch | 43 +-
- ...ip-rk3568-Add-support-for-photonicat.patch | 56 +-
- ...hip-rk3568-Add-support-for-radxa_e25.patch | 62 +-
- 44 files changed, 589 insertions(+), 8579 deletions(-)
- delete mode 100644 package/boot/uboot-rockchip/patches/001-rockchip-rk3568-add-boot-device-detection.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/002-rockchip-rk3568-enable-automatic-power-savings.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/003-Makefile-rockchip-HACK-build-rk3568-images.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/004-arm-dts-sync-rk3568-with-linux.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/005-rockchip-rk356x-HACK-fix-sdmmc-support.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/006-rockchip-rk356x-add-quartz64-a-board.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/007-gpio-rockchip-rk_gpio-support-v2-gpio-controller.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/008-rockchip-allow-sdmmc-at-full-speed.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/009-rockchip-defconfig-add-gpio-v2-to-quartz64.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/010-rockchip-rk356x-enable-usb2-support-on-quartz64-a.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/011-rockchip-rk356x-attempt-to-fix-ram-detection.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/012-resync-rk3566-device-tree-with-mainline.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/013-rockchip-rk356x-add-bpi-r2-pro-board.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/014-uboot-add-Radxa-ROCK-3A-board.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/016-rk356x-ddr-fix-dbw-detect-bug.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/017-gpio-rockchip-fix-building-for-spl.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/018-clk-rockchip-rk3568-fix-reset-handler.patch
- create mode 100644 package/boot/uboot-rockchip/patches/018-driver-Makefile-support-adc-in-SPL.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/100-Convert-CONFIG_USB_OHCI_NEW-et-al-to-Kconfig.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/104-mkimage-add-public-key-for-image.patch
- delete mode 100644 package/boot/uboot-rockchip/patches/105-Only-build-dtc-if-needed.patch
- create mode 100644 package/boot/uboot-rockchip/patches/110-force-pylibfdt-build.patch
- create mode 100644 package/boot/uboot-rockchip/patches/111-fix-mkimage-host-build.patch
- create mode 100644 package/boot/uboot-rockchip/patches/120-clk-scmi-Add-Kconfig-option-for-SPL.patch
- create mode 100644 package/boot/uboot-rockchip/patches/121-pinctrl-rockchip-Fix-IO-mux-selection-on.patch
- diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile
- index 3826317dcf0c..810a24543bf1 100644
- --- a/package/boot/uboot-rockchip/Makefile
- +++ b/package/boot/uboot-rockchip/Makefile
- @@ -5,10 +5,10 @@
- include $(TOPDIR)/rules.mk
- include $(INCLUDE_DIR)/kernel.mk
-
- -PKG_VERSION:=2022.07
- +PKG_VERSION:=2023.04
- PKG_RELEASE:=$(AUTORELEASE)
-
- -PKG_HASH:=92b08eb49c24da14c1adbf70a71ae8f37cc53eeb4230e859ad8b6733d13dcf5e
- +PKG_HASH:=e31cac91545ff41b71cec5d8c22afd695645cd6e2a442ccdacacd60534069341
-
- PKG_MAINTAINER:=Tobias Maedel <[email protected]>
-
- @@ -77,7 +77,7 @@ define U-Boot/guangmiao-g4c-rk3399
- NAME:=GuangMiao G4C
- BUILD_DEVICES:= \
- sharevdi_guangmiao-g4c
- - DEPENDS:=+PACKAGE_u-boot-guangmiao-g4c-rk3399:arm-trusted-firmware-rockchip
- + DEPENDS:=+PACKAGE_u-boot-guangmiao-g4c-rk3399:trusted-firmware-a-rk3399
- PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- ATF:=rk3399_bl31.elf
- endef
- @@ -109,7 +109,7 @@ define U-Boot/rock-pi-4-rk3399
- NAME:=Rock Pi 4
- BUILD_DEVICES:= \
- radxa_rock-pi-4
- - DEPENDS:=+PACKAGE_u-boot-rock-pi-4-rk3399:arm-trusted-firmware-rockchip
- + DEPENDS:=+PACKAGE_u-boot-rock-pi-4-rk3399:trusted-firmware-a-rk3399
- PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- ATF:=rk3399_bl31.elf
- endef
- @@ -119,7 +119,7 @@ define U-Boot/rockpro64-rk3399
- NAME:=RockPro64
- BUILD_DEVICES:= \
- pine64_rockpro64
- - DEPENDS:=+PACKAGE_u-boot-rockpro64-rk3399:arm-trusted-firmware-rockchip
- + DEPENDS:=+PACKAGE_u-boot-rockpro64-rk3399:trusted-firmware-a-rk3399
- PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- ATF:=rk3399_bl31.elf
- endef
- @@ -165,9 +165,9 @@ define U-Boot/mrkaio-m68s-rk3568
- BUILD_DEVICES:= \
- ezpro_mrkaio-m68s \
- ezpro_mrkaio-m68s-plus
- - DEPENDS:=+PACKAGE_u-boot-mrkaio-m68s-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-mrkaio-m68s-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -177,9 +177,9 @@ define U-Boot/nanopi-r5s-rk3568
- BUILD_DEVICES:= \
- friendlyarm_nanopi-r5c \
- friendlyarm_nanopi-r5s
- - DEPENDS:=+PACKAGE_u-boot-nanopi-r5s-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-nanopi-r5s-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -190,9 +190,9 @@ define U-Boot/opc-h68k-rk3568
- hinlink_opc-h66k \
- hinlink_opc-h68k \
- hinlink_opc-h69k
- - DEPENDS:=+PACKAGE_u-boot-opc-h68k-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-opc-h68k-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -201,9 +201,9 @@ define U-Boot/photonicat-rk3568
- NAME:=Ariaboard Photonicat
- BUILD_DEVICES:= \
- ariaboard_photonicat
- - DEPENDS:=+PACKAGE_u-boot-photonicat-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-photonicat-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -212,9 +212,9 @@ define U-Boot/radxa-e25-rk3568
- NAME:=Radxa E25
- BUILD_DEVICES:= \
- radxa_e25
- - DEPENDS:=+PACKAGE_u-boot-radxa-e25-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-radxa-e25-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -223,9 +223,9 @@ define U-Boot/rock-3a-rk3568
- NAME:=ROCK3 Model A
- BUILD_DEVICES:= \
- radxa_rock-3a
- - DEPENDS:=+PACKAGE_u-boot-rock-3a-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-rock-3a-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -235,9 +235,9 @@ define U-Boot/r66s-rk3568
- BUILD_DEVICES:= \
- fastrhino_r66s \
- fastrhino_r68s
- - DEPENDS:=+PACKAGE_u-boot-r66s-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-r66s-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -246,9 +246,9 @@ define U-Boot/station-p2-rk3568
- NAME:=StationP2
- BUILD_DEVICES:= \
- firefly_station-p2
- - DEPENDS:=+PACKAGE_u-boot-station-p2-rk3568:arm-trusted-firmware-rk3568
- - PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
- - ATF:=rk3568_bl31_v1.34.elf
- + DEPENDS:=+PACKAGE_u-boot-station-p2-rk3568:trusted-firmware-a-rk3568
- + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
- + ATF:=rk3568_bl31.elf
- DDR:=rk3568_ddr_1560MHz_v1.13.bin
- endef
-
- @@ -279,15 +279,39 @@ UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
- UBOOT_MAKE_FLAGS += \
- BL31=$(STAGING_DIR_IMAGE)/$(ATF)
-
- +ifeq ($(CONFIG_PACKAGE_trusted-firmware-a-rk3568),y)
- +UBOOT_MAKE_FLAGS += \
- + ROCKCHIP_TPL=$(PKG_BUILD_DIR)/$(DDR)
- +endif
- +
- +RKBIN_URL:=https://raw.githubusercontent.com/rockchip-linux/rkbin/b0c100f1a260d807df450019774993c761beb79d
- +
- +define Download/rk3566-ddr
- + FILE:=rk3566_ddr_1056MHz_v1.13.bin
- + URL:=$(RKBIN_URL)/bin/rk35/
- + HASH:=6f165b37640eb876b5f41297bcce6451eb8a86fa56649633d4aca76047136a36
- +endef
- +$(eval $(call Download,rk3566-ddr))
- +
- +define Download/rk3568-ddr
- + FILE:=rk3568_ddr_1560MHz_v1.13.bin
- + URL:=$(RKBIN_URL)/bin/rk35/
- + HASH:=53d5e893916e647ccb8c5a2a51f749e9e11bf7329e61a2f94d8c089a333d7812
- +endef
- +$(eval $(call Download,rk3568-ddr))
- +
- +define Build/Prepare
- + $(call Build/Prepare/Default)
- + $(CP) $(DL_DIR)/rk3566_ddr_1056MHz_v1.13.bin $(PKG_BUILD_DIR)/
- + $(CP) $(DL_DIR)/rk3568_ddr_1560MHz_v1.13.bin $(PKG_BUILD_DIR)/
- +endef
- +
- define Build/Configure
- $(call Build/Configure/U-Boot)
-
- $(SED) 's/CONFIG_TOOLS_LIBCRYPTO=y/# CONFIG_TOOLS_LIBCRYPTO is not set/' $(PKG_BUILD_DIR)/.config
- $(SED) 's#CONFIG_MKIMAGE_DTC_PATH=.*#CONFIG_MKIMAGE_DTC_PATH="$(PKG_BUILD_DIR)/scripts/dtc/dtc"#g' $(PKG_BUILD_DIR)/.config
- echo 'CONFIG_IDENT_STRING=" OpenWrt"' >> $(PKG_BUILD_DIR)/.config
- -ifneq ($(DDR),)
- - $(CP) $(STAGING_DIR_IMAGE)/$(DDR) $(PKG_BUILD_DIR)/ram_init.bin
- -endif
- endef
-
- define Build/InstallDev
- diff --git a/package/boot/uboot-rockchip/patches/001-rockchip-rk3568-add-boot-device-detection.patch b/package/boot/uboot-rockchip/patches/001-rockchip-rk3568-add-boot-device-detection.patch
- deleted file mode 100644
- index b3dd30996f55..000000000000
- --- a/package/boot/uboot-rockchip/patches/001-rockchip-rk3568-add-boot-device-detection.patch
- +++ /dev/null
- @@ -1,43 +0,0 @@
- -From 9b92a43a4f5acf4cba14fd9d473b3120688532dc Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 19 Dec 2021 08:10:24 -0500
- -Subject: [PATCH 01/11] rockchip: rk3568: add boot device detection
- -
- -Enable spl to detect which device it was booted from.
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/mach-rockchip/rk3568/rk3568.c | 8 ++++++++
- - 1 file changed, 8 insertions(+)
- -
- ---- a/arch/arm/mach-rockchip/rk3568/rk3568.c
- -+++ b/arch/arm/mach-rockchip/rk3568/rk3568.c
- -@@ -7,6 +7,7 @@
- - #include <dm.h>
- - #include <asm/armv8/mmu.h>
- - #include <asm/io.h>
- -+#include <asm/arch-rockchip/bootrom.h>
- - #include <asm/arch-rockchip/grf_rk3568.h>
- - #include <asm/arch-rockchip/hardware.h>
- - #include <dt-bindings/clock/rk3568-cru.h>
- -@@ -23,6 +24,7 @@
- - #define SGRF_SOC_CON4 0x10
- - #define EMMC_HPROT_SECURE_CTRL 0x03
- - #define SDMMC0_HPROT_SECURE_CTRL 0x01
- -+
- - /* PMU_GRF_GPIO0D_IOMUX_L */
- - enum {
- - GPIO0D1_SHIFT = 4,
- -@@ -43,6 +45,12 @@ enum {
- - UART2_IO_SEL_M0 = 0,
- - };
- -
- -+const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
- -+ [BROM_BOOTSOURCE_EMMC] = "/sdhci@fe310000",
- -+ [BROM_BOOTSOURCE_SPINOR] = "/spi@fe300000/flash@0",
- -+ [BROM_BOOTSOURCE_SD] = "/mmc@fe2b0000",
- -+};
- -+
- - static struct mm_region rk3568_mem_map[] = {
- - {
- - .virt = 0x0UL,
- diff --git a/package/boot/uboot-rockchip/patches/002-rockchip-rk3568-enable-automatic-power-savings.patch b/package/boot/uboot-rockchip/patches/002-rockchip-rk3568-enable-automatic-power-savings.patch
- deleted file mode 100644
- index f38d9f4df934..000000000000
- --- a/package/boot/uboot-rockchip/patches/002-rockchip-rk3568-enable-automatic-power-savings.patch
- +++ /dev/null
- @@ -1,52 +0,0 @@
- -From 09d877cf076cbb67c79054e12bbb7c63a91faa71 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 19 Dec 2021 08:11:56 -0500
- -Subject: [PATCH 02/11] rockchip: rk3568: enable automatic power savings
- -
- -Enable automatic clock gating, solves the 7c temperature difference on
- -SoQuartz.
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/mach-rockchip/rk3568/rk3568.c | 23 +++++++++++++++++++++++
- - 1 file changed, 23 insertions(+)
- -
- ---- a/arch/arm/mach-rockchip/rk3568/rk3568.c
- -+++ b/arch/arm/mach-rockchip/rk3568/rk3568.c
- -@@ -25,6 +25,15 @@
- - #define EMMC_HPROT_SECURE_CTRL 0x03
- - #define SDMMC0_HPROT_SECURE_CTRL 0x01
- -
- -+#define PMU_BASE_ADDR 0xfdd90000
- -+#define PMU_NOC_AUTO_CON0 (0x70)
- -+#define PMU_NOC_AUTO_CON1 (0x74)
- -+#define EDP_PHY_GRF_BASE 0xfdcb0000
- -+#define EDP_PHY_GRF_CON0 (EDP_PHY_GRF_BASE + 0x00)
- -+#define EDP_PHY_GRF_CON10 (EDP_PHY_GRF_BASE + 0x28)
- -+#define CPU_GRF_BASE 0xfdc30000
- -+#define GRF_CORE_PVTPLL_CON0 (0x10)
- -+
- - /* PMU_GRF_GPIO0D_IOMUX_L */
- - enum {
- - GPIO0D1_SHIFT = 4,
- -@@ -99,6 +108,20 @@ void board_debug_uart_init(void)
- - int arch_cpu_init(void)
- - {
- - #ifdef CONFIG_SPL_BUILD
- -+ /*
- -+ * When perform idle operation, corresponding clock can
- -+ * be opened or gated automatically.
- -+ */
- -+ writel(0xffffffff, PMU_BASE_ADDR + PMU_NOC_AUTO_CON0);
- -+ writel(0x000f000f, PMU_BASE_ADDR + PMU_NOC_AUTO_CON1);
- -+
- -+ /* Disable eDP phy by default */
- -+ writel(0x00070007, EDP_PHY_GRF_CON10);
- -+ writel(0x0ff10ff1, EDP_PHY_GRF_CON0);
- -+
- -+ /* Set core pvtpll ring length */
- -+ writel(0x00ff002b, CPU_GRF_BASE + GRF_CORE_PVTPLL_CON0);
- -+
- - /* Set the emmc sdmmc0 to secure */
- - rk_clrreg(SGRF_BASE + SGRF_SOC_CON4, (EMMC_HPROT_SECURE_CTRL << 11
- - | SDMMC0_HPROT_SECURE_CTRL << 4));
- diff --git a/package/boot/uboot-rockchip/patches/003-Makefile-rockchip-HACK-build-rk3568-images.patch b/package/boot/uboot-rockchip/patches/003-Makefile-rockchip-HACK-build-rk3568-images.patch
- deleted file mode 100644
- index 5a8173016314..000000000000
- --- a/package/boot/uboot-rockchip/patches/003-Makefile-rockchip-HACK-build-rk3568-images.patch
- +++ /dev/null
- @@ -1,47 +0,0 @@
- -From ddbcec939789d1f7264134b3628ffb649ec88168 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 19 Dec 2021 08:20:33 -0500
- -Subject: [PATCH 03/11] Makefile: rockchip: HACK: build rk3568 images
- -
- -This is a hack to build rk3568 images.
- -It seems makefile can't cope with the format mkimage expects for
- -multiple file entries, so hack around the situation.
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - Makefile | 10 ++++++++++
- - 1 file changed, 10 insertions(+)
- -
- ---- a/Makefile
- -+++ b/Makefile
- -@@ -1047,6 +1047,9 @@ quiet_cmd_mkimage = MKIMAGE $@
- - cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
- - >$(MKIMAGEOUTPUT) $(if $(KBUILD_VERBOSE:0=), && cat $(MKIMAGEOUTPUT))
- -
- -+cmd_mkimage_combined = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $(COMBINED_FILE):$< $@ \
- -+ >$(MKIMAGEOUTPUT) $(if $(KBUILD_VERBOSE:0=), && cat $(MKIMAGEOUTPUT))
- -+
- - quiet_cmd_mkfitimage = MKIMAGE $@
- - cmd_mkfitimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) \
- - -f $(U_BOOT_ITS) -p $(CONFIG_FIT_EXTERNAL_OFFSET) $@ \
- -@@ -1491,6 +1494,7 @@ u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_
- - ifeq ($(CONFIG_ARCH_ROCKCHIP),y)
- -
- - # TPL + SPL
- -+ifneq ($(CONFIG_SYS_SOC),$(filter $(CONFIG_SYS_SOC),"rk3568" "rk3566"))
- - ifeq ($(CONFIG_SPL)$(CONFIG_TPL),yy)
- - MKIMAGEFLAGS_u-boot-tpl-rockchip.bin = -n $(CONFIG_SYS_SOC) -T rksd
- - tpl/u-boot-tpl-rockchip.bin: tpl/u-boot-tpl.bin FORCE
- -@@ -1502,6 +1506,12 @@ MKIMAGEFLAGS_idbloader.img = -n $(CONFIG
- - idbloader.img: spl/u-boot-spl.bin FORCE
- - $(call if_changed,mkimage)
- - endif
- -+else
- -+MKIMAGEFLAGS_idbloader.img = -n $(CONFIG_SYS_SOC) -T rksd
- -+COMBINED_FILE = ram_init.bin
- -+idbloader.img: spl/u-boot-spl.bin FORCE
- -+ $(call if_changed,mkimage_combined)
- -+endif
- -
- - ifeq ($(CONFIG_ARM64),y)
- - OBJCOPYFLAGS_u-boot-rockchip.bin = -I binary -O binary \
- diff --git a/package/boot/uboot-rockchip/patches/004-arm-dts-sync-rk3568-with-linux.patch b/package/boot/uboot-rockchip/patches/004-arm-dts-sync-rk3568-with-linux.patch
- deleted file mode 100644
- index 422f1c4d378f..000000000000
- --- a/package/boot/uboot-rockchip/patches/004-arm-dts-sync-rk3568-with-linux.patch
- +++ /dev/null
- @@ -1,3520 +0,0 @@
- -From 25624318957d560ce58be672fe2fa8537716afc7 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 19 Dec 2021 15:14:47 -0500
- -Subject: [PATCH 04/11] arm: dts: sync rk3568 with linux
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/dts/Makefile | 3 +-
- - arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi | 24 +
- - arch/arm/dts/rk3566-quartz64-a.dts | 860 +++++++++++
- - arch/arm/dts/rk3566.dtsi | 32 +
- - arch/arm/dts/rk3568-evb.dts | 5 +
- - arch/arm/dts/rk3568-pinctrl.dtsi | 9 +
- - arch/arm/dts/rk3568.dtsi | 860 ++---------
- - arch/arm/dts/rk356x.dtsi | 1630 ++++++++++++++++++++
- - arch/arm/mach-rockchip/rk3568/rk3568.c | 2 +-
- - 9 files changed, 2672 insertions(+), 753 deletions(-)
- - create mode 100644 arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- - create mode 100644 arch/arm/dts/rk3566-quartz64-a.dts
- - create mode 100644 arch/arm/dts/rk3566.dtsi
- - create mode 100644 arch/arm/dts/rk356x.dtsi
- -
- ---- a/arch/arm/dts/Makefile
- -+++ b/arch/arm/dts/Makefile
- -@@ -164,7 +164,8 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- - rk3399pro-rock-pi-n10.dtb
- -
- - dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- -- rk3568-evb.dtb
- -+ rk3568-evb.dtb \
- -+ rk3566-quartz64-a.dtb
- -
- - dtb-$(CONFIG_ROCKCHIP_RV1108) += \
- - rv1108-elgin-r1.dtb \
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -@@ -0,0 +1,24 @@
- -+// SPDX-License-Identifier: GPL-2.0+
- -+/*
- -+ * (C) Copyright 2021 Rockchip Electronics Co., Ltd
- -+ */
- -+
- -+#include "rk3568-u-boot.dtsi"
- -+
- -+/ {
- -+ chosen {
- -+ stdout-path = &uart2;
- -+ u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci;
- -+ };
- -+};
- -+
- -+&sdmmc0 {
- -+ u-boot,dm-spl;
- -+ status = "okay";
- -+};
- -+
- -+&uart2 {
- -+ clock-frequency = <24000000>;
- -+ u-boot,dm-spl;
- -+ status = "okay";
- -+};
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3566-quartz64-a.dts
- -@@ -0,0 +1,860 @@
- -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- -+
- -+/dts-v1/;
- -+
- -+#include <dt-bindings/gpio/gpio.h>
- -+#include <dt-bindings/pinctrl/rockchip.h>
- -+#include "rk3566.dtsi"
- -+
- -+/ {
- -+ model = "Pine64 RK3566 Quartz64-A Board";
- -+ compatible = "pine64,quartz64-a", "rockchip,rk3566";
- -+
- -+ aliases {
- -+ ethernet0 = &gmac1;
- -+ mmc0 = &sdmmc0;
- -+ mmc1 = &sdhci;
- -+ };
- -+
- -+ chosen: chosen {
- -+ stdout-path = "serial2:1500000n8";
- -+ };
- -+
- -+ battery_cell: battery-cell {
- -+ compatible = "simple-battery";
- -+ charge-full-design-microamp-hours = <2500000>;
- -+ charge-term-current-microamp = <300000>;
- -+ constant-charge-current-max-microamp = <2000000>;
- -+ constant-charge-voltage-max-microvolt = <4200000>;
- -+ factory-internal-resistance-micro-ohms = <180000>;
- -+ voltage-max-design-microvolt = <4106000>;
- -+ voltage-min-design-microvolt = <3625000>;
- -+
- -+ ocv-capacity-celsius = <20>;
- -+ ocv-capacity-table-0 = <4106000 100>, <4071000 95>, <4018000 90>, <3975000 85>,
- -+ <3946000 80>, <3908000 75>, <3877000 70>, <3853000 65>,
- -+ <3834000 60>, <3816000 55>, <3802000 50>, <3788000 45>,
- -+ <3774000 40>, <3760000 35>, <3748000 30>, <3735000 25>,
- -+ <3718000 20>, <3697000 15>, <3685000 10>, <3625000 0>;
- -+ };
- -+
- -+ gmac1_clkin: external-gmac1-clock {
- -+ compatible = "fixed-clock";
- -+ clock-frequency = <125000000>;
- -+ clock-output-names = "gmac1_clkin";
- -+ #clock-cells = <0>;
- -+ };
- -+
- -+ fan: gpio_fan {
- -+ compatible = "gpio-fan";
- -+ gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
- -+ gpio-fan,speed-map = <0 0
- -+ 4500 1>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&fan_en_h>;
- -+ #cooling-cells = <2>;
- -+ };
- -+
- -+ leds {
- -+ compatible = "gpio-leds";
- -+
- -+ led-work {
- -+ label = "work-led";
- -+ default-state = "off";
- -+ gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&work_led_enable_h>;
- -+ retain-state-suspended;
- -+ };
- -+
- -+ led-diy {
- -+ label = "diy-led";
- -+ default-state = "on";
- -+ gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
- -+ linux,default-trigger = "heartbeat";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&diy_led_enable_h>;
- -+ retain-state-suspended;
- -+ };
- -+ };
- -+
- -+ rk817-sound {
- -+ compatible = "simple-audio-card";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&hp_det_h>;
- -+ simple-audio-card,format = "i2s";
- -+ simple-audio-card,hp-det-gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
- -+ simple-audio-card,name = "Analog RK817";
- -+ simple-audio-card,mclk-fs = <256>;
- -+ simple-audio-card,widgets =
- -+ "Microphone", "Mic Jack",
- -+ "Headphone", "Headphones",
- -+ "Speaker", "Speaker";
- -+ simple-audio-card,routing =
- -+ "MICL", "Mic Jack",
- -+ "Headphones", "HPOL",
- -+ "Headphones", "HPOR",
- -+ "Speaker", "SPKO";
- -+
- -+ simple-audio-card,cpu {
- -+ sound-dai = <&i2s1_8ch>;
- -+ };
- -+
- -+ simple-audio-card,codec {
- -+ sound-dai = <&rk817>;
- -+ };
- -+ };
- -+
- -+ spdif_dit: spdif-dit {
- -+ compatible = "linux,spdif-dit";
- -+ #sound-dai-cells = <0>;
- -+ };
- -+
- -+ spdif_sound: spdif-sound {
- -+ compatible = "simple-audio-card";
- -+ simple-audio-card,name = "SPDIF";
- -+
- -+ simple-audio-card,cpu {
- -+ sound-dai = <&spdif>;
- -+ };
- -+
- -+ simple-audio-card,codec {
- -+ sound-dai = <&spdif_dit>;
- -+ };
- -+ };
- -+
- -+ sdio_pwrseq: sdio-pwrseq {
- -+ status = "okay";
- -+ compatible = "mmc-pwrseq-simple";
- -+ clocks = <&rk817 1>;
- -+ clock-names = "ext_clock";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&wifi_enable_h>;
- -+ reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
- -+ post-power-on-delay-ms = <100>;
- -+ power-off-delay-us = <5000000>;
- -+ };
- -+
- -+ spdif_sound: spdif-sound {
- -+ compatible = "simple-audio-card";
- -+ simple-audio-card,name = "SPDIF";
- -+
- -+ simple-audio-card,cpu {
- -+ sound-dai = <&spdif>;
- -+ };
- -+
- -+ simple-audio-card,codec {
- -+ sound-dai = <&spdif_dit>;
- -+ };
- -+ };
- -+
- -+ spdif_dit: spdif-dit {
- -+ compatible = "linux,spdif-dit";
- -+ #sound-dai-cells = <0>;
- -+ };
- -+
- -+ vcc12v_dcin: vcc12v_dcin {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc12v_dcin";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <12000000>;
- -+ regulator-max-microvolt = <12000000>;
- -+ };
- -+
- -+ /* vbus feeds the rk817 usb input.
- -+ * With no battery attached, also feeds vcc_bat+
- -+ * via ON/OFF_BAT jumper
- -+ */
- -+ vbus: vbus {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vbus";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc12v_dcin>;
- -+ };
- -+
- -+ vcc5v0_usb: vcc5v0_usb {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_usb";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc12v_dcin>;
- -+ };
- -+
- -+ /* all four ports are controlled by one gpio
- -+ * the host ports are sourced from vcc5v0_usb
- -+ * the otg port is sourced from vcc5v0_midu
- -+ */
- -+ vcc5v0_usb20_host: vcc5v0_usb20_host {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_usb20_host";
- -+ enable-active-high;
- -+ gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc5v0_usb20_host_en_h>;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc5v0_usb>;
- -+ };
- -+
- -+ vcc5v0_usb20_otg: vcc5v0_usb20_otg {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_usb20_otg";
- -+ enable-active-high;
- -+ gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&dcdc_boost>;
- -+ };
- -+
- -+ vcc3v3_pcie_p: vcc3v3_pcie_p {
- -+ compatible = "regulator-fixed";
- -+ enable-active-high;
- -+ gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&pcie_enable_h>;
- -+ regulator-name = "vcc3v3_pcie_p";
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ vin-supply = <&vcc_3v3>;
- -+ };
- -+
- -+ vcc3v3_sd: vcc3v3_sd {
- -+ compatible = "regulator-fixed";
- -+ enable-active-low;
- -+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc_sd_h>;
- -+ regulator-boot-on;
- -+ regulator-name = "vcc3v3_sd";
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ vin-supply = <&vcc_3v3>;
- -+ };
- -+
- -+ /* sourced from vbus and vcc_bat+ via rk817 sw5 */
- -+ vcc_sys: vcc_sys {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc_sys";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <4400000>;
- -+ regulator-max-microvolt = <4400000>;
- -+ vin-supply = <&vbus>;
- -+ };
- -+
- -+ /* sourced from vcc_sys, sdio module operates internally at 3.3v */
- -+ vcc_wl: vcc_wl {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc_wl";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ vin-supply = <&vcc_sys>;
- -+ };
- -+};
- -+
- -+&combphy1_usq {
- -+ status = "okay";
- -+ rockchip,enable-ssc;
- -+};
- -+
- -+&combphy2_psq {
- -+ status = "okay";
- -+};
- -+
- -+&cpu0 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu1 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu2 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu3 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu_thermal {
- -+ trips {
- -+ cpu_hot: cpu_hot {
- -+ temperature = <55000>;
- -+ hysteresis = <2000>;
- -+ type = "active";
- -+ };
- -+ };
- -+
- -+ cooling-maps {
- -+ map1 {
- -+ trip = <&cpu_hot>;
- -+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
- -+ };
- -+ };
- -+};
- -+
- -+&gmac1 {
- -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
- -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
- -+ clock_in_out = "input";
- -+ phy-supply = <&vcc_3v3>;
- -+ phy-mode = "rgmii";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&gmac1m0_miim
- -+ &gmac1m0_tx_bus2
- -+ &gmac1m0_rx_bus2
- -+ &gmac1m0_rgmii_clk
- -+ &gmac1m0_clkinout
- -+ &gmac1m0_rgmii_bus>;
- -+ snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
- -+ snps,reset-active-low;
- -+ /* Reset time is 20ms, 100ms for rtl8211f */
- -+ snps,reset-delays-us = <0 20000 100000>;
- -+ tx_delay = <0x30>;
- -+ rx_delay = <0x10>;
- -+ phy-handle = <&rgmii_phy1>;
- -+ status = "okay";
- -+};
- -+
- -+&hdmi {
- -+ status = "okay";
- -+ avdd-0v9-supply = <&vdda_0v9>;
- -+ avdd-1v8-supply = <&vcc_1v8>;
- -+};
- -+
- -+&hdmi_in_vp0 {
- -+ status = "okay";
- -+};
- -+
- -+&gpu {
- -+ mali-supply = <&vdd_gpu>;
- -+ status = "okay";
- -+};
- -+
- -+&i2c0 {
- -+ status = "okay";
- -+
- -+ vdd_cpu: regulator@1c {
- -+ compatible = "tcs,tcs4525";
- -+ reg = <0x1c>;
- -+ fcs,suspend-voltage-selector = <1>;
- -+ regulator-name = "vdd_cpu";
- -+ regulator-min-microvolt = <800000>;
- -+ regulator-max-microvolt = <1150000>;
- -+ regulator-ramp-delay = <2300>;
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ vin-supply = <&vcc_sys>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ rk817: pmic@20 {
- -+ compatible = "rockchip,rk817";
- -+ reg = <0x20>;
- -+ interrupt-parent = <&gpio0>;
- -+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
- -+ assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
- -+ assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
- -+ clock-names = "mclk";
- -+ clocks = <&cru I2S1_MCLKOUT_TX>;
- -+ clock-output-names = "rk808-clkout1", "rk808-clkout2";
- -+ #clock-cells = <1>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
- -+ rockchip,system-power-controller;
- -+ #sound-dai-cells = <0>;
- -+ wakeup-source;
- -+
- -+ vcc1-supply = <&vcc_sys>;
- -+ vcc2-supply = <&vcc_sys>;
- -+ vcc3-supply = <&vcc_sys>;
- -+ vcc4-supply = <&vcc_sys>;
- -+ vcc5-supply = <&vcc_sys>;
- -+ vcc6-supply = <&vcc_sys>;
- -+ vcc7-supply = <&vcc_sys>;
- -+ vcc8-supply = <&vcc_sys>;
- -+ vcc9-supply = <&dcdc_boost>;
- -+
- -+ regulators {
- -+ vdd_logic: DCDC_REG1 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-ramp-delay = <6001>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-name = "vdd_logic";
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <900000>;
- -+ };
- -+ };
- -+
- -+ vdd_gpu: DCDC_REG2 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-ramp-delay = <6001>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-name = "vdd_gpu";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_ddr: DCDC_REG3 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1100000>;
- -+ regulator-max-microvolt = <1100000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-name = "vcc_ddr";
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_3v3: DCDC_REG4 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-name = "vcc_3v3";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcca1v8_pmu: LDO_REG1 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+ regulator-name = "vcca1v8_pmu";
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <1800000>;
- -+ };
- -+ };
- -+
- -+ vdda_0v9: LDO_REG2 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+ regulator-name = "vdda_0v9";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda0v9_pmu: LDO_REG3 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+ regulator-name = "vdda0v9_pmu";
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <900000>;
- -+ };
- -+ };
- -+
- -+ vccio_acodec: LDO_REG4 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ regulator-name = "vccio_acodec";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vccio_sd: LDO_REG5 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ regulator-name = "vccio_sd";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc3v3_pmu: LDO_REG6 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ regulator-name = "vcc3v3_pmu";
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <3300000>;
- -+ };
- -+ };
- -+
- -+ vcc_1v8: LDO_REG7 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+ regulator-name = "vcc_1v8";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc1v8_dvp: LDO_REG8 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+ regulator-name = "vcc1v8_dvp";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc2v8_dvp: LDO_REG9 {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <2800000>;
- -+ regulator-max-microvolt = <2800000>;
- -+ regulator-name = "vcc2v8_dvp";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ dcdc_boost: BOOST {
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ regulator-name = "boost";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ otg_switch: OTG_SWITCH {
- -+ regulator-name = "otg_switch";
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+ };
- -+
- -+ rk817_battery: battery {
- -+ monitored-battery = <&battery_cell>;
- -+ rockchip,resistor-sense-micro-ohms = <10000>;
- -+ rockchip,sleep-enter-current-microamp = <300000>;
- -+ rockchip,sleep-filter-current-microamp = <100000>;
- -+ };
- -+ };
- -+};
- -+
- -+&i2s1_8ch {
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&i2s1m0_sclktx
- -+ &i2s1m0_lrcktx
- -+ &i2s1m0_sdi0
- -+ &i2s1m0_sdo0>;
- -+ rockchip,trcm-sync-tx-only;
- -+ status = "okay";
- -+};
- -+
- -+&mdio1 {
- -+ rgmii_phy1: ethernet-phy@0 {
- -+ compatible = "ethernet-phy-ieee802.3-c22";
- -+ reg = <0>;
- -+ };
- -+};
- -+
- -+&pcie2x1 {
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&pcie_reset_h>;
- -+ reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
- -+ status = "okay";
- -+ vpcie3v3-supply = <&vcc3v3_pcie_p>;
- -+};
- -+
- -+&pinctrl {
- -+ bt {
- -+ bt_enable_h: bt-enable-h {
- -+ rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+
- -+ bt_host_wake_l: bt-host-wake-l {
- -+ rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
- -+ };
- -+
- -+ bt_wake_l: bt-wake-l {
- -+ rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ fan {
- -+ fan_en_h: fan-en-h {
- -+ rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ leds {
- -+ work_led_enable_h: work-led-enable-h {
- -+ rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+
- -+ diy_led_enable_h: diy-led-enable-h {
- -+ rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ pcie {
- -+ pcie_enable_h: pcie-enable-h {
- -+ rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+
- -+ pcie_reset_h: pcie-reset-h {
- -+ rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ pmic {
- -+ pmic_int_l: pmic-int-l {
- -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
- -+ };
- -+
- -+ hp_det_h: hp-det-h {
- -+ rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ sdio-pwrseq {
- -+ wifi_enable_h: wifi-enable-h {
- -+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ usb2 {
- -+ vcc5v0_usb20_host_en_h: vcc5v0-usb20-host-en_h {
- -+ rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ vcc_sd {
- -+ vcc_sd_h: vcc-sd-h {
- -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+};
- -+
- -+&pmu_io_domains {
- -+ status = "okay";
- -+ pmuio1-supply = <&vcc3v3_pmu>;
- -+ pmuio2-supply = <&vcc3v3_pmu>;
- -+ vccio1-supply = <&vccio_acodec>;
- -+ vccio2-supply = <&vcc_1v8>;
- -+ vccio3-supply = <&vccio_sd>;
- -+ vccio4-supply = <&vcc_1v8>;
- -+ vccio5-supply = <&vcc_3v3>;
- -+ vccio6-supply = <&vcc1v8_dvp>;
- -+ vccio7-supply = <&vcc_3v3>;
- -+};
- -+
- -+/* sata1 is muxed with the usb3 port */
- -+&sata1 {
- -+ status = "okay";
- -+};
- -+
- -+/* sata2 is muxed with the pcie2 slot*/
- -+&sata2 {
- -+ status = "disabled";
- -+};
- -+
- -+&sdhci {
- -+ bus-width = <8>;
- -+ mmc-hs200-1_8v;
- -+ non-removable;
- -+ vmmc-supply = <&vcc_3v3>;
- -+ vqmmc-supply = <&vcc_1v8>;
- -+ status = "okay";
- -+};
- -+
- -+&sdmmc0 {
- -+ bus-width = <4>;
- -+ cap-sd-highspeed;
- -+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
- -+ disable-wp;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
- -+ sd-uhs-sdr104;
- -+ vmmc-supply = <&vcc3v3_sd>;
- -+ vqmmc-supply = <&vccio_sd>;
- -+ status = "okay";
- -+};
- -+
- -+&spdif {
- -+ status = "okay";
- -+};
- -+
- -+&sdmmc1 {
- -+ bus-width = <4>;
- -+ cap-sd-highspeed;
- -+ cap-sdio-irq;
- -+ disable-wp;
- -+ keep-power-in-suspend;
- -+ mmc-pwrseq = <&sdio_pwrseq>;
- -+ non-removable;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
- -+ sd-uhs-sdr104;
- -+ vmmc-supply = <&vcc_wl>;
- -+ vqmmc-supply = <&vcc_1v8>;
- -+ status = "okay";
- -+};
- -+
- -+&sfc {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+
- -+ flash@0 {
- -+ compatible = "jedec,spi-nor";
- -+ reg = <0>;
- -+ spi-max-frequency = <108000000>;
- -+ spi-rx-bus-width = <4>;
- -+ spi-tx-bus-width = <1>;
- -+ };
- -+};
- -+
- -+&tsadc {
- -+ /* tshut mode 0:CRU 1:GPIO */
- -+ rockchip,hw-tshut-mode = <1>;
- -+ /* tshut polarity 0:LOW 1:HIGH */
- -+ rockchip,hw-tshut-polarity = <0>;
- -+ status = "okay";
- -+};
- -+
- -+&uart0 {
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&uart0_xfer>;
- -+ status = "okay";
- -+};
- -+
- -+&uart1 {
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
- -+ status = "okay";
- -+ uart-has-rtscts;
- -+
- -+ bluetooth {
- -+ compatible = "brcm,bcm43438-bt";
- -+ clocks = <&rk817 1>;
- -+ clock-names = "lpo";
- -+ device-wake-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
- -+ host-wake-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
- -+ shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
- -+ vbat-supply = <&vcc_sys>;
- -+ vddio-supply = <&vcca1v8_pmu>;
- -+ };
- -+};
- -+
- -+&uart2 {
- -+ status = "okay";
- -+};
- -+
- -+&u2phy0_host {
- -+ phy-supply = <&vcc5v0_usb20_host>;
- -+ status = "okay";
- -+};
- -+
- -+&u2phy0_otg {
- -+ phy-supply = <&vcc5v0_usb20_otg>;
- -+ status = "okay";
- -+};
- -+
- -+&u2phy1_host {
- -+ phy-supply = <&vcc5v0_usb20_host>;
- -+ status = "okay";
- -+};
- -+
- -+&u2phy1_otg {
- -+ phy-supply = <&vcc5v0_usb20_host>;
- -+ status = "okay";
- -+};
- -+
- -+&usb2phy0 {
- -+ status = "okay";
- -+};
- -+
- -+&usb2phy1 {
- -+ status = "okay";
- -+};
- -+
- -+&usbdrd_dwc3 {
- -+ status = "okay";
- -+};
- -+
- -+&usbdrd30 {
- -+ status = "okay";
- -+};
- -+
- -+/* usb3 controller is muxed with sata1 */
- -+&usbhost_dwc3 {
- -+ status = "disabled";
- -+};
- -+
- -+/* usb3 controller is muxed with sata1 */
- -+&usbhost30 {
- -+ status = "disabled";
- -+};
- -+
- -+&usb_host0_ehci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host0_ohci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host1_ehci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host1_ohci {
- -+ status = "okay";
- -+};
- -+
- -+&vop {
- -+ status = "okay";
- -+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
- -+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
- -+};
- -+
- -+&vop_mmu {
- -+ status = "okay";
- -+};
- -+
- -+&vp0_out_hdmi {
- -+ status = "okay";
- -+};
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3566.dtsi
- -@@ -0,0 +1,32 @@
- -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- -+
- -+#include "rk356x.dtsi"
- -+
- -+/ {
- -+ compatible = "rockchip,rk3566";
- -+};
- -+
- -+&pipegrf {
- -+ compatible = "rockchip,rk3566-pipegrf", "syscon";
- -+};
- -+
- -+&power {
- -+ power-domain@RK3568_PD_PIPE {
- -+ reg = <RK3568_PD_PIPE>;
- -+ clocks = <&cru PCLK_PIPE>;
- -+ pm_qos = <&qos_pcie2x1>,
- -+ <&qos_sata1>,
- -+ <&qos_sata2>,
- -+ <&qos_usb3_0>,
- -+ <&qos_usb3_1>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+};
- -+
- -+&usbdrd_dwc3 {
- -+ phys = <&u2phy0_otg>;
- -+ phy-names = "usb2-phy";
- -+ extcon = <&usb2phy0>;
- -+ maximum-speed = "high-speed";
- -+ snps,dis_u2_susphy_quirk;
- -+};
- ---- a/arch/arm/dts/rk3568-evb.dts
- -+++ b/arch/arm/dts/rk3568-evb.dts
- -@@ -74,6 +74,11 @@
- - status = "okay";
- - };
- -
- -+&sdmmc0 {
- -+ status = "okay";
- -+ max-frequency = <52000000>;
- -+};
- -+
- - &uart2 {
- - status = "okay";
- - };
- ---- a/arch/arm/dts/rk3568-pinctrl.dtsi
- -+++ b/arch/arm/dts/rk3568-pinctrl.dtsi
- -@@ -3108,4 +3108,13 @@
- - <4 RK_PA0 3 &pcfg_pull_none_drv_level_2>;
- - };
- - };
- -+
- -+ tsadc {
- -+ /omit-if-no-ref/
- -+ tsadc_pin: tsadc-pin {
- -+ rockchip,pins =
- -+ /* tsadc_pin */
- -+ <0 RK_PA1 0 &pcfg_pull_none>;
- -+ };
- -+ };
- - };
- ---- a/arch/arm/dts/rk3568.dtsi
- -+++ b/arch/arm/dts/rk3568.dtsi
- -@@ -3,777 +3,135 @@
- - * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
- - */
- -
- --#include <dt-bindings/clock/rk3568-cru.h>
- --#include <dt-bindings/interrupt-controller/arm-gic.h>
- --#include <dt-bindings/interrupt-controller/irq.h>
- --#include <dt-bindings/phy/phy.h>
- --#include <dt-bindings/pinctrl/rockchip.h>
- --#include <dt-bindings/soc/rockchip,boot-mode.h>
- --#include <dt-bindings/thermal/thermal.h>
- -+#include "rk356x.dtsi"
- -
- - / {
- - compatible = "rockchip,rk3568";
- -
- -- interrupt-parent = <&gic>;
- -- #address-cells = <2>;
- -- #size-cells = <2>;
- --
- -- aliases {
- -- gpio0 = &gpio0;
- -- gpio1 = &gpio1;
- -- gpio2 = &gpio2;
- -- gpio3 = &gpio3;
- -- gpio4 = &gpio4;
- -- i2c0 = &i2c0;
- -- i2c1 = &i2c1;
- -- i2c2 = &i2c2;
- -- i2c3 = &i2c3;
- -- i2c4 = &i2c4;
- -- i2c5 = &i2c5;
- -- serial0 = &uart0;
- -- serial1 = &uart1;
- -- serial2 = &uart2;
- -- serial3 = &uart3;
- -- serial4 = &uart4;
- -- serial5 = &uart5;
- -- serial6 = &uart6;
- -- serial7 = &uart7;
- -- serial8 = &uart8;
- -- serial9 = &uart9;
- -- };
- --
- -- cpus {
- -- #address-cells = <2>;
- -- #size-cells = <0>;
- --
- -- cpu0: cpu@0 {
- -- device_type = "cpu";
- -- compatible = "arm,cortex-a55";
- -- reg = <0x0 0x0>;
- -- clocks = <&scmi_clk 0>;
- -- enable-method = "psci";
- -- operating-points-v2 = <&cpu0_opp_table>;
- -- };
- --
- -- cpu1: cpu@100 {
- -- device_type = "cpu";
- -- compatible = "arm,cortex-a55";
- -- reg = <0x0 0x100>;
- -- enable-method = "psci";
- -- operating-points-v2 = <&cpu0_opp_table>;
- -- };
- --
- -- cpu2: cpu@200 {
- -- device_type = "cpu";
- -- compatible = "arm,cortex-a55";
- -- reg = <0x0 0x200>;
- -- enable-method = "psci";
- -- operating-points-v2 = <&cpu0_opp_table>;
- -- };
- --
- -- cpu3: cpu@300 {
- -- device_type = "cpu";
- -- compatible = "arm,cortex-a55";
- -- reg = <0x0 0x300>;
- -- enable-method = "psci";
- -- operating-points-v2 = <&cpu0_opp_table>;
- -- };
- -+ sata0: sata@fc000000 {
- -+ compatible = "snps,dwc-ahci";
- -+ reg = <0 0xfc000000 0 0x1000>;
- -+ clocks = <&cru ACLK_SATA0>, <&cru CLK_SATA0_PMALIVE>,
- -+ <&cru CLK_SATA0_RXOOB>;
- -+ clock-names = "sata", "pmalive", "rxoob";
- -+ interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "hostc";
- -+ phys = <&combphy0_us PHY_TYPE_SATA>;
- -+ phy-names = "sata-phy";
- -+ ports-implemented = <0x1>;
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ status = "disabled";
- - };
- -
- -- cpu0_opp_table: cpu0-opp-table {
- -- compatible = "operating-points-v2";
- -- opp-shared;
- --
- -- opp-408000000 {
- -- opp-hz = /bits/ 64 <408000000>;
- -- opp-microvolt = <900000 900000 1150000>;
- -- clock-latency-ns = <40000>;
- -- };
- --
- -- opp-600000000 {
- -- opp-hz = /bits/ 64 <600000000>;
- -- opp-microvolt = <900000 900000 1150000>;
- -- };
- --
- -- opp-816000000 {
- -- opp-hz = /bits/ 64 <816000000>;
- -- opp-microvolt = <900000 900000 1150000>;
- -- opp-suspend;
- -- };
- --
- -- opp-1104000000 {
- -- opp-hz = /bits/ 64 <1104000000>;
- -- opp-microvolt = <900000 900000 1150000>;
- -- };
- --
- -- opp-1416000000 {
- -- opp-hz = /bits/ 64 <1416000000>;
- -- opp-microvolt = <900000 900000 1150000>;
- -- };
- --
- -- opp-1608000000 {
- -- opp-hz = /bits/ 64 <1608000000>;
- -- opp-microvolt = <975000 975000 1150000>;
- -- };
- -+ qos_pcie3x1: qos@fe190080 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190080 0x0 0x20>;
- -+ };
- -+
- -+ qos_pcie3x2: qos@fe190100 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190100 0x0 0x20>;
- -+ };
- -+
- -+ qos_sata0: qos@fe190200 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190200 0x0 0x20>;
- -+ };
- -+
- -+ gmac0: ethernet@fe2a0000 {
- -+ compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
- -+ reg = <0x0 0xfe2a0000 0x0 0x10000>;
- -+ interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "macirq", "eth_wake_irq";
- -+ clocks = <&cru SCLK_GMAC0>, <&cru SCLK_GMAC0_RX_TX>,
- -+ <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_MAC0_REFOUT>,
- -+ <&cru ACLK_GMAC0>, <&cru PCLK_GMAC0>,
- -+ <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>,
- -+ <&cru PCLK_XPCS>;
- -+ clock-names = "stmmaceth", "mac_clk_rx",
- -+ "mac_clk_tx", "clk_mac_refout",
- -+ "aclk_mac", "pclk_mac",
- -+ "clk_mac_speed", "ptp_ref",
- -+ "pclk_xpcs";
- -+ resets = <&cru SRST_A_GMAC0>;
- -+ reset-names = "stmmaceth";
- -+ rockchip,grf = <&grf>;
- -+ snps,axi-config = <&gmac0_stmmac_axi_setup>;
- -+ snps,mixed-burst;
- -+ snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
- -+ snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
- -+ snps,tso;
- -+ status = "disabled";
- -
- -- opp-1800000000 {
- -- opp-hz = /bits/ 64 <1800000000>;
- -- opp-microvolt = <1050000 1050000 1150000>;
- -+ mdio0: mdio {
- -+ compatible = "snps,dwmac-mdio";
- -+ #address-cells = <0x1>;
- -+ #size-cells = <0x0>;
- - };
- -
- -- opp-1992000000 {
- -- opp-hz = /bits/ 64 <1992000000>;
- -- opp-microvolt = <1150000 1150000 1150000>;
- -+ gmac0_stmmac_axi_setup: stmmac-axi-config {
- -+ snps,blen = <0 0 0 0 16 8 4>;
- -+ snps,rd_osr_lmt = <8>;
- -+ snps,wr_osr_lmt = <4>;
- - };
- -- };
- -
- -- firmware {
- -- scmi: scmi {
- -- compatible = "arm,scmi-smc";
- -- arm,smc-id = <0x82000010>;
- -- shmem = <&scmi_shmem>;
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- --
- -- scmi_clk: protocol@14 {
- -- reg = <0x14>;
- -- #clock-cells = <1>;
- -- };
- -+ gmac0_mtl_rx_setup: rx-queues-config {
- -+ snps,rx-queues-to-use = <1>;
- -+ queue0 {};
- - };
- -
- -- };
- --
- -- pmu {
- -- compatible = "arm,cortex-a55-pmu";
- -- interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
- -- interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
- -- };
- --
- -- psci {
- -- compatible = "arm,psci-1.0";
- -- method = "smc";
- -- };
- --
- -- timer {
- -- compatible = "arm,armv8-timer";
- -- interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
- -- arm,no-tick-in-suspend;
- -- };
- --
- -- xin24m: xin24m {
- -- compatible = "fixed-clock";
- -- clock-frequency = <24000000>;
- -- clock-output-names = "xin24m";
- -- #clock-cells = <0>;
- -- };
- --
- -- xin32k: xin32k {
- -- compatible = "fixed-clock";
- -- clock-frequency = <32768>;
- -- clock-output-names = "xin32k";
- -- pinctrl-0 = <&clk32k_out0>;
- -- pinctrl-names = "default";
- -- #clock-cells = <0>;
- -- };
- --
- -- sram@10f000 {
- -- compatible = "mmio-sram";
- -- reg = <0x0 0x0010f000 0x0 0x100>;
- --
- -- #address-cells = <1>;
- -- #size-cells = <1>;
- -- ranges = <0 0x0 0x0010f000 0x100>;
- --
- -- scmi_shmem: sram@0 {
- -- compatible = "arm,scmi-shmem";
- -- reg = <0x0 0x100>;
- -+ gmac0_mtl_tx_setup: tx-queues-config {
- -+ snps,tx-queues-to-use = <1>;
- -+ queue0 {};
- - };
- - };
- -
- -- gic: interrupt-controller@fd400000 {
- -- compatible = "arm,gic-v3";
- -- reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
- -- <0x0 0xfd460000 0 0x80000>; /* GICR */
- -- interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
- -- interrupt-controller;
- -- #interrupt-cells = <3>;
- -- mbi-alias = <0x0 0xfd100000>;
- -- mbi-ranges = <296 24>;
- -- msi-controller;
- -- };
- --
- -- pmugrf: syscon@fdc20000 {
- -- compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd";
- -- reg = <0x0 0xfdc20000 0x0 0x10000>;
- -- };
- --
- -- grf: syscon@fdc60000 {
- -- compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
- -- reg = <0x0 0xfdc60000 0x0 0x10000>;
- -- };
- --
- -- pmucru: clock-controller@fdd00000 {
- -- compatible = "rockchip,rk3568-pmucru";
- -- reg = <0x0 0xfdd00000 0x0 0x1000>;
- -- #clock-cells = <1>;
- -- #reset-cells = <1>;
- -- };
- --
- -- cru: clock-controller@fdd20000 {
- -- compatible = "rockchip,rk3568-cru";
- -- reg = <0x0 0xfdd20000 0x0 0x1000>;
- -- #clock-cells = <1>;
- -- #reset-cells = <1>;
- -- };
- --
- -- i2c0: i2c@fdd40000 {
- -- compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -- reg = <0x0 0xfdd40000 0x0 0x1000>;
- -- interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
- -- clock-names = "i2c", "pclk";
- -- pinctrl-0 = <&i2c0_xfer>;
- -- pinctrl-names = "default";
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- -- status = "disabled";
- -- };
- --
- -- uart0: serial@fdd50000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfdd50000 0x0 0x100>;
- -- interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 0>, <&dmac0 1>;
- -- pinctrl-0 = <&uart0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- pwm0: pwm@fdd70000 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfdd70000 0x0 0x10>;
- -- clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm0m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm1: pwm@fdd70010 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfdd70010 0x0 0x10>;
- -- clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm1m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm2: pwm@fdd70020 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfdd70020 0x0 0x10>;
- -- clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm2m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm3: pwm@fdd70030 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfdd70030 0x0 0x10>;
- -- clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm3_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- sdmmc2: mmc@fe000000 {
- -- compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- -- reg = <0x0 0xfe000000 0x0 0x4000>;
- -- interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
- -- <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
- -- clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
- -- fifo-depth = <0x100>;
- -- max-frequency = <150000000>;
- -- resets = <&cru SRST_SDMMC2>;
- -- reset-names = "reset";
- -- status = "disabled";
- -- };
- --
- -- sdmmc0: mmc@fe2b0000 {
- -- compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- -- reg = <0x0 0xfe2b0000 0x0 0x4000>;
- -- interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
- -- <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
- -- clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
- -- fifo-depth = <0x100>;
- -- max-frequency = <150000000>;
- -- resets = <&cru SRST_SDMMC0>;
- -- reset-names = "reset";
- -- status = "disabled";
- -- };
- --
- -- sdmmc1: mmc@fe2c0000 {
- -- compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- -- reg = <0x0 0xfe2c0000 0x0 0x4000>;
- -- interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
- -- <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
- -- clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
- -- fifo-depth = <0x100>;
- -- max-frequency = <150000000>;
- -- resets = <&cru SRST_SDMMC1>;
- -- reset-names = "reset";
- -- status = "disabled";
- -- };
- --
- -- sdhci: mmc@fe310000 {
- -- compatible = "rockchip,rk3568-dwcmshc";
- -- reg = <0x0 0xfe310000 0x0 0x10000>;
- -- interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
- -- assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>;
- -- assigned-clock-rates = <200000000>, <24000000>;
- -- clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
- -- <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
- -- <&cru TCLK_EMMC>;
- -- clock-names = "core", "bus", "axi", "block", "timer";
- -- status = "disabled";
- -- };
- --
- -- dmac0: dmac@fe530000 {
- -- compatible = "arm,pl330", "arm,primecell";
- -- reg = <0x0 0xfe530000 0x0 0x4000>;
- -- interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
- -- arm,pl330-periph-burst;
- -- clocks = <&cru ACLK_BUS>;
- -- clock-names = "apb_pclk";
- -- #dma-cells = <1>;
- -- };
- --
- -- dmac1: dmac@fe550000 {
- -- compatible = "arm,pl330", "arm,primecell";
- -- reg = <0x0 0xfe550000 0x0 0x4000>;
- -- interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
- -- <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
- -- arm,pl330-periph-burst;
- -- clocks = <&cru ACLK_BUS>;
- -- clock-names = "apb_pclk";
- -- #dma-cells = <1>;
- -- };
- --
- -- i2c1: i2c@fe5a0000 {
- -- compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -- reg = <0x0 0xfe5a0000 0x0 0x1000>;
- -- interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
- -- clock-names = "i2c", "pclk";
- -- pinctrl-0 = <&i2c1_xfer>;
- -- pinctrl-names = "default";
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- -- status = "disabled";
- -- };
- --
- -- i2c2: i2c@fe5b0000 {
- -- compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -- reg = <0x0 0xfe5b0000 0x0 0x1000>;
- -- interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
- -- clock-names = "i2c", "pclk";
- -- pinctrl-0 = <&i2c2m0_xfer>;
- -- pinctrl-names = "default";
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- -- status = "disabled";
- -- };
- --
- -- i2c3: i2c@fe5c0000 {
- -- compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -- reg = <0x0 0xfe5c0000 0x0 0x1000>;
- -- interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
- -- clock-names = "i2c", "pclk";
- -- pinctrl-0 = <&i2c3m0_xfer>;
- -- pinctrl-names = "default";
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- -- status = "disabled";
- -- };
- --
- -- i2c4: i2c@fe5d0000 {
- -- compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -- reg = <0x0 0xfe5d0000 0x0 0x1000>;
- -- interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
- -- clock-names = "i2c", "pclk";
- -- pinctrl-0 = <&i2c4m0_xfer>;
- -- pinctrl-names = "default";
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- -- status = "disabled";
- -- };
- --
- -- i2c5: i2c@fe5e0000 {
- -- compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -- reg = <0x0 0xfe5e0000 0x0 0x1000>;
- -- interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
- -- clock-names = "i2c", "pclk";
- -- pinctrl-0 = <&i2c5m0_xfer>;
- -- pinctrl-names = "default";
- -- #address-cells = <1>;
- -- #size-cells = <0>;
- -- status = "disabled";
- -- };
- --
- -- wdt: watchdog@fe600000 {
- -- compatible = "rockchip,rk3568-wdt", "snps,dw-wdt";
- -- reg = <0x0 0xfe600000 0x0 0x100>;
- -- interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
- -- clock-names = "tclk", "pclk";
- -- };
- --
- -- uart1: serial@fe650000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe650000 0x0 0x100>;
- -- interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 2>, <&dmac0 3>;
- -- pinctrl-0 = <&uart1m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart2: serial@fe660000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe660000 0x0 0x100>;
- -- interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 4>, <&dmac0 5>;
- -- pinctrl-0 = <&uart2m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart3: serial@fe670000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe670000 0x0 0x100>;
- -- interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 6>, <&dmac0 7>;
- -- pinctrl-0 = <&uart3m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart4: serial@fe680000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe680000 0x0 0x100>;
- -- interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 8>, <&dmac0 9>;
- -- pinctrl-0 = <&uart4m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart5: serial@fe690000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe690000 0x0 0x100>;
- -- interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 10>, <&dmac0 11>;
- -- pinctrl-0 = <&uart5m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart6: serial@fe6a0000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe6a0000 0x0 0x100>;
- -- interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 12>, <&dmac0 13>;
- -- pinctrl-0 = <&uart6m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart7: serial@fe6b0000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe6b0000 0x0 0x100>;
- -- interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 14>, <&dmac0 15>;
- -- pinctrl-0 = <&uart7m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart8: serial@fe6c0000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe6c0000 0x0 0x100>;
- -- interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 16>, <&dmac0 17>;
- -- pinctrl-0 = <&uart8m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- uart9: serial@fe6d0000 {
- -- compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -- reg = <0x0 0xfe6d0000 0x0 0x100>;
- -- interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
- -- clock-names = "baudclk", "apb_pclk";
- -- dmas = <&dmac0 18>, <&dmac0 19>;
- -- pinctrl-0 = <&uart9m0_xfer>;
- -- pinctrl-names = "default";
- -- reg-io-width = <4>;
- -- reg-shift = <2>;
- -- status = "disabled";
- -- };
- --
- -- pwm4: pwm@fe6e0000 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6e0000 0x0 0x10>;
- -- clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm4_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm5: pwm@fe6e0010 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6e0010 0x0 0x10>;
- -- clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm5_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm6: pwm@fe6e0020 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6e0020 0x0 0x10>;
- -- clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm6_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm7: pwm@fe6e0030 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6e0030 0x0 0x10>;
- -- clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm7_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm8: pwm@fe6f0000 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6f0000 0x0 0x10>;
- -- clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm8m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm9: pwm@fe6f0010 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6f0010 0x0 0x10>;
- -- clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm9m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm10: pwm@fe6f0020 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6f0020 0x0 0x10>;
- -- clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm10m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm11: pwm@fe6f0030 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe6f0030 0x0 0x10>;
- -- clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm11m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm12: pwm@fe700000 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe700000 0x0 0x10>;
- -- clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm12m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm13: pwm@fe700010 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe700010 0x0 0x10>;
- -- clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm13m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -- };
- --
- -- pwm14: pwm@fe700020 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe700020 0x0 0x10>;
- -- clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm14m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -+ combphy0_us: phy@fe820000 {
- -+ compatible = "rockchip,rk3568-naneng-combphy";
- -+ reg = <0x0 0xfe820000 0x0 0x100>;
- -+ #phy-cells = <1>;
- -+ assigned-clocks = <&pmucru CLK_PCIEPHY0_REF>;
- -+ assigned-clock-rates = <100000000>;
- -+ clocks = <&pmucru CLK_PCIEPHY0_REF>, <&cru PCLK_PIPEPHY0>,
- -+ <&cru PCLK_PIPE>;
- -+ clock-names = "ref", "apb", "pipe";
- -+ resets = <&cru SRST_P_PIPEPHY0>, <&cru SRST_PIPEPHY0>;
- -+ reset-names = "combphy-apb", "combphy";
- -+ rockchip,pipe-grf = <&pipegrf>;
- -+ rockchip,pipe-phy-grf = <&pipe_phy_grf0>;
- - status = "disabled";
- - };
- -+};
- -
- -- pwm15: pwm@fe700030 {
- -- compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -- reg = <0x0 0xfe700030 0x0 0x10>;
- -- clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -- clock-names = "pwm", "pclk";
- -- pinctrl-0 = <&pwm15m0_pins>;
- -- pinctrl-names = "active";
- -- #pwm-cells = <3>;
- -- status = "disabled";
- -+&cpu0_opp_table {
- -+ opp-1992000000 {
- -+ opp-hz = /bits/ 64 <1992000000>;
- -+ opp-microvolt = <1150000 1150000 1150000>;
- - };
- -+};
- -
- -- pinctrl: pinctrl {
- -- compatible = "rockchip,rk3568-pinctrl";
- -- rockchip,grf = <&grf>;
- -- rockchip,pmu = <&pmugrf>;
- -- #address-cells = <2>;
- -- #size-cells = <2>;
- -- ranges;
- --
- -- gpio0: gpio@fdd60000 {
- -- compatible = "rockchip,gpio-bank";
- -- reg = <0x0 0xfdd60000 0x0 0x100>;
- -- interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
- -- gpio-controller;
- -- #gpio-cells = <2>;
- -- interrupt-controller;
- -- #interrupt-cells = <2>;
- -- };
- --
- -- gpio1: gpio@fe740000 {
- -- compatible = "rockchip,gpio-bank";
- -- reg = <0x0 0xfe740000 0x0 0x100>;
- -- interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
- -- gpio-controller;
- -- #gpio-cells = <2>;
- -- interrupt-controller;
- -- #interrupt-cells = <2>;
- -- };
- --
- -- gpio2: gpio@fe750000 {
- -- compatible = "rockchip,gpio-bank";
- -- reg = <0x0 0xfe750000 0x0 0x100>;
- -- interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
- -- gpio-controller;
- -- #gpio-cells = <2>;
- -- interrupt-controller;
- -- #interrupt-cells = <2>;
- -- };
- --
- -- gpio3: gpio@fe760000 {
- -- compatible = "rockchip,gpio-bank";
- -- reg = <0x0 0xfe760000 0x0 0x100>;
- -- interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
- -- gpio-controller;
- -- #gpio-cells = <2>;
- -- interrupt-controller;
- -- #interrupt-cells = <2>;
- -- };
- -+&pipegrf {
- -+ compatible = "rockchip,rk3568-pipegrf", "syscon";
- -+};
- -
- -- gpio4: gpio@fe770000 {
- -- compatible = "rockchip,gpio-bank";
- -- reg = <0x0 0xfe770000 0x0 0x100>;
- -- interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
- -- clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
- -- gpio-controller;
- -- #gpio-cells = <2>;
- -- interrupt-controller;
- -- #interrupt-cells = <2>;
- -- };
- -+&power {
- -+ power-domain@RK3568_PD_PIPE {
- -+ reg = <RK3568_PD_PIPE>;
- -+ clocks = <&cru PCLK_PIPE>;
- -+ pm_qos = <&qos_pcie2x1>,
- -+ <&qos_pcie3x1>,
- -+ <&qos_pcie3x2>,
- -+ <&qos_sata0>,
- -+ <&qos_sata1>,
- -+ <&qos_sata2>,
- -+ <&qos_usb3_0>,
- -+ <&qos_usb3_1>;
- -+ #power-domain-cells = <0>;
- - };
- - };
- -
- --#include "rk3568-pinctrl.dtsi"
- -+&usbdrd_dwc3 {
- -+ phys = <&u2phy0_otg>, <&combphy0_us PHY_TYPE_USB3>;
- -+ phy-names = "usb2-phy", "usb3-phy";
- -+};
- ---- /dev/null
- -+++ b/arch/arm/dts/rk356x.dtsi
- -@@ -0,0 +1,1630 @@
- -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- -+/*
- -+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
- -+ */
- -+
- -+#include <dt-bindings/clock/rk3568-cru.h>
- -+#include <dt-bindings/interrupt-controller/arm-gic.h>
- -+#include <dt-bindings/interrupt-controller/irq.h>
- -+#include <dt-bindings/phy/phy.h>
- -+#include <dt-bindings/pinctrl/rockchip.h>
- -+#include <dt-bindings/power/rk3568-power.h>
- -+#include <dt-bindings/soc/rockchip,boot-mode.h>
- -+#include <dt-bindings/thermal/thermal.h>
- -+
- -+/ {
- -+ interrupt-parent = <&gic>;
- -+ #address-cells = <2>;
- -+ #size-cells = <2>;
- -+
- -+ aliases {
- -+ gpio0 = &gpio0;
- -+ gpio1 = &gpio1;
- -+ gpio2 = &gpio2;
- -+ gpio3 = &gpio3;
- -+ gpio4 = &gpio4;
- -+ i2c0 = &i2c0;
- -+ i2c1 = &i2c1;
- -+ i2c2 = &i2c2;
- -+ i2c3 = &i2c3;
- -+ i2c4 = &i2c4;
- -+ i2c5 = &i2c5;
- -+ serial0 = &uart0;
- -+ serial1 = &uart1;
- -+ serial2 = &uart2;
- -+ serial3 = &uart3;
- -+ serial4 = &uart4;
- -+ serial5 = &uart5;
- -+ serial6 = &uart6;
- -+ serial7 = &uart7;
- -+ serial8 = &uart8;
- -+ serial9 = &uart9;
- -+ };
- -+
- -+ cpus {
- -+ #address-cells = <2>;
- -+ #size-cells = <0>;
- -+
- -+ cpu0: cpu@0 {
- -+ device_type = "cpu";
- -+ compatible = "arm,cortex-a55";
- -+ reg = <0x0 0x0>;
- -+ clocks = <&scmi_clk 0>;
- -+ #cooling-cells = <2>;
- -+ enable-method = "psci";
- -+ operating-points-v2 = <&cpu0_opp_table>;
- -+ };
- -+
- -+ cpu1: cpu@100 {
- -+ device_type = "cpu";
- -+ compatible = "arm,cortex-a55";
- -+ reg = <0x0 0x100>;
- -+ #cooling-cells = <2>;
- -+ enable-method = "psci";
- -+ operating-points-v2 = <&cpu0_opp_table>;
- -+ };
- -+
- -+ cpu2: cpu@200 {
- -+ device_type = "cpu";
- -+ compatible = "arm,cortex-a55";
- -+ reg = <0x0 0x200>;
- -+ #cooling-cells = <2>;
- -+ enable-method = "psci";
- -+ operating-points-v2 = <&cpu0_opp_table>;
- -+ };
- -+
- -+ cpu3: cpu@300 {
- -+ device_type = "cpu";
- -+ compatible = "arm,cortex-a55";
- -+ reg = <0x0 0x300>;
- -+ #cooling-cells = <2>;
- -+ enable-method = "psci";
- -+ operating-points-v2 = <&cpu0_opp_table>;
- -+ };
- -+ };
- -+
- -+ cpu0_opp_table: opp-table-0 {
- -+ compatible = "operating-points-v2";
- -+ opp-shared;
- -+
- -+ opp-408000000 {
- -+ opp-hz = /bits/ 64 <408000000>;
- -+ opp-microvolt = <900000 900000 1150000>;
- -+ clock-latency-ns = <40000>;
- -+ };
- -+
- -+ opp-600000000 {
- -+ opp-hz = /bits/ 64 <600000000>;
- -+ opp-microvolt = <900000 900000 1150000>;
- -+ };
- -+
- -+ opp-816000000 {
- -+ opp-hz = /bits/ 64 <816000000>;
- -+ opp-microvolt = <900000 900000 1150000>;
- -+ opp-suspend;
- -+ };
- -+
- -+ opp-1104000000 {
- -+ opp-hz = /bits/ 64 <1104000000>;
- -+ opp-microvolt = <900000 900000 1150000>;
- -+ };
- -+
- -+ opp-1416000000 {
- -+ opp-hz = /bits/ 64 <1416000000>;
- -+ opp-microvolt = <900000 900000 1150000>;
- -+ };
- -+
- -+ opp-1608000000 {
- -+ opp-hz = /bits/ 64 <1608000000>;
- -+ opp-microvolt = <975000 975000 1150000>;
- -+ };
- -+
- -+ opp-1800000000 {
- -+ opp-hz = /bits/ 64 <1800000000>;
- -+ opp-microvolt = <1050000 1050000 1150000>;
- -+ };
- -+ };
- -+
- -+ gpu_opp_table: gpu-opp-table {
- -+ compatible = "operating-points-v2";
- -+
- -+ opp-200000000 {
- -+ opp-hz = /bits/ 64 <200000000>;
- -+ opp-microvolt = <825000>;
- -+ };
- -+
- -+ opp-300000000 {
- -+ opp-hz = /bits/ 64 <300000000>;
- -+ opp-microvolt = <825000>;
- -+ };
- -+
- -+ opp-400000000 {
- -+ opp-hz = /bits/ 64 <400000000>;
- -+ opp-microvolt = <825000>;
- -+ };
- -+
- -+ opp-600000000 {
- -+ opp-hz = /bits/ 64 <600000000>;
- -+ opp-microvolt = <825000>;
- -+ };
- -+
- -+ opp-700000000 {
- -+ opp-hz = /bits/ 64 <700000000>;
- -+ opp-microvolt = <900000>;
- -+ };
- -+
- -+ opp-800000000 {
- -+ opp-hz = /bits/ 64 <800000000>;
- -+ opp-microvolt = <1000000>;
- -+ };
- -+ };
- -+
- -+ firmware {
- -+ scmi: scmi {
- -+ compatible = "arm,scmi-smc";
- -+ arm,smc-id = <0x82000010>;
- -+ shmem = <&scmi_shmem>;
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+
- -+ scmi_clk: protocol@14 {
- -+ reg = <0x14>;
- -+ #clock-cells = <1>;
- -+ };
- -+ };
- -+ };
- -+
- -+ pmu {
- -+ compatible = "arm,cortex-a55-pmu";
- -+ interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
- -+ };
- -+
- -+ psci {
- -+ compatible = "arm,psci-1.0";
- -+ method = "smc";
- -+ };
- -+
- -+ timer {
- -+ compatible = "arm,armv8-timer";
- -+ interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
- -+ arm,no-tick-in-suspend;
- -+ };
- -+
- -+ xin24m: xin24m {
- -+ compatible = "fixed-clock";
- -+ clock-frequency = <24000000>;
- -+ clock-output-names = "xin24m";
- -+ #clock-cells = <0>;
- -+ };
- -+
- -+ xin32k: xin32k {
- -+ compatible = "fixed-clock";
- -+ clock-frequency = <32768>;
- -+ clock-output-names = "xin32k";
- -+ pinctrl-0 = <&clk32k_out0>;
- -+ pinctrl-names = "default";
- -+ #clock-cells = <0>;
- -+ };
- -+
- -+ sram@10f000 {
- -+ compatible = "mmio-sram";
- -+ reg = <0x0 0x0010f000 0x0 0x100>;
- -+ #address-cells = <1>;
- -+ #size-cells = <1>;
- -+ ranges = <0 0x0 0x0010f000 0x100>;
- -+
- -+ scmi_shmem: sram@0 {
- -+ compatible = "arm,scmi-shmem";
- -+ reg = <0x0 0x100>;
- -+ };
- -+ };
- -+
- -+ sata1: sata@fc400000 {
- -+ compatible = "snps,dwc-ahci";
- -+ reg = <0 0xfc400000 0 0x1000>;
- -+ clocks = <&cru ACLK_SATA1>, <&cru CLK_SATA1_PMALIVE>,
- -+ <&cru CLK_SATA1_RXOOB>;
- -+ clock-names = "sata", "pmalive", "rxoob";
- -+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "hostc";
- -+ phys = <&combphy1_usq PHY_TYPE_SATA>;
- -+ phy-names = "sata-phy";
- -+ ports-implemented = <0x1>;
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ status = "disabled";
- -+ };
- -+
- -+ sata2: sata@fc800000 {
- -+ compatible = "snps,dwc-ahci";
- -+ reg = <0 0xfc800000 0 0x1000>;
- -+ clocks = <&cru ACLK_SATA2>, <&cru CLK_SATA2_PMALIVE>,
- -+ <&cru CLK_SATA2_RXOOB>;
- -+ clock-names = "sata", "pmalive", "rxoob";
- -+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "hostc";
- -+ phys = <&combphy2_psq PHY_TYPE_SATA>;
- -+ phy-names = "sata-phy";
- -+ ports-implemented = <0x1>;
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ status = "disabled";
- -+ };
- -+
- -+ usbdrd30: usbdrd {
- -+ compatible = "rockchip,rk3399-dwc3", "snps,dwc3";
- -+ clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,
- -+ <&cru ACLK_USB3OTG0>, <&cru PCLK_PIPE>;
- -+ clock-names = "ref_clk", "suspend_clk",
- -+ "bus_clk", "pipe_clk";
- -+ #address-cells = <2>;
- -+ #size-cells = <2>;
- -+ ranges;
- -+ status = "disabled";
- -+
- -+ usbdrd_dwc3: dwc3@fcc00000 {
- -+ compatible = "snps,dwc3";
- -+ reg = <0x0 0xfcc00000 0x0 0x400000>;
- -+ interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
- -+ dr_mode = "host";
- -+ phys = <&u2phy0_otg>, <&combphy0_us PHY_TYPE_USB3>;
- -+ phy-names = "usb2-phy", "usb3-phy";
- -+ phy_type = "utmi_wide";
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ resets = <&cru SRST_USB3OTG0>;
- -+ reset-names = "usb3-otg";
- -+ snps,dis_enblslpm_quirk;
- -+ snps,dis-u2-freeclk-exists-quirk;
- -+ snps,dis-del-phy-power-chg-quirk;
- -+ snps,dis-tx-ipgap-linecheck-quirk;
- -+ snps,xhci-trb-ent-quirk;
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ usbhost30: usbhost {
- -+ compatible = "rockchip,rk3399-dwc3", "snps,dwc3";
- -+ clocks = <&cru CLK_USB3OTG1_REF>, <&cru CLK_USB3OTG1_SUSPEND>,
- -+ <&cru ACLK_USB3OTG1>, <&cru PCLK_PIPE>;
- -+ clock-names = "ref_clk", "suspend_clk",
- -+ "bus_clk", "pipe_clk";
- -+ #address-cells = <2>;
- -+ #size-cells = <2>;
- -+ assigned-clocks = <&cru CLK_PCIEPHY1_REF>;
- -+ assigned-clock-rates = <25000000>;
- -+ ranges;
- -+ status = "disabled";
- -+
- -+ usbhost_dwc3: dwc3@fd000000 {
- -+ compatible = "snps,dwc3";
- -+ reg = <0x0 0xfd000000 0x0 0x400000>;
- -+ interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
- -+ dr_mode = "host";
- -+ phys = <&u2phy0_host>, <&combphy1_usq PHY_TYPE_USB3>;
- -+ phy-names = "usb2-phy", "usb3-phy";
- -+ phy_type = "utmi_wide";
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ resets = <&cru SRST_USB3OTG1>;
- -+ reset-names = "usb3-host";
- -+ snps,dis_enblslpm_quirk;
- -+ snps,dis-u2-freeclk-exists-quirk;
- -+ snps,dis_u2_susphy_quirk;
- -+ snps,dis-del-phy-power-chg-quirk;
- -+ snps,dis-tx-ipgap-linecheck-quirk;
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ gic: interrupt-controller@fd400000 {
- -+ compatible = "arm,gic-v3";
- -+ reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
- -+ <0x0 0xfd460000 0 0x80000>; /* GICR */
- -+ interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-controller;
- -+ #interrupt-cells = <3>;
- -+ mbi-alias = <0x0 0xfd410000>;
- -+ mbi-ranges = <296 24>;
- -+ msi-controller;
- -+ };
- -+
- -+ usb_host0_ehci: usb@fd800000 {
- -+ compatible = "generic-ehci";
- -+ reg = <0x0 0xfd800000 0x0 0x40000>;
- -+ interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
- -+ <&cru PCLK_USB>;
- -+ phys = <&u2phy1_otg>;
- -+ phy-names = "usb2-phy";
- -+ status = "disabled";
- -+ };
- -+
- -+ usb_host0_ohci: usb@fd840000 {
- -+ compatible = "generic-ohci";
- -+ reg = <0x0 0xfd840000 0x0 0x40000>;
- -+ interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
- -+ <&cru PCLK_USB>;
- -+ phys = <&u2phy1_otg>;
- -+ phy-names = "usb2-phy";
- -+ status = "disabled";
- -+ };
- -+
- -+ usb_host1_ehci: usb@fd880000 {
- -+ compatible = "generic-ehci";
- -+ reg = <0x0 0xfd880000 0x0 0x40000>;
- -+ interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
- -+ <&cru PCLK_USB>;
- -+ phys = <&u2phy1_host>;
- -+ phy-names = "usb2-phy";
- -+ status = "disabled";
- -+ };
- -+
- -+ usb_host1_ohci: usb@fd8c0000 {
- -+ compatible = "generic-ohci";
- -+ reg = <0x0 0xfd8c0000 0x0 0x40000>;
- -+ interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
- -+ <&cru PCLK_USB>;
- -+ phys = <&u2phy1_host>;
- -+ phy-names = "usb2-phy";
- -+ status = "disabled";
- -+ };
- -+
- -+ pmugrf: syscon@fdc20000 {
- -+ compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd";
- -+ reg = <0x0 0xfdc20000 0x0 0x10000>;
- -+
- -+ pmu_io_domains: io-domains {
- -+ compatible = "rockchip,rk3568-pmu-io-voltage-domain";
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ pipegrf: syscon@fdc50000 {
- -+ reg = <0x0 0xfdc50000 0x0 0x1000>;
- -+ };
- -+
- -+ grf: syscon@fdc60000 {
- -+ compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
- -+ reg = <0x0 0xfdc60000 0x0 0x10000>;
- -+ };
- -+
- -+ pipe_phy_grf0: syscon@fdc70000 {
- -+ compatible = "rockchip,pipe-phy-grf", "syscon";
- -+ reg = <0x0 0xfdc70000 0x0 0x1000>;
- -+ };
- -+
- -+ pipe_phy_grf1: syscon@fdc80000 {
- -+ compatible = "rockchip,pipe-phy-grf", "syscon";
- -+ reg = <0x0 0xfdc80000 0x0 0x1000>;
- -+ };
- -+
- -+ pipe_phy_grf2: syscon@fdc90000 {
- -+ compatible = "rockchip,pipe-phy-grf", "syscon";
- -+ reg = <0x0 0xfdc90000 0x0 0x1000>;
- -+ };
- -+
- -+ usb2phy0_grf: syscon@fdca0000 {
- -+ compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
- -+ reg = <0x0 0xfdca0000 0x0 0x8000>;
- -+ };
- -+
- -+ usb2phy1_grf: syscon@fdca8000 {
- -+ compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
- -+ reg = <0x0 0xfdca8000 0x0 0x8000>;
- -+ };
- -+
- -+ pmucru: clock-controller@fdd00000 {
- -+ compatible = "rockchip,rk3568-pmucru";
- -+ reg = <0x0 0xfdd00000 0x0 0x1000>;
- -+ #clock-cells = <1>;
- -+ #reset-cells = <1>;
- -+ };
- -+
- -+ cru: clock-controller@fdd20000 {
- -+ compatible = "rockchip,rk3568-cru";
- -+ reg = <0x0 0xfdd20000 0x0 0x1000>;
- -+ #clock-cells = <1>;
- -+ #reset-cells = <1>;
- -+ assigned-clocks = <&cru PLL_GPLL>, <&pmucru PLL_PPLL>;
- -+ assigned-clock-rates = <1200000000>, <200000000>;
- -+ rockchip,grf = <&grf>;
- -+ };
- -+
- -+ i2c0: i2c@fdd40000 {
- -+ compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -+ reg = <0x0 0xfdd40000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
- -+ clock-names = "i2c", "pclk";
- -+ pinctrl-0 = <&i2c0_xfer>;
- -+ pinctrl-names = "default";
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart0: serial@fdd50000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfdd50000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 0>, <&dmac0 1>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm0: pwm@fdd70000 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfdd70000 0x0 0x10>;
- -+ clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm0m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm1: pwm@fdd70010 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfdd70010 0x0 0x10>;
- -+ clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm1m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm2: pwm@fdd70020 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfdd70020 0x0 0x10>;
- -+ clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm2m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm3: pwm@fdd70030 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfdd70030 0x0 0x10>;
- -+ clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm3_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pmu: power-management@fdd90000 {
- -+ compatible = "rockchip,rk3568-pmu", "syscon", "simple-mfd";
- -+ reg = <0x0 0xfdd90000 0x0 0x1000>;
- -+
- -+ power: power-controller {
- -+ compatible = "rockchip,rk3568-power-controller";
- -+ #power-domain-cells = <1>;
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+
- -+ /* These power domains are grouped by VD_GPU */
- -+ power-domain@RK3568_PD_GPU {
- -+ reg = <RK3568_PD_GPU>;
- -+ clocks = <&cru ACLK_GPU_PRE>,
- -+ <&cru PCLK_GPU_PRE>;
- -+ pm_qos = <&qos_gpu>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+
- -+ /* These power domains are grouped by VD_LOGIC */
- -+ power-domain@RK3568_PD_VI {
- -+ reg = <RK3568_PD_VI>;
- -+ clocks = <&cru HCLK_VI>,
- -+ <&cru PCLK_VI>;
- -+ pm_qos = <&qos_isp>,
- -+ <&qos_vicap0>,
- -+ <&qos_vicap1>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+
- -+ power-domain@RK3568_PD_VO {
- -+ reg = <RK3568_PD_VO>;
- -+ clocks = <&cru HCLK_VO>,
- -+ <&cru PCLK_VO>,
- -+ <&cru ACLK_VOP_PRE>;
- -+ pm_qos = <&qos_hdcp>,
- -+ <&qos_vop_m0>,
- -+ <&qos_vop_m1>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+
- -+ power-domain@RK3568_PD_RGA {
- -+ reg = <RK3568_PD_RGA>;
- -+ clocks = <&cru HCLK_RGA_PRE>,
- -+ <&cru PCLK_RGA_PRE>;
- -+ pm_qos = <&qos_ebc>,
- -+ <&qos_iep>,
- -+ <&qos_jpeg_dec>,
- -+ <&qos_jpeg_enc>,
- -+ <&qos_rga_rd>,
- -+ <&qos_rga_wr>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+
- -+ power-domain@RK3568_PD_VPU {
- -+ reg = <RK3568_PD_VPU>;
- -+ clocks = <&cru HCLK_VPU_PRE>;
- -+ pm_qos = <&qos_vpu>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+
- -+ power-domain@RK3568_PD_RKVDEC {
- -+ clocks = <&cru HCLK_RKVDEC_PRE>;
- -+ reg = <RK3568_PD_RKVDEC>;
- -+ pm_qos = <&qos_rkvdec>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+
- -+ power-domain@RK3568_PD_RKVENC {
- -+ reg = <RK3568_PD_RKVENC>;
- -+ clocks = <&cru HCLK_RKVENC_PRE>;
- -+ pm_qos = <&qos_rkvenc_rd_m0>,
- -+ <&qos_rkvenc_rd_m1>,
- -+ <&qos_rkvenc_wr_m0>;
- -+ #power-domain-cells = <0>;
- -+ };
- -+ };
- -+ };
- -+
- -+ gpu: gpu@fde60000 {
- -+ compatible = "rockchip,rk3568-mali", "arm,mali-bifrost";
- -+ reg = <0x0 0xfde60000 0x0 0x4000>;
- -+
- -+ interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "job", "mmu", "gpu";
- -+ clocks = <&scmi_clk 1>, <&cru CLK_GPU>;
- -+ clock-names = "core", "bus";
- -+ operating-points-v2 = <&gpu_opp_table>;
- -+ #cooling-cells = <2>;
- -+ power-domains = <&power RK3568_PD_GPU>;
- -+ status = "disabled";
- -+ };
- -+
- -+ sdmmc2: mmc@fe000000 {
- -+ compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- -+ reg = <0x0 0xfe000000 0x0 0x4000>;
- -+ interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
- -+ <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
- -+ clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
- -+ fifo-depth = <0x100>;
- -+ max-frequency = <150000000>;
- -+ resets = <&cru SRST_SDMMC2>;
- -+ reset-names = "reset";
- -+ status = "disabled";
- -+ };
- -+
- -+ gmac1: ethernet@fe010000 {
- -+ compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
- -+ reg = <0x0 0xfe010000 0x0 0x10000>;
- -+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "macirq", "eth_wake_irq";
- -+ clocks = <&cru SCLK_GMAC1>, <&cru SCLK_GMAC1_RX_TX>,
- -+ <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_MAC1_REFOUT>,
- -+ <&cru ACLK_GMAC1>, <&cru PCLK_GMAC1>,
- -+ <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_GMAC1_PTP_REF>;
- -+ clock-names = "stmmaceth", "mac_clk_rx",
- -+ "mac_clk_tx", "clk_mac_refout",
- -+ "aclk_mac", "pclk_mac",
- -+ "clk_mac_speed", "ptp_ref";
- -+ resets = <&cru SRST_A_GMAC1>;
- -+ reset-names = "stmmaceth";
- -+ rockchip,grf = <&grf>;
- -+ snps,axi-config = <&gmac1_stmmac_axi_setup>;
- -+ snps,mixed-burst;
- -+ snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
- -+ snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
- -+ snps,tso;
- -+ status = "disabled";
- -+
- -+ mdio1: mdio {
- -+ compatible = "snps,dwmac-mdio";
- -+ #address-cells = <0x1>;
- -+ #size-cells = <0x0>;
- -+ };
- -+
- -+ gmac1_stmmac_axi_setup: stmmac-axi-config {
- -+ snps,blen = <0 0 0 0 16 8 4>;
- -+ snps,rd_osr_lmt = <8>;
- -+ snps,wr_osr_lmt = <4>;
- -+ };
- -+
- -+ gmac1_mtl_rx_setup: rx-queues-config {
- -+ snps,rx-queues-to-use = <1>;
- -+ queue0 {};
- -+ };
- -+
- -+ gmac1_mtl_tx_setup: tx-queues-config {
- -+ snps,tx-queues-to-use = <1>;
- -+ queue0 {};
- -+ };
- -+ };
- -+
- -+ display_subsystem: display-subsystem {
- -+ compatible = "rockchip,display-subsystem";
- -+ ports = <&vop_out>;
- -+ };
- -+
- -+ vop: vop@fe040000 {
- -+ compatible = "rockchip,rk3568-vop";
- -+ reg = <0x0 0xfe040000 0x0 0x3000>, <0x0 0xfe044000 0x0 0x1000>;
- -+ reg-names = "regs", "gamma_lut";
- -+ rockchip,grf = <&grf>;
- -+ interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>, <&cru DCLK_VOP0>, <&cru DCLK_VOP1>, <&cru DCLK_VOP2>;
- -+ clock-names = "aclk_vop", "hclk_vop", "dclk_vp0", "dclk_vp1", "dclk_vp2";
- -+ iommus = <&vop_mmu>;
- -+ power-domains = <&power RK3568_PD_VO>;
- -+ status = "disabled";
- -+
- -+ vop_out: ports {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+
- -+ vp0: port@0 {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ reg = <0>;
- -+
- -+ vp0_out_hdmi: endpoint@0 {
- -+ reg = <0>;
- -+ remote-endpoint = <&hdmi_in_vp0>;
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ vp1: port@1 {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ reg = <1>;
- -+
- -+ vp1_out_hdmi: endpoint@0 {
- -+ reg = <0>;
- -+ remote-endpoint = <&hdmi_in_vp1>;
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ vp2: port@2 {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ reg = <2>;
- -+
- -+ vp2_out_hdmi: endpoint@0 {
- -+ reg = <0>;
- -+ remote-endpoint = <&hdmi_in_vp2>;
- -+ status = "disabled";
- -+ };
- -+ };
- -+ };
- -+ };
- -+
- -+ vop_mmu: iommu@fe043e00 {
- -+ compatible = "rockchip,rk3568-iommu";
- -+ reg = <0x0 0xfe043e00 0x0 0x100>, <0x0 0xfe043f00 0x0 0x100>;
- -+ interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "vop_mmu";
- -+ clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
- -+ clock-names = "aclk", "iface";
- -+ #iommu-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ hdmi: hdmi@fe0a0000 {
- -+ compatible = "rockchip,rk3568-dw-hdmi";
- -+ reg = <0x0 0xfe0a0000 0x0 0x20000>;
- -+ interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru PCLK_HDMI_HOST>,
- -+ <&cru CLK_HDMI_SFR>,
- -+ <&cru CLK_HDMI_CEC>,
- -+ <&cru HCLK_VOP>;
- -+ clock-names = "iahb", "isfr", "cec", "hclk";
- -+ power-domains = <&power RK3568_PD_VO>;
- -+ reg-io-width = <4>;
- -+ rockchip,grf = <&grf>;
- -+ #sound-dai-cells = <0>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>;
- -+ status = "disabled";
- -+
- -+ ports {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+
- -+ hdmi_in: port@0 {
- -+ reg = <0>;
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+
- -+ hdmi_in_vp0: endpoint@0 {
- -+ reg = <0>;
- -+ remote-endpoint = <&vp0_out_hdmi>;
- -+ status = "disabled";
- -+ };
- -+
- -+ hdmi_in_vp1: endpoint@1 {
- -+ reg = <1>;
- -+ remote-endpoint = <&vp1_out_hdmi>;
- -+ status = "disabled";
- -+ };
- -+
- -+ hdmi_in_vp2: endpoint@2 {
- -+ reg = <2>;
- -+ remote-endpoint = <&vp2_out_hdmi>;
- -+ status = "disabled";
- -+ };
- -+ };
- -+ };
- -+ };
- -+
- -+ qos_gpu: qos@fe128000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe128000 0x0 0x20>;
- -+ };
- -+
- -+ qos_rkvenc_rd_m0: qos@fe138080 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe138080 0x0 0x20>;
- -+ };
- -+
- -+ qos_rkvenc_rd_m1: qos@fe138100 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe138100 0x0 0x20>;
- -+ };
- -+
- -+ qos_rkvenc_wr_m0: qos@fe138180 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe138180 0x0 0x20>;
- -+ };
- -+
- -+ qos_isp: qos@fe148000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe148000 0x0 0x20>;
- -+ };
- -+
- -+ qos_vicap0: qos@fe148080 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe148080 0x0 0x20>;
- -+ };
- -+
- -+ qos_vicap1: qos@fe148100 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe148100 0x0 0x20>;
- -+ };
- -+
- -+ qos_vpu: qos@fe150000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe150000 0x0 0x20>;
- -+ };
- -+
- -+ qos_ebc: qos@fe158000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe158000 0x0 0x20>;
- -+ };
- -+
- -+ qos_iep: qos@fe158100 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe158100 0x0 0x20>;
- -+ };
- -+
- -+ qos_jpeg_dec: qos@fe158180 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe158180 0x0 0x20>;
- -+ };
- -+
- -+ qos_jpeg_enc: qos@fe158200 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe158200 0x0 0x20>;
- -+ };
- -+
- -+ qos_rga_rd: qos@fe158280 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe158280 0x0 0x20>;
- -+ };
- -+
- -+ qos_rga_wr: qos@fe158300 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe158300 0x0 0x20>;
- -+ };
- -+
- -+ qos_npu: qos@fe180000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe180000 0x0 0x20>;
- -+ };
- -+
- -+ qos_pcie2x1: qos@fe190000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190000 0x0 0x20>;
- -+ };
- -+
- -+ qos_sata1: qos@fe190280 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190280 0x0 0x20>;
- -+ };
- -+
- -+ qos_sata2: qos@fe190300 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190300 0x0 0x20>;
- -+ };
- -+
- -+ qos_usb3_0: qos@fe190380 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190380 0x0 0x20>;
- -+ };
- -+
- -+ qos_usb3_1: qos@fe190400 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe190400 0x0 0x20>;
- -+ };
- -+
- -+ qos_rkvdec: qos@fe198000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe198000 0x0 0x20>;
- -+ };
- -+
- -+ qos_hdcp: qos@fe1a8000 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe1a8000 0x0 0x20>;
- -+ };
- -+
- -+ qos_vop_m0: qos@fe1a8080 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe1a8080 0x0 0x20>;
- -+ };
- -+
- -+ qos_vop_m1: qos@fe1a8100 {
- -+ compatible = "rockchip,rk3568-qos", "syscon";
- -+ reg = <0x0 0xfe1a8100 0x0 0x20>;
- -+ };
- -+
- -+ pcie2x1: pcie@fe260000 {
- -+ compatible = "rockchip,rk3568-pcie";
- -+ #address-cells = <3>;
- -+ #size-cells = <2>;
- -+ bus-range = <0x0 0xf>;
- -+ assigned-clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
- -+ <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
- -+ <&cru CLK_PCIE20_AUX_NDFT>;
- -+ clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
- -+ <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
- -+ <&cru CLK_PCIE20_AUX_NDFT>;
- -+ clock-names = "aclk_mst", "aclk_slv",
- -+ "aclk_dbi", "pclk", "aux";
- -+ device_type = "pci";
- -+ interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
- -+ interrupt-names = "sys", "pmc", "msi", "legacy", "err";
- -+ #interrupt-cells = <1>;
- -+ interrupt-map-mask = <0 0 0 7>;
- -+ interrupt-map = <0 0 0 1 &pcie_intc 0>,
- -+ <0 0 0 2 &pcie_intc 1>,
- -+ <0 0 0 3 &pcie_intc 2>,
- -+ <0 0 0 4 &pcie_intc 3>;
- -+ linux,pci-domain = <0>;
- -+ num-ib-windows = <6>;
- -+ num-ob-windows = <2>;
- -+ max-link-speed = <2>;
- -+ msi-map = <0x0 &gic 0x0 0x1000>;
- -+ num-lanes = <1>;
- -+ phys = <&combphy2_psq PHY_TYPE_PCIE>;
- -+ phy-names = "pcie-phy";
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ reg = <0x3 0xc0000000 0x0 0x400000>,
- -+ <0x0 0xfe260000 0x0 0x10000>,
- -+ <0x3 0x3f800000 0x0 0x800000>;
- -+ ranges = <0x1000000 0x0 0x7f700000 0x3 0x3f700000 0x0 0x00100000
- -+ 0x2000000 0x0 0x40000000 0x3 0x00000000 0x0 0x3f700000>;
- -+ reg-names = "dbi", "apb", "config";
- -+ resets = <&cru SRST_PCIE20_POWERUP>;
- -+ reset-names = "pipe";
- -+ status = "disabled";
- -+
- -+ pcie_intc: legacy-interrupt-controller {
- -+ #address-cells = <0>;
- -+ #interrupt-cells = <1>;
- -+ interrupt-controller;
- -+ interrupt-parent = <&gic>;
- -+ interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
- -+ };
- -+
- -+ };
- -+
- -+ sdmmc0: mmc@fe2b0000 {
- -+ compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- -+ reg = <0x0 0xfe2b0000 0x0 0x4000>;
- -+ interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
- -+ <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
- -+ clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
- -+ fifo-depth = <0x100>;
- -+ max-frequency = <150000000>;
- -+ resets = <&cru SRST_SDMMC0>;
- -+ reset-names = "reset";
- -+ status = "disabled";
- -+ };
- -+
- -+ sdmmc1: mmc@fe2c0000 {
- -+ compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- -+ reg = <0x0 0xfe2c0000 0x0 0x4000>;
- -+ interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
- -+ <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
- -+ clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
- -+ fifo-depth = <0x100>;
- -+ max-frequency = <150000000>;
- -+ resets = <&cru SRST_SDMMC1>;
- -+ reset-names = "reset";
- -+ status = "disabled";
- -+ };
- -+
- -+ sfc: spi@fe300000 {
- -+ compatible = "rockchip,sfc";
- -+ reg = <0x0 0xfe300000 0x0 0x4000>;
- -+ interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
- -+ clock-names = "clk_sfc", "hclk_sfc";
- -+ pinctrl-0 = <&fspi_pins>;
- -+ pinctrl-names = "default";
- -+ status = "disabled";
- -+ };
- -+
- -+ sdhci: mmc@fe310000 {
- -+ compatible = "rockchip,rk3568-dwcmshc";
- -+ reg = <0x0 0xfe310000 0x0 0x10000>;
- -+ interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
- -+ assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>;
- -+ assigned-clock-rates = <200000000>, <24000000>;
- -+ clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
- -+ <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
- -+ <&cru TCLK_EMMC>;
- -+ clock-names = "core", "bus", "axi", "block", "timer";
- -+ status = "disabled";
- -+ };
- -+
- -+ spdif: spdif@fe460000 {
- -+ compatible = "rockchip,rk3568-spdif";
- -+ reg = <0x0 0xfe460000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
- -+ clock-names = "mclk", "hclk";
- -+ clocks = <&cru MCLK_SPDIF_8CH>, <&cru HCLK_SPDIF_8CH>;
- -+ dmas = <&dmac1 1>;
- -+ dma-names = "tx";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&spdifm0_tx>;
- -+ #sound-dai-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ i2s1_8ch: i2s@fe410000 {
- -+ compatible = "rockchip,rk3568-i2s-tdm";
- -+ reg = <0x0 0xfe410000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
- -+ assigned-clocks = <&cru CLK_I2S1_8CH_TX_SRC>, <&cru CLK_I2S1_8CH_RX_SRC>;
- -+ assigned-clock-rates = <1188000000>, <1188000000>;
- -+ clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>,
- -+ <&cru HCLK_I2S1_8CH>;
- -+ clock-names = "mclk_tx", "mclk_rx", "hclk";
- -+ dmas = <&dmac1 3>, <&dmac1 2>;
- -+ dma-names = "rx", "tx";
- -+ resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
- -+ reset-names = "tx-m", "rx-m";
- -+ rockchip,grf = <&grf>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_sclkrx
- -+ &i2s1m0_lrcktx &i2s1m0_lrckrx
- -+ &i2s1m0_sdi0 &i2s1m0_sdi1
- -+ &i2s1m0_sdi2 &i2s1m0_sdi3
- -+ &i2s1m0_sdo0 &i2s1m0_sdo1
- -+ &i2s1m0_sdo2 &i2s1m0_sdo3>;
- -+ #sound-dai-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ dmac0: dmac@fe530000 {
- -+ compatible = "arm,pl330", "arm,primecell";
- -+ reg = <0x0 0xfe530000 0x0 0x4000>;
- -+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
- -+ arm,pl330-periph-burst;
- -+ clocks = <&cru ACLK_BUS>;
- -+ clock-names = "apb_pclk";
- -+ #dma-cells = <1>;
- -+ };
- -+
- -+ dmac1: dmac@fe550000 {
- -+ compatible = "arm,pl330", "arm,primecell";
- -+ reg = <0x0 0xfe550000 0x0 0x4000>;
- -+ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
- -+ <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
- -+ arm,pl330-periph-burst;
- -+ clocks = <&cru ACLK_BUS>;
- -+ clock-names = "apb_pclk";
- -+ #dma-cells = <1>;
- -+ };
- -+
- -+ i2c1: i2c@fe5a0000 {
- -+ compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -+ reg = <0x0 0xfe5a0000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
- -+ clock-names = "i2c", "pclk";
- -+ pinctrl-0 = <&i2c1_xfer>;
- -+ pinctrl-names = "default";
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ i2c2: i2c@fe5b0000 {
- -+ compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -+ reg = <0x0 0xfe5b0000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
- -+ clock-names = "i2c", "pclk";
- -+ pinctrl-0 = <&i2c2m0_xfer>;
- -+ pinctrl-names = "default";
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ i2c3: i2c@fe5c0000 {
- -+ compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -+ reg = <0x0 0xfe5c0000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
- -+ clock-names = "i2c", "pclk";
- -+ pinctrl-0 = <&i2c3m0_xfer>;
- -+ pinctrl-names = "default";
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ i2c4: i2c@fe5d0000 {
- -+ compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -+ reg = <0x0 0xfe5d0000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
- -+ clock-names = "i2c", "pclk";
- -+ pinctrl-0 = <&i2c4m0_xfer>;
- -+ pinctrl-names = "default";
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ i2c5: i2c@fe5e0000 {
- -+ compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
- -+ reg = <0x0 0xfe5e0000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
- -+ clock-names = "i2c", "pclk";
- -+ pinctrl-0 = <&i2c5m0_xfer>;
- -+ pinctrl-names = "default";
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ wdt: watchdog@fe600000 {
- -+ compatible = "rockchip,rk3568-wdt", "snps,dw-wdt";
- -+ reg = <0x0 0xfe600000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
- -+ clock-names = "tclk", "pclk";
- -+ };
- -+
- -+ uart1: serial@fe650000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe650000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 2>, <&dmac0 3>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart1m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart2: serial@fe660000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe660000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 4>, <&dmac0 5>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart2m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart3: serial@fe670000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe670000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 6>, <&dmac0 7>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart3m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart4: serial@fe680000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe680000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 8>, <&dmac0 9>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart4m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart5: serial@fe690000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe690000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 10>, <&dmac0 11>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart5m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart6: serial@fe6a0000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe6a0000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 12>, <&dmac0 13>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart6m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart7: serial@fe6b0000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe6b0000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 14>, <&dmac0 15>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart7m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart8: serial@fe6c0000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe6c0000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 16>, <&dmac0 17>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart8m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ uart9: serial@fe6d0000 {
- -+ compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
- -+ reg = <0x0 0xfe6d0000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
- -+ clock-names = "baudclk", "apb_pclk";
- -+ dmas = <&dmac0 18>, <&dmac0 19>;
- -+ dma-names = "tx", "rx";
- -+ pinctrl-0 = <&uart9m0_xfer>;
- -+ pinctrl-names = "default";
- -+ reg-io-width = <4>;
- -+ reg-shift = <2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ thermal_zones: thermal-zones {
- -+ cpu_thermal: cpu-thermal {
- -+ polling-delay-passive = <100>;
- -+ polling-delay = <1000>;
- -+
- -+ thermal-sensors = <&tsadc 0>;
- -+
- -+ trips {
- -+ cpu_alert0: cpu_alert0 {
- -+ temperature = <70000>;
- -+ hysteresis = <2000>;
- -+ type = "passive";
- -+ };
- -+ cpu_alert1: cpu_alert1 {
- -+ temperature = <75000>;
- -+ hysteresis = <2000>;
- -+ type = "passive";
- -+ };
- -+ cpu_crit: cpu_crit {
- -+ temperature = <95000>;
- -+ hysteresis = <2000>;
- -+ type = "critical";
- -+ };
- -+ };
- -+
- -+ cooling-maps {
- -+ map0 {
- -+ trip = <&cpu_alert0>;
- -+ cooling-device =
- -+ <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
- -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
- -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
- -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
- -+ };
- -+ };
- -+ };
- -+
- -+ gpu_thermal: gpu-thermal {
- -+ polling-delay-passive = <20>; /* milliseconds */
- -+ polling-delay = <1000>; /* milliseconds */
- -+
- -+ thermal-sensors = <&tsadc 1>;
- -+ };
- -+ };
- -+
- -+ tsadc: tsadc@fe710000 {
- -+ compatible = "rockchip,rk3568-tsadc";
- -+ reg = <0x0 0xfe710000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
- -+ assigned-clocks = <&cru CLK_TSADC_TSEN>, <&cru CLK_TSADC>;
- -+ assigned-clock-rates = <17000000>, <700000>;
- -+ clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
- -+ clock-names = "tsadc", "apb_pclk";
- -+ resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>,
- -+ <&cru SRST_TSADCPHY>;
- -+ rockchip,grf = <&grf>;
- -+ rockchip,hw-tshut-temp = <95000>;
- -+ pinctrl-names = "init", "default", "sleep";
- -+ pinctrl-0 = <&tsadc_pin>;
- -+ pinctrl-1 = <&tsadc_shutorg>;
- -+ pinctrl-2 = <&tsadc_pin>;
- -+ #thermal-sensor-cells = <1>;
- -+ status = "disabled";
- -+ };
- -+
- -+ saradc: saradc@fe720000 {
- -+ compatible = "rockchip,rk3568-saradc", "rockchip,rk3399-saradc";
- -+ reg = <0x0 0xfe720000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
- -+ clock-names = "saradc", "apb_pclk";
- -+ resets = <&cru SRST_P_SARADC>;
- -+ reset-names = "saradc-apb";
- -+ #io-channel-cells = <1>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm4: pwm@fe6e0000 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6e0000 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm4_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm5: pwm@fe6e0010 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6e0010 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm5_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm6: pwm@fe6e0020 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6e0020 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm6_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm7: pwm@fe6e0030 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6e0030 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm7_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm8: pwm@fe6f0000 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6f0000 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm8m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm9: pwm@fe6f0010 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6f0010 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm9m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm10: pwm@fe6f0020 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6f0020 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm10m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm11: pwm@fe6f0030 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe6f0030 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm11m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm12: pwm@fe700000 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe700000 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm12m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm13: pwm@fe700010 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe700010 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm13m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm14: pwm@fe700020 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe700020 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm14m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pwm15: pwm@fe700030 {
- -+ compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
- -+ reg = <0x0 0xfe700030 0x0 0x10>;
- -+ clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
- -+ clock-names = "pwm", "pclk";
- -+ pinctrl-0 = <&pwm15m0_pins>;
- -+ pinctrl-names = "active";
- -+ #pwm-cells = <3>;
- -+ status = "disabled";
- -+ };
- -+
- -+ combphy1_usq: phy@fe830000 {
- -+ compatible = "rockchip,rk3568-naneng-combphy";
- -+ reg = <0x0 0xfe830000 0x0 0x100>;
- -+ #phy-cells = <1>;
- -+ assigned-clocks = <&pmucru CLK_PCIEPHY1_REF>;
- -+ assigned-clock-rates = <100000000>;
- -+ clocks = <&pmucru CLK_PCIEPHY1_REF>, <&cru PCLK_PIPEPHY1>,
- -+ <&cru PCLK_PIPE>;
- -+ clock-names = "ref", "apb", "pipe";
- -+ resets = <&cru SRST_P_PIPEPHY1>, <&cru SRST_PIPEPHY1>;
- -+ reset-names = "combphy-apb", "combphy";
- -+ rockchip,pipe-grf = <&pipegrf>;
- -+ rockchip,pipe-phy-grf = <&pipe_phy_grf1>;
- -+ status = "disabled";
- -+ };
- -+
- -+ combphy2_psq: phy@fe840000 {
- -+ compatible = "rockchip,rk3568-naneng-combphy";
- -+ reg = <0x0 0xfe840000 0x0 0x100>;
- -+ #phy-cells = <1>;
- -+ assigned-clocks = <&pmucru CLK_PCIEPHY2_REF>;
- -+ assigned-clock-rates = <100000000>;
- -+ clocks = <&pmucru CLK_PCIEPHY2_REF>, <&cru PCLK_PIPEPHY2>,
- -+ <&cru PCLK_PIPE>;
- -+ clock-names = "ref", "apb", "pipe";
- -+ resets = <&cru SRST_P_PIPEPHY2>, <&cru SRST_PIPEPHY2>;
- -+ reset-names = "combphy-apb", "combphy";
- -+ rockchip,pipe-grf = <&pipegrf>;
- -+ rockchip,pipe-phy-grf = <&pipe_phy_grf2>;
- -+ status = "disabled";
- -+ };
- -+
- -+ usb2phy0: usb2-phy@fe8a0000 {
- -+ compatible = "rockchip,rk3568-usb2phy";
- -+ reg = <0x0 0xfe8a0000 0x0 0x10000>;
- -+ clocks = <&pmucru CLK_USBPHY0_REF>;
- -+ clock-names = "phyclk";
- -+ #clock-cells = <0>;
- -+ clock-output-names = "usb480m_phy";
- -+ interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
- -+ rockchip,usbgrf = <&usb2phy0_grf>;
- -+ status = "disabled";
- -+
- -+ u2phy0_host: host-port {
- -+ #phy-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ u2phy0_otg: otg-port {
- -+ #phy-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ usb2phy1: usb2-phy@fe8b0000 {
- -+ compatible = "rockchip,rk3568-usb2phy";
- -+ reg = <0x0 0xfe8b0000 0x0 0x10000>;
- -+ clocks = <&pmucru CLK_USBPHY1_REF>;
- -+ clock-names = "phyclk";
- -+ #clock-cells = <0>;
- -+ interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
- -+ rockchip,usbgrf = <&usb2phy1_grf>;
- -+ status = "disabled";
- -+
- -+ u2phy1_host: host-port {
- -+ #phy-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ u2phy1_otg: otg-port {
- -+ #phy-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+ };
- -+
- -+ pinctrl: pinctrl {
- -+ compatible = "rockchip,rk3568-pinctrl";
- -+ rockchip,grf = <&grf>;
- -+ rockchip,pmu = <&pmugrf>;
- -+ #address-cells = <2>;
- -+ #size-cells = <2>;
- -+ ranges;
- -+
- -+ gpio0: gpio@fdd60000 {
- -+ compatible = "rockchip,gpio-bank";
- -+ reg = <0x0 0xfdd60000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
- -+ gpio-controller;
- -+ #gpio-cells = <2>;
- -+ interrupt-controller;
- -+ #interrupt-cells = <2>;
- -+ };
- -+
- -+ gpio1: gpio@fe740000 {
- -+ compatible = "rockchip,gpio-bank";
- -+ reg = <0x0 0xfe740000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
- -+ gpio-controller;
- -+ #gpio-cells = <2>;
- -+ interrupt-controller;
- -+ #interrupt-cells = <2>;
- -+ };
- -+
- -+ gpio2: gpio@fe750000 {
- -+ compatible = "rockchip,gpio-bank";
- -+ reg = <0x0 0xfe750000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
- -+ gpio-controller;
- -+ #gpio-cells = <2>;
- -+ interrupt-controller;
- -+ #interrupt-cells = <2>;
- -+ };
- -+
- -+ gpio3: gpio@fe760000 {
- -+ compatible = "rockchip,gpio-bank";
- -+ reg = <0x0 0xfe760000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
- -+ gpio-controller;
- -+ #gpio-cells = <2>;
- -+ interrupt-controller;
- -+ #interrupt-cells = <2>;
- -+ };
- -+
- -+ gpio4: gpio@fe770000 {
- -+ compatible = "rockchip,gpio-bank";
- -+ reg = <0x0 0xfe770000 0x0 0x100>;
- -+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
- -+ gpio-controller;
- -+ #gpio-cells = <2>;
- -+ interrupt-controller;
- -+ #interrupt-cells = <2>;
- -+ };
- -+ };
- -+};
- -+
- -+#include "rk3568-pinctrl.dtsi"
- ---- a/arch/arm/mach-rockchip/rk3568/rk3568.c
- -+++ b/arch/arm/mach-rockchip/rk3568/rk3568.c
- -@@ -55,7 +55,7 @@ enum {
- - };
- -
- - const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
- -- [BROM_BOOTSOURCE_EMMC] = "/sdhci@fe310000",
- -+ [BROM_BOOTSOURCE_EMMC] = "/mmc@fe310000",
- - [BROM_BOOTSOURCE_SPINOR] = "/spi@fe300000/flash@0",
- - [BROM_BOOTSOURCE_SD] = "/mmc@fe2b0000",
- - };
- diff --git a/package/boot/uboot-rockchip/patches/005-rockchip-rk356x-HACK-fix-sdmmc-support.patch b/package/boot/uboot-rockchip/patches/005-rockchip-rk356x-HACK-fix-sdmmc-support.patch
- deleted file mode 100644
- index 10e4dd1198bc..000000000000
- --- a/package/boot/uboot-rockchip/patches/005-rockchip-rk356x-HACK-fix-sdmmc-support.patch
- +++ /dev/null
- @@ -1,50 +0,0 @@
- -From 01e8a38985a90043abddc5c5bcd049c74bb29a53 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 19 Dec 2021 18:52:18 -0500
- -Subject: [PATCH 05/11] rockchip: rk356x: HACK: fix sdmmc support
- -
- -HACK: lock mmc0 to initial frequency and disable dw-mmc control of power
- -line.
- -
- -The sdmmc on quartz64-a is powered by the sdmmc0 power line, which is
- -active low.
- -Even though it is set as a gpio, it still seems to be triggered by the
- -dw-mmc driver toggling the power line.
- -Downstream fixes this by setting this to "0" instead of "1" using
- -kconfigs.
- -
- -Also, for some reason the controller will only operate at initial
- -frequencies.
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi | 4 +++-
- - drivers/mmc/dw_mmc.c | 3 ++-
- - 2 files changed, 5 insertions(+), 2 deletions(-)
- -
- ---- a/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -+++ b/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -@@ -13,8 +13,10 @@
- - };
- -
- - &sdmmc0 {
- -+ max-frequency = <400000>;
- -+ bus-width = <4>;
- - u-boot,dm-spl;
- -- status = "okay";
- -+ u-boot,spl-fifo-mode;
- - };
- -
- - &uart2 {
- ---- a/drivers/mmc/dw_mmc.c
- -+++ b/drivers/mmc/dw_mmc.c
- -@@ -529,7 +529,8 @@ static int dwmci_init(struct mmc *mmc)
- - if (host->board_init)
- - host->board_init(host);
- -
- -- dwmci_writel(host, DWMCI_PWREN, 1);
- -+// dwmci_writel(host, DWMCI_PWREN, 1);
- -+ dwmci_writel(host, DWMCI_PWREN, 0);
- -
- - if (!dwmci_wait_reset(host, DWMCI_RESET_ALL)) {
- - debug("%s[%d] Fail-reset!!\n", __func__, __LINE__);
- diff --git a/package/boot/uboot-rockchip/patches/006-rockchip-rk356x-add-quartz64-a-board.patch b/package/boot/uboot-rockchip/patches/006-rockchip-rk356x-add-quartz64-a-board.patch
- deleted file mode 100644
- index 0a5d784b15bb..000000000000
- --- a/package/boot/uboot-rockchip/patches/006-rockchip-rk356x-add-quartz64-a-board.patch
- +++ /dev/null
- @@ -1,214 +0,0 @@
- -From 9f623c0e96fc7c3b5c9b7a81f0a3017c47033ec7 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 19 Dec 2021 18:57:36 -0500
- -Subject: [PATCH 06/11] rockchip: rk356x: add quartz64-a board
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/mach-rockchip/rk3568/Kconfig | 12 ++-
- - board/pine64/quartz64-a-rk3566/Kconfig | 15 ++++
- - board/pine64/quartz64-a-rk3566/Makefile | 4 +
- - .../quartz64-a-rk3566/quartz64-a-rk3566.c | 1 +
- - configs/quartz64-a-rk3566_defconfig | 77 +++++++++++++++++++
- - include/configs/quartz64-a-rk3566.h | 14 ++++
- - include/dt-bindings/power/rk3568-power.h | 32 ++++++++
- - 7 files changed, 154 insertions(+), 1 deletion(-)
- - create mode 100644 board/pine64/quartz64-a-rk3566/Kconfig
- - create mode 100644 board/pine64/quartz64-a-rk3566/Makefile
- - create mode 100644 board/pine64/quartz64-a-rk3566/quartz64-a-rk3566.c
- - create mode 100644 configs/quartz64-a-rk3566_defconfig
- - create mode 100644 include/configs/quartz64-a-rk3566.h
- - create mode 100644 include/dt-bindings/power/rk3568-power.h
- -
- ---- a/arch/arm/mach-rockchip/rk3568/Kconfig
- -+++ b/arch/arm/mach-rockchip/rk3568/Kconfig
- -@@ -1,11 +1,20 @@
- - if ROCKCHIP_RK3568
- -
- -+choice
- -+ prompt "RK3568/RK3566 board select"
- -+
- - config TARGET_EVB_RK3568
- - bool "RK3568 evaluation board"
- -- select BOARD_LATE_INIT
- - help
- - RK3568 EVB is a evaluation board for Rockchp RK3568.
- -
- -+config TARGET_QUARTZ64_A_RK3566
- -+ bool "Quartz64 Model A RK3566 development board"
- -+ help
- -+ Quartz64 Model A RK3566 is a development board from Pine64.
- -+
- -+endchoice
- -+
- - config ROCKCHIP_BOOT_MODE_REG
- - default 0xfdc20200
- -
- -@@ -19,5 +28,6 @@ config SYS_MALLOC_F_LEN
- - default 0x2000
- -
- - source "board/rockchip/evb_rk3568/Kconfig"
- -+source "board/pine64/quartz64-a-rk3566/Kconfig"
- -
- - endif
- ---- /dev/null
- -+++ b/board/pine64/quartz64-a-rk3566/Kconfig
- -@@ -0,0 +1,15 @@
- -+if TARGET_QUARTZ64_A_RK3566
- -+
- -+config SYS_BOARD
- -+ default "quartz64-a-rk3566"
- -+
- -+config SYS_VENDOR
- -+ default "pine64"
- -+
- -+config SYS_CONFIG_NAME
- -+ default "quartz64-a-rk3566"
- -+
- -+config BOARD_SPECIFIC_OPTIONS # dummy
- -+ def_bool y
- -+
- -+endif
- ---- /dev/null
- -+++ b/board/pine64/quartz64-a-rk3566/Makefile
- -@@ -0,0 +1,4 @@
- -+# SPDX-License-Identifier: GPL-2.0+
- -+#
- -+
- -+obj-y += quartz64-a-rk3566.o
- ---- /dev/null
- -+++ b/board/pine64/quartz64-a-rk3566/quartz64-a-rk3566.c
- -@@ -0,0 +1 @@
- -+// SPDX-License-Identifier: GPL-2.0+
- ---- /dev/null
- -+++ b/configs/quartz64-a-rk3566_defconfig
- -@@ -0,0 +1,77 @@
- -+CONFIG_ARM=y
- -+CONFIG_SKIP_LOWLEVEL_INIT=y
- -+CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- -+CONFIG_SPL_LIBCOMMON_SUPPORT=y
- -+CONFIG_SPL_LIBGENERIC_SUPPORT=y
- -+CONFIG_NR_DRAM_BANKS=2
- -+CONFIG_DEFAULT_DEVICE_TREE="rk3566-quartz64-a"
- -+CONFIG_ROCKCHIP_RK3568=y
- -+CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- -+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- -+CONFIG_SPL_MMC=y
- -+CONFIG_SPL_SERIAL=y
- -+CONFIG_SPL_STACK_R_ADDR=0x600000
- -+CONFIG_TARGET_QUARTZ64_A_RK3566=y
- -+CONFIG_DEBUG_UART_BASE=0xFE660000
- -+CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- -+CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- -+CONFIG_FIT=y
- -+CONFIG_FIT_VERBOSE=y
- -+CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-quartz64-a.dtb"
- -+# CONFIG_DISPLAY_CPUINFO is not set
- -+CONFIG_DISPLAY_BOARDINFO_LATE=y
- -+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -+CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- -+CONFIG_SPL_ATF=y
- -+CONFIG_SPL_ATF_LOAD_IMAGE_V2=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- -+CONFIG_CMD_GPIO=y
- -+CONFIG_CMD_GPT=y
- -+CONFIG_CMD_I2C=y
- -+CONFIG_CMD_MMC=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- -+CONFIG_CMD_REGULATOR=y
- -+# CONFIG_SPL_DOS_PARTITION is not set
- -+CONFIG_SPL_OF_CONTROL=y
- -+CONFIG_OF_LIVE=y
- -+CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_REGMAP=y
- -+CONFIG_SPL_SYSCON=y
- -+CONFIG_SPL_CLK=y
- -+CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_SYS_I2C_ROCKCHIP=y
- -+CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- -+CONFIG_MMC_DW=y
- -+CONFIG_MMC_DW_ROCKCHIP=y
- -+CONFIG_MMC_SDHCI=y
- -+CONFIG_MMC_SDHCI_SDMA=y
- -+CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- -+CONFIG_ETH_DESIGNWARE=y
- -+CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- -+CONFIG_DM_PMIC=y
- -+CONFIG_PMIC_RK8XX=y
- -+CONFIG_SPL_PMIC_RK8XX=y
- -+CONFIG_REGULATOR_PWM=y
- -+CONFIG_DM_REGULATOR_FIXED=y
- -+CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- -+CONFIG_REGULATOR_RK8XX=y
- -+CONFIG_PWM_ROCKCHIP=y
- -+CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- -+CONFIG_BAUDRATE=1500000
- -+CONFIG_DEBUG_UART_SHIFT=2
- -+CONFIG_SYSRESET=y
- -+CONFIG_SYSRESET_PSCI=y
- -+CONFIG_ERRNO_STR=y
- ---- /dev/null
- -+++ b/include/configs/quartz64-a-rk3566.h
- -@@ -0,0 +1,14 @@
- -+/* SPDX-License-Identifier: GPL-2.0+ */
- -+
- -+#ifndef __QUARTZ64_A_RK3566_H
- -+#define __QUARTZ64_A_RK3566_H
- -+
- -+#include <configs/rk3568_common.h>
- -+
- -+#define CONFIG_SUPPORT_EMMC_RPMB
- -+
- -+#define ROCKCHIP_DEVICE_SETTINGS \
- -+ "stdout=serial,vidconsole\0" \
- -+ "stderr=serial,vidconsole\0"
- -+
- -+#endif
- ---- /dev/null
- -+++ b/include/dt-bindings/power/rk3568-power.h
- -@@ -0,0 +1,32 @@
- -+/* SPDX-License-Identifier: GPL-2.0 */
- -+#ifndef __DT_BINDINGS_POWER_RK3568_POWER_H__
- -+#define __DT_BINDINGS_POWER_RK3568_POWER_H__
- -+
- -+/* VD_CORE */
- -+#define RK3568_PD_CPU_0 0
- -+#define RK3568_PD_CPU_1 1
- -+#define RK3568_PD_CPU_2 2
- -+#define RK3568_PD_CPU_3 3
- -+#define RK3568_PD_CORE_ALIVE 4
- -+
- -+/* VD_PMU */
- -+#define RK3568_PD_PMU 5
- -+
- -+/* VD_NPU */
- -+#define RK3568_PD_NPU 6
- -+
- -+/* VD_GPU */
- -+#define RK3568_PD_GPU 7
- -+
- -+/* VD_LOGIC */
- -+#define RK3568_PD_VI 8
- -+#define RK3568_PD_VO 9
- -+#define RK3568_PD_RGA 10
- -+#define RK3568_PD_VPU 11
- -+#define RK3568_PD_CENTER 12
- -+#define RK3568_PD_RKVDEC 13
- -+#define RK3568_PD_RKVENC 14
- -+#define RK3568_PD_PIPE 15
- -+#define RK3568_PD_LOGIC_ALIVE 16
- -+
- -+#endif
- diff --git a/package/boot/uboot-rockchip/patches/007-gpio-rockchip-rk_gpio-support-v2-gpio-controller.patch b/package/boot/uboot-rockchip/patches/007-gpio-rockchip-rk_gpio-support-v2-gpio-controller.patch
- deleted file mode 100644
- index 3066eaaf4329..000000000000
- --- a/package/boot/uboot-rockchip/patches/007-gpio-rockchip-rk_gpio-support-v2-gpio-controller.patch
- +++ /dev/null
- @@ -1,755 +0,0 @@
- -From 3a4d973a743bc76cc734db9616f9053f45fa922f Mon Sep 17 00:00:00 2001
- -From: Jianqun Xu <[email protected]>
- -Date: Thu, 28 May 2020 11:01:58 +0800
- -Subject: [PATCH 07/11] gpio/rockchip: rk_gpio support v2 gpio controller
- -
- -The v2 gpio controller add write enable bit for some register,
- -such as data register, data direction register and so on.
- -
- -This patch support v2 gpio controller by redefine the read and
- -write operation functions.
- -
- -Also adds support for the rk3568 pinctrl device.
- -
- -Squash all fixes into this commit.
- -
- -Change-Id: I2adbcca06a37c48e6f494b89833cd034ba0dae29
- -Signed-off-by: Jianqun Xu <[email protected]>
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/include/asm/arch-rockchip/gpio.h | 36 ++
- - drivers/gpio/Kconfig | 13 +
- - drivers/gpio/rk_gpio.c | 89 ++++-
- - drivers/pinctrl/rockchip/Makefile | 1 +
- - drivers/pinctrl/rockchip/pinctrl-rk3568.c | 360 ++++++++++++++++++
- - .../pinctrl/rockchip/pinctrl-rockchip-core.c | 11 +-
- - drivers/pinctrl/rockchip/pinctrl-rockchip.h | 42 ++
- - 7 files changed, 530 insertions(+), 22 deletions(-)
- - create mode 100644 drivers/pinctrl/rockchip/pinctrl-rk3568.c
- -
- ---- a/arch/arm/include/asm/arch-rockchip/gpio.h
- -+++ b/arch/arm/include/asm/arch-rockchip/gpio.h
- -@@ -6,6 +6,7 @@
- - #ifndef _ASM_ARCH_GPIO_H
- - #define _ASM_ARCH_GPIO_H
- -
- -+#ifndef CONFIG_ROCKCHIP_GPIO_V2
- - struct rockchip_gpio_regs {
- - u32 swport_dr;
- - u32 swport_ddr;
- -@@ -23,6 +24,41 @@ struct rockchip_gpio_regs {
- - u32 ls_sync;
- - };
- - check_member(rockchip_gpio_regs, ls_sync, 0x60);
- -+#else
- -+struct rockchip_gpio_regs {
- -+ u32 swport_dr_l; /* ADDRESS OFFSET: 0x0000 */
- -+ u32 swport_dr_h; /* ADDRESS OFFSET: 0x0004 */
- -+ u32 swport_ddr_l; /* ADDRESS OFFSET: 0x0008 */
- -+ u32 swport_ddr_h; /* ADDRESS OFFSET: 0x000c */
- -+ u32 int_en_l; /* ADDRESS OFFSET: 0x0010 */
- -+ u32 int_en_h; /* ADDRESS OFFSET: 0x0014 */
- -+ u32 int_mask_l; /* ADDRESS OFFSET: 0x0018 */
- -+ u32 int_mask_h; /* ADDRESS OFFSET: 0x001c */
- -+ u32 int_type_l; /* ADDRESS OFFSET: 0x0020 */
- -+ u32 int_type_h; /* ADDRESS OFFSET: 0x0024 */
- -+ u32 int_polarity_l; /* ADDRESS OFFSET: 0x0028 */
- -+ u32 int_polarity_h; /* ADDRESS OFFSET: 0x002c */
- -+ u32 int_bothedge_l; /* ADDRESS OFFSET: 0x0030 */
- -+ u32 int_bothedge_h; /* ADDRESS OFFSET: 0x0034 */
- -+ u32 debounce_l; /* ADDRESS OFFSET: 0x0038 */
- -+ u32 debounce_h; /* ADDRESS OFFSET: 0x003c */
- -+ u32 dbclk_div_en_l; /* ADDRESS OFFSET: 0x0040 */
- -+ u32 dbclk_div_en_h; /* ADDRESS OFFSET: 0x0044 */
- -+ u32 dbclk_div_con; /* ADDRESS OFFSET: 0x0048 */
- -+ u32 reserved004c; /* ADDRESS OFFSET: 0x004c */
- -+ u32 int_status; /* ADDRESS OFFSET: 0x0050 */
- -+ u32 reserved0054; /* ADDRESS OFFSET: 0x0054 */
- -+ u32 int_rawstatus; /* ADDRESS OFFSET: 0x0058 */
- -+ u32 reserved005c; /* ADDRESS OFFSET: 0x005c */
- -+ u32 port_eoi_l; /* ADDRESS OFFSET: 0x0060 */
- -+ u32 port_eoi_h; /* ADDRESS OFFSET: 0x0064 */
- -+ u32 reserved0068[2]; /* ADDRESS OFFSET: 0x0068 */
- -+ u32 ext_port; /* ADDRESS OFFSET: 0x0070 */
- -+ u32 reserved0074; /* ADDRESS OFFSET: 0x0074 */
- -+ u32 ver_id; /* ADDRESS OFFSET: 0x0078 */
- -+};
- -+check_member(rockchip_gpio_regs, ver_id, 0x0078);
- -+#endif
- -
- - enum gpio_pu_pd {
- - GPIO_PULL_NORMAL = 0,
- ---- a/drivers/gpio/Kconfig
- -+++ b/drivers/gpio/Kconfig
- -@@ -341,6 +341,19 @@ config ROCKCHIP_GPIO
- - The GPIOs for a device are defined in the device tree with one node
- - for each bank.
- -
- -+config ROCKCHIP_GPIO_V2
- -+ bool "Rockchip GPIO driver version 2.0"
- -+ depends on ROCKCHIP_GPIO
- -+ default n
- -+ help
- -+ Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
- -+ a number of banks (different for each SoC type) each with 32 GPIOs.
- -+ The GPIOs for a device are defined in the device tree with one node
- -+ for each bank.
- -+
- -+ Support version 2.0 GPIO controller, which support write enable bits
- -+ for some registers, such as dr, ddr.
- -+
- - config SANDBOX_GPIO
- - bool "Enable sandbox GPIO driver"
- - depends on SANDBOX && DM && DM_GPIO
- ---- a/drivers/gpio/rk_gpio.c
- -+++ b/drivers/gpio/rk_gpio.c
- -@@ -2,12 +2,15 @@
- - /*
- - * (C) Copyright 2015 Google, Inc
- - *
- -- * (C) Copyright 2008-2014 Rockchip Electronics
- -+ * (C) Copyright 2008-2020 Rockchip Electronics
- - * Peter, Software Engineering, <[email protected]>.
- -+ * Jianqun Xu, Software Engineering, <[email protected]>.
- - */
- -
- - #include <common.h>
- - #include <dm.h>
- -+#include <dm/of_access.h>
- -+#include <dm/device_compat.h>
- - #include <syscon.h>
- - #include <linux/errno.h>
- - #include <asm/gpio.h>
- -@@ -17,12 +20,34 @@
- - #include <dm/pinctrl.h>
- - #include <dt-bindings/clock/rk3288-cru.h>
- -
- --enum {
- -- ROCKCHIP_GPIOS_PER_BANK = 32,
- --};
- -+#include "../pinctrl/rockchip/pinctrl-rockchip.h"
- -
- - #define OFFSET_TO_BIT(bit) (1UL << (bit))
- -
- -+#ifdef CONFIG_ROCKCHIP_GPIO_V2
- -+#define REG_L(R) (R##_l)
- -+#define REG_H(R) (R##_h)
- -+#define READ_REG(REG) ((readl(REG_L(REG)) & 0xFFFF) | \
- -+ ((readl(REG_H(REG)) & 0xFFFF) << 16))
- -+#define WRITE_REG(REG, VAL) \
- -+{\
- -+ writel(((VAL) & 0xFFFF) | 0xFFFF0000, REG_L(REG)); \
- -+ writel((((VAL) & 0xFFFF0000) >> 16) | 0xFFFF0000, REG_H(REG));\
- -+}
- -+#define CLRBITS_LE32(REG, MASK) WRITE_REG(REG, READ_REG(REG) & ~(MASK))
- -+#define SETBITS_LE32(REG, MASK) WRITE_REG(REG, READ_REG(REG) | (MASK))
- -+#define CLRSETBITS_LE32(REG, MASK, VAL) WRITE_REG(REG, \
- -+ (READ_REG(REG) & ~(MASK)) | (VAL))
- -+
- -+#else
- -+#define READ_REG(REG) readl(REG)
- -+#define WRITE_REG(REG, VAL) writel(VAL, REG)
- -+#define CLRBITS_LE32(REG, MASK) clrbits_le32(REG, MASK)
- -+#define SETBITS_LE32(REG, MASK) setbits_le32(REG, MASK)
- -+#define CLRSETBITS_LE32(REG, MASK, VAL) clrsetbits_le32(REG, MASK, VAL)
- -+#endif
- -+
- -+
- - struct rockchip_gpio_priv {
- - struct rockchip_gpio_regs *regs;
- - struct udevice *pinctrl;
- -@@ -35,7 +60,7 @@ static int rockchip_gpio_direction_input
- - struct rockchip_gpio_priv *priv = dev_get_priv(dev);
- - struct rockchip_gpio_regs *regs = priv->regs;
- -
- -- clrbits_le32(®s->swport_ddr, OFFSET_TO_BIT(offset));
- -+ CLRBITS_LE32(®s->swport_ddr, OFFSET_TO_BIT(offset));
- -
- - return 0;
- - }
- -@@ -47,8 +72,8 @@ static int rockchip_gpio_direction_outpu
- - struct rockchip_gpio_regs *regs = priv->regs;
- - int mask = OFFSET_TO_BIT(offset);
- -
- -- clrsetbits_le32(®s->swport_dr, mask, value ? mask : 0);
- -- setbits_le32(®s->swport_ddr, mask);
- -+ CLRSETBITS_LE32(®s->swport_dr, mask, value ? mask : 0);
- -+ SETBITS_LE32(®s->swport_ddr, mask);
- -
- - return 0;
- - }
- -@@ -68,7 +93,7 @@ static int rockchip_gpio_set_value(struc
- - struct rockchip_gpio_regs *regs = priv->regs;
- - int mask = OFFSET_TO_BIT(offset);
- -
- -- clrsetbits_le32(®s->swport_dr, mask, value ? mask : 0);
- -+ CLRSETBITS_LE32(®s->swport_dr, mask, value ? mask : 0);
- -
- - return 0;
- - }
- -@@ -86,8 +111,8 @@ static int rockchip_gpio_get_function(st
- - ret = pinctrl_get_gpio_mux(priv->pinctrl, priv->bank, offset);
- - if (ret)
- - return ret;
- -- is_output = readl(®s->swport_ddr) & OFFSET_TO_BIT(offset);
- --
- -+ is_output = READ_REG(®s->swport_ddr) & OFFSET_TO_BIT(offset);
- -+
- - return is_output ? GPIOF_OUTPUT : GPIOF_INPUT;
- - #endif
- - }
- -@@ -142,19 +167,49 @@ static int rockchip_gpio_probe(struct ud
- - {
- - struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
- - struct rockchip_gpio_priv *priv = dev_get_priv(dev);
- -- char *end;
- -- int ret;
- -+ struct rockchip_pinctrl_priv *pctrl_priv;
- -+ struct rockchip_pin_bank *bank;
- -+ char *end = NULL;
- -+ static int gpio;
- -+ int id = -1, ret;
- -
- - priv->regs = dev_read_addr_ptr(dev);
- - ret = uclass_first_device_err(UCLASS_PINCTRL, &priv->pinctrl);
- -- if (ret)
- -+ if (ret) {
- -+ dev_err(dev, "failed to get pinctrl device %d\n", ret);
- - return ret;
- -+ }
- -+
- -+ pctrl_priv = dev_get_priv(priv->pinctrl);
- -+ if (!pctrl_priv) {
- -+ dev_err(dev, "failed to get pinctrl priv\n");
- -+ return -EINVAL;
- -+ }
- -
- -- uc_priv->gpio_count = ROCKCHIP_GPIOS_PER_BANK;
- - end = strrchr(dev->name, '@');
- -- priv->bank = trailing_strtoln(dev->name, end);
- -- priv->name[0] = 'A' + priv->bank;
- -- uc_priv->bank_name = priv->name;
- -+ if (end)
- -+ id = trailing_strtoln(dev->name, end);
- -+ else
- -+ dev_read_alias_seq(dev, &id);
- -+
- -+ if (id < 0)
- -+ id = gpio++;
- -+
- -+ if (id >= pctrl_priv->ctrl->nr_banks) {
- -+ dev_err(dev, "bank id invalid\n");
- -+ return -EINVAL;
- -+ }
- -+
- -+ bank = &pctrl_priv->ctrl->pin_banks[id];
- -+ if (bank->bank_num != id) {
- -+ dev_err(dev, "bank id mismatch with pinctrl\n");
- -+ return -EINVAL;
- -+ }
- -+
- -+ priv->bank = bank->bank_num;
- -+ uc_priv->gpio_count = bank->nr_pins;
- -+ uc_priv->gpio_base = bank->pin_base;
- -+ uc_priv->bank_name = bank->name;
- -
- - return 0;
- - }
- ---- a/drivers/pinctrl/rockchip/Makefile
- -+++ b/drivers/pinctrl/rockchip/Makefile
- -@@ -14,4 +14,5 @@ obj-$(CONFIG_ROCKCHIP_RK3308) += pinctrl
- - obj-$(CONFIG_ROCKCHIP_RK3328) += pinctrl-rk3328.o
- - obj-$(CONFIG_ROCKCHIP_RK3368) += pinctrl-rk3368.o
- - obj-$(CONFIG_ROCKCHIP_RK3399) += pinctrl-rk3399.o
- -+obj-$(CONFIG_ROCKCHIP_RK3568) += pinctrl-rk3568.o
- - obj-$(CONFIG_ROCKCHIP_RV1108) += pinctrl-rv1108.o
- ---- /dev/null
- -+++ b/drivers/pinctrl/rockchip/pinctrl-rk3568.c
- -@@ -0,0 +1,360 @@
- -+// SPDX-License-Identifier: GPL-2.0+
- -+/*
- -+ * (C) Copyright 2020 Rockchip Electronics Co., Ltd
- -+ */
- -+
- -+#include <common.h>
- -+#include <dm.h>
- -+#include <dm/pinctrl.h>
- -+#include <regmap.h>
- -+#include <syscon.h>
- -+
- -+#include "pinctrl-rockchip.h"
- -+
- -+static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
- -+ MR_TOPGRF(RK_GPIO0, RK_PB3, RK_FUNC_2, 0x0300, RK_GENMASK_VAL(0, 0, 0)), /* CAN0 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PA1, RK_FUNC_4, 0x0300, RK_GENMASK_VAL(0, 0, 1)), /* CAN0 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA1, RK_FUNC_3, 0x0300, RK_GENMASK_VAL(2, 2, 0)), /* CAN1 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PC3, RK_FUNC_3, 0x0300, RK_GENMASK_VAL(2, 2, 1)), /* CAN1 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PB5, RK_FUNC_3, 0x0300, RK_GENMASK_VAL(4, 4, 0)), /* CAN2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PB2, RK_FUNC_4, 0x0300, RK_GENMASK_VAL(4, 4, 1)), /* CAN2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PC4, RK_FUNC_1, 0x0300, RK_GENMASK_VAL(6, 6, 0)), /* EDPDP_HPDIN IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PC2, RK_FUNC_2, 0x0300, RK_GENMASK_VAL(6, 6, 1)), /* EDPDP_HPDIN IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PB1, RK_FUNC_3, 0x0300, RK_GENMASK_VAL(8, 8, 0)), /* GMAC1 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PA7, RK_FUNC_3, 0x0300, RK_GENMASK_VAL(8, 8, 1)), /* GMAC1 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PD1, RK_FUNC_1, 0x0300, RK_GENMASK_VAL(10, 10, 0)), /* HDMITX IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PC7, RK_FUNC_1, 0x0300, RK_GENMASK_VAL(10, 10, 1)), /* HDMITX IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PB6, RK_FUNC_1, 0x0300, RK_GENMASK_VAL(14, 14, 0)), /* I2C2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PB4, RK_FUNC_1, 0x0300, RK_GENMASK_VAL(14, 14, 1)), /* I2C2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA0, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(0, 0, 0)), /* I2C3 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PB6, RK_FUNC_4, 0x0304, RK_GENMASK_VAL(0, 0, 1)), /* I2C3 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PB2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(2, 2, 0)), /* I2C4 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PB1, RK_FUNC_2, 0x0304, RK_GENMASK_VAL(2, 2, 1)), /* I2C4 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PB4, RK_FUNC_4, 0x0304, RK_GENMASK_VAL(4, 4, 0)), /* I2C5 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PD0, RK_FUNC_2, 0x0304, RK_GENMASK_VAL(4, 4, 1)), /* I2C5 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(6, 6, 0)), /* PWM4 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(6, 6, 1)), /* PWM4 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(8, 8, 0)), /* PWM5 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(8, 8, 1)), /* PWM5 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(10, 10, 0)), /* PWM6 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(10, 10, 1)), /* PWM6 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(12, 12, 0)), /* PWM7 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(12, 12, 1)), /* PWM7 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(14, 14, 0)), /* PWM8 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(14, 14, 1)), /* PWM8 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(0, 0, 0)), /* PWM9 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(0, 0, 1)), /* PWM9 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(2, 2, 0)), /* PWM10 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(2, 2, 1)), /* PWM10 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(4, 4, 0)), /* PWM11 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(4, 4, 1)), /* PWM11 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(6, 6, 0)), /* PWM12 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(6, 6, 1)), /* PWM12 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(8, 8, 0)), /* PWM13 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(8, 8, 1)), /* PWM13 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(10, 10, 0)), /* PWM14 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(10, 10, 1)), /* PWM14 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(12, 12, 0)), /* PWM15 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(12, 12, 1)), /* PWM15 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_3, 0x0308, RK_GENMASK_VAL(14, 14, 0)), /* SDMMC2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PA5, RK_FUNC_5, 0x0308, RK_GENMASK_VAL(14, 14, 1)), /* SDMMC2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PB5, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(0, 0, 0)), /* SPI0 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PD3, RK_FUNC_3, 0x030c, RK_GENMASK_VAL(0, 0, 1)), /* SPI0 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PB5, RK_FUNC_3, 0x030c, RK_GENMASK_VAL(2, 2, 0)), /* SPI1 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PC3, RK_FUNC_3, 0x030c, RK_GENMASK_VAL(2, 2, 1)), /* SPI1 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PC1, RK_FUNC_4, 0x030c, RK_GENMASK_VAL(4, 4, 0)), /* SPI2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PA0, RK_FUNC_3, 0x030c, RK_GENMASK_VAL(4, 4, 1)), /* SPI2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PB3, RK_FUNC_4, 0x030c, RK_GENMASK_VAL(6, 6, 0)), /* SPI3 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PC2, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(6, 6, 1)), /* SPI3 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PB4, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(8, 8, 0)), /* UART1 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PD1, RK_FUNC_1, 0x030c, RK_GENMASK_VAL(8, 8, 1)), /* UART1 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PD1, RK_FUNC_1, 0x030c, RK_GENMASK_VAL(10, 10, 0)), /* UART2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PD5, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(10, 10, 1)), /* UART2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA1, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(12, 12, 0)), /* UART3 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PB7, RK_FUNC_4, 0x030c, RK_GENMASK_VAL(12, 12, 1)), /* UART3 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA6, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(14, 14, 0)), /* UART4 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PB2, RK_FUNC_4, 0x030c, RK_GENMASK_VAL(14, 14, 1)), /* UART4 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PA2, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(0, 0, 0)), /* UART5 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PC2, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(0, 0, 1)), /* UART5 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PA4, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(2, 2, 0)), /* UART6 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PD5, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(2, 2, 1)), /* UART6 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PA6, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(5, 4, 0)), /* UART7 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PC4, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(5, 4, 1)), /* UART7 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0310, RK_GENMASK_VAL(5, 4, 2)), /* UART7 IO mux selection M2 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PC5, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(6, 6, 0)), /* UART8 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PD7, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(6, 6, 1)), /* UART8 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PB0, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(9, 8, 0)), /* UART9 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PC5, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(9, 8, 1)), /* UART9 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PA4, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(9, 8, 2)), /* UART9 IO mux selection M2 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA2, RK_FUNC_1, 0x0310, RK_GENMASK_VAL(11, 10, 0)), /* I2S1 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PC6, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(11, 10, 1)), /* I2S1 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PD0, RK_FUNC_5, 0x0310, RK_GENMASK_VAL(11, 10, 2)), /* I2S1 IO mux selection M2 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PC1, RK_FUNC_1, 0x0310, RK_GENMASK_VAL(12, 12, 0)), /* I2S2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PB6, RK_FUNC_5, 0x0310, RK_GENMASK_VAL(12, 12, 1)), /* I2S2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PA2, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(14, 14, 0)), /* I2S3 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PC2, RK_FUNC_5, 0x0310, RK_GENMASK_VAL(14, 14, 1)), /* I2S3 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA6, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(0, 0, 0)), /* PDM IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO3, RK_PD6, RK_FUNC_5, 0x0314, RK_GENMASK_VAL(0, 0, 1)), /* PDM IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PA5, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(3, 2, 0)), /* PCIE20 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PD0, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(3, 2, 1)), /* PCIE20 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PB0, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(3, 2, 2)), /* PCIE20 IO mux selection M2 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PA4, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(5, 4, 0)), /* PCIE30X1 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PD2, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(5, 4, 1)), /* PCIE30X1 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO1, RK_PA5, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(5, 4, 2)), /* PCIE30X1 IO mux selection M2 */
- -+ MR_TOPGRF(RK_GPIO0, RK_PA6, RK_FUNC_2, 0x0314, RK_GENMASK_VAL(7, 6, 0)), /* PCIE30X2 IO mux selection M0 */
- -+ MR_TOPGRF(RK_GPIO2, RK_PD4, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(7, 6, 1)), /* PCIE30X2 IO mux selection M1 */
- -+ MR_TOPGRF(RK_GPIO4, RK_PC2, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(7, 6, 2)), /* PCIE30X2 IO mux selection M2 */
- -+};
- -+
- -+static int rk3568_set_mux(struct rockchip_pin_bank *bank, int pin, int mux)
- -+{
- -+ struct rockchip_pinctrl_priv *priv = bank->priv;
- -+ int iomux_num = (pin / 8);
- -+ struct regmap *regmap;
- -+ int reg, ret, mask;
- -+ u8 bit;
- -+ u32 data;
- -+
- -+ debug("setting mux of GPIO%d-%d to %d\n", bank->bank_num, pin, mux);
- -+
- -+ if (bank->iomux[iomux_num].type & IOMUX_SOURCE_PMU)
- -+ regmap = priv->regmap_pmu;
- -+ else
- -+ regmap = priv->regmap_base;
- -+
- -+ reg = bank->iomux[iomux_num].offset;
- -+ if ((pin % 8) >= 4)
- -+ reg += 0x4;
- -+ bit = (pin % 4) * 4;
- -+ mask = 0xf;
- -+
- -+ data = (mask << (bit + 16));
- -+ data |= (mux & mask) << bit;
- -+ ret = regmap_write(regmap, reg, data);
- -+
- -+ return ret;
- -+}
- -+
- -+#define RK3568_PULL_PMU_OFFSET 0x20
- -+#define RK3568_PULL_GRF_OFFSET 0x80
- -+#define RK3568_PULL_BITS_PER_PIN 2
- -+#define RK3568_PULL_PINS_PER_REG 8
- -+#define RK3568_PULL_BANK_STRIDE 0x10
- -+
- -+static void rk3568_calc_pull_reg_and_bit(struct rockchip_pin_bank *bank,
- -+ int pin_num, struct regmap **regmap,
- -+ int *reg, u8 *bit)
- -+{
- -+ struct rockchip_pinctrl_priv *info = bank->priv;
- -+
- -+ if (bank->bank_num == 0) {
- -+ *regmap = info->regmap_pmu;
- -+ *reg = RK3568_PULL_PMU_OFFSET;
- -+ *reg += bank->bank_num * RK3568_PULL_BANK_STRIDE;
- -+ } else {
- -+ *regmap = info->regmap_base;
- -+ *reg = RK3568_PULL_GRF_OFFSET;
- -+ *reg += (bank->bank_num - 1) * RK3568_PULL_BANK_STRIDE;
- -+ }
- -+
- -+ *reg += ((pin_num / RK3568_PULL_PINS_PER_REG) * 4);
- -+ *bit = (pin_num % RK3568_PULL_PINS_PER_REG);
- -+ *bit *= RK3568_PULL_BITS_PER_PIN;
- -+}
- -+
- -+#define RK3568_DRV_PMU_OFFSET 0x70
- -+#define RK3568_DRV_GRF_OFFSET 0x200
- -+#define RK3568_DRV_BITS_PER_PIN 8
- -+#define RK3568_DRV_PINS_PER_REG 2
- -+#define RK3568_DRV_BANK_STRIDE 0x40
- -+
- -+static void rk3568_calc_drv_reg_and_bit(struct rockchip_pin_bank *bank,
- -+ int pin_num, struct regmap **regmap,
- -+ int *reg, u8 *bit)
- -+{
- -+ struct rockchip_pinctrl_priv *info = bank->priv;
- -+
- -+ /* The first 32 pins of the first bank are located in PMU */
- -+ if (bank->bank_num == 0) {
- -+ *regmap = info->regmap_pmu;
- -+ *reg = RK3568_DRV_PMU_OFFSET;
- -+ } else {
- -+ *regmap = info->regmap_base;
- -+ *reg = RK3568_DRV_GRF_OFFSET;
- -+ *reg += (bank->bank_num - 1) * RK3568_DRV_BANK_STRIDE;
- -+ }
- -+
- -+ *reg += ((pin_num / RK3568_DRV_PINS_PER_REG) * 4);
- -+ *bit = (pin_num % RK3568_DRV_PINS_PER_REG);
- -+ *bit *= RK3568_DRV_BITS_PER_PIN;
- -+}
- -+
- -+#define RK3568_SCHMITT_BITS_PER_PIN 2
- -+#define RK3568_SCHMITT_PINS_PER_REG 8
- -+#define RK3568_SCHMITT_BANK_STRIDE 0x10
- -+#define RK3568_SCHMITT_GRF_OFFSET 0xc0
- -+#define RK3568_SCHMITT_PMUGRF_OFFSET 0x30
- -+
- -+static int rk3568_calc_schmitt_reg_and_bit(struct rockchip_pin_bank *bank,
- -+ int pin_num, struct regmap **regmap,
- -+ int *reg, u8 *bit)
- -+{
- -+ struct rockchip_pinctrl_priv *info = bank->priv;
- -+
- -+ if (bank->bank_num == 0) {
- -+ *regmap = info->regmap_pmu;
- -+ *reg = RK3568_SCHMITT_PMUGRF_OFFSET;
- -+ } else {
- -+ *regmap = info->regmap_base;
- -+ *reg = RK3568_SCHMITT_GRF_OFFSET;
- -+ *reg += (bank->bank_num - 1) * RK3568_SCHMITT_BANK_STRIDE;
- -+ }
- -+
- -+ *reg += ((pin_num / RK3568_SCHMITT_PINS_PER_REG) * 4);
- -+ *bit = pin_num % RK3568_SCHMITT_PINS_PER_REG;
- -+ *bit *= RK3568_SCHMITT_BITS_PER_PIN;
- -+
- -+ return 0;
- -+}
- -+
- -+static int rk3568_set_pull(struct rockchip_pin_bank *bank,
- -+ int pin_num, int pull)
- -+{
- -+ struct regmap *regmap;
- -+ int reg, ret;
- -+ u8 bit, type;
- -+ u32 data;
- -+
- -+ if (pull == PIN_CONFIG_BIAS_PULL_PIN_DEFAULT)
- -+ return -ENOTSUPP;
- -+
- -+ rk3568_calc_pull_reg_and_bit(bank, pin_num, ®map, ®, &bit);
- -+ type = bank->pull_type[pin_num / 8];
- -+ ret = rockchip_translate_pull_value(type, pull);
- -+ if (ret < 0) {
- -+ debug("unsupported pull setting %d\n", pull);
- -+ return ret;
- -+ }
- -+
- -+ /* enable the write to the equivalent lower bits */
- -+ data = ((1 << ROCKCHIP_PULL_BITS_PER_PIN) - 1) << (bit + 16);
- -+
- -+ data |= (ret << bit);
- -+ ret = regmap_write(regmap, reg, data);
- -+
- -+ return ret;
- -+}
- -+
- -+static int rk3568_set_drive(struct rockchip_pin_bank *bank,
- -+ int pin_num, int strength)
- -+{
- -+ struct regmap *regmap;
- -+ int reg;
- -+ u32 data;
- -+ u8 bit;
- -+ int drv = (1 << (strength + 1)) - 1;
- -+ int ret = 0;
- -+
- -+ rk3568_calc_drv_reg_and_bit(bank, pin_num, ®map, ®, &bit);
- -+
- -+ /* enable the write to the equivalent lower bits */
- -+ data = ((1 << RK3568_DRV_BITS_PER_PIN) - 1) << (bit + 16);
- -+ data |= (drv << bit);
- -+
- -+ ret = regmap_write(regmap, reg, data);
- -+ if (ret)
- -+ return ret;
- -+
- -+ if (bank->bank_num == 1 && pin_num == 21)
- -+ reg = 0x0840;
- -+ else if (bank->bank_num == 2 && pin_num == 2)
- -+ reg = 0x0844;
- -+ else if (bank->bank_num == 2 && pin_num == 8)
- -+ reg = 0x0848;
- -+ else if (bank->bank_num == 3 && pin_num == 0)
- -+ reg = 0x084c;
- -+ else if (bank->bank_num == 3 && pin_num == 6)
- -+ reg = 0x0850;
- -+ else if (bank->bank_num == 4 && pin_num == 0)
- -+ reg = 0x0854;
- -+ else
- -+ return 0;
- -+
- -+ data = ((1 << RK3568_DRV_BITS_PER_PIN) - 1) << 16;
- -+ data |= drv;
- -+
- -+ return regmap_write(regmap, reg, data);
- -+}
- -+
- -+static int rk3568_set_schmitt(struct rockchip_pin_bank *bank,
- -+ int pin_num, int enable)
- -+{
- -+ struct regmap *regmap;
- -+ int reg;
- -+ u32 data;
- -+ u8 bit;
- -+
- -+ rk3568_calc_schmitt_reg_and_bit(bank, pin_num, ®map, ®, &bit);
- -+
- -+ /* enable the write to the equivalent lower bits */
- -+ data = ((1 << RK3568_SCHMITT_BITS_PER_PIN) - 1) << (bit + 16);
- -+ data |= (enable << bit);
- -+
- -+ return regmap_write(regmap, reg, data);
- -+}
- -+static struct rockchip_pin_bank rk3568_pin_banks[] = {
- -+ PIN_BANK_IOMUX_FLAGS(0, 32, "gpio0", IOMUX_SOURCE_PMU | IOMUX_WIDTH_4BIT,
- -+ IOMUX_SOURCE_PMU | IOMUX_WIDTH_4BIT,
- -+ IOMUX_SOURCE_PMU | IOMUX_WIDTH_4BIT,
- -+ IOMUX_SOURCE_PMU | IOMUX_WIDTH_4BIT),
- -+ PIN_BANK_IOMUX_FLAGS(1, 32, "gpio1", IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT),
- -+ PIN_BANK_IOMUX_FLAGS(2, 32, "gpio2", IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT),
- -+ PIN_BANK_IOMUX_FLAGS(3, 32, "gpio3", IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT),
- -+ PIN_BANK_IOMUX_FLAGS(4, 32, "gpio4", IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT,
- -+ IOMUX_WIDTH_4BIT),
- -+};
- -+
- -+static const struct rockchip_pin_ctrl rk3568_pin_ctrl = {
- -+ .pin_banks = rk3568_pin_banks,
- -+ .nr_banks = ARRAY_SIZE(rk3568_pin_banks),
- -+ .nr_pins = 160,
- -+ .grf_mux_offset = 0x0,
- -+ .pmu_mux_offset = 0x0,
- -+ .iomux_routes = rk3568_mux_route_data,
- -+ .niomux_routes = ARRAY_SIZE(rk3568_mux_route_data),
- -+ .set_mux = rk3568_set_mux,
- -+ .set_pull = rk3568_set_pull,
- -+ .set_drive = rk3568_set_drive,
- -+ .set_schmitt = rk3568_set_schmitt,
- -+};
- -+
- -+static const struct udevice_id rk3568_pinctrl_ids[] = {
- -+ {
- -+ .compatible = "rockchip,rk3568-pinctrl",
- -+ .data = (ulong)&rk3568_pin_ctrl
- -+ },
- -+ { }
- -+};
- -+
- -+U_BOOT_DRIVER(pinctrl_rk3568) = {
- -+ .name = "rockchip_rk3568_pinctrl",
- -+ .id = UCLASS_PINCTRL,
- -+ .of_match = rk3568_pinctrl_ids,
- -+ .priv_auto = sizeof(struct rockchip_pinctrl_priv),
- -+ .ops = &rockchip_pinctrl_ops,
- -+#if !CONFIG_IS_ENABLED(OF_PLATDATA)
- -+ .bind = dm_scan_fdt_dev,
- -+#endif
- -+ .probe = rockchip_pinctrl_probe,
- -+};
- ---- a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
- -+++ b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
- -@@ -400,7 +400,7 @@ static int rockchip_pinctrl_set_state(st
- - int prop_len, param;
- - const u32 *data;
- - ofnode node;
- --#ifdef CONFIG_OF_LIVE
- -+#if CONFIG_IS_ENABLED(OF_LIVE)
- - const struct device_node *np;
- - struct property *pp;
- - #else
- -@@ -440,7 +440,7 @@ static int rockchip_pinctrl_set_state(st
- - node = ofnode_get_by_phandle(conf);
- - if (!ofnode_valid(node))
- - return -ENODEV;
- --#ifdef CONFIG_OF_LIVE
- -+#if CONFIG_IS_ENABLED(OF_LIVE)
- - np = ofnode_to_np(node);
- - for (pp = np->properties; pp; pp = pp->next) {
- - prop_name = pp->name;
- -@@ -515,13 +515,14 @@ static struct rockchip_pin_ctrl *rockchi
- -
- - /* preset iomux offset value, set new start value */
- - if (iom->offset >= 0) {
- -- if (iom->type & IOMUX_SOURCE_PMU)
- -+ if ((iom->type & IOMUX_SOURCE_PMU) || (iom->type & IOMUX_L_SOURCE_PMU))
- - pmu_offs = iom->offset;
- - else
- - grf_offs = iom->offset;
- - } else { /* set current iomux offset */
- -- iom->offset = (iom->type & IOMUX_SOURCE_PMU) ?
- -- pmu_offs : grf_offs;
- -+ iom->offset = ((iom->type & IOMUX_SOURCE_PMU) ||
- -+ (iom->type & IOMUX_L_SOURCE_PMU)) ?
- -+ pmu_offs : grf_offs;
- - }
- -
- - /* preset drv offset value, set new start value */
- ---- a/drivers/pinctrl/rockchip/pinctrl-rockchip.h
- -+++ b/drivers/pinctrl/rockchip/pinctrl-rockchip.h
- -@@ -6,9 +6,13 @@
- - #ifndef __DRIVERS_PINCTRL_ROCKCHIP_H
- - #define __DRIVERS_PINCTRL_ROCKCHIP_H
- -
- -+#include <dt-bindings/pinctrl/rockchip.h>
- - #include <linux/bitops.h>
- - #include <linux/types.h>
- -
- -+#define RK_GENMASK_VAL(h, l, v) \
- -+ (GENMASK(((h) + 16), ((l) + 16)) | (((v) << (l)) & GENMASK((h), (l))))
- -+
- - /**
- - * Encode variants of iomux registers into a type variable
- - */
- -@@ -18,6 +22,8 @@
- - #define IOMUX_UNROUTED BIT(3)
- - #define IOMUX_WIDTH_3BIT BIT(4)
- - #define IOMUX_8WIDTH_2BIT BIT(5)
- -+#define IOMUX_WRITABLE_32BIT BIT(6)
- -+#define IOMUX_L_SOURCE_PMU BIT(7)
- -
- - /**
- - * Defined some common pins constants
- -@@ -63,6 +69,21 @@ enum rockchip_pin_pull_type {
- - };
- -
- - /**
- -+ * enum mux route register type, should be invalid/default/topgrf/pmugrf.
- -+ * INVALID: means do not need to set mux route
- -+ * DEFAULT: means same regmap as pin iomux
- -+ * TOPGRF: means mux route setting in topgrf
- -+ * PMUGRF: means mux route setting in pmugrf
- -+ */
- -+enum rockchip_pin_route_type {
- -+ ROUTE_TYPE_DEFAULT = 0,
- -+ ROUTE_TYPE_TOPGRF = 1,
- -+ ROUTE_TYPE_PMUGRF = 2,
- -+
- -+ ROUTE_TYPE_INVALID = -1,
- -+};
- -+
- -+/**
- - * @drv_type: drive strength variant using rockchip_perpin_drv_type
- - * @offset: if initialized to -1 it will be autocalculated, by specifying
- - * an initial offset value the relevant source offset can be reset
- -@@ -220,6 +241,25 @@ struct rockchip_pin_bank {
- - .pull_type[3] = pull3, \
- - }
- -
- -+#define PIN_BANK_MUX_ROUTE_FLAGS(ID, PIN, FUNC, REG, VAL, FLAG) \
- -+ { \
- -+ .bank_num = ID, \
- -+ .pin = PIN, \
- -+ .func = FUNC, \
- -+ .route_offset = REG, \
- -+ .route_val = VAL, \
- -+ .route_type = FLAG, \
- -+ }
- -+
- -+#define MR_DEFAULT(ID, PIN, FUNC, REG, VAL) \
- -+ PIN_BANK_MUX_ROUTE_FLAGS(ID, PIN, FUNC, REG, VAL, ROUTE_TYPE_DEFAULT)
- -+
- -+#define MR_TOPGRF(ID, PIN, FUNC, REG, VAL) \
- -+ PIN_BANK_MUX_ROUTE_FLAGS(ID, PIN, FUNC, REG, VAL, ROUTE_TYPE_TOPGRF)
- -+
- -+#define MR_PMUGRF(ID, PIN, FUNC, REG, VAL) \
- -+ PIN_BANK_MUX_ROUTE_FLAGS(ID, PIN, FUNC, REG, VAL, ROUTE_TYPE_PMUGRF)
- -+
- - /**
- - * struct rockchip_mux_recalced_data: recalculate a pin iomux data.
- - * @num: bank number.
- -@@ -241,6 +281,7 @@ struct rockchip_mux_recalced_data {
- - * @bank_num: bank number.
- - * @pin: index at register or used to calc index.
- - * @func: the min pin.
- -+ * @route_type: the register type.
- - * @route_offset: the max pin.
- - * @route_val: the register offset.
- - */
- -@@ -248,6 +289,7 @@ struct rockchip_mux_route_data {
- - u8 bank_num;
- - u8 pin;
- - u8 func;
- -+ enum rockchip_pin_route_type route_type : 8;
- - u32 route_offset;
- - u32 route_val;
- - };
- diff --git a/package/boot/uboot-rockchip/patches/008-rockchip-allow-sdmmc-at-full-speed.patch b/package/boot/uboot-rockchip/patches/008-rockchip-allow-sdmmc-at-full-speed.patch
- deleted file mode 100644
- index 3ad9d5b8b0e1..000000000000
- --- a/package/boot/uboot-rockchip/patches/008-rockchip-allow-sdmmc-at-full-speed.patch
- +++ /dev/null
- @@ -1,22 +0,0 @@
- -From 16cc17fc2cf2f308f5ac20b829d427114c6e59fa Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Mon, 20 Dec 2021 08:50:48 -0500
- -Subject: [PATCH 08/11] rockchip: allow sdmmc at full speed
- -
- -Adding pinctrl and gpio support fixed quartz64-a sdmmc.
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi | 1 -
- - 1 file changed, 1 deletion(-)
- -
- ---- a/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -+++ b/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -@@ -13,7 +13,6 @@
- - };
- -
- - &sdmmc0 {
- -- max-frequency = <400000>;
- - bus-width = <4>;
- - u-boot,dm-spl;
- - u-boot,spl-fifo-mode;
- diff --git a/package/boot/uboot-rockchip/patches/009-rockchip-defconfig-add-gpio-v2-to-quartz64.patch b/package/boot/uboot-rockchip/patches/009-rockchip-defconfig-add-gpio-v2-to-quartz64.patch
- deleted file mode 100644
- index c0ca879bd53e..000000000000
- --- a/package/boot/uboot-rockchip/patches/009-rockchip-defconfig-add-gpio-v2-to-quartz64.patch
- +++ /dev/null
- @@ -1,25 +0,0 @@
- -From d3b3e9c1045e9fa0aff987a036b30cf380809e35 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Mon, 20 Dec 2021 10:11:52 -0500
- -Subject: [PATCH 09/11] rockchip: defconfig: add gpio-v2 to quartz64
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - configs/quartz64-a-rk3566_defconfig | 2 ++
- - 1 file changed, 2 insertions(+)
- -
- ---- a/configs/quartz64-a-rk3566_defconfig
- -+++ b/configs/quartz64-a-rk3566_defconfig
- -@@ -42,10 +42,12 @@ CONFIG_CMD_REGULATOR=y
- - CONFIG_SPL_OF_CONTROL=y
- - CONFIG_OF_LIVE=y
- - CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- - CONFIG_SPL_REGMAP=y
- - CONFIG_SPL_SYSCON=y
- - CONFIG_SPL_CLK=y
- - CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- - CONFIG_SYS_I2C_ROCKCHIP=y
- - CONFIG_MISC=y
- - CONFIG_MMC_HS200_SUPPORT=y
- diff --git a/package/boot/uboot-rockchip/patches/010-rockchip-rk356x-enable-usb2-support-on-quartz64-a.patch b/package/boot/uboot-rockchip/patches/010-rockchip-rk356x-enable-usb2-support-on-quartz64-a.patch
- deleted file mode 100644
- index a70c45a8be59..000000000000
- --- a/package/boot/uboot-rockchip/patches/010-rockchip-rk356x-enable-usb2-support-on-quartz64-a.patch
- +++ /dev/null
- @@ -1,97 +0,0 @@
- -From 981df845d960a9078893dad88e1dd82dfcb4a148 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Wed, 22 Dec 2021 19:40:32 -0500
- -Subject: [PATCH 10/11] rockchip: rk356x: enable usb2 support on quartz64-a
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi | 22 ++++++++++++++++++++++
- - configs/quartz64-a-rk3566_defconfig | 17 +++++++++++++++++
- - include/configs/quartz64-a-rk3566.h | 3 +++
- - 3 files changed, 42 insertions(+)
- -
- ---- a/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -+++ b/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi
- -@@ -12,12 +12,34 @@
- - };
- - };
- -
- -+&gmac1 {
- -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
- -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>;
- -+ status = "disabled";
- -+};
- -+
- - &sdmmc0 {
- - bus-width = <4>;
- - u-boot,dm-spl;
- - u-boot,spl-fifo-mode;
- - };
- -
- -+&usb_host0_ehci {
- -+ vbus-supply = <&vcc5v0_usb20_host>;
- -+};
- -+
- -+&usb_host0_ohci {
- -+ vbus-supply = <&vcc5v0_usb20_host>;
- -+};
- -+
- -+&usb_host1_ehci {
- -+ vbus-supply = <&vcc5v0_usb20_host>;
- -+};
- -+
- -+&usb_host1_ohci {
- -+ vbus-supply = <&vcc5v0_usb20_host>;
- -+};
- -+
- - &uart2 {
- - clock-frequency = <24000000>;
- - u-boot,dm-spl;
- ---- a/configs/quartz64-a-rk3566_defconfig
- -+++ b/configs/quartz64-a-rk3566_defconfig
- -@@ -22,6 +22,7 @@ CONFIG_FIT=y
- - CONFIG_FIT_VERBOSE=y
- - CONFIG_SPL_LOAD_FIT=y
- - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-quartz64-a.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- - # CONFIG_DISPLAY_CPUINFO is not set
- - CONFIG_DISPLAY_BOARDINFO_LATE=y
- - # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -@@ -35,6 +36,7 @@ CONFIG_CMD_GPIO=y
- - CONFIG_CMD_GPT=y
- - CONFIG_CMD_I2C=y
- - CONFIG_CMD_MMC=y
- -+CONFIG_CMD_USB=y
- - # CONFIG_CMD_SETEXPR is not set
- - CONFIG_CMD_PMIC=y
- - CONFIG_CMD_REGULATOR=y
- -@@ -76,4 +78,19 @@ CONFIG_BAUDRATE=1500000
- - CONFIG_DEBUG_UART_SHIFT=2
- - CONFIG_SYSRESET=y
- - CONFIG_SYSRESET_PSCI=y
- -+CONFIG_USB=y
- -+CONFIG_USB_XHCI_HCD=y
- -+CONFIG_USB_XHCI_DWC3=y
- -+CONFIG_USB_EHCI_HCD=y
- -+CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_USB_DWC3=y
- -+CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- - CONFIG_ERRNO_STR=y
- ---- a/include/configs/quartz64-a-rk3566.h
- -+++ b/include/configs/quartz64-a-rk3566.h
- -@@ -11,4 +11,7 @@
- - "stdout=serial,vidconsole\0" \
- - "stderr=serial,vidconsole\0"
- -
- -+#define CONFIG_USB_OHCI_NEW
- -+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
- -+
- - #endif
- diff --git a/package/boot/uboot-rockchip/patches/011-rockchip-rk356x-attempt-to-fix-ram-detection.patch b/package/boot/uboot-rockchip/patches/011-rockchip-rk356x-attempt-to-fix-ram-detection.patch
- deleted file mode 100644
- index 736de6b21a2b..000000000000
- --- a/package/boot/uboot-rockchip/patches/011-rockchip-rk356x-attempt-to-fix-ram-detection.patch
- +++ /dev/null
- @@ -1,173 +0,0 @@
- -From ea6da572fe3cee637319f1e7e588c059622c815e Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Wed, 22 Dec 2021 19:52:38 -0500
- -Subject: [PATCH 11/11] rockchip: rk356x: attempt to fix ram detection
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/mach-rockchip/rk3568/rk3568.c | 29 ++++++++++++++++++++++++
- - arch/arm/mach-rockchip/sdram.c | 31 ++++++++++++++------------
- - common/board_f.c | 7 ++++++
- - configs/quartz64-a-rk3566_defconfig | 1 +
- - include/configs/rk3568_common.h | 5 +++++
- - 5 files changed, 59 insertions(+), 14 deletions(-)
- -
- ---- a/arch/arm/mach-rockchip/rk3568/rk3568.c
- -+++ b/arch/arm/mach-rockchip/rk3568/rk3568.c
- -@@ -5,6 +5,7 @@
- -
- - #include <common.h>
- - #include <dm.h>
- -+#include <fdt_support.h>
- - #include <asm/armv8/mmu.h>
- - #include <asm/io.h>
- - #include <asm/arch-rockchip/bootrom.h>
- -@@ -135,3 +136,31 @@ int arch_cpu_init(void)
- - #endif
- - return 0;
- - }
- -+
- -+#ifdef CONFIG_OF_SYSTEM_SETUP
- -+int ft_system_setup(void *blob, struct bd_info *bd)
- -+{
- -+ int ret;
- -+ int areas = 1;
- -+ u64 start[2], size[2];
- -+
- -+ /* Reserve the io address space. */
- -+ if (gd->ram_top > SDRAM_UPPER_ADDR_MIN) {
- -+ start[0] = gd->bd->bi_dram[0].start;
- -+ size[0] = SDRAM_LOWER_ADDR_MAX - gd->bd->bi_dram[0].start;
- -+
- -+ /* Add the upper 4GB address space */
- -+ start[1] = SDRAM_UPPER_ADDR_MIN;
- -+ size[1] = gd->ram_top - SDRAM_UPPER_ADDR_MIN;
- -+ areas = 2;
- -+
- -+ ret = fdt_set_usable_memory(blob, start, size, areas);
- -+ if (ret) {
- -+ printf("Cannot set usable memory\n");
- -+ return ret;
- -+ }
- -+ }
- -+
- -+ return 0;
- -+};
- -+#endif
- ---- a/arch/arm/mach-rockchip/sdram.c
- -+++ b/arch/arm/mach-rockchip/sdram.c
- -@@ -3,6 +3,8 @@
- - * Copyright (C) 2017 Rockchip Electronics Co., Ltd.
- - */
- -
- -+#define DEBUG
- -+
- - #include <common.h>
- - #include <dm.h>
- - #include <init.h>
- -@@ -98,8 +100,7 @@ size_t rockchip_sdram_size(phys_addr_t r
- - SYS_REG_COL_MASK);
- - cs1_col = cs0_col;
- - bk = 3 - ((sys_reg2 >> SYS_REG_BK_SHIFT(ch)) & SYS_REG_BK_MASK);
- -- if ((sys_reg3 >> SYS_REG_VERSION_SHIFT &
- -- SYS_REG_VERSION_MASK) == 0x2) {
- -+ if ((sys_reg3 >> SYS_REG_VERSION_SHIFT & SYS_REG_VERSION_MASK) >= 0x2) {
- - cs1_col = 9 + (sys_reg3 >> SYS_REG_CS1_COL_SHIFT(ch) &
- - SYS_REG_CS1_COL_MASK);
- - if (((sys_reg3 >> SYS_REG_EXTEND_CS0_ROW_SHIFT(ch) &
- -@@ -136,7 +137,7 @@ size_t rockchip_sdram_size(phys_addr_t r
- - SYS_REG_BW_MASK));
- - row_3_4 = sys_reg2 >> SYS_REG_ROW_3_4_SHIFT(ch) &
- - SYS_REG_ROW_3_4_MASK;
- -- if (dram_type == DDR4) {
- -+ if ((dram_type == DDR4) && (sys_reg3 >> SYS_REG_VERSION_SHIFT & SYS_REG_VERSION_MASK) != 0x3){
- - dbw = (sys_reg2 >> SYS_REG_DBW_SHIFT(ch)) &
- - SYS_REG_DBW_MASK;
- - bg = (dbw == 2) ? 2 : 1;
- -@@ -150,15 +151,11 @@ size_t rockchip_sdram_size(phys_addr_t r
- - chipsize_mb = chipsize_mb * 3 / 4;
- - size_mb += chipsize_mb;
- - if (rank > 1)
- -- debug("rank %d cs0_col %d cs1_col %d bk %d cs0_row %d\
- -- cs1_row %d bw %d row_3_4 %d\n",
- -- rank, cs0_col, cs1_col, bk, cs0_row,
- -- cs1_row, bw, row_3_4);
- -+ debug("rank=%d cs0_col=%d cs1_col=%d bk=%d cs0_row=%d cs1_row=%d bg=%d bw=%d row_3_4=%d\n",
- -+ rank, cs0_col, cs1_col, bk, cs0_row, cs1_row, bg, bw, row_3_4);
- - else
- -- debug("rank %d cs0_col %d bk %d cs0_row %d\
- -- bw %d row_3_4 %d\n",
- -- rank, cs0_col, bk, cs0_row,
- -- bw, row_3_4);
- -+ debug("rank %d cs0_col %d bk %d cs0_row %d bw %d row_3_4 %d\n",
- -+ rank, cs0_col, bk, cs0_row, bw, row_3_4);
- - }
- -
- - /*
- -@@ -176,9 +173,11 @@ size_t rockchip_sdram_size(phys_addr_t r
- - * 2. update board_get_usable_ram_top() and dram_init_banksize()
- - * to reserve memory for peripheral space after previous update.
- - */
- -+
- -+#ifndef __aarch64__
- - if (size_mb > (SDRAM_MAX_SIZE >> 20))
- - size_mb = (SDRAM_MAX_SIZE >> 20);
- --
- -+#endif
- - return (size_t)size_mb << 20;
- - }
- -
- -@@ -208,6 +207,10 @@ int dram_init(void)
- - ulong board_get_usable_ram_top(ulong total_size)
- - {
- - unsigned long top = CONFIG_SYS_SDRAM_BASE + SDRAM_MAX_SIZE;
- --
- -- return (gd->ram_top > top) ? top : gd->ram_top;
- -+#ifdef SDRAM_UPPER_ADDR_MIN
- -+ if (gd->ram_top > SDRAM_UPPER_ADDR_MIN)
- -+ return gd->ram_top;
- -+ else
- -+#endif
- -+ return (gd->ram_top > top) ? top : gd->ram_top;
- - }
- ---- a/common/board_f.c
- -+++ b/common/board_f.c
- -@@ -345,7 +345,14 @@ static int setup_dest_addr(void)
- - #endif
- - gd->ram_top = gd->ram_base + get_effective_memsize();
- - gd->ram_top = board_get_usable_ram_top(gd->mon_len);
- -+#ifdef SDRAM_LOWER_ADDR_MAX
- -+ if (gd->ram_top > SDRAM_LOWER_ADDR_MAX)
- -+ gd->relocaddr = SDRAM_LOWER_ADDR_MAX;
- -+ else
- -+ gd->relocaddr = gd->ram_top;
- -+#else
- - gd->relocaddr = gd->ram_top;
- -+#endif
- - debug("Ram top: %08lX\n", (ulong)gd->ram_top);
- - #if defined(CONFIG_MP) && (defined(CONFIG_MPC86xx) || defined(CONFIG_E500))
- - /*
- ---- a/configs/quartz64-a-rk3566_defconfig
- -+++ b/configs/quartz64-a-rk3566_defconfig
- -@@ -21,6 +21,7 @@ CONFIG_API=y
- - CONFIG_FIT=y
- - CONFIG_FIT_VERBOSE=y
- - CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- - CONFIG_DEFAULT_FDT_FILE="rockchip/rk3566-quartz64-a.dtb"
- - # CONFIG_SYS_DEVICE_NULLDEV is not set
- - # CONFIG_DISPLAY_CPUINFO is not set
- ---- a/include/configs/rk3568_common.h
- -+++ b/include/configs/rk3568_common.h
- -@@ -24,6 +24,11 @@
- - #define CONFIG_SYS_SDRAM_BASE 0
- - #define SDRAM_MAX_SIZE 0xf0000000
- -
- -+#ifdef CONFIG_OF_SYSTEM_SETUP
- -+#define SDRAM_LOWER_ADDR_MAX 0xf0000000
- -+#define SDRAM_UPPER_ADDR_MIN 0x100000000
- -+#endif
- -+
- - #ifndef CONFIG_SPL_BUILD
- - #define ENV_MEM_LAYOUT_SETTINGS \
- - "scriptaddr=0x00c00000\0" \
- diff --git a/package/boot/uboot-rockchip/patches/012-resync-rk3566-device-tree-with-mainline.patch b/package/boot/uboot-rockchip/patches/012-resync-rk3566-device-tree-with-mainline.patch
- deleted file mode 100644
- index 11c791356fd9..000000000000
- --- a/package/boot/uboot-rockchip/patches/012-resync-rk3566-device-tree-with-mainline.patch
- +++ /dev/null
- @@ -1,1060 +0,0 @@
- -From 07cb5e592c2fe682d7f176282a16f389c94f46c8 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Tue, 18 Jan 2022 19:20:40 -0500
- -Subject: [PATCH 12/13] resync rk3566 device tree with mainline
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - arch/arm/dts/rk3566-quartz64-a.dts | 285 ++++++++++++++++++++---
- - arch/arm/dts/rk3566.dtsi | 8 +-
- - arch/arm/dts/rk3568.dtsi | 29 ++-
- - arch/arm/dts/rk356x.dtsi | 297 ++++++++++++------------
- - include/dt-bindings/soc/rockchip,vop2.h | 14 ++
- - 5 files changed, 442 insertions(+), 191 deletions(-)
- - create mode 100644 include/dt-bindings/soc/rockchip,vop2.h
- -
- ---- a/arch/arm/dts/rk3566-quartz64-a.dts
- -+++ b/arch/arm/dts/rk3566-quartz64-a.dts
- -@@ -4,6 +4,7 @@
- -
- - #include <dt-bindings/gpio/gpio.h>
- - #include <dt-bindings/pinctrl/rockchip.h>
- -+#include <dt-bindings/soc/rockchip,vop2.h>
- - #include "rk3566.dtsi"
- -
- - / {
- -@@ -55,6 +56,17 @@
- - #cooling-cells = <2>;
- - };
- -
- -+ hdmi-con {
- -+ compatible = "hdmi-connector";
- -+ type = "c";
- -+
- -+ port {
- -+ hdmi_con_in: endpoint {
- -+ remote-endpoint = <&hdmi_out_con>;
- -+ };
- -+ };
- -+ };
- -+
- - leds {
- - compatible = "gpio-leds";
- -
- -@@ -196,7 +208,7 @@
- - enable-active-high;
- - gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
- - pinctrl-names = "default";
- -- pinctrl-0 = <&vcc5v0_usb20_host_en_h>;
- -+ pinctrl-0 = <&vcc5v0_usb20_host_en>;
- - regulator-min-microvolt = <5000000>;
- - regulator-max-microvolt = <5000000>;
- - vin-supply = <&vcc5v0_usb>;
- -@@ -248,6 +260,29 @@
- - vin-supply = <&vbus>;
- - };
- -
- -+ vcc_sys_ebc: vcc_sys_ebc {
- -+ compatible = "regulator-fixed";
- -+ gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
- -+ enable-active-high;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc_sys_ebc_h>;
- -+ regulator-boot-on;
- -+ regulator-name = "vcc_sys_ebc";
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ vin-supply = <&vcc_sys>;
- -+ };
- -+
- -+ vcc_lcd_en: vcc_lcd_en {
- -+ compatible = "regulator-fixed";
- -+// gpio = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>;
- -+ regulator-always-on;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc_lcd_en_h>;
- -+ regulator-name = "vcc_lcd_en";
- -+ vin-supply = <&vcc_sys>;
- -+ };
- -+
- - /* sourced from vcc_sys, sdio module operates internally at 3.3v */
- - vcc_wl: vcc_wl {
- - compatible = "regulator-fixed";
- -@@ -258,14 +293,21 @@
- - regulator-max-microvolt = <3300000>;
- - vin-supply = <&vcc_sys>;
- - };
- -+
- -+ backlight: backlight {
- -+ compatible = "pwm-backlight";
- -+ pwms = <&pwm14 0 1000000 0>;
- -+ brightness-levels = <0 4 8 16 32 64 128 255>;
- -+ default-brightness-level = <6>;
- -+ };
- - };
- -
- --&combphy1_usq {
- -+&combphy1 {
- - status = "okay";
- - rockchip,enable-ssc;
- - };
- -
- --&combphy2_psq {
- -+&combphy2 {
- - status = "okay";
- - };
- -
- -@@ -302,6 +344,39 @@
- - };
- - };
- -
- -+&ebc {
- -+ panel,width = <1872>;
- -+ panel,height = <1404>;
- -+ panel,vir_width = <1872>;
- -+ panel,vir_height = <1404>;
- -+ panel,sdck = <33300000>;
- -+ panel,lsl = <11>;
- -+ panel,lbl = <8>;
- -+ panel,ldl = <234>;
- -+ panel,lel = <23>;
- -+ panel,gdck-sta = <10>;
- -+ panel,lgonl = <215>;
- -+ panel,fsl = <1>;
- -+ panel,fbl = <4>;
- -+ panel,fdl = <1404>;
- -+ panel,fel = <12>;
- -+ panel,mirror = <1>;
- -+ panel,panel_16bit = <1>;
- -+ panel,panel_color = <0>;
- -+ panel,width-mm = <157>;
- -+ panel,height-mm = <210>;
- -+
- -+ io-channels = <&ebc_pmic 0>;
- -+ panel-supply = <&v3p3>;
- -+ vcom-supply = <&vcom>;
- -+ vdrive-supply = <&vdrive>;
- -+ status = "okay";
- -+};
- -+
- -+&eink {
- -+ status = "okay";
- -+};
- -+
- - &gmac1 {
- - assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
- - assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
- -@@ -325,19 +400,28 @@
- - status = "okay";
- - };
- -
- --&hdmi {
- -+&gpu {
- -+ mali-supply = <&vdd_gpu>;
- - status = "okay";
- -+};
- -+
- -+&hdmi {
- - avdd-0v9-supply = <&vdda_0v9>;
- - avdd-1v8-supply = <&vcc_1v8>;
- -+ status = "okay";
- - };
- -
- --&hdmi_in_vp0 {
- -- status = "okay";
- -+&hdmi_in {
- -+ hdmi_in_vp0: endpoint@0 {
- -+ reg = <0>;
- -+ remote-endpoint = <&vp0_out_hdmi>;
- -+ };
- - };
- -
- --&gpu {
- -- mali-supply = <&vdd_gpu>;
- -- status = "okay";
- -+&hdmi_out {
- -+ hdmi_out_con: endpoint {
- -+ remote-endpoint = <&hdmi_con_in>;
- -+ };
- - };
- -
- - &i2c0 {
- -@@ -357,6 +441,7 @@
- -
- - regulator-state-mem {
- - regulator-off-in-suspend;
- -+ regulator-suspend-microvolt = <900000>;
- - };
- - };
- -
- -@@ -420,8 +505,6 @@
- - vcc_ddr: DCDC_REG3 {
- - regulator-always-on;
- - regulator-boot-on;
- -- regulator-min-microvolt = <1100000>;
- -- regulator-max-microvolt = <1100000>;
- - regulator-initial-mode = <0x2>;
- - regulator-name = "vcc_ddr";
- - regulator-state-mem {
- -@@ -571,6 +654,55 @@
- - };
- - };
- -
- -+&i2c1 {
- -+ status = "okay";
- -+
- -+ ebc_pmic: pmic@68 {
- -+ compatible = "ti,tps65185";
- -+ reg = <0x68>;
- -+ interrupt-parent = <&gpio4>;
- -+ interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
- -+ #io-channel-cells = <1>;
- -+ pinctrl-0 = <&ebc_pmic_pins>;
- -+ pinctrl-names = "default";
- -+ powerup-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
- -+ pwr_good-gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>;
- -+ vcom_ctrl-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
- -+ vin-supply = <&vcc_sys_ebc>;
- -+ vin3p3-supply = <&vcc_sys_ebc>;
- -+ wakeup-gpios = <&gpio4 RK_PC3 GPIO_ACTIVE_HIGH>;
- -+ ti,up-sequence = <1>, <0>, <2>, <3>;
- -+ ti,up-delay-ms = <3>, <3>, <3>, <3>;
- -+ ti,down-sequence = <2>, <3>, <1>, <0>;
- -+ ti,down-delay-ms = <3>, <6>, <6>, <6>;
- -+
- -+ regulators {
- -+ v3p3: v3p3 {
- -+ regulator-name = "v3p3";
- -+ regulator-always-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ };
- -+
- -+ vcom: vcom {
- -+ regulator-name = "vcom";
- -+ regulator-min-microvolt = <1450000>;
- -+ regulator-max-microvolt = <1450000>;
- -+ };
- -+
- -+ vdrive: vdrive {
- -+ regulator-name = "vdrive";
- -+ regulator-min-microvolt = <15000000>;
- -+ regulator-max-microvolt = <15000000>;
- -+ };
- -+ };
- -+ };
- -+};
- -+
- -+&i2c3 {
- -+ status = "okay";
- -+};
- -+
- - &i2s1_8ch {
- - pinctrl-names = "default";
- - pinctrl-0 = <&i2s1m0_sclktx
- -@@ -611,6 +743,21 @@
- - };
- - };
- -
- -+ ebc_pmic {
- -+ ebc_pmic_pins: ebc-pmic-pins {
- -+ rockchip,pins = /* wakeup */
- -+ <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>,
- -+ /* int */
- -+ <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
- -+ /* pwr_good */
- -+ <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>,
- -+ /* pwrup */
- -+ <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>,
- -+ /* vcom_ctrl */
- -+ <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- - fan {
- - fan_en_h: fan-en-h {
- - rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
- -@@ -654,7 +801,7 @@
- - };
- -
- - usb2 {
- -- vcc5v0_usb20_host_en_h: vcc5v0-usb20-host-en_h {
- -+ vcc5v0_usb20_host_en: vcc5v0-usb20-host-en {
- - rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
- - };
- - };
- -@@ -664,6 +811,18 @@
- - rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
- - };
- - };
- -+
- -+ vcc_sys_ebc {
- -+ vcc_sys_ebc_h: vcc-sys-ebc-h {
- -+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ vcc_lcd_en {
- -+ vcc_lcd_en_h: vcc-lcd-en-h {
- -+ rockchip,pins = <2 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- - };
- -
- - &pmu_io_domains {
- -@@ -681,12 +840,15 @@
- -
- - /* sata1 is muxed with the usb3 port */
- - &sata1 {
- -- status = "okay";
- -+ status = "disabled";
- -+// status = "okay";
- - };
- -
- - /* sata2 is muxed with the pcie2 slot*/
- - &sata2 {
- -+ target-supply = <&vcc3v3_pcie_p>;
- - status = "disabled";
- -+// status = "okay";
- - };
- -
- - &sdhci {
- -@@ -783,6 +945,10 @@
- - status = "okay";
- - };
- -
- -+&u2phy0 {
- -+ status = "okay";
- -+};
- -+
- - &u2phy0_host {
- - phy-supply = <&vcc5v0_usb20_host>;
- - status = "okay";
- -@@ -793,25 +959,17 @@
- - status = "okay";
- - };
- -
- --&u2phy1_host {
- -- phy-supply = <&vcc5v0_usb20_host>;
- -+&u2phy1 {
- - status = "okay";
- - };
- -
- --&u2phy1_otg {
- -+&u2phy1_host {
- - phy-supply = <&vcc5v0_usb20_host>;
- - status = "okay";
- - };
- -
- --&usb2phy0 {
- -- status = "okay";
- --};
- --
- --&usb2phy1 {
- -- status = "okay";
- --};
- --
- --&usbdrd_dwc3 {
- -+&u2phy1_otg {
- -+ phy-supply = <&vcc5v0_usb20_host>;
- - status = "okay";
- - };
- -
- -@@ -820,13 +978,9 @@
- - };
- -
- - /* usb3 controller is muxed with sata1 */
- --&usbhost_dwc3 {
- -- status = "disabled";
- --};
- --
- --/* usb3 controller is muxed with sata1 */
- - &usbhost30 {
- -- status = "disabled";
- -+// status = "disabled";
- -+ status = "okay";
- - };
- -
- - &usb_host0_ehci {
- -@@ -846,15 +1000,80 @@
- - };
- -
- - &vop {
- -- status = "okay";
- - assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
- - assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
- -+ status = "okay";
- - };
- -
- - &vop_mmu {
- - status = "okay";
- - };
- -
- --&vp0_out_hdmi {
- -+&vp0 {
- -+ vp0_out_hdmi: endpoint@RK3568_VOP2_EP_HDMI {
- -+ reg = <RK3568_VOP2_EP_HDMI>;
- -+ remote-endpoint = <&hdmi_in_vp0>;
- -+ };
- -+};
- -+/*
- -+&video_phy0 {
- -+ status = "okay";
- -+};
- -+
- -+&dsi0 {
- -+ status = "okay";
- -+ clock-master;
- -+
- -+ mipi_panel: panel@0 {
- -+ compatible = "feiyang,fy07024di26a30d";
- -+ reg = <0>;
- -+ backlight = <&backlight>;
- -+ reset-gpios = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>;
- -+ width-mm = <154>;
- -+ height-mm = <86>;
- -+ rotation = <0>;
- -+// avdd-supply = <&avdd>;
- -+// dvdd-supply = <&vcc3v3_s0>;
- -+
- -+ ports {
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- -+
- -+ port@0 {
- -+ reg = <0>;
- -+
- -+ mipi_in_panel: endpoint {
- -+ remote-endpoint = <&mipi_out_panel>;
- -+ };
- -+ };
- -+ };
- -+ };
- -+};
- -+
- -+&dsi0_in {
- -+ dsi0_in_vp1: endpoint@1 {
- -+ reg = <1>;
- -+ remote-endpoint = <&vp1_out_dsi0>;
- -+ };
- -+};
- -+
- -+&dsi0_out {
- -+ mipi_out_panel: endpoint {
- -+ remote-endpoint = <&mipi_in_panel>;
- -+ };
- -+
- -+};
- -+
- -+&vp1 {
- -+ vp1_out_dsi0: endpoint@RK3568_VOP2_EP_MIPI0 {
- -+ reg = <RK3568_VOP2_EP_MIPI0>;
- -+ remote-endpoint = <&dsi0_in_vp1>;
- -+ };
- -+};
- -+
- -+&pwm14 {
- - status = "okay";
- -+ pinctrl-0 = <&pwm14m1_pins>;
- -+ pinctrl-names = "default";
- - };
- -+*/
- ---- a/arch/arm/dts/rk3566.dtsi
- -+++ b/arch/arm/dts/rk3566.dtsi
- -@@ -23,10 +23,14 @@
- - };
- - };
- -
- --&usbdrd_dwc3 {
- -+&usbdrd30 {
- - phys = <&u2phy0_otg>;
- - phy-names = "usb2-phy";
- -- extcon = <&usb2phy0>;
- -+ extcon = <&u2phy0>;
- - maximum-speed = "high-speed";
- - snps,dis_u2_susphy_quirk;
- - };
- -+
- -+&vop {
- -+ compatible = "rockchip,rk3566-vop";
- -+};
- ---- a/arch/arm/dts/rk3568.dtsi
- -+++ b/arch/arm/dts/rk3568.dtsi
- -@@ -16,13 +16,18 @@
- - clock-names = "sata", "pmalive", "rxoob";
- - interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
- - interrupt-names = "hostc";
- -- phys = <&combphy0_us PHY_TYPE_SATA>;
- -+ phys = <&combphy0 PHY_TYPE_SATA>;
- - phy-names = "sata-phy";
- - ports-implemented = <0x1>;
- - power-domains = <&power RK3568_PD_PIPE>;
- - status = "disabled";
- - };
- -
- -+ pipe_phy_grf0: syscon@fdc70000 {
- -+ compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
- -+ reg = <0x0 0xfdc70000 0x0 0x1000>;
- -+ };
- -+
- - qos_pcie3x1: qos@fe190080 {
- - compatible = "rockchip,rk3568-qos", "syscon";
- - reg = <0x0 0xfe190080 0x0 0x20>;
- -@@ -87,19 +92,19 @@
- - };
- - };
- -
- -- combphy0_us: phy@fe820000 {
- -+ combphy0: phy@fe820000 {
- - compatible = "rockchip,rk3568-naneng-combphy";
- - reg = <0x0 0xfe820000 0x0 0x100>;
- -- #phy-cells = <1>;
- -- assigned-clocks = <&pmucru CLK_PCIEPHY0_REF>;
- -- assigned-clock-rates = <100000000>;
- -- clocks = <&pmucru CLK_PCIEPHY0_REF>, <&cru PCLK_PIPEPHY0>,
- -+ clocks = <&pmucru CLK_PCIEPHY0_REF>,
- -+ <&cru PCLK_PIPEPHY0>,
- - <&cru PCLK_PIPE>;
- - clock-names = "ref", "apb", "pipe";
- -- resets = <&cru SRST_P_PIPEPHY0>, <&cru SRST_PIPEPHY0>;
- -- reset-names = "combphy-apb", "combphy";
- -+ assigned-clocks = <&pmucru CLK_PCIEPHY0_REF>;
- -+ assigned-clock-rates = <100000000>;
- -+ resets = <&cru SRST_PIPEPHY0>;
- - rockchip,pipe-grf = <&pipegrf>;
- - rockchip,pipe-phy-grf = <&pipe_phy_grf0>;
- -+ #phy-cells = <1>;
- - status = "disabled";
- - };
- - };
- -@@ -131,7 +136,11 @@
- - };
- - };
- -
- --&usbdrd_dwc3 {
- -- phys = <&u2phy0_otg>, <&combphy0_us PHY_TYPE_USB3>;
- -+&usbdrd30 {
- -+ phys = <&u2phy0_otg>, <&combphy0 PHY_TYPE_USB3>;
- - phy-names = "usb2-phy", "usb3-phy";
- - };
- -+
- -+&vop {
- -+ compatible = "rockchip,rk3568-vop";
- -+};
- ---- a/arch/arm/dts/rk356x.dtsi
- -+++ b/arch/arm/dts/rk356x.dtsi
- -@@ -159,6 +159,11 @@
- - };
- - };
- -
- -+ display_subsystem: display-subsystem {
- -+ compatible = "rockchip,display-subsystem";
- -+ ports = <&vop_out>;
- -+ };
- -+
- - firmware {
- - scmi: scmi {
- - compatible = "arm,scmi-smc";
- -@@ -234,7 +239,7 @@
- - clock-names = "sata", "pmalive", "rxoob";
- - interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
- - interrupt-names = "hostc";
- -- phys = <&combphy1_usq PHY_TYPE_SATA>;
- -+ phys = <&combphy1 PHY_TYPE_SATA>;
- - phy-names = "sata-phy";
- - ports-implemented = <0x1>;
- - power-domains = <&power RK3568_PD_PIPE>;
- -@@ -249,7 +254,7 @@
- - clock-names = "sata", "pmalive", "rxoob";
- - interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
- - interrupt-names = "hostc";
- -- phys = <&combphy2_psq PHY_TYPE_SATA>;
- -+ phys = <&combphy2 PHY_TYPE_SATA>;
- - phy-names = "sata-phy";
- - ports-implemented = <0x1>;
- - power-domains = <&power RK3568_PD_PIPE>;
- -@@ -258,66 +263,46 @@
- -
- - usbdrd30: usbdrd {
- - compatible = "rockchip,rk3399-dwc3", "snps,dwc3";
- -+ reg = <0x0 0xfcc00000 0x0 0x400000>;
- -+ interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
- - clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,
- - <&cru ACLK_USB3OTG0>, <&cru PCLK_PIPE>;
- - clock-names = "ref_clk", "suspend_clk",
- - "bus_clk", "pipe_clk";
- -- #address-cells = <2>;
- -- #size-cells = <2>;
- -- ranges;
- -+ dr_mode = "host";
- -+ phy_type = "utmi_wide";
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ resets = <&cru SRST_USB3OTG0>;
- -+ reset-names = "usb3-otg";
- -+ snps,dis_enblslpm_quirk;
- -+ snps,dis-u2-freeclk-exists-quirk;
- -+ snps,dis-del-phy-power-chg-quirk;
- -+ snps,dis-tx-ipgap-linecheck-quirk;
- -+ snps,xhci-trb-ent-quirk;
- - status = "disabled";
- --
- -- usbdrd_dwc3: dwc3@fcc00000 {
- -- compatible = "snps,dwc3";
- -- reg = <0x0 0xfcc00000 0x0 0x400000>;
- -- interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
- -- dr_mode = "host";
- -- phys = <&u2phy0_otg>, <&combphy0_us PHY_TYPE_USB3>;
- -- phy-names = "usb2-phy", "usb3-phy";
- -- phy_type = "utmi_wide";
- -- power-domains = <&power RK3568_PD_PIPE>;
- -- resets = <&cru SRST_USB3OTG0>;
- -- reset-names = "usb3-otg";
- -- snps,dis_enblslpm_quirk;
- -- snps,dis-u2-freeclk-exists-quirk;
- -- snps,dis-del-phy-power-chg-quirk;
- -- snps,dis-tx-ipgap-linecheck-quirk;
- -- snps,xhci-trb-ent-quirk;
- -- status = "disabled";
- -- };
- - };
- -
- - usbhost30: usbhost {
- - compatible = "rockchip,rk3399-dwc3", "snps,dwc3";
- -+ reg = <0x0 0xfd000000 0x0 0x400000>;
- -+ interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
- - clocks = <&cru CLK_USB3OTG1_REF>, <&cru CLK_USB3OTG1_SUSPEND>,
- - <&cru ACLK_USB3OTG1>, <&cru PCLK_PIPE>;
- - clock-names = "ref_clk", "suspend_clk",
- - "bus_clk", "pipe_clk";
- -- #address-cells = <2>;
- -- #size-cells = <2>;
- -- assigned-clocks = <&cru CLK_PCIEPHY1_REF>;
- -- assigned-clock-rates = <25000000>;
- -- ranges;
- -- status = "disabled";
- --
- -- usbhost_dwc3: dwc3@fd000000 {
- -- compatible = "snps,dwc3";
- -- reg = <0x0 0xfd000000 0x0 0x400000>;
- -- interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
- -- dr_mode = "host";
- -- phys = <&u2phy0_host>, <&combphy1_usq PHY_TYPE_USB3>;
- -- phy-names = "usb2-phy", "usb3-phy";
- -- phy_type = "utmi_wide";
- -- power-domains = <&power RK3568_PD_PIPE>;
- -- resets = <&cru SRST_USB3OTG1>;
- -- reset-names = "usb3-host";
- -- snps,dis_enblslpm_quirk;
- -- snps,dis-u2-freeclk-exists-quirk;
- -- snps,dis_u2_susphy_quirk;
- -- snps,dis-del-phy-power-chg-quirk;
- -- snps,dis-tx-ipgap-linecheck-quirk;
- -- status = "disabled";
- -- };
- -+ dr_mode = "host";
- -+ phys = <&u2phy0_host>, <&combphy1 PHY_TYPE_USB3>;
- -+ phy-names = "usb2-phy", "usb3-phy";
- -+ phy_type = "utmi_wide";
- -+ power-domains = <&power RK3568_PD_PIPE>;
- -+ resets = <&cru SRST_USB3OTG1>;
- -+ reset-names = "usb3-host";
- -+ snps,dis_enblslpm_quirk;
- -+ snps,dis-u2-freeclk-exists-quirk;
- -+ snps,dis_u2_susphy_quirk;
- -+ snps,dis-del-phy-power-chg-quirk;
- -+ snps,dis-tx-ipgap-linecheck-quirk;
- -+ status = "disabled";
- - };
- -
- - gic: interrupt-controller@fd400000 {
- -@@ -339,7 +324,7 @@
- - clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
- - <&cru PCLK_USB>;
- - phys = <&u2phy1_otg>;
- -- phy-names = "usb2-phy";
- -+ phy-names = "usb";
- - status = "disabled";
- - };
- -
- -@@ -350,7 +335,7 @@
- - clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
- - <&cru PCLK_USB>;
- - phys = <&u2phy1_otg>;
- -- phy-names = "usb2-phy";
- -+ phy-names = "usb";
- - status = "disabled";
- - };
- -
- -@@ -361,7 +346,7 @@
- - clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
- - <&cru PCLK_USB>;
- - phys = <&u2phy1_host>;
- -- phy-names = "usb2-phy";
- -+ phy-names = "usb";
- - status = "disabled";
- - };
- -
- -@@ -372,7 +357,7 @@
- - clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
- - <&cru PCLK_USB>;
- - phys = <&u2phy1_host>;
- -- phy-names = "usb2-phy";
- -+ phy-names = "usb";
- - status = "disabled";
- - };
- -
- -@@ -395,21 +380,17 @@
- - reg = <0x0 0xfdc60000 0x0 0x10000>;
- - };
- -
- -- pipe_phy_grf0: syscon@fdc70000 {
- -- compatible = "rockchip,pipe-phy-grf", "syscon";
- -- reg = <0x0 0xfdc70000 0x0 0x1000>;
- -- };
- --
- - pipe_phy_grf1: syscon@fdc80000 {
- -- compatible = "rockchip,pipe-phy-grf", "syscon";
- -+ compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
- - reg = <0x0 0xfdc80000 0x0 0x1000>;
- - };
- -
- - pipe_phy_grf2: syscon@fdc90000 {
- -- compatible = "rockchip,pipe-phy-grf", "syscon";
- -+ compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
- - reg = <0x0 0xfdc90000 0x0 0x1000>;
- - };
- -
- -+
- - usb2phy0_grf: syscon@fdca0000 {
- - compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
- - reg = <0x0 0xfdca0000 0x0 0x8000>;
- -@@ -604,6 +585,28 @@
- - status = "disabled";
- - };
- -
- -+ ebc: ebc@fdec0000 {
- -+ compatible = "rockchip,rk3568-ebc-tcon";
- -+ reg = <0x0 0xfdec0000 0x0 0x5000>;
- -+ interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru HCLK_EBC>, <&cru DCLK_EBC>;
- -+ clock-names = "hclk", "dclk";
- -+ pinctrl-0 = <&ebc_pins>;
- -+ pinctrl-names = "default";
- -+ power-domains = <&power RK3568_PD_RGA>;
- -+ rockchip,grf = <&grf>;
- -+ status = "disabled";
- -+ };
- -+
- -+ eink: eink@fdf00000 {
- -+ compatible = "rockchip,rk3568-eink-tcon";
- -+ reg = <0x0 0xfdf00000 0x0 0x74>;
- -+ clocks = <&cru PCLK_EINK>, <&cru HCLK_EINK>;
- -+ clock-names = "pclk", "hclk";
- -+ interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
- -+ status = "disabled";
- -+ };
- -+
- - sdmmc2: mmc@fe000000 {
- - compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
- - reg = <0x0 0xfe000000 0x0 0x4000>;
- -@@ -665,21 +668,15 @@
- - };
- - };
- -
- -- display_subsystem: display-subsystem {
- -- compatible = "rockchip,display-subsystem";
- -- ports = <&vop_out>;
- -- };
- --
- - vop: vop@fe040000 {
- -- compatible = "rockchip,rk3568-vop";
- - reg = <0x0 0xfe040000 0x0 0x3000>, <0x0 0xfe044000 0x0 0x1000>;
- - reg-names = "regs", "gamma_lut";
- -- rockchip,grf = <&grf>;
- - interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
- - clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>, <&cru DCLK_VOP0>, <&cru DCLK_VOP1>, <&cru DCLK_VOP2>;
- - clock-names = "aclk_vop", "hclk_vop", "dclk_vp0", "dclk_vp1", "dclk_vp2";
- - iommus = <&vop_mmu>;
- - power-domains = <&power RK3568_PD_VO>;
- -+ rockchip,grf = <&grf>;
- - status = "disabled";
- -
- - vop_out: ports {
- -@@ -687,39 +684,21 @@
- - #size-cells = <0>;
- -
- - vp0: port@0 {
- -+ reg = <0>;
- - #address-cells = <1>;
- - #size-cells = <0>;
- -- reg = <0>;
- --
- -- vp0_out_hdmi: endpoint@0 {
- -- reg = <0>;
- -- remote-endpoint = <&hdmi_in_vp0>;
- -- status = "disabled";
- -- };
- - };
- -
- - vp1: port@1 {
- -+ reg = <1>;
- - #address-cells = <1>;
- - #size-cells = <0>;
- -- reg = <1>;
- --
- -- vp1_out_hdmi: endpoint@0 {
- -- reg = <0>;
- -- remote-endpoint = <&hdmi_in_vp1>;
- -- status = "disabled";
- -- };
- - };
- -
- - vp2: port@2 {
- -+ reg = <2>;
- - #address-cells = <1>;
- - #size-cells = <0>;
- -- reg = <2>;
- --
- -- vp2_out_hdmi: endpoint@0 {
- -- reg = <0>;
- -- remote-endpoint = <&hdmi_in_vp2>;
- -- status = "disabled";
- -- };
- - };
- - };
- - };
- -@@ -728,7 +707,6 @@
- - compatible = "rockchip,rk3568-iommu";
- - reg = <0x0 0xfe043e00 0x0 0x100>, <0x0 0xfe043f00 0x0 0x100>;
- - interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
- -- interrupt-names = "vop_mmu";
- - clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
- - clock-names = "aclk", "iface";
- - #iommu-cells = <0>;
- -@@ -742,14 +720,15 @@
- - clocks = <&cru PCLK_HDMI_HOST>,
- - <&cru CLK_HDMI_SFR>,
- - <&cru CLK_HDMI_CEC>,
- -+ <&pmucru CLK_HDMI_REF>,
- - <&cru HCLK_VOP>;
- -- clock-names = "iahb", "isfr", "cec", "hclk";
- -+ clock-names = "iahb", "isfr", "cec", "ref", "hclk";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>;
- - power-domains = <&power RK3568_PD_VO>;
- - reg-io-width = <4>;
- - rockchip,grf = <&grf>;
- - #sound-dai-cells = <0>;
- -- pinctrl-names = "default";
- -- pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>;
- - status = "disabled";
- -
- - ports {
- -@@ -760,24 +739,12 @@
- - reg = <0>;
- - #address-cells = <1>;
- - #size-cells = <0>;
- -+ };
- -
- -- hdmi_in_vp0: endpoint@0 {
- -- reg = <0>;
- -- remote-endpoint = <&vp0_out_hdmi>;
- -- status = "disabled";
- -- };
- --
- -- hdmi_in_vp1: endpoint@1 {
- -- reg = <1>;
- -- remote-endpoint = <&vp1_out_hdmi>;
- -- status = "disabled";
- -- };
- --
- -- hdmi_in_vp2: endpoint@2 {
- -- reg = <2>;
- -- remote-endpoint = <&vp2_out_hdmi>;
- -- status = "disabled";
- -- };
- -+ hdmi_out: port@1 {
- -+ reg = <1>;
- -+ #address-cells = <1>;
- -+ #size-cells = <0>;
- - };
- - };
- - };
- -@@ -934,7 +901,7 @@
- - max-link-speed = <2>;
- - msi-map = <0x0 &gic 0x0 0x1000>;
- - num-lanes = <1>;
- -- phys = <&combphy2_psq PHY_TYPE_PCIE>;
- -+ phys = <&combphy2 PHY_TYPE_PCIE>;
- - phy-names = "pcie-phy";
- - power-domains = <&power RK3568_PD_PIPE>;
- - reg = <0x3 0xc0000000 0x0 0x400000>,
- -@@ -1048,6 +1015,43 @@
- - status = "disabled";
- - };
- -
- -+ i2s2_2ch: i2s@fe420000 {
- -+ compatible = "rockchip,rk3568-i2s-tdm";
- -+ reg = <0x0 0xfe420000 0x0 0x1000>;
- -+ interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
- -+ clocks = <&cru MCLK_I2S2_2CH>, <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
- -+ clock-names = "mclk_tx", "mclk_rx", "hclk";
- -+ dmas = <&dmac1 4>, <&dmac1 5>;
- -+ dma-names = "tx", "rx";
- -+ rockchip,cru = <&cru>;
- -+ rockchip,grf = <&grf>;
- -+ pinctrl-0 = <&i2s2m0_sclktx
- -+ &i2s2m0_lrcktx
- -+ &i2s2m0_sdi
- -+ &i2s2m0_sdo>;
- -+ pinctrl-names = "default";
- -+ #sound-dai-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- -+ pdm: pdm@fe440000 {
- -+ compatible = "rockchip,rk3568-pdm", "rockchip,pdm";
- -+ reg = <0x0 0xfe440000 0x0 0x1000>;
- -+ clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
- -+ clock-names = "pdm_clk", "pdm_hclk";
- -+ dmas = <&dmac1 9>;
- -+ dma-names = "rx";
- -+ pinctrl-0 = <&pdmm0_clk
- -+ &pdmm0_clk1
- -+ &pdmm0_sdi0
- -+ &pdmm0_sdi1
- -+ &pdmm0_sdi2
- -+ &pdmm0_sdi3>;
- -+ pinctrl-names = "default";
- -+ #sound-dai-cells = <0>;
- -+ status = "disabled";
- -+ };
- -+
- - dmac0: dmac@fe530000 {
- - compatible = "arm,pl330", "arm,primecell";
- - reg = <0x0 0xfe530000 0x0 0x4000>;
- -@@ -1487,47 +1491,15 @@
- - status = "disabled";
- - };
- -
- -- combphy1_usq: phy@fe830000 {
- -- compatible = "rockchip,rk3568-naneng-combphy";
- -- reg = <0x0 0xfe830000 0x0 0x100>;
- -- #phy-cells = <1>;
- -- assigned-clocks = <&pmucru CLK_PCIEPHY1_REF>;
- -- assigned-clock-rates = <100000000>;
- -- clocks = <&pmucru CLK_PCIEPHY1_REF>, <&cru PCLK_PIPEPHY1>,
- -- <&cru PCLK_PIPE>;
- -- clock-names = "ref", "apb", "pipe";
- -- resets = <&cru SRST_P_PIPEPHY1>, <&cru SRST_PIPEPHY1>;
- -- reset-names = "combphy-apb", "combphy";
- -- rockchip,pipe-grf = <&pipegrf>;
- -- rockchip,pipe-phy-grf = <&pipe_phy_grf1>;
- -- status = "disabled";
- -- };
- --
- -- combphy2_psq: phy@fe840000 {
- -- compatible = "rockchip,rk3568-naneng-combphy";
- -- reg = <0x0 0xfe840000 0x0 0x100>;
- -- #phy-cells = <1>;
- -- assigned-clocks = <&pmucru CLK_PCIEPHY2_REF>;
- -- assigned-clock-rates = <100000000>;
- -- clocks = <&pmucru CLK_PCIEPHY2_REF>, <&cru PCLK_PIPEPHY2>,
- -- <&cru PCLK_PIPE>;
- -- clock-names = "ref", "apb", "pipe";
- -- resets = <&cru SRST_P_PIPEPHY2>, <&cru SRST_PIPEPHY2>;
- -- reset-names = "combphy-apb", "combphy";
- -- rockchip,pipe-grf = <&pipegrf>;
- -- rockchip,pipe-phy-grf = <&pipe_phy_grf2>;
- -- status = "disabled";
- -- };
- --
- -- usb2phy0: usb2-phy@fe8a0000 {
- -+ u2phy0: usb2phy@fe8a0000 {
- - compatible = "rockchip,rk3568-usb2phy";
- - reg = <0x0 0xfe8a0000 0x0 0x10000>;
- - clocks = <&pmucru CLK_USBPHY0_REF>;
- - clock-names = "phyclk";
- -- #clock-cells = <0>;
- -- clock-output-names = "usb480m_phy";
- -+ clock-output-names = "clk_usbphy0_480m";
- - interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
- - rockchip,usbgrf = <&usb2phy0_grf>;
- -+ #clock-cells = <0>;
- - status = "disabled";
- -
- - u2phy0_host: host-port {
- -@@ -1541,14 +1513,15 @@
- - };
- - };
- -
- -- usb2phy1: usb2-phy@fe8b0000 {
- -+ u2phy1: usb2phy@fe8b0000 {
- - compatible = "rockchip,rk3568-usb2phy";
- - reg = <0x0 0xfe8b0000 0x0 0x10000>;
- - clocks = <&pmucru CLK_USBPHY1_REF>;
- - clock-names = "phyclk";
- -- #clock-cells = <0>;
- -+ clock-output-names = "clk_usbphy1_480m";
- - interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
- - rockchip,usbgrf = <&usb2phy1_grf>;
- -+ #clock-cells = <0>;
- - status = "disabled";
- -
- - u2phy1_host: host-port {
- -@@ -1562,6 +1535,38 @@
- - };
- - };
- -
- -+ combphy1: phy@fe830000 {
- -+ compatible = "rockchip,rk3568-naneng-combphy";
- -+ reg = <0x0 0xfe830000 0x0 0x100>;
- -+ clocks = <&pmucru CLK_PCIEPHY1_REF>,
- -+ <&cru PCLK_PIPEPHY1>,
- -+ <&cru PCLK_PIPE>;
- -+ clock-names = "ref", "apb", "pipe";
- -+ assigned-clocks = <&pmucru CLK_PCIEPHY1_REF>;
- -+ assigned-clock-rates = <100000000>;
- -+ resets = <&cru SRST_PIPEPHY1>;
- -+ rockchip,pipe-grf = <&pipegrf>;
- -+ rockchip,pipe-phy-grf = <&pipe_phy_grf1>;
- -+ #phy-cells = <1>;
- -+ status = "disabled";
- -+ };
- -+
- -+ combphy2: phy@fe840000 {
- -+ compatible = "rockchip,rk3568-naneng-combphy";
- -+ reg = <0x0 0xfe840000 0x0 0x100>;
- -+ clocks = <&pmucru CLK_PCIEPHY2_REF>,
- -+ <&cru PCLK_PIPEPHY2>,
- -+ <&cru PCLK_PIPE>;
- -+ clock-names = "ref", "apb", "pipe";
- -+ assigned-clocks = <&pmucru CLK_PCIEPHY2_REF>;
- -+ assigned-clock-rates = <100000000>;
- -+ resets = <&cru SRST_PIPEPHY2>;
- -+ rockchip,pipe-grf = <&pipegrf>;
- -+ rockchip,pipe-phy-grf = <&pipe_phy_grf2>;
- -+ #phy-cells = <1>;
- -+ status = "disabled";
- -+ };
- -+
- - pinctrl: pinctrl {
- - compatible = "rockchip,rk3568-pinctrl";
- - rockchip,grf = <&grf>;
- ---- /dev/null
- -+++ b/include/dt-bindings/soc/rockchip,vop2.h
- -@@ -0,0 +1,14 @@
- -+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
- -+
- -+#ifndef __DT_BINDINGS_ROCKCHIP_VOP2_H
- -+#define __DT_BINDINGS_ROCKCHIP_VOP2_H
- -+
- -+#define RK3568_VOP2_EP_RGB 0
- -+#define RK3568_VOP2_EP_HDMI 1
- -+#define RK3568_VOP2_EP_EDP 2
- -+#define RK3568_VOP2_EP_MIPI0 3
- -+#define RK3568_VOP2_EP_LVDS0 4
- -+#define RK3568_VOP2_EP_MIPI1 5
- -+#define RK3568_VOP2_EP_LVDS1 6
- -+
- -+#endif /* __DT_BINDINGS_ROCKCHIP_VOP2_H */
- diff --git a/package/boot/uboot-rockchip/patches/013-rockchip-rk356x-add-bpi-r2-pro-board.patch b/package/boot/uboot-rockchip/patches/013-rockchip-rk356x-add-bpi-r2-pro-board.patch
- deleted file mode 100644
- index 0728caea486a..000000000000
- --- a/package/boot/uboot-rockchip/patches/013-rockchip-rk356x-add-bpi-r2-pro-board.patch
- +++ /dev/null
- @@ -1,795 +0,0 @@
- -From 89d609d74e4ef84e0e3d399d8763b268b60302fc Mon Sep 17 00:00:00 2001
- -From: Marty Jones <[email protected]>
- -Date: Sat, 28 May 2022 20:19:38 -0400
- -Subject: [PATCH] rockchip: rk356x: add bpi r2 pro board
- -
- -Signed-off-by: Marty Jones <[email protected]>
- ----
- - arch/arm/dts/Makefile | 1 +
- - arch/arm/dts/rk3568-bpi-r2-pro-u-boot.dtsi | 47 ++
- - arch/arm/dts/rk3568-bpi-r2-pro.dts | 532 ++++++++++++++++++
- - arch/arm/mach-rockchip/rk3568/Kconfig | 6 +
- - board/rockchip/bpi-r2-pro-rk3568/Kconfig | 15 +
- - board/rockchip/bpi-r2-pro-rk3568/Makefile | 7 +
- - .../bpi-r2-pro-rk3568/bpi-r2-pro-rk3568.c | 4 +
- - configs/bpi-r2-pro-rk3568_defconfig | 97 ++++
- - include/configs/bpi-r2-pro-rk3568.h | 15 +
- - 9 files changed, 724 insertions(+)
- - create mode 100644 arch/arm/dts/rk3568-bpi-r2-pro-u-boot.dtsi
- - create mode 100644 arch/arm/dts/rk3568-bpi-r2-pro.dts
- - create mode 100644 board/rockchip/bpi-r2-pro-rk3568/Kconfig
- - create mode 100644 board/rockchip/bpi-r2-pro-rk3568/Makefile
- - create mode 100644 board/rockchip/bpi-r2-pro-rk3568/bpi-r2-pro-rk3568.c
- - create mode 100644 configs/bpi-r2-pro-rk3568_defconfig
- - create mode 100644 include/configs/bpi-r2-pro-rk3568.h
- -
- ---- a/arch/arm/dts/Makefile
- -+++ b/arch/arm/dts/Makefile
- -@@ -164,6 +164,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- - rk3399pro-rock-pi-n10.dtb
- -
- - dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- -+ rk3568-bpi-r2-pro.dtb \
- - rk3568-evb.dtb \
- - rk3566-quartz64-a.dtb
- -
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3568-bpi-r2-pro-u-boot.dtsi
- -@@ -0,0 +1,47 @@
- -+// SPDX-License-Identifier: GPL-2.0+
- -+/*
- -+ * (C) Copyright 2021 Rockchip Electronics Co., Ltd
- -+ */
- -+
- -+#include "rk3568-u-boot.dtsi"
- -+
- -+/ {
- -+ chosen {
- -+ stdout-path = &uart2;
- -+ u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci;
- -+ };
- -+};
- -+
- -+&gmac1 {
- -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
- -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
- -+ status = "disabled";
- -+};
- -+
- -+&sdmmc0 {
- -+ bus-width = <4>;
- -+ u-boot,dm-spl;
- -+ u-boot,spl-fifo-mode;
- -+};
- -+
- -+&usb_host0_ehci {
- -+ vbus-supply = <&vcc5v0_usb_host>;
- -+};
- -+
- -+&usb_host0_ohci {
- -+ vbus-supply = <&vcc5v0_usb_host>;
- -+};
- -+
- -+&usb_host1_ehci {
- -+ vbus-supply = <&vcc5v0_usb_host>;
- -+};
- -+
- -+&usb_host1_ohci {
- -+ vbus-supply = <&vcc5v0_usb_host>;
- -+};
- -+
- -+&uart2 {
- -+ clock-frequency = <24000000>;
- -+ u-boot,dm-spl;
- -+ status = "okay";
- -+};
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3568-bpi-r2-pro.dts
- -@@ -0,0 +1,532 @@
- -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- -+/*
- -+ * Author: Frank Wunderlich <[email protected]>
- -+ *
- -+ */
- -+
- -+/dts-v1/;
- -+#include <dt-bindings/gpio/gpio.h>
- -+#include <dt-bindings/pinctrl/rockchip.h>
- -+#include <dt-bindings/leds/common.h>
- -+#include "rk3568.dtsi"
- -+
- -+/ {
- -+ model = "Bananapi-R2 Pro (RK3568) DDR4 Board";
- -+ compatible = "rockchip,rk3568-bpi-r2pro", "rockchip,rk3568";
- -+
- -+ aliases {
- -+ ethernet0 = &gmac0;
- -+ ethernet1 = &gmac1;
- -+ mmc0 = &sdmmc0;
- -+ mmc1 = &sdhci;
- -+ };
- -+
- -+ chosen: chosen {
- -+ stdout-path = "serial2:1500000n8";
- -+ };
- -+
- -+ leds {
- -+ compatible = "gpio-leds";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&blue_led_pin &green_led_pin>;
- -+
- -+ blue_led: led-0 {
- -+ color = <LED_COLOR_ID_BLUE>;
- -+ default-state = "off";
- -+ function = LED_FUNCTION_STATUS;
- -+ gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
- -+ };
- -+
- -+ green_led: led-1 {
- -+ color = <LED_COLOR_ID_GREEN>;
- -+ default-state = "on";
- -+ function = LED_FUNCTION_POWER;
- -+ gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
- -+ };
- -+ };
- -+
- -+ dc_12v: dc-12v {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "dc_12v";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <12000000>;
- -+ regulator-max-microvolt = <12000000>;
- -+ };
- -+
- -+ vcc3v3_sys: vcc3v3-sys {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc3v3_sys";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ vin-supply = <&dc_12v>;
- -+ };
- -+
- -+ vcc5v0_sys: vcc5v0-sys {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_sys";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&dc_12v>;
- -+ };
- -+
- -+ vcc5v0_usb: vcc5v0_usb {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_usb";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&dc_12v>;
- -+ };
- -+
- -+ vcc5v0_usb_host: vcc5v0-usb-host {
- -+ compatible = "regulator-fixed";
- -+ enable-active-high;
- -+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc5v0_usb_host_en>;
- -+ regulator-name = "vcc5v0_usb_host";
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc5v0_usb>;
- -+ };
- -+
- -+ vcc5v0_usb_otg: vcc5v0-usb-otg {
- -+ compatible = "regulator-fixed";
- -+ enable-active-high;
- -+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc5v0_usb_otg_en>;
- -+ regulator-name = "vcc5v0_usb_otg";
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc5v0_usb>;
- -+ };
- -+};
- -+
- -+&combphy0 {
- -+ /* used for USB3 */
- -+ status = "okay";
- -+};
- -+
- -+&combphy1 {
- -+ /* used for USB3 */
- -+ status = "okay";
- -+};
- -+
- -+&combphy2 {
- -+ /* used for SATA */
- -+ status = "okay";
- -+};
- -+
- -+&gmac0 {
- -+ assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
- -+ assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
- -+ clock_in_out = "input";
- -+ phy-mode = "rgmii";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&gmac0_miim
- -+ &gmac0_tx_bus2
- -+ &gmac0_rx_bus2
- -+ &gmac0_rgmii_clk
- -+ &gmac0_rgmii_bus>;
- -+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
- -+ snps,reset-active-low;
- -+ /* Reset time is 20ms, 100ms for rtl8211f */
- -+ snps,reset-delays-us = <0 20000 100000>;
- -+ tx_delay = <0x4f>;
- -+ rx_delay = <0x0f>;
- -+ status = "okay";
- -+
- -+ fixed-link {
- -+ speed = <1000>;
- -+ full-duplex;
- -+ pause;
- -+ };
- -+};
- -+
- -+&gmac1 {
- -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
- -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
- -+ clock_in_out = "output";
- -+ phy-handle = <&rgmii_phy1>;
- -+ phy-mode = "rgmii";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&gmac1m1_miim
- -+ &gmac1m1_tx_bus2
- -+ &gmac1m1_rx_bus2
- -+ &gmac1m1_rgmii_clk
- -+ &gmac1m1_rgmii_bus>;
- -+
- -+ snps,reset-gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
- -+ snps,reset-active-low;
- -+ /* Reset time is 20ms, 100ms for rtl8211f */
- -+ snps,reset-delays-us = <0 20000 100000>;
- -+
- -+ tx_delay = <0x3c>;
- -+ rx_delay = <0x2f>;
- -+
- -+ status = "okay";
- -+};
- -+
- -+&i2c0 {
- -+ status = "okay";
- -+
- -+ rk809: pmic@20 {
- -+ compatible = "rockchip,rk809";
- -+ reg = <0x20>;
- -+ interrupt-parent = <&gpio0>;
- -+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
- -+ #clock-cells = <1>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&pmic_int>;
- -+ rockchip,system-power-controller;
- -+ vcc1-supply = <&vcc3v3_sys>;
- -+ vcc2-supply = <&vcc3v3_sys>;
- -+ vcc3-supply = <&vcc3v3_sys>;
- -+ vcc4-supply = <&vcc3v3_sys>;
- -+ vcc5-supply = <&vcc3v3_sys>;
- -+ vcc6-supply = <&vcc3v3_sys>;
- -+ vcc7-supply = <&vcc3v3_sys>;
- -+ vcc8-supply = <&vcc3v3_sys>;
- -+ vcc9-supply = <&vcc3v3_sys>;
- -+ wakeup-source;
- -+
- -+ regulators {
- -+ vdd_logic: DCDC_REG1 {
- -+ regulator-name = "vdd_logic";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-ramp-delay = <6001>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdd_gpu: DCDC_REG2 {
- -+ regulator-name = "vdd_gpu";
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-ramp-delay = <6001>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_ddr: DCDC_REG3 {
- -+ regulator-name = "vcc_ddr";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-initial-mode = <0x2>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdd_npu: DCDC_REG4 {
- -+ regulator-name = "vdd_npu";
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-ramp-delay = <6001>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_1v8: DCDC_REG5 {
- -+ regulator-name = "vcc_1v8";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda0v9_image: LDO_REG1 {
- -+ regulator-name = "vdda0v9_image";
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda_0v9: LDO_REG2 {
- -+ regulator-name = "vdda_0v9";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda0v9_pmu: LDO_REG3 {
- -+ regulator-name = "vdda0v9_pmu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <900000>;
- -+ };
- -+ };
- -+
- -+ vccio_acodec: LDO_REG4 {
- -+ regulator-name = "vccio_acodec";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vccio_sd: LDO_REG5 {
- -+ regulator-name = "vccio_sd";
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <3300000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc3v3_pmu: LDO_REG6 {
- -+ regulator-name = "vcc3v3_pmu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <3300000>;
- -+ };
- -+ };
- -+
- -+ vcca_1v8: LDO_REG7 {
- -+ regulator-name = "vcca_1v8";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcca1v8_pmu: LDO_REG8 {
- -+ regulator-name = "vcca1v8_pmu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <1800000>;
- -+ };
- -+ };
- -+
- -+ vcca1v8_image: LDO_REG9 {
- -+ regulator-name = "vcca1v8_image";
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_3v3: SWITCH_REG1 {
- -+ regulator-name = "vcc_3v3";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc3v3_sd: SWITCH_REG2 {
- -+ regulator-name = "vcc3v3_sd";
- -+ regulator-always-on;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+ };
- -+ };
- -+};
- -+
- -+&i2c5 {
- -+ /* pin 3 (SDA) + 4 (SCL) of header con2 */
- -+ status = "disabled";
- -+};
- -+
- -+&mdio1 {
- -+ rgmii_phy1: ethernet-phy@0 {
- -+ compatible = "ethernet-phy-ieee802.3-c22";
- -+ reg = <0x0>;
- -+ };
- -+};
- -+
- -+&pinctrl {
- -+ leds {
- -+ blue_led_pin: blue-led-pin {
- -+ rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ green_led_pin: green-led-pin {
- -+ rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ pmic {
- -+ pmic_int: pmic_int {
- -+ rockchip,pins =
- -+ <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
- -+ };
- -+ };
- -+
- -+ usb {
- -+ vcc5v0_usb_host_en: vcc5v0_usb_host_en {
- -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+
- -+ vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
- -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+};
- -+
- -+&pmu_io_domains {
- -+ pmuio1-supply = <&vcc3v3_pmu>;
- -+ pmuio2-supply = <&vcc3v3_pmu>;
- -+ vccio1-supply = <&vccio_acodec>;
- -+ vccio3-supply = <&vccio_sd>;
- -+ vccio4-supply = <&vcc_3v3>;
- -+ vccio5-supply = <&vcc_3v3>;
- -+ vccio6-supply = <&vcc_1v8>;
- -+ vccio7-supply = <&vcc_3v3>;
- -+ status = "okay";
- -+};
- -+
- -+&pwm8 {
- -+ /* fan 5v - gnd - pwm */
- -+ status = "okay";
- -+};
- -+
- -+&pwm10 {
- -+ /* pin 7 of header con2 */
- -+ status = "disabled";
- -+};
- -+
- -+&pwm11 {
- -+ /* pin 15 of header con2 */
- -+ status = "disabled";
- -+};
- -+
- -+
- -+&pwm13 {
- -+ /* pin 24 of header con2 */
- -+ /* shared with uart9 */
- -+ pinctrl-0 = <&pwm13m1_pins>;
- -+ status = "disabled";
- -+};
- -+
- -+&saradc {
- -+ vref-supply = <&vcca_1v8>;
- -+ status = "okay";
- -+};
- -+
- -+&sata2 {
- -+ status = "okay";
- -+};
- -+
- -+&sdhci {
- -+ bus-width = <8>;
- -+ max-frequency = <200000000>;
- -+ non-removable;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
- -+ status = "okay";
- -+};
- -+
- -+&sdmmc0 {
- -+ bus-width = <4>;
- -+ cap-sd-highspeed;
- -+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
- -+ disable-wp;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
- -+ sd-uhs-sdr104;
- -+ vmmc-supply = <&vcc3v3_sd>;
- -+ vqmmc-supply = <&vccio_sd>;
- -+ status = "okay";
- -+};
- -+
- -+&tsadc {
- -+ status = "okay";
- -+};
- -+
- -+&uart0 {
- -+ /* pin 8 (TX) + 10 (RX) (RTS:16, CTS:18) of header con2 */
- -+ status = "disabled";
- -+};
- -+
- -+&uart2 {
- -+ /* debug-uart */
- -+ status = "okay";
- -+};
- -+
- -+&uart7 {
- -+ /* pin 11 (TX) + 13 (RX) of header con2 */
- -+ pinctrl-0 = <&uart7m1_xfer>;
- -+ status = "disabled";
- -+};
- -+
- -+&usb_host0_ehci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host0_ohci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host1_ehci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host1_ohci {
- -+ status = "okay";
- -+};
- ---- a/arch/arm/mach-rockchip/rk3568/Kconfig
- -+++ b/arch/arm/mach-rockchip/rk3568/Kconfig
- -@@ -3,6 +3,11 @@ if ROCKCHIP_RK3568
- - choice
- - prompt "RK3568/RK3566 board select"
- -
- -+config TARGET_BPI_R2_PRO_RK3568
- -+ bool "Banana Pi R2 Pro RK3566 development board"
- -+ help
- -+ Banana Pi R2 Pro is a development board Rockchp RK3568.
- -+
- - config TARGET_EVB_RK3568
- - bool "RK3568 evaluation board"
- - help
- -@@ -27,6 +32,7 @@ config SYS_SOC
- - config SYS_MALLOC_F_LEN
- - default 0x2000
- -
- -+source "board/rockchip/bpi-r2-pro-rk3568/Kconfig"
- - source "board/rockchip/evb_rk3568/Kconfig"
- - source "board/pine64/quartz64-a-rk3566/Kconfig"
- -
- ---- /dev/null
- -+++ b/board/rockchip/bpi-r2-pro-rk3568/Kconfig
- -@@ -0,0 +1,15 @@
- -+if TARGET_BPI_R2_PRO_RK3568
- -+
- -+config SYS_BOARD
- -+ default "bpi-r2-pro-rk3568"
- -+
- -+config SYS_VENDOR
- -+ default "rockchip"
- -+
- -+config SYS_CONFIG_NAME
- -+ default "bpi-r2-pro-rk3568"
- -+
- -+config BOARD_SPECIFIC_OPTIONS # dummy
- -+ def_bool y
- -+
- -+endif
- ---- /dev/null
- -+++ b/board/rockchip/bpi-r2-pro-rk3568/Makefile
- -@@ -0,0 +1,7 @@
- -+#
- -+# (C) Copyright 2021 Rockchip Electronics Co., Ltd
- -+#
- -+# SPDX-License-Identifier: GPL-2.0+
- -+#
- -+
- -+obj-y += bpi-r2-pro-rk3568.o
- ---- /dev/null
- -+++ b/board/rockchip/bpi-r2-pro-rk3568/bpi-r2-pro-rk3568.c
- -@@ -0,0 +1,4 @@
- -+// SPDX-License-Identifier: GPL-2.0+
- -+/*
- -+ * (C) Copyright 2021 Rockchip Electronics Co., Ltd
- -+ */
- ---- /dev/null
- -+++ b/configs/bpi-r2-pro-rk3568_defconfig
- -@@ -0,0 +1,97 @@
- -+CONFIG_ARM=y
- -+CONFIG_SKIP_LOWLEVEL_INIT=y
- -+CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- -+CONFIG_SPL_LIBCOMMON_SUPPORT=y
- -+CONFIG_SPL_LIBGENERIC_SUPPORT=y
- -+CONFIG_NR_DRAM_BANKS=2
- -+CONFIG_DEFAULT_DEVICE_TREE="rk3568-bpi-r2-pro"
- -+CONFIG_ROCKCHIP_RK3568=y
- -+CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- -+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- -+CONFIG_SPL_MMC=y
- -+CONFIG_SPL_SERIAL=y
- -+CONFIG_SPL_STACK_R_ADDR=0x600000
- -+CONFIG_TARGET_BPI_R2_PRO_RK3568=y
- -+CONFIG_DEBUG_UART_BASE=0xFE660000
- -+CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- -+CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- -+CONFIG_FIT=y
- -+CONFIG_FIT_VERBOSE=y
- -+CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- -+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-bpi-r2-pro.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+# CONFIG_DISPLAY_CPUINFO is not set
- -+CONFIG_DISPLAY_BOARDINFO_LATE=y
- -+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -+CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- -+CONFIG_SPL_ATF=y
- -+CONFIG_SPL_ATF_LOAD_IMAGE_V2=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- -+CONFIG_CMD_GPIO=y
- -+CONFIG_CMD_GPT=y
- -+CONFIG_CMD_I2C=y
- -+CONFIG_CMD_MMC=y
- -+CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- -+CONFIG_CMD_REGULATOR=y
- -+# CONFIG_SPL_DOS_PARTITION is not set
- -+CONFIG_SPL_OF_CONTROL=y
- -+CONFIG_OF_LIVE=y
- -+CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- -+CONFIG_SPL_REGMAP=y
- -+CONFIG_SPL_SYSCON=y
- -+CONFIG_SPL_CLK=y
- -+CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- -+CONFIG_SYS_I2C_ROCKCHIP=y
- -+CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- -+CONFIG_MMC_DW=y
- -+CONFIG_MMC_DW_ROCKCHIP=y
- -+CONFIG_MMC_SDHCI=y
- -+CONFIG_MMC_SDHCI_SDMA=y
- -+CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- -+CONFIG_ETH_DESIGNWARE=y
- -+CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- -+CONFIG_DM_PMIC=y
- -+CONFIG_PMIC_RK8XX=y
- -+CONFIG_SPL_PMIC_RK8XX=y
- -+CONFIG_REGULATOR_PWM=y
- -+CONFIG_DM_REGULATOR_FIXED=y
- -+CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- -+CONFIG_REGULATOR_RK8XX=y
- -+CONFIG_PWM_ROCKCHIP=y
- -+CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- -+CONFIG_BAUDRATE=1500000
- -+CONFIG_DEBUG_UART_SHIFT=2
- -+CONFIG_SYSRESET=y
- -+CONFIG_SYSRESET_PSCI=y
- -+CONFIG_USB=y
- -+CONFIG_USB_XHCI_HCD=y
- -+CONFIG_USB_XHCI_DWC3=y
- -+CONFIG_USB_EHCI_HCD=y
- -+CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_USB_DWC3=y
- -+CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- -+CONFIG_ERRNO_STR=y
- ---- /dev/null
- -+++ b/include/configs/bpi-r2-pro-rk3568.h
- -@@ -0,0 +1,15 @@
- -+#ifndef __BPI_R2_PRO_RK3568_H
- -+#define __BPI_R2_PRO_RK3568_H
- -+
- -+#include <configs/rk3568_common.h>
- -+
- -+#define CONFIG_SUPPORT_EMMC_RPMB
- -+
- -+#define ROCKCHIP_DEVICE_SETTINGS \
- -+ "stdout=serial,vidconsole\0" \
- -+ "stderr=serial,vidconsole\0"
- -+
- -+#define CONFIG_USB_OHCI_NEW
- -+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
- -+
- -+#endif
- diff --git a/package/boot/uboot-rockchip/patches/014-uboot-add-Radxa-ROCK-3A-board.patch b/package/boot/uboot-rockchip/patches/014-uboot-add-Radxa-ROCK-3A-board.patch
- deleted file mode 100644
- index 4f38e6951820..000000000000
- --- a/package/boot/uboot-rockchip/patches/014-uboot-add-Radxa-ROCK-3A-board.patch
- +++ /dev/null
- @@ -1,690 +0,0 @@
- -From 443eb96a82563a3b38a3c9548853a5a266dfd072 Mon Sep 17 00:00:00 2001
- -From: Marty Jones <[email protected]>
- -Date: Sun, 29 May 2022 06:09:59 -0400
- -Subject: [PATCH] uboot: add Radxa ROCK 3A board
- -
- -Signed-off-by: Marty Jones <[email protected]>
- ----
- - arch/arm/dts/Makefile | 3 +-
- - arch/arm/dts/rk3568-rock-3a-u-boot.dtsi | 25 +
- - arch/arm/dts/rk3568-rock-3a.dts | 525 ++++++++++++++++++++
- - arch/arm/mach-rockchip/rk3568/Kconfig | 6 +
- - board/radxa/rock-3a-rk3568/Kconfig | 15 +
- - board/radxa/rock-3a-rk3568/Makefile | 4 +
- - board/radxa/rock-3a-rk3568/rock-3a-rk3568.c | 1 +
- - configs/rock-3a-rk3568_defconfig | 97 ++++
- - include/configs/rock-3a-rk3568.h | 17 +
- - 9 files changed, 692 insertions(+), 1 deletion(-)
- - create mode 100644 arch/arm/dts/rk3568-rock-3a-u-boot.dtsi
- - create mode 100644 arch/arm/dts/rk3568-rock-3a.dts
- - create mode 100644 configs/rock-3a-rk3568_defconfig
- - create mode 100644 include/configs/rock-3a-rk3568.h
- -
- ---- a/arch/arm/dts/Makefile
- -+++ b/arch/arm/dts/Makefile
- -@@ -166,7 +166,8 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- - dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- - rk3568-bpi-r2-pro.dtb \
- - rk3568-evb.dtb \
- -- rk3566-quartz64-a.dtb
- -+ rk3566-quartz64-a.dtb \
- -+ rk3568-rock-3a.dtb
- -
- - dtb-$(CONFIG_ROCKCHIP_RV1108) += \
- - rv1108-elgin-r1.dtb \
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3568-rock-3a-u-boot.dtsi
- -@@ -0,0 +1,24 @@
- -+// SPDX-License-Identifier: GPL-2.0+
- -+/*
- -+ * (C) Copyright 2021 Rockchip Electronics Co., Ltd
- -+ */
- -+
- -+#include "rk3568-u-boot.dtsi"
- -+
- -+/ {
- -+ chosen {
- -+ stdout-path = &uart2;
- -+ u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci;
- -+ };
- -+};
- -+
- -+&sdmmc0 {
- -+ bus-width = <4>;
- -+ u-boot,spl-fifo-mode;
- -+};
- -+
- -+&uart2 {
- -+ u-boot,dm-spl;
- -+ clock-frequency = <24000000>;
- -+ status = "okay";
- -+};
- ---- /dev/null
- -+++ b/arch/arm/dts/rk3568-rock-3a.dts
- -@@ -0,0 +1,525 @@
- -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- -+
- -+/dts-v1/;
- -+#include <dt-bindings/gpio/gpio.h>
- -+#include <dt-bindings/leds/common.h>
- -+#include <dt-bindings/pinctrl/rockchip.h>
- -+#include "rk3568.dtsi"
- -+
- -+/ {
- -+ model = "Radxa ROCK3 Model A";
- -+ compatible = "radxa,rock3a", "rockchip,rk3568";
- -+
- -+ aliases {
- -+ ethernet0 = &gmac1;
- -+ mmc0 = &sdmmc0;
- -+ mmc1 = &sdhci;
- -+ };
- -+
- -+ chosen: chosen {
- -+ stdout-path = "serial2:1500000n8";
- -+ };
- -+
- -+ leds {
- -+ compatible = "gpio-leds";
- -+
- -+ led_user: led-0 {
- -+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
- -+ function = LED_FUNCTION_HEARTBEAT;
- -+ color = <LED_COLOR_ID_BLUE>;
- -+ linux,default-trigger = "heartbeat";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&led_user_en>;
- -+ };
- -+ };
- -+
- -+ rk809-sound {
- -+ compatible = "simple-audio-card";
- -+ simple-audio-card,format = "i2s";
- -+ simple-audio-card,name = "Analog RK809";
- -+ simple-audio-card,mclk-fs = <256>;
- -+
- -+ simple-audio-card,cpu {
- -+ sound-dai = <&i2s1_8ch>;
- -+ };
- -+
- -+ simple-audio-card,codec {
- -+ sound-dai = <&rk809>;
- -+ };
- -+ };
- -+
- -+ vcc12v_dcin: vcc12v-dcin {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc12v_dcin";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ };
- -+
- -+ vcc3v3_sys: vcc3v3-sys {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc3v3_sys";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+ vin-supply = <&vcc12v_dcin>;
- -+ };
- -+
- -+ vcc5v0_sys: vcc5v0-sys {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_sys";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc12v_dcin>;
- -+ };
- -+
- -+ vcc5v0_usb: vcc5v0-usb {
- -+ compatible = "regulator-fixed";
- -+ regulator-name = "vcc5v0_usb";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc12v_dcin>;
- -+ };
- -+
- -+ vcc5v0_usb_host: vcc5v0-usb-host {
- -+ compatible = "regulator-fixed";
- -+ enable-active-high;
- -+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc5v0_usb_host_en>;
- -+ regulator-name = "vcc5v0_usb_host";
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc5v0_usb>;
- -+ };
- -+
- -+ vcc5v0_usb_hub: vcc5v0-usb-hub-regulator {
- -+ compatible = "regulator-fixed";
- -+ enable-active-high;
- -+ gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc5v0_usb_hub_en>;
- -+ regulator-name = "vcc5v0_usb_hub";
- -+ regulator-always-on;
- -+ vin-supply = <&vcc5v0_usb>;
- -+ };
- -+
- -+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
- -+ compatible = "regulator-fixed";
- -+ enable-active-high;
- -+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&vcc5v0_usb_otg_en>;
- -+ regulator-name = "vcc5v0_usb_otg";
- -+ regulator-min-microvolt = <5000000>;
- -+ regulator-max-microvolt = <5000000>;
- -+ vin-supply = <&vcc5v0_usb>;
- -+ };
- -+};
- -+
- -+&combphy0 {
- -+ status = "okay";
- -+};
- -+
- -+&combphy1 {
- -+ status = "okay";
- -+};
- -+
- -+&cpu0 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu1 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu2 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&cpu3 {
- -+ cpu-supply = <&vdd_cpu>;
- -+};
- -+
- -+&gmac1 {
- -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
- -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
- -+ assigned-clock-rates = <0>, <125000000>;
- -+ clock_in_out = "output";
- -+ phy-handle = <&rgmii_phy1>;
- -+ phy-mode = "rgmii-id";
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&gmac1m1_miim
- -+ &gmac1m1_tx_bus2
- -+ &gmac1m1_rx_bus2
- -+ &gmac1m1_rgmii_clk
- -+ &gmac1m1_rgmii_bus>;
- -+ status = "okay";
- -+};
- -+
- -+&gpu {
- -+ mali-supply = <&vdd_gpu>;
- -+ status = "okay";
- -+};
- -+
- -+&i2c0 {
- -+ status = "okay";
- -+
- -+ vdd_cpu: regulator@1c {
- -+ compatible = "tcs,tcs4525";
- -+ reg = <0x1c>;
- -+ fcs,suspend-voltage-selector = <1>;
- -+ regulator-name = "vdd_cpu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <800000>;
- -+ regulator-max-microvolt = <1150000>;
- -+ regulator-ramp-delay = <2300>;
- -+ vin-supply = <&vcc5v0_sys>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ rk809: pmic@20 {
- -+ compatible = "rockchip,rk809";
- -+ reg = <0x20>;
- -+ interrupt-parent = <&gpio0>;
- -+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
- -+ assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
- -+ assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
- -+ #clock-cells = <1>;
- -+ clock-names = "mclk";
- -+ clocks = <&cru I2S1_MCLKOUT_TX>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
- -+ rockchip,system-power-controller;
- -+ #sound-dai-cells = <0>;
- -+ vcc1-supply = <&vcc3v3_sys>;
- -+ vcc2-supply = <&vcc3v3_sys>;
- -+ vcc3-supply = <&vcc3v3_sys>;
- -+ vcc4-supply = <&vcc3v3_sys>;
- -+ vcc5-supply = <&vcc3v3_sys>;
- -+ vcc6-supply = <&vcc3v3_sys>;
- -+ vcc7-supply = <&vcc3v3_sys>;
- -+ vcc8-supply = <&vcc3v3_sys>;
- -+ vcc9-supply = <&vcc3v3_sys>;
- -+ wakeup-source;
- -+
- -+ regulators {
- -+ vdd_logic: DCDC_REG1 {
- -+ regulator-name = "vdd_logic";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-ramp-delay = <6001>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdd_gpu: DCDC_REG2 {
- -+ regulator-name = "vdd_gpu";
- -+ regulator-always-on;
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-ramp-delay = <6001>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_ddr: DCDC_REG3 {
- -+ regulator-name = "vcc_ddr";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-initial-mode = <0x2>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdd_npu: DCDC_REG4 {
- -+ regulator-name = "vdd_npu";
- -+ regulator-init-microvolt = <900000>;
- -+ regulator-initial-mode = <0x2>;
- -+ regulator-min-microvolt = <500000>;
- -+ regulator-max-microvolt = <1350000>;
- -+ regulator-ramp-delay = <6001>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_1v8: DCDC_REG5 {
- -+ regulator-name = "vcc_1v8";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda0v9_image: LDO_REG1 {
- -+ regulator-name = "vdda0v9_image";
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda_0v9: LDO_REG2 {
- -+ regulator-name = "vdda_0v9";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vdda0v9_pmu: LDO_REG3 {
- -+ regulator-name = "vdda0v9_pmu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <900000>;
- -+ regulator-max-microvolt = <900000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <900000>;
- -+ };
- -+ };
- -+
- -+ vccio_acodec: LDO_REG4 {
- -+ regulator-name = "vccio_acodec";
- -+ regulator-always-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vccio_sd: LDO_REG5 {
- -+ regulator-name = "vccio_sd";
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <3300000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc3v3_pmu: LDO_REG6 {
- -+ regulator-name = "vcc3v3_pmu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <3300000>;
- -+ regulator-max-microvolt = <3300000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <3300000>;
- -+ };
- -+ };
- -+
- -+ vcca_1v8: LDO_REG7 {
- -+ regulator-name = "vcca_1v8";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcca1v8_pmu: LDO_REG8 {
- -+ regulator-name = "vcca1v8_pmu";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-on-in-suspend;
- -+ regulator-suspend-microvolt = <1800000>;
- -+ };
- -+ };
- -+
- -+ vcca1v8_image: LDO_REG9 {
- -+ regulator-name = "vcca1v8_image";
- -+ regulator-min-microvolt = <1800000>;
- -+ regulator-max-microvolt = <1800000>;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc_3v3: SWITCH_REG1 {
- -+ regulator-name = "vcc_3v3";
- -+ regulator-always-on;
- -+ regulator-boot-on;
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+
- -+ vcc3v3_sd: SWITCH_REG2 {
- -+ regulator-name = "vcc3v3_sd";
- -+
- -+ regulator-state-mem {
- -+ regulator-off-in-suspend;
- -+ };
- -+ };
- -+ };
- -+
- -+ codec {
- -+ mic-in-differential;
- -+ };
- -+ };
- -+};
- -+
- -+&i2s1_8ch {
- -+ rockchip,trcm-sync-tx-only;
- -+ status = "okay";
- -+};
- -+
- -+&mdio1 {
- -+ rgmii_phy1: ethernet-phy@0 {
- -+ compatible = "ethernet-phy-ieee802.3-c22";
- -+ reg = <0x0>;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <ð_phy_rst>;
- -+ reset-assert-us = <20000>;
- -+ reset-deassert-us = <100000>;
- -+ reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
- -+ };
- -+};
- -+
- -+&pinctrl {
- -+ ethernet {
- -+ eth_phy_rst: eth_phy_rst {
- -+ rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ leds {
- -+ led_user_en: led_user_en {
- -+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+
- -+ pmic {
- -+ pmic_int: pmic_int {
- -+ rockchip,pins =
- -+ <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
- -+ };
- -+ };
- -+
- -+ usb {
- -+ vcc5v0_usb_host_en: vcc5v0_usb_host_en {
- -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ vcc5v0_usb_hub_en: vcc5v0_usb_hub_en {
- -+ rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
- -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
- -+ };
- -+ };
- -+};
- -+
- -+&pmu_io_domains {
- -+ pmuio1-supply = <&vcc3v3_pmu>;
- -+ pmuio2-supply = <&vcc3v3_pmu>;
- -+ vccio1-supply = <&vccio_acodec>;
- -+ vccio2-supply = <&vcc_1v8>;
- -+ vccio3-supply = <&vccio_sd>;
- -+ vccio4-supply = <&vcc_1v8>;
- -+ vccio5-supply = <&vcc_3v3>;
- -+ vccio6-supply = <&vcc_1v8>;
- -+ vccio7-supply = <&vcc_3v3>;
- -+ status = "okay";
- -+};
- -+
- -+&saradc {
- -+ vref-supply = <&vcca_1v8>;
- -+ status = "okay";
- -+};
- -+
- -+&sdhci {
- -+ bus-width = <8>;
- -+ max-frequency = <200000000>;
- -+ non-removable;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
- -+ vmmc-supply = <&vcc_3v3>;
- -+ vqmmc-supply = <&vcc_1v8>;
- -+ status = "okay";
- -+};
- -+
- -+&sdmmc0 {
- -+ bus-width = <4>;
- -+ cap-sd-highspeed;
- -+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
- -+ disable-wp;
- -+ pinctrl-names = "default";
- -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
- -+ sd-uhs-sdr104;
- -+ vmmc-supply = <&vcc3v3_sd>;
- -+ vqmmc-supply = <&vccio_sd>;
- -+ status = "okay";
- -+};
- -+
- -+&tsadc {
- -+ rockchip,hw-tshut-mode = <1>;
- -+ rockchip,hw-tshut-polarity = <0>;
- -+ status = "okay";
- -+};
- -+
- -+&uart2 {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host0_ehci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host0_ohci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host1_ehci {
- -+ status = "okay";
- -+};
- -+
- -+&usb_host1_ohci {
- -+ status = "okay";
- -+};
- ---- /dev/null
- -+++ b/configs/rock-3a-rk3568_defconfig
- -@@ -0,0 +1,98 @@
- -+CONFIG_ARM=y
- -+CONFIG_SKIP_LOWLEVEL_INIT=y
- -+CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- -+CONFIG_SPL_LIBCOMMON_SUPPORT=y
- -+CONFIG_SPL_LIBGENERIC_SUPPORT=y
- -+CONFIG_NR_DRAM_BANKS=2
- -+CONFIG_DEFAULT_DEVICE_TREE="rk3568-rock-3a"
- -+CONFIG_ROCKCHIP_RK3568=y
- -+CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- -+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- -+CONFIG_SPL_MMC=y
- -+CONFIG_SPL_SERIAL=y
- -+CONFIG_SPL_STACK_R_ADDR=0x600000
- -+CONFIG_TARGET_EVB_RK3568=y
- -+CONFIG_DEBUG_UART_BASE=0xFE660000
- -+CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- -+CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- -+CONFIG_FIT=y
- -+CONFIG_FIT_VERBOSE=y
- -+CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- -+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-rock-3a.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- -+# CONFIG_DISPLAY_CPUINFO is not set
- -+CONFIG_DISPLAY_BOARDINFO_LATE=y
- -+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -+CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- -+CONFIG_SPL_ATF=y
- -+CONFIG_SPL_ATF_LOAD_IMAGE_V2=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- -+CONFIG_CMD_GPIO=y
- -+CONFIG_CMD_GPT=y
- -+CONFIG_CMD_I2C=y
- -+CONFIG_CMD_MMC=y
- -+CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- -+CONFIG_CMD_REGULATOR=y
- -+# CONFIG_SPL_DOS_PARTITION is not set
- -+CONFIG_SPL_OF_CONTROL=y
- -+CONFIG_OF_LIVE=y
- -+CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- -+CONFIG_SPL_REGMAP=y
- -+CONFIG_SPL_SYSCON=y
- -+CONFIG_SPL_CLK=y
- -+CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- -+CONFIG_SYS_I2C_ROCKCHIP=y
- -+CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- -+CONFIG_MMC_DW=y
- -+CONFIG_MMC_DW_ROCKCHIP=y
- -+CONFIG_MMC_SDHCI=y
- -+CONFIG_MMC_SDHCI_SDMA=y
- -+CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- -+CONFIG_ETH_DESIGNWARE=y
- -+CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- -+CONFIG_DM_PMIC=y
- -+CONFIG_PMIC_RK8XX=y
- -+CONFIG_SPL_PMIC_RK8XX=y
- -+CONFIG_REGULATOR_PWM=y
- -+CONFIG_DM_REGULATOR_FIXED=y
- -+CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- -+CONFIG_REGULATOR_RK8XX=y
- -+CONFIG_PWM_ROCKCHIP=y
- -+CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- -+CONFIG_BAUDRATE=1500000
- -+CONFIG_DEBUG_UART_SHIFT=2
- -+CONFIG_SYSRESET=y
- -+CONFIG_SYSRESET_PSCI=y
- -+CONFIG_USB=y
- -+CONFIG_USB_XHCI_HCD=y
- -+CONFIG_USB_XHCI_DWC3=y
- -+CONFIG_USB_EHCI_HCD=y
- -+CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_USB_DWC3=y
- -+CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- -+CONFIG_ERRNO_STR=y
- diff --git a/package/boot/uboot-rockchip/patches/015-uboot-add-NanoPi-R5S-board.patch b/package/boot/uboot-rockchip/patches/015-uboot-add-NanoPi-R5S-board.patch
- index b527a261e9ce..f85455cba7ab 100644
- --- a/package/boot/uboot-rockchip/patches/015-uboot-add-NanoPi-R5S-board.patch
- +++ b/package/boot/uboot-rockchip/patches/015-uboot-add-NanoPi-R5S-board.patch
- @@ -26,11 +26,11 @@ Signed-off-by: Marty Jones <[email protected]>
- --- a/arch/arm/dts/Makefile
- +++ b/arch/arm/dts/Makefile
- @@ -166,6 +166,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- +
- dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- - rk3568-bpi-r2-pro.dtb \
- rk3568-evb.dtb \
- + rk3568-nanopi-r5s.dtb \
- - rk3566-quartz64-a.dtb \
- + rk3566-radxa-cm3-io.dtb \
- rk3568-rock-3a.dtb
-
- --- /dev/null
- @@ -41,7 +41,7 @@ Signed-off-by: Marty Jones <[email protected]>
- + * (C) Copyright 2021 Rockchip Electronics Co., Ltd
- + */
- +
- -+#include "rk3568-u-boot.dtsi"
- ++#include "rk356x-u-boot.dtsi"
- +
- +/ {
- + chosen {
- @@ -73,175 +73,97 @@ Signed-off-by: Marty Jones <[email protected]>
- + model = "FriendlyElec NanoPi R5S";
- + compatible = "friendlyelec,nanopi-r5s", "rockchip,rk3568";
- +};
- ---- a/arch/arm/mach-rockchip/rk3568/Kconfig
- -+++ b/arch/arm/mach-rockchip/rk3568/Kconfig
- -@@ -13,6 +13,11 @@ config TARGET_EVB_RK3568
- - help
- - RK3568 EVB is a evaluation board for Rockchp RK3568.
- -
- -+config TARGET_NANOPI_R5S_RK3568
- -+ bool "NanoPi R5S board"
- -+ help
- -+ NanoPi R5S FriendlyElec is a board for Rockchp RK3568.
- -+
- - config TARGET_QUARTZ64_A_RK3566
- - bool "Quartz64 Model A RK3566 development board"
- - help
- -@@ -39,6 +44,7 @@ config SYS_MALLOC_F_LEN
- -
- - source "board/rockchip/bpi-r2-pro-rk3568/Kconfig"
- - source "board/rockchip/evb_rk3568/Kconfig"
- -+source "board/friendlyelec/nanopi-r5s-rk3568/Kconfig"
- - source "board/pine64/quartz64-a-rk3566/Kconfig"
- - source "board/radxa/rock-3a-rk3568/Kconfig"
- -
- ---- /dev/null
- -+++ b/board/friendlyelec/nanopi-r5s-rk3568/Kconfig
- -@@ -0,0 +1,15 @@
- -+if TARGET_NANOPI_R5S_RK3568
- -+
- -+config SYS_BOARD
- -+ default "nanopi-r5s-rk3568"
- -+
- -+config SYS_VENDOR
- -+ default "friendlyelec"
- -+
- -+config SYS_CONFIG_NAME
- -+ default "nanopi-r5s-rk3568"
- -+
- -+config BOARD_SPECIFIC_OPTIONS # dummy
- -+ def_bool y
- -+
- -+endif
- ---- /dev/null
- -+++ b/board/friendlyelec/nanopi-r5s-rk3568/Makefile
- -@@ -0,0 +1,4 @@
- -+# SPDX-License-Identifier: GPL-2.0+
- -+#
- -+
- -+obj-y += nanopi-r5s-rk3568.o
- ---- /dev/null
- -+++ b/board/friendlyelec/nanopi-r5s-rk3568/nanopi-r5s-rk3568.c
- -@@ -0,0 +1,4 @@
- -+ // SPDX-License-Identifier: GPL-2.0+
- -+/*
- -+ *
- -+ */
- --- /dev/null
- +++ b/configs/nanopi-r5s-rk3568_defconfig
- -@@ -0,0 +1,98 @@
- +@@ -0,0 +1,91 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-nanopi-r5s"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- +CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- ++CONFIG_SPL_BOARD_INIT=y
- +CONFIG_SPL_MMC=y
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- -+CONFIG_TARGET_NANOPI_R5S_RK3568=y
- ++CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- -+CONFIG_API=y
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-nanopi-r5s.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- ++CONFIG_SPL_ADC=y
- +CONFIG_SPL_ATF=y
- -+CONFIG_SPL_ATF_LOAD_IMAGE_V2=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- ++CONFIG_CMD_ADC=y
- +CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- +CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- +CONFIG_CMD_REGULATOR=y
- ++# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- +CONFIG_OF_LIVE=y
- +CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- ++CONFIG_SUPPORT_EMMC_RPMB=y
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- +CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- +CONFIG_DM_REGULATOR_FIXED=y
- +CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- +CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- -+CONFIG_SYSRESET_PSCI=y
- +CONFIG_USB=y
- +CONFIG_USB_XHCI_HCD=y
- +CONFIG_USB_XHCI_DWC3=y
- +CONFIG_USB_EHCI_HCD=y
- +CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- +CONFIG_USB_DWC3=y
- +CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- +CONFIG_ERRNO_STR=y
- ---- /dev/null
- -+++ b/include/configs/nanopi-r5s-rk3568.h
- -@@ -0,0 +1,14 @@
- -+/* SPDX-License-Identifier: GPL-2.0+ */
- -+
- -+#ifndef __NANOPI_R5S_RK3568_H
- -+#define __NANOPI_R5S_RK3568_H
- -+
- -+#include <configs/rk3568_common.h>
- -+
- -+#define CONFIG_SUPPORT_EMMC_RPMB
- -+
- -+#define ROCKCHIP_DEVICE_SETTINGS \
- -+ "stdout=serial,vidconsole\0" \
- -+ "stderr=serial,vidconsole\0"
- -+
- -+#endif
- diff --git a/package/boot/uboot-rockchip/patches/016-rk356x-ddr-fix-dbw-detect-bug.patch b/package/boot/uboot-rockchip/patches/016-rk356x-ddr-fix-dbw-detect-bug.patch
- deleted file mode 100644
- index 563c6c29ac17..000000000000
- --- a/package/boot/uboot-rockchip/patches/016-rk356x-ddr-fix-dbw-detect-bug.patch
- +++ /dev/null
- @@ -1,42 +0,0 @@
- -From c9a8a3b5fb4ae210c5a5acb1538b0e961c5d1421 Mon Sep 17 00:00:00 2001
- -From: Tang Yun ping <[email protected]>
- -Date: Wed, 23 Jun 2021 19:48:59 +0800
- -Subject: [PATCH] rk356x: ddr: fix dbw detect bug
- -
- -Signed-off-by: Tang Yun ping <[email protected]>
- -Change-Id: Ifadad00853eb0ad43a68f12335fd243e6a1bc04b
- ----
- - drivers/ram/rockchip/sdram_common.c | 12 ++++++------
- - 1 file changed, 6 insertions(+), 6 deletions(-)
- -
- ---- a/drivers/ram/rockchip/sdram_common.c
- -+++ b/drivers/ram/rockchip/sdram_common.c
- -@@ -299,22 +299,22 @@ int sdram_detect_dbw(struct sdram_cap_info *cap_info, u32 dram_type)
- - bw = cap_info->bw;
- - cs_cap = (1 << (row + col + bk + bw - 20));
- - if (bw == 2) {
- -- if (cs_cap <= 0x2000000) /* 256Mb */
- -+ if (cs_cap <= 0x20) /* 256Mb */
- - die_bw_0 = (col < 9) ? 2 : 1;
- -- else if (cs_cap <= 0x10000000) /* 2Gb */
- -+ else if (cs_cap <= 0x100) /* 2Gb */
- - die_bw_0 = (col < 10) ? 2 : 1;
- -- else if (cs_cap <= 0x40000000) /* 8Gb */
- -+ else if (cs_cap <= 0x400) /* 8Gb */
- - die_bw_0 = (col < 11) ? 2 : 1;
- - else
- - die_bw_0 = (col < 12) ? 2 : 1;
- - if (cs > 1) {
- - row = cap_info->cs1_row;
- - cs_cap = (1 << (row + col + bk + bw - 20));
- -- if (cs_cap <= 0x2000000) /* 256Mb */
- -+ if (cs_cap <= 0x20) /* 256Mb */
- - die_bw_0 = (col < 9) ? 2 : 1;
- -- else if (cs_cap <= 0x10000000) /* 2Gb */
- -+ else if (cs_cap <= 0x100) /* 2Gb */
- - die_bw_0 = (col < 10) ? 2 : 1;
- -- else if (cs_cap <= 0x40000000) /* 8Gb */
- -+ else if (cs_cap <= 0x400) /* 8Gb */
- - die_bw_0 = (col < 11) ? 2 : 1;
- - else
- - die_bw_0 = (col < 12) ? 2 : 1;
- diff --git a/package/boot/uboot-rockchip/patches/017-gpio-rockchip-fix-building-for-spl.patch b/package/boot/uboot-rockchip/patches/017-gpio-rockchip-fix-building-for-spl.patch
- deleted file mode 100644
- index 9632bbf5a73b..000000000000
- --- a/package/boot/uboot-rockchip/patches/017-gpio-rockchip-fix-building-for-spl.patch
- +++ /dev/null
- @@ -1,44 +0,0 @@
- -From c7496009386dbac8f8d18a94258031f30683d7c6 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 20 Feb 2022 07:59:02 -0500
- -Subject: [PATCH] gpio: rockchip: fix building for spl
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - drivers/gpio/rk_gpio.c | 2 +-
- - 1 file changed, 1 insertion(+), 1 deletion(-)
- -
- ---- a/common/spl/Kconfig
- -+++ b/common/spl/Kconfig
- -@@ -454,6 +454,11 @@ config SPL_FIT_IMAGE_TINY
- - ensure this information is available to the next image
- - invoked).
- -
- -+config SPL_ADC
- -+ bool "Support ADC drivers in SPL"
- -+ help
- -+ Enable ADC drivers in SPL.
- -+
- - config SPL_CACHE
- - bool "Support CACHE drivers"
- - help
- ---- a/drivers/Makefile
- -+++ b/drivers/Makefile
- -@@ -1,5 +1,6 @@
- - # SPDX-License-Identifier: GPL-2.0+
- -
- -+obj-$(CONFIG_$(SPL_)ADC) += adc/
- - obj-$(CONFIG_$(SPL_TPL_)BOOTCOUNT_LIMIT) += bootcount/
- - obj-$(CONFIG_$(SPL_TPL_)BUTTON) += button/
- - obj-$(CONFIG_$(SPL_TPL_)CACHE) += cache/
- ---- a/drivers/gpio/rk_gpio.c
- -+++ b/drivers/gpio/rk_gpio.c
- -@@ -118,7 +118,7 @@ static int rockchip_gpio_get_function(struct udevice *dev, unsigned offset)
- - }
- -
- - /* Simple SPL interface to GPIOs */
- --#ifdef CONFIG_SPL_BUILD
- -+#if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_ROCKCHIP_GPIO_V2)
- -
- - enum {
- - PULL_NONE_1V8 = 0,
- diff --git a/package/boot/uboot-rockchip/patches/018-clk-rockchip-rk3568-fix-reset-handler.patch b/package/boot/uboot-rockchip/patches/018-clk-rockchip-rk3568-fix-reset-handler.patch
- deleted file mode 100644
- index 632394a89868..000000000000
- --- a/package/boot/uboot-rockchip/patches/018-clk-rockchip-rk3568-fix-reset-handler.patch
- +++ /dev/null
- @@ -1,28 +0,0 @@
- -From 5011ceb0da47f7c3d54d20b45b7df884e6e92ac5 Mon Sep 17 00:00:00 2001
- -From: Peter Geis <[email protected]>
- -Date: Sun, 20 Feb 2022 07:58:38 -0500
- -Subject: [PATCH] clk: rockchip: rk3568: fix reset handler
- -
- -Signed-off-by: Peter Geis <[email protected]>
- ----
- - drivers/clk/rockchip/clk_rk3568.c | 2 ++
- - 1 file changed, 2 insertions(+)
- -
- ---- a/drivers/clk/rockchip/clk_rk3568.c
- -+++ b/drivers/clk/rockchip/clk_rk3568.c
- -@@ -14,6 +14,7 @@
- - #include <asm/arch-rockchip/clock.h>
- - #include <asm/arch-rockchip/hardware.h>
- - #include <asm/io.h>
- -+#include <dm/device-internal.h>
- - #include <dm/lists.h>
- - #include <dt-bindings/clock/rk3568-cru.h>
- -
- -@@ -2934,6 +2935,7 @@ static int rk3568_clk_bind(struct udevice *dev)
- - glb_srst_fst);
- - priv->glb_srst_snd_value = offsetof(struct rk3568_cru,
- - glb_srsr_snd);
- -+ dev_set_priv(sys_child, priv);
- - }
- -
- - #if CONFIG_IS_ENABLED(RESET_ROCKCHIP)
- diff --git a/package/boot/uboot-rockchip/patches/018-driver-Makefile-support-adc-in-SPL.patch b/package/boot/uboot-rockchip/patches/018-driver-Makefile-support-adc-in-SPL.patch
- new file mode 100644
- index 000000000000..072abfc2e0df
- --- /dev/null
- +++ b/package/boot/uboot-rockchip/patches/018-driver-Makefile-support-adc-in-SPL.patch
- @@ -0,0 +1,35 @@
- +From 2d7c904f271ffd19086cafe7cd6548ec5b1a5a83 Mon Sep 17 00:00:00 2001
- +From: Jason Zhu <[email protected]>
- +Date: Thu, 12 Mar 2020 15:04:51 +0800
- +Subject: [PATCH] driver: Makefile: support adc in SPL
- +
- +Signed-off-by: Jason Zhu <[email protected]>
- +Change-Id: I915becbf9597aa070001d3368d8daf9079565fc9
- +---
- + common/spl/Kconfig | 6 ++++++
- + drivers/Makefile | 2 +-
- + 2 files changed, 7 insertions(+), 1 deletion(-)
- +
- +--- a/common/spl/Kconfig
- ++++ b/common/spl/Kconfig
- +@@ -587,6 +587,11 @@ config SPL_FIT_IMAGE_TINY
- + ensure this information is available to the next image
- + invoked).
- +
- ++config SPL_ADC
- ++ bool "Support ADC drivers in SPL"
- ++ help
- ++ Enable ADC drivers in SPL.
- ++
- + config SPL_CACHE
- + bool "Support CACHE drivers"
- + help
- +--- a/drivers/Makefile
- ++++ b/drivers/Makefile
- +@@ -1,5 +1,6 @@
- + # SPDX-License-Identifier: GPL-2.0+
- +
- ++obj-$(CONFIG_$(SPL_)ADC) += adc/
- + obj-$(CONFIG_$(SPL_TPL_)BLK) += block/
- + obj-$(CONFIG_$(SPL_TPL_)BOOTCOUNT_LIMIT) += bootcount/
- + obj-$(CONFIG_$(SPL_TPL_)BUTTON) += button/
- diff --git a/package/boot/uboot-rockchip/patches/019-rockchip-handle-bootrom-mode-in-spl.patch b/package/boot/uboot-rockchip/patches/019-rockchip-handle-bootrom-mode-in-spl.patch
- index df7acc398149..54a452d7bc3e 100644
- --- a/package/boot/uboot-rockchip/patches/019-rockchip-handle-bootrom-mode-in-spl.patch
- +++ b/package/boot/uboot-rockchip/patches/019-rockchip-handle-bootrom-mode-in-spl.patch
- @@ -19,7 +19,7 @@ Signed-off-by: Peter Geis <[email protected]>
- -ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
- -
- # Always include boot_mode.o, as we bypass it (i.e. turn it off)
- - # inside of boot_mode.c when CONFIG_BOOT_MODE_REG is 0. This way,
- + # inside of boot_mode.c when CONFIG_ROCKCHIP_BOOT_MODE_REG is 0. This way,
- # we can have the preprocessor correctly recognise both 0x0 and 0
- # meaning "turn it off".
- -obj-y += boot_mode.o
- @@ -116,9 +116,9 @@ Signed-off-by: Peter Geis <[email protected]>
- return 0;
- }
- @@ -164,3 +193,26 @@ int ft_system_setup(void *blob, struct bd_info *bd)
- - return 0;
- - };
- #endif
- + return 0;
- + }
- +
- +#ifdef CONFIG_SPL_BUILD
- +
- diff --git a/package/boot/uboot-rockchip/patches/100-Convert-CONFIG_USB_OHCI_NEW-et-al-to-Kconfig.patch b/package/boot/uboot-rockchip/patches/100-Convert-CONFIG_USB_OHCI_NEW-et-al-to-Kconfig.patch
- deleted file mode 100644
- index ff5a97f33215..000000000000
- --- a/package/boot/uboot-rockchip/patches/100-Convert-CONFIG_USB_OHCI_NEW-et-al-to-Kconfig.patch
- +++ /dev/null
- @@ -1,282 +0,0 @@
- -From cd6a45a41fb2c19884ac87afade87b4d53601929 Mon Sep 17 00:00:00 2001
- -From: Tom Rini <[email protected]>
- -Date: Sat, 25 Jun 2022 11:02:31 -0400
- -Subject: [PATCH] Convert CONFIG_USB_OHCI_NEW et al to Kconfig
- -
- -This converts the following to Kconfig:
- - CONFIG_SYS_OHCI_SWAP_REG_ACCESS
- - CONFIG_SYS_USB_OHCI_CPU_INIT
- - CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS
- - CONFIG_SYS_USB_OHCI_SLOT_NAME
- - CONFIG_USB_ATMEL
- - CONFIG_USB_ATMEL_CLK_SEL_PLLB
- - CONFIG_USB_ATMEL_CLK_SEL_UPLL
- - CONFIG_USB_OHCI_LPC32XX
- - CONFIG_USB_OHCI_NEW
- -
- -Signed-off-by: Tom Rini <[email protected]>
- ----
- -
- -diff --git a/configs/evb-rk3328_defconfig b/configs/evb-rk3328_defconfig
- -index 4d6d235cb125..c81437300c74 100644
- ---- a/configs/evb-rk3328_defconfig
- -+++ b/configs/evb-rk3328_defconfig
- -@@ -99,6 +99,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- - CONFIG_USB_DWC2=y
- - CONFIG_USB_DWC3=y
- - # CONFIG_USB_DWC3_GADGET is not set
- -diff --git a/configs/nanopi-r2s-rk3328_defconfig b/configs/nanopi-r2s-rk3328_defconfig
- -index 41793ca7e486..15c2e1698c20 100644
- ---- a/configs/nanopi-r2s-rk3328_defconfig
- -+++ b/configs/nanopi-r2s-rk3328_defconfig
- -@@ -102,6 +102,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- - CONFIG_USB_DWC2=y
- - CONFIG_USB_DWC3=y
- - # CONFIG_USB_DWC3_GADGET is not set
- -diff --git a/configs/roc-cc-rk3328_defconfig b/configs/roc-cc-rk3328_defconfig
- -index ab25abc1a031..43b90c7879b7 100644
- ---- a/configs/roc-cc-rk3328_defconfig
- -+++ b/configs/roc-cc-rk3328_defconfig
- -@@ -108,6 +108,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- - CONFIG_USB_DWC2=y
- - CONFIG_USB_DWC3=y
- - # CONFIG_USB_DWC3_GADGET is not set
- -diff --git a/configs/rock-pi-e-rk3328_defconfig b/configs/rock-pi-e-rk3328_defconfig
- -index 1d51a267b93a..7d95e171f7f4 100644
- ---- a/configs/rock-pi-e-rk3328_defconfig
- -+++ b/configs/rock-pi-e-rk3328_defconfig
- -@@ -109,6 +109,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- - CONFIG_USB_DWC2=y
- - CONFIG_USB_DWC3=y
- - # CONFIG_USB_DWC3_GADGET is not set
- -diff --git a/configs/rock64-rk3328_defconfig b/configs/rock64-rk3328_defconfig
- -index 640fe558d414..bc333a5e2a6a 100644
- ---- a/configs/rock64-rk3328_defconfig
- -+++ b/configs/rock64-rk3328_defconfig
- -@@ -106,6 +106,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- - CONFIG_USB_DWC2=y
- - CONFIG_USB_DWC3=y
- - # CONFIG_USB_DWC3_GADGET is not set
- -diff --git a/configs/rock960-rk3399_defconfig b/configs/rock960-rk3399_defconfig
- -index 78e50dbfbcb7..bb5b2143691d 100644
- ---- a/configs/rock960-rk3399_defconfig
- -+++ b/configs/rock960-rk3399_defconfig
- -@@ -74,6 +74,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- - CONFIG_USB_DWC3=y
- - CONFIG_USB_KEYBOARD=y
- - CONFIG_USB_HOST_ETHER=y
- -diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig
- -index 4d2a5b32e31c..ef28fe6a937a 100644
- ---- a/configs/rockpro64-rk3399_defconfig
- -+++ b/configs/rockpro64-rk3399_defconfig
- -@@ -87,6 +87,7 @@ CONFIG_USB_EHCI_HCD=y
- - CONFIG_USB_EHCI_GENERIC=y
- - CONFIG_USB_OHCI_HCD=y
- - CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- - CONFIG_USB_DWC3=y
- - CONFIG_USB_DWC3_GENERIC=y
- - CONFIG_USB_KEYBOARD=y
- -diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
- -index 0b82c2fdaf71..31ae9f74e7ac 100644
- ---- a/drivers/usb/host/Kconfig
- -+++ b/drivers/usb/host/Kconfig
- -@@ -297,10 +297,17 @@ config USB_EHCI_TXFIFO_THRESH
- - Enables support for the on-chip EHCI controller on FSL chips.
- - endif # USB_EHCI_HCD
- -
- -+config USB_OHCI_NEW
- -+ bool
- -+
- -+config SYS_USB_OHCI_CPU_INIT
- -+ bool
- -+
- - config USB_OHCI_HCD
- - bool "OHCI HCD (USB 1.1) support"
- - depends on DM && OF_CONTROL
- - select USB_HOST
- -+ select USB_OHCI_NEW
- - ---help---
- - The Open Host Controller Interface (OHCI) is a standard for accessing
- - USB 1.1 host controller hardware. It does more in hardware than Intel's
- -@@ -332,6 +339,19 @@ config USB_OHCI_DA8XX
- -
- - endif # USB_OHCI_HCD
- -
- -+config SYS_USB_OHCI_SLOT_NAME
- -+ string "Display name for the OHCI controller"
- -+ depends on USB_OHCI_NEW && !DM_USB
- -+
- -+config SYS_USB_OHCI_MAX_ROOT_PORTS
- -+ int "Maximal number of ports of the root hub"
- -+ depends on USB_OHCI_NEW
- -+ default 1 if ARCH_SUNXI
- -+
- -+config SYS_OHCI_SWAP_REG_ACCESS
- -+ bool "Perform byte swapping on OHCI controller register accesses"
- -+ depends on USB_OHCI_NEW
- -+
- - config USB_UHCI_HCD
- - bool "UHCI HCD (most Intel and VIA) support"
- - select USB_HOST
- -@@ -381,3 +401,27 @@ config USB_R8A66597_HCD
- - ---help---
- - This enables support for the on-chip Renesas R8A66597 USB 2.0
- - controller, present in various RZ and SH SoCs.
- -+
- -+config USB_ATMEL
- -+ bool "AT91 OHCI USB support"
- -+ depends on ARCH_AT91
- -+ select SYS_USB_OHCI_CPU_INIT
- -+ select USB_OHCI_NEW
- -+
- -+choice
- -+ prompt "Clock for OHCI"
- -+ depends on USB_ATMEL
- -+
- -+config USB_ATMEL_CLK_SEL_PLLB
- -+ bool "PLLB"
- -+
- -+config USB_ATMEL_CLK_SEL_UPLL
- -+ bool "UPLL"
- -+
- -+endchoice
- -+
- -+config USB_OHCI_LPC32XX
- -+ bool "LPC32xx USB OHCI support"
- -+ depends on ARCH_LPC32XX
- -+ select SYS_USB_OHCI_CPU_INIT
- -+ select USB_OHCI_NEW
- -diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
- -index 8ceabaf45c1b..9b955c1bd678 100644
- ---- a/drivers/usb/host/ohci-at91.c
- -+++ b/drivers/usb/host/ohci-at91.c
- -@@ -5,9 +5,6 @@
- - */
- -
- - #include <common.h>
- --
- --#if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)
- --
- - #include <asm/arch/clk.h>
- -
- - int usb_cpu_init(void)
- -@@ -65,5 +62,3 @@ int usb_cpu_init_fail(void)
- - {
- - return usb_cpu_stop();
- - }
- --
- --#endif /* defined(CONFIG_USB_OHCI) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) */
- -diff --git a/drivers/usb/host/ohci-generic.c b/drivers/usb/host/ohci-generic.c
- -index 163f0ef17b11..5d23058aaf6a 100644
- ---- a/drivers/usb/host/ohci-generic.c
- -+++ b/drivers/usb/host/ohci-generic.c
- -@@ -14,10 +14,6 @@
- - #include <reset.h>
- - #include "ohci.h"
- -
- --#if !defined(CONFIG_USB_OHCI_NEW)
- --# error "Generic OHCI driver requires CONFIG_USB_OHCI_NEW"
- --#endif
- --
- - struct generic_ohci {
- - ohci_t ohci;
- - struct clk *clocks; /* clock list */
- -diff --git a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h
- -index a38cd25eb85f..7699f2e6b15a 100644
- ---- a/drivers/usb/host/ohci.h
- -+++ b/drivers/usb/host/ohci.h
- -@@ -151,7 +151,7 @@ struct ohci_hcca {
- - * Maximum number of root hub ports.
- - */
- - #ifndef CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS
- --# error "CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS undefined!"
- -+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 1
- - #endif
- -
- - /*
- -diff --git a/include/configs/evb_rk3399.h b/include/configs/evb_rk3399.h
- -index 492b7b4df128..b7e850370b31 100644
- ---- a/include/configs/evb_rk3399.h
- -+++ b/include/configs/evb_rk3399.h
- -@@ -15,7 +15,4 @@
- -
- - #define SDRAM_BANK_SIZE (2UL << 30)
- -
- --#define CONFIG_USB_OHCI_NEW
- --#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
- --
- - #endif
- -diff --git a/include/configs/gru.h b/include/configs/gru.h
- -index b1084bb21d4d..be2dc79968c0 100644
- ---- a/include/configs/gru.h
- -+++ b/include/configs/gru.h
- -@@ -13,7 +13,4 @@
- -
- - #include <configs/rk3399_common.h>
- -
- --#define CONFIG_USB_OHCI_NEW
- --#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
- --
- - #endif
- -diff --git a/include/configs/rk3328_common.h b/include/configs/rk3328_common.h
- -index 90183579202d..165b78ff3309 100644
- ---- a/include/configs/rk3328_common.h
- -+++ b/include/configs/rk3328_common.h
- -@@ -30,8 +30,4 @@
- - "partitions=" PARTS_DEFAULT \
- - BOOTENV
- -
- --/* rockchip ohci host driver */
- --#define CONFIG_USB_OHCI_NEW
- --#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 1
- --
- - #endif
- -diff --git a/include/configs/rock960_rk3399.h b/include/configs/rock960_rk3399.h
- -index 2edad710284f..6099d2fa55a6 100644
- ---- a/include/configs/rock960_rk3399.h
- -+++ b/include/configs/rock960_rk3399.h
- -@@ -14,7 +14,4 @@
- - #include <configs/rk3399_common.h>
- -
- - #define SDRAM_BANK_SIZE (2UL << 30)
- --
- --#define CONFIG_USB_OHCI_NEW
- --#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
- - #endif
- -diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h
- -index 903e9df527c1..9195b9b99e41 100644
- ---- a/include/configs/rockpro64_rk3399.h
- -+++ b/include/configs/rockpro64_rk3399.h
- -@@ -14,7 +14,4 @@
- - #include <configs/rk3399_common.h>
- -
- - #define SDRAM_BANK_SIZE (2UL << 30)
- --
- --#define CONFIG_USB_OHCI_NEW
- --#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
- - #endif
- diff --git a/package/boot/uboot-rockchip/patches/104-mkimage-add-public-key-for-image.patch b/package/boot/uboot-rockchip/patches/104-mkimage-add-public-key-for-image.patch
- deleted file mode 100644
- index 8c8e79cf17ff..000000000000
- --- a/package/boot/uboot-rockchip/patches/104-mkimage-add-public-key-for-image.patch
- +++ /dev/null
- @@ -1,166 +0,0 @@
- ---- a/include/image.h
- -+++ b/include/image.h
- -@@ -1020,21 +1020,6 @@ int fit_image_hash_get_value(const void
- -
- - int fit_set_timestamp(void *fit, int noffset, time_t timestamp);
- -
- --/**
- -- * fit_pre_load_data() - add public key to fdt blob
- -- *
- -- * Adds public key to the node pre load.
- -- *
- -- * @keydir: Directory containing keys
- -- * @keydest: FDT blob to write public key
- -- * @fit: Pointer to the FIT format image header
- -- *
- -- * returns:
- -- * 0, on success
- -- * < 0, on failure
- -- */
- --int fit_pre_load_data(const char *keydir, void *keydest, void *fit);
- --
- - int fit_cipher_data(const char *keydir, void *keydest, void *fit,
- - const char *comment, int require_keys,
- - const char *engine_id, const char *cmdname);
- ---- a/tools/fit_image.c
- -+++ b/tools/fit_image.c
- -@@ -59,9 +59,6 @@ static int fit_add_file_data(struct imag
- - ret = fit_set_timestamp(ptr, 0, time);
- - }
- -
- -- if (!ret)
- -- ret = fit_pre_load_data(params->keydir, dest_blob, ptr);
- --
- - if (!ret) {
- - ret = fit_cipher_data(params->keydir, dest_blob, ptr,
- - params->comment,
- ---- a/tools/image-host.c
- -+++ b/tools/image-host.c
- -@@ -14,11 +14,6 @@
- - #include <image.h>
- - #include <version.h>
- -
- --#include <openssl/pem.h>
- --#include <openssl/evp.h>
- --
- --#define IMAGE_PRE_LOAD_PATH "/image/pre-load/sig"
- --
- - /**
- - * fit_set_hash_value - set hash value in requested has node
- - * @fit: pointer to the FIT format image header
- -@@ -1116,115 +1111,6 @@ static int fit_config_add_verification_d
- - return 0;
- - }
- -
- --/*
- -- * 0) open file (open)
- -- * 1) read certificate (PEM_read_X509)
- -- * 2) get public key (X509_get_pubkey)
- -- * 3) provide der format (d2i_RSAPublicKey)
- -- */
- --static int read_pub_key(const char *keydir, const void *name,
- -- unsigned char **pubkey, int *pubkey_len)
- --{
- -- char path[1024];
- -- EVP_PKEY *key = NULL;
- -- X509 *cert;
- -- FILE *f;
- -- int ret;
- --
- -- memset(path, 0, 1024);
- -- snprintf(path, sizeof(path), "%s/%s.crt", keydir, (char *)name);
- --
- -- /* Open certificate file */
- -- f = fopen(path, "r");
- -- if (!f) {
- -- fprintf(stderr, "Couldn't open RSA certificate: '%s': %s\n",
- -- path, strerror(errno));
- -- return -EACCES;
- -- }
- --
- -- /* Read the certificate */
- -- cert = NULL;
- -- if (!PEM_read_X509(f, &cert, NULL, NULL)) {
- -- printf("Couldn't read certificate");
- -- ret = -EINVAL;
- -- goto err_cert;
- -- }
- --
- -- /* Get the public key from the certificate. */
- -- key = X509_get_pubkey(cert);
- -- if (!key) {
- -- printf("Couldn't read public key\n");
- -- ret = -EINVAL;
- -- goto err_pubkey;
- -- }
- --
- -- /* Get DER form */
- -- ret = i2d_PublicKey(key, pubkey);
- -- if (ret < 0) {
- -- printf("Couldn't get DER form\n");
- -- ret = -EINVAL;
- -- goto err_pubkey;
- -- }
- --
- -- *pubkey_len = ret;
- -- ret = 0;
- --
- --err_pubkey:
- -- X509_free(cert);
- --err_cert:
- -- fclose(f);
- -- return ret;
- --}
- --
- --int fit_pre_load_data(const char *keydir, void *keydest, void *fit)
- --{
- -- int pre_load_noffset;
- -- const void *algo_name;
- -- const void *key_name;
- -- unsigned char *pubkey = NULL;
- -- int ret, pubkey_len;
- --
- -- if (!keydir || !keydest || !fit)
- -- return 0;
- --
- -- /* Search node pre-load sig */
- -- pre_load_noffset = fdt_path_offset(keydest, IMAGE_PRE_LOAD_PATH);
- -- if (pre_load_noffset < 0) {
- -- ret = 0;
- -- goto out;
- -- }
- --
- -- algo_name = fdt_getprop(keydest, pre_load_noffset, "algo-name", NULL);
- -- key_name = fdt_getprop(keydest, pre_load_noffset, "key-name", NULL);
- --
- -- /* Check that all mandatory properties are present */
- -- if (!algo_name || !key_name) {
- -- if (!algo_name)
- -- printf("The property algo-name is missing in the node %s\n",
- -- IMAGE_PRE_LOAD_PATH);
- -- if (!key_name)
- -- printf("The property key-name is missing in the node %s\n",
- -- IMAGE_PRE_LOAD_PATH);
- -- ret = -EINVAL;
- -- goto out;
- -- }
- --
- -- /* Read public key */
- -- ret = read_pub_key(keydir, key_name, &pubkey, &pubkey_len);
- -- if (ret < 0)
- -- goto out;
- --
- -- /* Add the public key to the device tree */
- -- ret = fdt_setprop(keydest, pre_load_noffset, "public-key",
- -- pubkey, pubkey_len);
- -- if (ret)
- -- printf("Can't set public-key in node %s (ret = %d)\n",
- -- IMAGE_PRE_LOAD_PATH, ret);
- --
- -- out:
- -- return ret;
- --}
- --
- - int fit_cipher_data(const char *keydir, void *keydest, void *fit,
- - const char *comment, int require_keys,
- - const char *engine_id, const char *cmdname)
- diff --git a/package/boot/uboot-rockchip/patches/105-Only-build-dtc-if-needed.patch b/package/boot/uboot-rockchip/patches/105-Only-build-dtc-if-needed.patch
- deleted file mode 100644
- index ad0407708d85..000000000000
- --- a/package/boot/uboot-rockchip/patches/105-Only-build-dtc-if-needed.patch
- +++ /dev/null
- @@ -1,125 +0,0 @@
- ---- a/Makefile
- -+++ b/Makefile
- -@@ -413,13 +413,7 @@ PERL = perl
- - PYTHON ?= python
- - PYTHON2 = python2
- - PYTHON3 ?= python3
- --
- --# The devicetree compiler and pylibfdt are automatically built unless DTC is
- --# provided. If DTC is provided, it is assumed the pylibfdt is available too.
- --DTC_INTREE := $(objtree)/scripts/dtc/dtc
- --DTC ?= $(DTC_INTREE)
- --DTC_MIN_VERSION := 010406
- --
- -+DTC ?= $(objtree)/scripts/dtc/dtc
- - CHECK = sparse
- -
- - CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
- -@@ -2070,29 +2064,9 @@ endif
- -
- - endif
- -
- --# Check dtc and pylibfdt, if DTC is provided, else build them
- - PHONY += scripts_dtc
- - scripts_dtc: scripts_basic
- -- $(Q)if test "$(DTC)" = "$(DTC_INTREE)"; then \
- -- $(MAKE) $(build)=scripts/dtc; \
- -- else \
- -- if ! $(DTC) -v >/dev/null; then \
- -- echo '*** Failed to check dtc version: $(DTC)'; \
- -- false; \
- -- else \
- -- if test "$(call dtc-version)" -lt $(DTC_MIN_VERSION); then \
- -- echo '*** Your dtc is too old, please upgrade to dtc $(DTC_MIN_VERSION) or newer'; \
- -- false; \
- -- else \
- -- if [ -n "$(CONFIG_PYLIBFDT)" ]; then \
- -- if ! echo "import libfdt" | $(PYTHON3) 2>/dev/null; then \
- -- echo '*** pylibfdt does not seem to be available with $(PYTHON3)'; \
- -- false; \
- -- fi; \
- -- fi; \
- -- fi; \
- -- fi; \
- -- fi
- -+ $(Q)$(MAKE) $(build)=scripts/dtc
- -
- - # ---------------------------------------------------------------------------
- - quiet_cmd_cpp_lds = LDS $@
- ---- a/doc/build/gcc.rst
- -+++ b/doc/build/gcc.rst
- -@@ -131,27 +131,6 @@ Further important build parameters are
- - * O=<dir> - generate all output files in directory <dir>, including .config
- - * V=1 - verbose build
- -
- --Devicetree compiler
- --~~~~~~~~~~~~~~~~~~~
- --
- --Boards that use `CONFIG_OF_CONTROL` (i.e. almost all of them) need the
- --devicetree compiler (dtc). Those with `CONFIG_PYLIBFDT` need pylibfdt, a Python
- --library for accessing devicetree data. Suitable versions of these are included
- --in the U-Boot tree in `scripts/dtc` and built automatically as needed.
- --
- --To use the system versions of these, use the DTC parameter, for example
- --
- --.. code-block:: bash
- --
- -- DTC=/usr/bin/dtc make
- --
- --In this case, dtc and pylibfdt are not built. The build checks that the version
- --of dtc is new enough. It also makes sure that pylibfdt is present, if needed
- --(see `scripts_dtc` in the Makefile).
- --
- --Note that the :doc:`tools` are always built with the included version of libfdt
- --so it is not possible to build U-Boot tools with a system libfdt, at present.
- --
- - Other build targets
- - ~~~~~~~~~~~~~~~~~~~
- -
- ---- a/dts/Kconfig
- -+++ b/dts/Kconfig
- -@@ -5,6 +5,9 @@
- - config SUPPORT_OF_CONTROL
- - bool
- -
- -+config DTC
- -+ bool
- -+
- - config PYLIBFDT
- - bool
- -
- -@@ -21,6 +24,7 @@ menu "Device Tree Control"
- -
- - config OF_CONTROL
- - bool "Run-time configuration via Device Tree"
- -+ select DTC
- - select OF_LIBFDT if !OF_PLATDATA
- - select OF_REAL if !OF_PLATDATA
- - help
- ---- a/scripts/Makefile
- -+++ b/scripts/Makefile
- -@@ -10,3 +10,4 @@ always := $(hostprogs-y)
- -
- - # Let clean descend into subdirs
- - subdir- += basic kconfig dtc
- -+subdir-$(CONFIG_DTC) += dtc
- ---- a/scripts/dtc-version.sh
- -+++ b/scripts/dtc-version.sh
- -@@ -10,16 +10,11 @@
- - dtc="$*"
- -
- - if [ ${#dtc} -eq 0 ]; then
- -- echo "Error: No dtc command specified"
- -+ echo "Error: No dtc command specified."
- - printf "Usage:\n\t$0 <dtc-command>\n"
- - exit 1
- - fi
- -
- --if ! which $dtc >/dev/null ; then
- -- echo "Error: Cannot find dtc: $dtc"
- -- exit 1
- --fi
- --
- - MAJOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 1)
- - MINOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 2)
- - PATCH=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 3 | cut -d - -f 1)
- diff --git a/package/boot/uboot-rockchip/patches/106-no-kwbimage.patch b/package/boot/uboot-rockchip/patches/106-no-kwbimage.patch
- index 65d14f5bece8..224c14af9165 100644
- --- a/package/boot/uboot-rockchip/patches/106-no-kwbimage.patch
- +++ b/package/boot/uboot-rockchip/patches/106-no-kwbimage.patch
- @@ -1,6 +1,6 @@
- --- a/tools/Makefile
- +++ b/tools/Makefile
- -@@ -119,7 +119,6 @@ dumpimage-mkimage-objs := aisimage.o \
- +@@ -113,7 +113,6 @@ dumpimage-mkimage-objs := aisimage.o \
- imximage.o \
- imx8image.o \
- imx8mimage.o \
- diff --git a/package/boot/uboot-rockchip/patches/110-force-pylibfdt-build.patch b/package/boot/uboot-rockchip/patches/110-force-pylibfdt-build.patch
- new file mode 100644
- index 000000000000..d34ed6f2ae55
- --- /dev/null
- +++ b/package/boot/uboot-rockchip/patches/110-force-pylibfdt-build.patch
- @@ -0,0 +1,30 @@
- +--- a/Makefile
- ++++ b/Makefile
- +@@ -2000,26 +2000,7 @@ endif
- + # Check dtc and pylibfdt, if DTC is provided, else build them
- + PHONY += scripts_dtc
- + scripts_dtc: scripts_basic
- +- $(Q)if test "$(DTC)" = "$(DTC_INTREE)"; then \
- +- $(MAKE) $(build)=scripts/dtc; \
- +- else \
- +- if ! $(DTC) -v >/dev/null; then \
- +- echo '*** Failed to check dtc version: $(DTC)'; \
- +- false; \
- +- else \
- +- if test "$(call dtc-version)" -lt $(DTC_MIN_VERSION); then \
- +- echo '*** Your dtc is too old, please upgrade to dtc $(DTC_MIN_VERSION) or newer'; \
- +- false; \
- +- else \
- +- if [ -n "$(CONFIG_PYLIBFDT)" ]; then \
- +- if ! echo "import libfdt" | $(PYTHON3) 2>/dev/null; then \
- +- echo '*** pylibfdt does not seem to be available with $(PYTHON3)'; \
- +- false; \
- +- fi; \
- +- fi; \
- +- fi; \
- +- fi; \
- +- fi
- ++ $(MAKE) $(build)=scripts/dtc
- +
- + # ---------------------------------------------------------------------------
- + quiet_cmd_cpp_lds = LDS $@
- diff --git a/package/boot/uboot-rockchip/patches/111-fix-mkimage-host-build.patch b/package/boot/uboot-rockchip/patches/111-fix-mkimage-host-build.patch
- new file mode 100644
- index 000000000000..cd65c1321fc3
- --- /dev/null
- +++ b/package/boot/uboot-rockchip/patches/111-fix-mkimage-host-build.patch
- @@ -0,0 +1,24 @@
- +--- a/tools/image-host.c
- ++++ b/tools/image-host.c
- +@@ -1125,6 +1125,7 @@ static int fit_config_add_verification_d
- + * 2) get public key (X509_get_pubkey)
- + * 3) provide der format (d2i_RSAPublicKey)
- + */
- ++#ifdef CONFIG_TOOLS_LIBCRYPTO
- + static int read_pub_key(const char *keydir, const void *name,
- + unsigned char **pubkey, int *pubkey_len)
- + {
- +@@ -1178,6 +1179,13 @@ err_cert:
- + fclose(f);
- + return ret;
- + }
- ++#else
- ++static int read_pub_key(const char *keydir, const void *name,
- ++ unsigned char **pubkey, int *pubkey_len)
- ++{
- ++ return -ENOSYS;
- ++}
- ++#endif
- +
- + int fit_pre_load_data(const char *keydir, void *keydest, void *fit)
- + {
- diff --git a/package/boot/uboot-rockchip/patches/120-clk-scmi-Add-Kconfig-option-for-SPL.patch b/package/boot/uboot-rockchip/patches/120-clk-scmi-Add-Kconfig-option-for-SPL.patch
- new file mode 100644
- index 000000000000..bb6d96515c2f
- --- /dev/null
- +++ b/package/boot/uboot-rockchip/patches/120-clk-scmi-Add-Kconfig-option-for-SPL.patch
- @@ -0,0 +1,72 @@
- +From 734b9d9e33919efbec63b1bfe48f25ce16dbd59a Mon Sep 17 00:00:00 2001
- +From: Jonas Karlman <[email protected]>
- +Date: Fri, 17 Mar 2023 19:16:45 +0000
- +Subject: [PATCH] clk: scmi: Add Kconfig option for SPL
- +
- +Building U-Boot SPL with CLK_SCMI and SCMI_FIRMWARE Kconfig options
- +enabled and SPL_FIRMWARE disabled result in the following error.
- +
- + drivers/clk/clk_scmi.o: in function `scmi_clk_gate':
- + drivers/clk/clk_scmi.c:84: undefined reference to `devm_scmi_process_msg'
- + drivers/clk/clk_scmi.c:88: undefined reference to `scmi_to_linux_errno'
- + drivers/clk/clk_scmi.o: in function `scmi_clk_get_rate':
- + drivers/clk/clk_scmi.c:113: undefined reference to `devm_scmi_process_msg'
- + drivers/clk/clk_scmi.c:117: undefined reference to `scmi_to_linux_errno'
- + drivers/clk/clk_scmi.o: in function `scmi_clk_set_rate':
- + drivers/clk/clk_scmi.c:139: undefined reference to `devm_scmi_process_msg'
- + drivers/clk/clk_scmi.c:143: undefined reference to `scmi_to_linux_errno'
- + drivers/clk/clk_scmi.o: in function `scmi_clk_probe':
- + drivers/clk/clk_scmi.c:157: undefined reference to `devm_scmi_of_get_channel'
- + make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1
- + make: *** [Makefile:2043: spl/u-boot-spl] Error 2
- +
- +Add Kconfig option so that CLK_SCMI can be disabled in SPL to fix this.
- +
- +Signed-off-by: Jonas Karlman <[email protected]>
- +Reviewed-by: Kever Yang <[email protected]>
- +Link: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/
- +---
- + drivers/clk/Kconfig | 8 ++++++++
- + drivers/clk/Makefile | 2 +-
- + drivers/firmware/scmi/scmi_agent-uclass.c | 2 +-
- + 3 files changed, 10 insertions(+), 2 deletions(-)
- +
- +--- a/drivers/clk/Kconfig
- ++++ b/drivers/clk/Kconfig
- +@@ -166,6 +166,14 @@ config CLK_SCMI
- + by a SCMI agent based on SCMI clock protocol communication
- + with a SCMI server.
- +
- ++config SPL_CLK_SCMI
- ++ bool "Enable SCMI clock driver in SPL"
- ++ depends on SCMI_FIRMWARE && SPL_FIRMWARE
- ++ help
- ++ Enable this option if you want to support clock devices exposed
- ++ by a SCMI agent based on SCMI clock protocol communication
- ++ with a SCMI server in SPL.
- ++
- + config CLK_HSDK
- + bool "Enable cgu clock driver for HSDK boards"
- + depends on CLK && TARGET_HSDK
- +--- a/drivers/clk/Makefile
- ++++ b/drivers/clk/Makefile
- +@@ -39,7 +39,7 @@ obj-$(CONFIG_CLK_MVEBU) += mvebu/
- + obj-$(CONFIG_CLK_OCTEON) += clk_octeon.o
- + obj-$(CONFIG_CLK_OWL) += owl/
- + obj-$(CONFIG_CLK_RENESAS) += renesas/
- +-obj-$(CONFIG_CLK_SCMI) += clk_scmi.o
- ++obj-$(CONFIG_$(SPL_TPL_)CLK_SCMI) += clk_scmi.o
- + obj-$(CONFIG_CLK_SIFIVE) += sifive/
- + obj-$(CONFIG_CLK_UNIPHIER) += uniphier/
- + obj-$(CONFIG_CLK_VERSACLOCK) += clk_versaclock.o
- +--- a/drivers/firmware/scmi/scmi_agent-uclass.c
- ++++ b/drivers/firmware/scmi/scmi_agent-uclass.c
- +@@ -75,7 +75,7 @@ static int scmi_bind_protocols(struct udevice *dev)
- + name = ofnode_get_name(node);
- + switch (protocol_id) {
- + case SCMI_PROTOCOL_ID_CLOCK:
- +- if (IS_ENABLED(CONFIG_CLK_SCMI))
- ++ if (CONFIG_IS_ENABLED(CLK_SCMI))
- + drv = DM_DRIVER_GET(scmi_clock);
- + break;
- + case SCMI_PROTOCOL_ID_RESET_DOMAIN:
- diff --git a/package/boot/uboot-rockchip/patches/121-pinctrl-rockchip-Fix-IO-mux-selection-on.patch b/package/boot/uboot-rockchip/patches/121-pinctrl-rockchip-Fix-IO-mux-selection-on.patch
- new file mode 100644
- index 000000000000..e6a15ce3c9b0
- --- /dev/null
- +++ b/package/boot/uboot-rockchip/patches/121-pinctrl-rockchip-Fix-IO-mux-selection-on.patch
- @@ -0,0 +1,126 @@
- +From 7db635cf638dfad08a50e26a6d02e1b6e7a9d7c5 Mon Sep 17 00:00:00 2001
- +From: Jonas Karlman <[email protected]>
- +Date: Sat, 18 Mar 2023 23:30:42 +0000
- +Subject: [PATCH] pinctrl: rockchip: Fix IO mux selection on RK3568
- +
- +IO mux selection is not working correctly for all pins. Sync mux route
- +data from linux to add any missing and update wrong trigger pins to fix
- +this. Also apply the pull-up fix needed for GPIO0 D3-D6.
- +
- +Fixes: 1977d746aa54 ("rockchip: rk3568: add rk3568 pinctrl driver")
- +Signed-off-by: Jonas Karlman <[email protected]>
- +Link: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/
- +---
- + drivers/pinctrl/rockchip/pinctrl-rk3568.c | 66 +++++++++++++----------
- + 1 file changed, 38 insertions(+), 28 deletions(-)
- +
- +--- a/drivers/pinctrl/rockchip/pinctrl-rk3568.c
- ++++ b/drivers/pinctrl/rockchip/pinctrl-rk3568.c
- +@@ -13,6 +13,12 @@
- + #include "pinctrl-rockchip.h"
- +
- + static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
- ++ MR_PMUGRF(RK_GPIO0, RK_PB7, RK_FUNC_1, 0x0110, RK_GENMASK_VAL(1, 0, 0)), /* PWM0 IO mux selection M0 */
- ++ MR_PMUGRF(RK_GPIO0, RK_PC7, RK_FUNC_2, 0x0110, RK_GENMASK_VAL(1, 0, 1)), /* PWM0 IO mux selection M1 */
- ++ MR_PMUGRF(RK_GPIO0, RK_PC0, RK_FUNC_1, 0x0110, RK_GENMASK_VAL(3, 2, 0)), /* PWM1 IO mux selection M0 */
- ++ MR_PMUGRF(RK_GPIO0, RK_PB5, RK_FUNC_4, 0x0110, RK_GENMASK_VAL(3, 2, 1)), /* PWM1 IO mux selection M1 */
- ++ MR_PMUGRF(RK_GPIO0, RK_PC1, RK_FUNC_1, 0x0110, RK_GENMASK_VAL(5, 4, 0)), /* PWM2 IO mux selection M0 */
- ++ MR_PMUGRF(RK_GPIO0, RK_PB6, RK_FUNC_4, 0x0110, RK_GENMASK_VAL(5, 4, 1)), /* PWM2 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO0, RK_PB3, RK_FUNC_2, 0x0300, RK_GENMASK_VAL(0, 0, 0)), /* CAN0 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO2, RK_PA1, RK_FUNC_4, 0x0300, RK_GENMASK_VAL(0, 0, 1)), /* CAN0 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO1, RK_PA1, RK_FUNC_3, 0x0300, RK_GENMASK_VAL(2, 2, 0)), /* CAN1 IO mux selection M0 */
- +@@ -33,30 +39,22 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
- + MR_TOPGRF(RK_GPIO2, RK_PB1, RK_FUNC_2, 0x0304, RK_GENMASK_VAL(2, 2, 1)), /* I2C4 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO3, RK_PB4, RK_FUNC_4, 0x0304, RK_GENMASK_VAL(4, 4, 0)), /* I2C5 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO4, RK_PD0, RK_FUNC_2, 0x0304, RK_GENMASK_VAL(4, 4, 1)), /* I2C5 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(6, 6, 0)), /* PWM4 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(6, 6, 1)), /* PWM4 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(8, 8, 0)), /* PWM5 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(8, 8, 1)), /* PWM5 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(10, 10, 0)), /* PWM6 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(10, 10, 1)), /* PWM6 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(12, 12, 0)), /* PWM7 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(12, 12, 1)), /* PWM7 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(14, 14, 0)), /* PWM8 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0304, RK_GENMASK_VAL(14, 14, 1)), /* PWM8 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(0, 0, 0)), /* PWM9 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(0, 0, 1)), /* PWM9 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(2, 2, 0)), /* PWM10 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(2, 2, 1)), /* PWM10 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(4, 4, 0)), /* PWM11 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(4, 4, 1)), /* PWM11 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(6, 6, 0)), /* PWM12 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(6, 6, 1)), /* PWM12 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(8, 8, 0)), /* PWM13 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(8, 8, 1)), /* PWM13 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(10, 10, 0)), /* PWM14 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(10, 10, 1)), /* PWM14 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(12, 12, 0)), /* PWM15 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(12, 12, 1)), /* PWM15 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PB1, RK_FUNC_5, 0x0304, RK_GENMASK_VAL(14, 14, 0)), /* PWM8 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO1, RK_PD5, RK_FUNC_4, 0x0304, RK_GENMASK_VAL(14, 14, 1)), /* PWM8 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PB2, RK_FUNC_5, 0x0308, RK_GENMASK_VAL(0, 0, 0)), /* PWM9 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO1, RK_PD6, RK_FUNC_4, 0x0308, RK_GENMASK_VAL(0, 0, 1)), /* PWM9 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PB5, RK_FUNC_5, 0x0308, RK_GENMASK_VAL(2, 2, 0)), /* PWM10 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO2, RK_PA1, RK_FUNC_2, 0x0308, RK_GENMASK_VAL(2, 2, 1)), /* PWM10 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PB6, RK_FUNC_5, 0x0308, RK_GENMASK_VAL(4, 4, 0)), /* PWM11 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PC0, RK_FUNC_3, 0x0308, RK_GENMASK_VAL(4, 4, 1)), /* PWM11 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PB7, RK_FUNC_2, 0x0308, RK_GENMASK_VAL(6, 6, 0)), /* PWM12 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PC5, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(6, 6, 1)), /* PWM12 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PC0, RK_FUNC_2, 0x0308, RK_GENMASK_VAL(8, 8, 0)), /* PWM13 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PC6, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(8, 8, 1)), /* PWM13 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PC4, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(10, 10, 0)), /* PWM14 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PC2, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(10, 10, 1)), /* PWM14 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PC5, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(12, 12, 0)), /* PWM15 IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PC3, RK_FUNC_1, 0x0308, RK_GENMASK_VAL(12, 12, 1)), /* PWM15 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_3, 0x0308, RK_GENMASK_VAL(14, 14, 0)), /* SDMMC2 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO3, RK_PA5, RK_FUNC_5, 0x0308, RK_GENMASK_VAL(14, 14, 1)), /* SDMMC2 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO0, RK_PB5, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(0, 0, 0)), /* SPI0 IO mux selection M0 */
- +@@ -68,7 +66,7 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
- + MR_TOPGRF(RK_GPIO4, RK_PB3, RK_FUNC_4, 0x030c, RK_GENMASK_VAL(6, 6, 0)), /* SPI3 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO4, RK_PC2, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(6, 6, 1)), /* SPI3 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO2, RK_PB4, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(8, 8, 0)), /* UART1 IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO0, RK_PD1, RK_FUNC_1, 0x030c, RK_GENMASK_VAL(8, 8, 1)), /* UART1 IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PD6, RK_FUNC_4, 0x030c, RK_GENMASK_VAL(8, 8, 1)), /* UART1 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO0, RK_PD1, RK_FUNC_1, 0x030c, RK_GENMASK_VAL(10, 10, 0)), /* UART2 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO1, RK_PD5, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(10, 10, 1)), /* UART2 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO1, RK_PA1, RK_FUNC_2, 0x030c, RK_GENMASK_VAL(12, 12, 0)), /* UART3 IO mux selection M0 */
- +@@ -81,7 +79,7 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
- + MR_TOPGRF(RK_GPIO1, RK_PD5, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(2, 2, 1)), /* UART6 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO2, RK_PA6, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(5, 4, 0)), /* UART7 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO3, RK_PC4, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(5, 4, 1)), /* UART7 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD2, RK_FUNC_1, 0x0310, RK_GENMASK_VAL(5, 4, 2)), /* UART7 IO mux selection M2 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PA2, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(5, 4, 2)), /* UART7 IO mux selection M2 */
- + MR_TOPGRF(RK_GPIO2, RK_PC5, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(6, 6, 0)), /* UART8 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO2, RK_PD7, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(6, 6, 1)), /* UART8 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO2, RK_PB0, RK_FUNC_3, 0x0310, RK_GENMASK_VAL(9, 8, 0)), /* UART9 IO mux selection M0 */
- +@@ -94,8 +92,11 @@ static struct rockchip_mux_route_data rk3568_mux_route_data[] = {
- + MR_TOPGRF(RK_GPIO4, RK_PB6, RK_FUNC_5, 0x0310, RK_GENMASK_VAL(12, 12, 1)), /* I2S2 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO3, RK_PA2, RK_FUNC_4, 0x0310, RK_GENMASK_VAL(14, 14, 0)), /* I2S3 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO4, RK_PC2, RK_FUNC_5, 0x0310, RK_GENMASK_VAL(14, 14, 1)), /* I2S3 IO mux selection M1 */
- +- MR_TOPGRF(RK_GPIO1, RK_PA6, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(0, 0, 0)), /* PDM IO mux selection M0 */
- +- MR_TOPGRF(RK_GPIO3, RK_PD6, RK_FUNC_5, 0x0314, RK_GENMASK_VAL(0, 0, 1)), /* PDM IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO1, RK_PA4, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(1, 0, 0)), /* PDM IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO1, RK_PA6, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(1, 0, 0)), /* PDM IO mux selection M0 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PD6, RK_FUNC_5, 0x0314, RK_GENMASK_VAL(1, 0, 1)), /* PDM IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO4, RK_PA0, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(1, 0, 1)), /* PDM IO mux selection M1 */
- ++ MR_TOPGRF(RK_GPIO3, RK_PC4, RK_FUNC_5, 0x0314, RK_GENMASK_VAL(1, 0, 2)), /* PDM IO mux selection M2 */
- + MR_TOPGRF(RK_GPIO0, RK_PA5, RK_FUNC_3, 0x0314, RK_GENMASK_VAL(3, 2, 0)), /* PCIE20 IO mux selection M0 */
- + MR_TOPGRF(RK_GPIO2, RK_PD0, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(3, 2, 1)), /* PCIE20 IO mux selection M1 */
- + MR_TOPGRF(RK_GPIO1, RK_PB0, RK_FUNC_4, 0x0314, RK_GENMASK_VAL(3, 2, 2)), /* PCIE20 IO mux selection M2 */
- +@@ -237,6 +238,15 @@ static int rk3568_set_pull(struct rockchip_pin_bank *bank,
- + return ret;
- + }
- +
- ++ /*
- ++ * In the TRM, pull-up being 1 for everything except the GPIO0_D3-D6,
- ++ * where that pull up value becomes 3.
- ++ */
- ++ if (bank->bank_num == 0 && pin_num >= 27 && pin_num <= 30) {
- ++ if (ret == 1)
- ++ ret = 3;
- ++ }
- ++
- + /* enable the write to the equivalent lower bits */
- + data = ((1 << ROCKCHIP_PULL_BITS_PER_PIN) - 1) << (bit + 16);
- +
- diff --git a/package/boot/uboot-rockchip/patches/203-rock64pro-disable-CONFIG_USE_PREBOOT.patch b/package/boot/uboot-rockchip/patches/203-rock64pro-disable-CONFIG_USE_PREBOOT.patch
- index f630818358d2..37e50d175c00 100644
- --- a/package/boot/uboot-rockchip/patches/203-rock64pro-disable-CONFIG_USE_PREBOOT.patch
- +++ b/package/boot/uboot-rockchip/patches/203-rock64pro-disable-CONFIG_USE_PREBOOT.patch
- @@ -17,10 +17,10 @@ Signed-off-by: Marty Jones <[email protected]>
-
- --- a/configs/rockpro64-rk3399_defconfig
- +++ b/configs/rockpro64-rk3399_defconfig
- -@@ -12,7 +12,6 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y
- - CONFIG_SPL_SPI_SUPPORT=y
- - CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64"
- +@@ -21,7 +21,6 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y
- CONFIG_DEBUG_UART=y
- + CONFIG_BOOTSTAGE=y
- + CONFIG_BOOTSTAGE_REPORT=y
- -CONFIG_USE_PREBOOT=y
- CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb"
- CONFIG_DISPLAY_BOARDINFO_LATE=y
- diff --git a/package/boot/uboot-rockchip/patches/301-arm64-dts-rockchip-Add-GuangMiao-G4C-support.patch b/package/boot/uboot-rockchip/patches/301-arm64-dts-rockchip-Add-GuangMiao-G4C-support.patch
- index fae269b7149f..57d5b0f8d9be 100644
- --- a/package/boot/uboot-rockchip/patches/301-arm64-dts-rockchip-Add-GuangMiao-G4C-support.patch
- +++ b/package/boot/uboot-rockchip/patches/301-arm64-dts-rockchip-Add-GuangMiao-G4C-support.patch
- @@ -13,7 +13,7 @@
- @@ -0,0 +1,57 @@
- +CONFIG_ARM=y
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_ROCKCHIP_RK3399=y
- +CONFIG_TARGET_EVB_RK3399=y
- diff --git a/package/boot/uboot-rockchip/patches/302-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch b/package/boot/uboot-rockchip/patches/302-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch
- index 18b0734277d3..60c2ec7a8d1f 100644
- --- a/package/boot/uboot-rockchip/patches/302-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch
- +++ b/package/boot/uboot-rockchip/patches/302-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch
- @@ -42,27 +42,31 @@
- +};
- --- /dev/null
- +++ b/configs/orangepi-r1-plus-rk3328_defconfig
- -@@ -0,0 +1,104 @@
- +@@ -0,0 +1,112 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- +CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_SPL_GPIO=y
- +CONFIG_NR_DRAM_BANKS=1
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x300000
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3328-orangepi-r1-plus"
- ++CONFIG_DM_RESET=y
- +CONFIG_ROCKCHIP_RK3328=y
- +CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
- +CONFIG_TPL_LIBCOMMON_SUPPORT=y
- +CONFIG_TPL_LIBGENERIC_SUPPORT=y
- +CONFIG_SPL_DRIVERS_MISC=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- ++CONFIG_SPL_STACK=0x400000
- ++CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
- +CONFIG_DEBUG_UART_BASE=0xFF130000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- +CONFIG_SYS_LOAD_ADDR=0x800800
- +CONFIG_DEBUG_UART=y
- -+CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
- +# CONFIG_ANDROID_BOOT_IMAGE is not set
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- @@ -71,13 +75,19 @@
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- +CONFIG_MISC_INIT_R=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x2000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x2000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- +CONFIG_SPL_I2C=y
- +CONFIG_SPL_POWER=y
- +CONFIG_SPL_ATF=y
- +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
- ++CONFIG_TPL_SYS_MALLOC_SIMPLE=y
- +CONFIG_CMD_BOOTZ=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_MMC=y
- @@ -108,7 +118,6 @@
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_SF_DEFAULT_SPEED=20000000
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- +CONFIG_PINCTRL=y
- @@ -125,9 +134,9 @@
- +CONFIG_RAM=y
- +CONFIG_SPL_RAM=y
- +CONFIG_TPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSINFO=y
- +CONFIG_SYSRESET=y
- +# CONFIG_TPL_SYSRESET is not set
- @@ -138,7 +147,6 @@
- +CONFIG_USB_EHCI_GENERIC=y
- +CONFIG_USB_OHCI_HCD=y
- +CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- +CONFIG_USB_DWC2=y
- +CONFIG_USB_DWC3=y
- +# CONFIG_USB_DWC3_GADGET is not set
- diff --git a/package/boot/uboot-rockchip/patches/303-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus-LTS.patch b/package/boot/uboot-rockchip/patches/303-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus-LTS.patch
- index 953d531bdef6..5cbbffa07b96 100644
- --- a/package/boot/uboot-rockchip/patches/303-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus-LTS.patch
- +++ b/package/boot/uboot-rockchip/patches/303-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus-LTS.patch
- @@ -37,27 +37,31 @@ Subject: [PATCH] Add support for Orangepi R1 Plus LTS
- +};
- --- /dev/null
- +++ b/configs/orangepi-r1-plus-lts-rk3328_defconfig
- -@@ -0,0 +1,104 @@
- +@@ -0,0 +1,112 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- +CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_SPL_GPIO=y
- +CONFIG_NR_DRAM_BANKS=1
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x300000
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3328-orangepi-r1-plus-lts"
- ++CONFIG_DM_RESET=y
- +CONFIG_ROCKCHIP_RK3328=y
- +CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
- +CONFIG_TPL_LIBCOMMON_SUPPORT=y
- +CONFIG_TPL_LIBGENERIC_SUPPORT=y
- +CONFIG_SPL_DRIVERS_MISC=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- ++CONFIG_SPL_STACK=0x400000
- ++CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
- +CONFIG_DEBUG_UART_BASE=0xFF130000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- +CONFIG_SYS_LOAD_ADDR=0x800800
- +CONFIG_DEBUG_UART=y
- -+CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
- +# CONFIG_ANDROID_BOOT_IMAGE is not set
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- @@ -66,13 +70,19 @@ Subject: [PATCH] Add support for Orangepi R1 Plus LTS
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- +CONFIG_MISC_INIT_R=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x2000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x2000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- +CONFIG_SPL_I2C=y
- +CONFIG_SPL_POWER=y
- +CONFIG_SPL_ATF=y
- +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
- ++CONFIG_TPL_SYS_MALLOC_SIMPLE=y
- +CONFIG_CMD_BOOTZ=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_MMC=y
- @@ -103,7 +113,6 @@ Subject: [PATCH] Add support for Orangepi R1 Plus LTS
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_SF_DEFAULT_SPEED=20000000
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- +CONFIG_PINCTRL=y
- @@ -120,9 +129,9 @@ Subject: [PATCH] Add support for Orangepi R1 Plus LTS
- +CONFIG_RAM=y
- +CONFIG_SPL_RAM=y
- +CONFIG_TPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSINFO=y
- +CONFIG_SYSRESET=y
- +# CONFIG_TPL_SYSRESET is not set
- @@ -133,7 +142,6 @@ Subject: [PATCH] Add support for Orangepi R1 Plus LTS
- +CONFIG_USB_EHCI_GENERIC=y
- +CONFIG_USB_OHCI_HCD=y
- +CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- +CONFIG_USB_DWC2=y
- +CONFIG_USB_DWC3=y
- +# CONFIG_USB_DWC3_GADGET is not set
- @@ -142,5 +150,3 @@ Subject: [PATCH] Add support for Orangepi R1 Plus LTS
- +CONFIG_SPL_TINY_MEMSET=y
- +CONFIG_TPL_TINY_MEMSET=y
- +CONFIG_ERRNO_STR=y
- ---
- -2.25.1
- diff --git a/package/boot/uboot-rockchip/patches/304-rockchip-rk3328-Add-support-for-FriendlyARM-NanoPi-R.patch b/package/boot/uboot-rockchip/patches/304-rockchip-rk3328-Add-support-for-FriendlyARM-NanoPi-R.patch
- index 39022fddfb15..02291e29bf29 100644
- --- a/package/boot/uboot-rockchip/patches/304-rockchip-rk3328-Add-support-for-FriendlyARM-NanoPi-R.patch
- +++ b/package/boot/uboot-rockchip/patches/304-rockchip-rk3328-Add-support-for-FriendlyARM-NanoPi-R.patch
- @@ -81,25 +81,31 @@ new file mode 100644
- index 0000000000..7bc7a3274f
- --- /dev/null
- +++ b/configs/nanopi-r2c-rk3328_defconfig
- -@@ -0,0 +1,100 @@
- +@@ -0,0 +1,112 @@
- +CONFIG_ARM=y
- ++CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- -+CONFIG_SPL_GPIO_SUPPORT=y
- ++CONFIG_TEXT_BASE=0x00200000
- ++CONFIG_SPL_GPIO=y
- +CONFIG_NR_DRAM_BANKS=1
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x300000
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3328-nanopi-r2c"
- ++CONFIG_DM_RESET=y
- +CONFIG_ROCKCHIP_RK3328=y
- +CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
- +CONFIG_TPL_LIBCOMMON_SUPPORT=y
- +CONFIG_TPL_LIBGENERIC_SUPPORT=y
- -+CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
- ++CONFIG_SPL_DRIVERS_MISC=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- ++CONFIG_SPL_STACK=0x400000
- ++CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
- +CONFIG_DEBUG_UART_BASE=0xFF130000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- +CONFIG_SYS_LOAD_ADDR=0x800800
- +CONFIG_DEBUG_UART=y
- -+CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
- +# CONFIG_ANDROID_BOOT_IMAGE is not set
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- @@ -108,13 +114,19 @@ index 0000000000..7bc7a3274f
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- +CONFIG_MISC_INIT_R=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x2000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x2000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- -+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_I2C_SUPPORT=y
- -+CONFIG_SPL_POWER_SUPPORT=y
- ++CONFIG_SPL_I2C=y
- ++CONFIG_SPL_POWER=y
- +CONFIG_SPL_ATF=y
- +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
- ++CONFIG_TPL_SYS_MALLOC_SIMPLE=y
- +CONFIG_CMD_BOOTZ=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_MMC=y
- @@ -127,6 +139,7 @@ index 0000000000..7bc7a3274f
- +CONFIG_TPL_OF_PLATDATA=y
- +CONFIG_ENV_IS_IN_MMC=y
- +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
- ++CONFIG_SYS_MMC_ENV_DEV=1
- +CONFIG_NET_RANDOM_ETHADDR=y
- +CONFIG_TPL_DM=y
- +CONFIG_REGMAP=y
- @@ -144,13 +157,13 @@ index 0000000000..7bc7a3274f
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_SF_DEFAULT_SPEED=20000000
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- +CONFIG_PINCTRL=y
- +CONFIG_SPL_PINCTRL=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- ++CONFIG_SPL_PMIC_RK8XX=y
- +CONFIG_SPL_DM_REGULATOR=y
- +CONFIG_REGULATOR_PWM=y
- +CONFIG_DM_REGULATOR_FIXED=y
- @@ -160,9 +173,9 @@ index 0000000000..7bc7a3274f
- +CONFIG_RAM=y
- +CONFIG_SPL_RAM=y
- +CONFIG_TPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSINFO=y
- +CONFIG_SYSRESET=y
- +# CONFIG_TPL_SYSRESET is not set
- @@ -173,7 +186,6 @@ index 0000000000..7bc7a3274f
- +CONFIG_USB_EHCI_GENERIC=y
- +CONFIG_USB_OHCI_HCD=y
- +CONFIG_USB_OHCI_GENERIC=y
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- +CONFIG_USB_DWC2=y
- +CONFIG_USB_DWC3=y
- +# CONFIG_USB_DWC3_GADGET is not set
- diff --git a/package/boot/uboot-rockchip/patches/305-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch b/package/boot/uboot-rockchip/patches/305-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch
- index ca6f80958ff2..d9dc149af00f 100644
- --- a/package/boot/uboot-rockchip/patches/305-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch
- +++ b/package/boot/uboot-rockchip/patches/305-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch
- @@ -50,7 +50,7 @@
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- +CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_NR_DRAM_BANKS=1
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3399-nanopi-r4se"
- diff --git a/package/boot/uboot-rockchip/patches/306-rockchip-rk3399-Add-support-for-Rongpin-king3399.patch b/package/boot/uboot-rockchip/patches/306-rockchip-rk3399-Add-support-for-Rongpin-king3399.patch
- index 837f586491ac..9e6bd4e17e54 100755
- --- a/package/boot/uboot-rockchip/patches/306-rockchip-rk3399-Add-support-for-Rongpin-king3399.patch
- +++ b/package/boot/uboot-rockchip/patches/306-rockchip-rk3399-Add-support-for-Rongpin-king3399.patch
- @@ -5,7 +5,7 @@
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- +CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_NR_DRAM_BANKS=1
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3399-nanopi-r4se"
- diff --git a/package/boot/uboot-rockchip/patches/307-rockchip-rk3399-Add-support-for-Rocktech-MPC1903.patch b/package/boot/uboot-rockchip/patches/307-rockchip-rk3399-Add-support-for-Rocktech-MPC1903.patch
- index bdccbc01f151..040821367725 100644
- --- a/package/boot/uboot-rockchip/patches/307-rockchip-rk3399-Add-support-for-Rocktech-MPC1903.patch
- +++ b/package/boot/uboot-rockchip/patches/307-rockchip-rk3399-Add-support-for-Rocktech-MPC1903.patch
- @@ -723,7 +723,7 @@
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- +CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_ROCKCHIP_RK3399=y
- +CONFIG_TARGET_EVB_RK3399=y
- diff --git a/package/boot/uboot-rockchip/patches/308-rockchip-rk3399-Add-support-for-sharevdi-h3399pc.patch b/package/boot/uboot-rockchip/patches/308-rockchip-rk3399-Add-support-for-sharevdi-h3399pc.patch
- index b7db33ec0707..9d6cf894391f 100644
- --- a/package/boot/uboot-rockchip/patches/308-rockchip-rk3399-Add-support-for-sharevdi-h3399pc.patch
- +++ b/package/boot/uboot-rockchip/patches/308-rockchip-rk3399-Add-support-for-sharevdi-h3399pc.patch
- @@ -863,7 +863,7 @@
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- +CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00200000
- ++CONFIG_TEXT_BASE=0x00200000
- +CONFIG_ENV_OFFSET=0x3F8000
- +CONFIG_ROCKCHIP_RK3399=y
- +CONFIG_TARGET_EVB_RK3399=y
- diff --git a/package/boot/uboot-rockchip/patches/311-rockchip-rk3568-Add-support-for-ezpro_mrkaio-m68s.patch b/package/boot/uboot-rockchip/patches/311-rockchip-rk3568-Add-support-for-ezpro_mrkaio-m68s.patch
- index ff7ded5f8c85..7bba95d54f27 100644
- --- a/package/boot/uboot-rockchip/patches/311-rockchip-rk3568-Add-support-for-ezpro_mrkaio-m68s.patch
- +++ b/package/boot/uboot-rockchip/patches/311-rockchip-rk3568-Add-support-for-ezpro_mrkaio-m68s.patch
- @@ -1,19 +1,19 @@
- --- a/arch/arm/dts/Makefile
- +++ b/arch/arm/dts/Makefile
- @@ -171,6 +171,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- +
- dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- - rk3568-bpi-r2-pro.dtb \
- rk3568-evb.dtb \
- + rk3568-mrkaio-m68s.dtb \
- rk3568-nanopi-r5s.dtb \
- - rk3566-quartz64-a.dtb \
- + rk3566-radxa-cm3-io.dtb \
- rk3568-rock-3a.dtb
- --- /dev/null
- +++ b/arch/arm/dts/rk3568-mrkaio-m68s-u-boot.dtsi
- @@ -0,0 +1,21 @@
- +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- +
- -+#include "rk3568-u-boot.dtsi"
- ++#include "rk356x-u-boot.dtsi"
- +
- +/ {
- + chosen {
- @@ -305,103 +305,95 @@
- +};
- --- /dev/null
- +++ b/configs/mrkaio-m68s-rk3568_defconfig
- -@@ -0,0 +1,99 @@
- +@@ -0,0 +1,91 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-mrkaio-m68s"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- +CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- ++CONFIG_SPL_BOARD_INIT=y
- +CONFIG_SPL_MMC=y
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- +CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-mrkaio-m68s.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- +CONFIG_SPL_ADC=y
- +CONFIG_SPL_ATF=y
- -+CONFIG_SPL_BOARD_INIT=y
- +CONFIG_CMD_ADC=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- +CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- +CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- +CONFIG_CMD_REGULATOR=y
- ++# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- +CONFIG_OF_LIVE=y
- +CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- ++CONFIG_SUPPORT_EMMC_RPMB=y
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- +CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- +CONFIG_DM_REGULATOR_FIXED=y
- +CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- +CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- +CONFIG_USB=y
- +CONFIG_USB_XHCI_HCD=y
- +CONFIG_USB_XHCI_DWC3=y
- +CONFIG_USB_EHCI_HCD=y
- +CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- +CONFIG_USB_DWC3=y
- +CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- +CONFIG_ERRNO_STR=y
- diff --git a/package/boot/uboot-rockchip/patches/312-rockchip-rk3568-Add-support-for-hinlink-opc-h68k.patch b/package/boot/uboot-rockchip/patches/312-rockchip-rk3568-Add-support-for-hinlink-opc-h68k.patch
- index 3d007271326d..04b06513e112 100644
- --- a/package/boot/uboot-rockchip/patches/312-rockchip-rk3568-Add-support-for-hinlink-opc-h68k.patch
- +++ b/package/boot/uboot-rockchip/patches/312-rockchip-rk3568-Add-support-for-hinlink-opc-h68k.patch
- @@ -1,19 +1,19 @@
- --- a/arch/arm/dts/Makefile
- +++ b/arch/arm/dts/Makefile
- @@ -171,6 +171,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- +
- dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- - rk3568-bpi-r2-pro.dtb \
- rk3568-evb.dtb \
- + rk3568-opc-h68k.dtb \
- rk3568-mrkaio-m68s.dtb \
- rk3568-nanopi-r5s.dtb \
- - rk3566-quartz64-a.dtb \
- + rk3566-radxa-cm3-io.dtb \
- --- /dev/null
- +++ b/arch/arm/dts/rk3568-opc-h68k-u-boot.dtsi
- @@ -0,0 +1,21 @@
- +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- +
- -+#include "rk3568-u-boot.dtsi"
- ++#include "rk356x-u-boot.dtsi"
- +
- +/ {
- + chosen {
- @@ -314,103 +314,95 @@
- +};
- --- /dev/null
- +++ b/configs/opc-h68k-rk3568_defconfig
- -@@ -0,0 +1,99 @@
- +@@ -0,0 +1,91 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-opc-h68k"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- +CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- ++CONFIG_SPL_BOARD_INIT=y
- +CONFIG_SPL_MMC=y
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- +CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-opc-h68k.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- +CONFIG_SPL_ADC=y
- +CONFIG_SPL_ATF=y
- -+CONFIG_SPL_BOARD_INIT=y
- +CONFIG_CMD_ADC=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- +CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- +CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- +CONFIG_CMD_REGULATOR=y
- ++# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- +CONFIG_OF_LIVE=y
- +CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- ++CONFIG_SUPPORT_EMMC_RPMB=y
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- +CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- +CONFIG_DM_REGULATOR_FIXED=y
- +CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- +CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- +CONFIG_USB=y
- +CONFIG_USB_XHCI_HCD=y
- +CONFIG_USB_XHCI_DWC3=y
- +CONFIG_USB_EHCI_HCD=y
- +CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- +CONFIG_USB_DWC3=y
- +CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- +CONFIG_ERRNO_STR=y
- diff --git a/package/boot/uboot-rockchip/patches/313-rockchip-rk3568-Add-support-for-fastrhino-r66s.patch b/package/boot/uboot-rockchip/patches/313-rockchip-rk3568-Add-support-for-fastrhino-r66s.patch
- index c4b9e19b81e5..de01269e5e3e 100644
- --- a/package/boot/uboot-rockchip/patches/313-rockchip-rk3568-Add-support-for-fastrhino-r66s.patch
- +++ b/package/boot/uboot-rockchip/patches/313-rockchip-rk3568-Add-support-for-fastrhino-r66s.patch
- @@ -1,8 +1,8 @@
- --- a/arch/arm/dts/Makefile
- +++ b/arch/arm/dts/Makefile
- @@ -171,6 +171,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
- +
- dtb-$(CONFIG_ROCKCHIP_RK3568) += \
- - rk3568-bpi-r2-pro.dtb \
- rk3568-evb.dtb \
- + rk3568-r66s.dtb \
- rk3568-opc-h68k.dtb \
- @@ -13,7 +13,7 @@
- @@ -0,0 +1,21 @@
- +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- +
- -+#include "rk3568-u-boot.dtsi"
- ++#include "rk356x-u-boot.dtsi"
- +
- +/ {
- + chosen {
- @@ -39,103 +39,95 @@
- +#include "rk3568-evb.dts"
- --- /dev/null
- +++ b/configs/r66s-rk3568_defconfig
- -@@ -0,0 +1,99 @@
- +@@ -0,0 +1,91 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-r66s"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- +CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- ++CONFIG_SPL_BOARD_INIT=y
- +CONFIG_SPL_MMC=y
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- +CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-r66s.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- +CONFIG_SPL_ADC=y
- +CONFIG_SPL_ATF=y
- -+CONFIG_SPL_BOARD_INIT=y
- +CONFIG_CMD_ADC=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- +CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- +CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- +CONFIG_CMD_REGULATOR=y
- ++# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- +CONFIG_OF_LIVE=y
- +CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- ++CONFIG_SUPPORT_EMMC_RPMB=y
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- +CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- +CONFIG_DM_REGULATOR_FIXED=y
- +CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- +CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- +CONFIG_USB=y
- +CONFIG_USB_XHCI_HCD=y
- +CONFIG_USB_XHCI_DWC3=y
- +CONFIG_USB_EHCI_HCD=y
- +CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- +CONFIG_USB_DWC3=y
- +CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- +CONFIG_ERRNO_STR=y
- diff --git a/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-Station-P2.patch b/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-Station-P2.patch
- index 3df47445fb79..26531f3799d2 100644
- --- a/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-Station-P2.patch
- +++ b/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-Station-P2.patch
- @@ -8,19 +8,19 @@ Subject: [PATCH] rockchip: rk3568: Add support for Station P2
- 1 file changed, 59 insertions(+)
- create mode 100644 configs/station-p2-rk3568_defconfig
-
- -diff --git a/configs/station-p2-rk3568_defconfig b/configs/station-p2-rk3568_defconfig
- -new file mode 100644
- -index 0000000000..435be99edf
- --- /dev/null
- +++ b/configs/station-p2-rk3568_defconfig
- -@@ -0,0 +1,59 @@
- +@@ -0,0 +1,87 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-evb"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- @@ -29,22 +29,32 @@ index 0000000000..435be99edf
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- +CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-evb.dtb"
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- +CONFIG_SPL_ATF=y
- ++CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- ++CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- ++CONFIG_CMD_USB=y
- ++CONFIG_CMD_REGULATOR=y
- +# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- @@ -53,6 +63,8 @@ index 0000000000..435be99edf
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- @@ -62,16 +74,27 @@ index 0000000000..435be99edf
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- ++CONFIG_DM_PMIC=y
- ++CONFIG_PMIC_RK8XX=y
- ++CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- ++CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- +CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- ++CONFIG_USB=y
- ++CONFIG_USB_XHCI_HCD=y
- ++CONFIG_USB_XHCI_DWC3=y
- ++CONFIG_USB_EHCI_HCD=y
- ++CONFIG_USB_EHCI_GENERIC=y
- ++CONFIG_USB_DWC3=y
- ++CONFIG_USB_DWC3_GENERIC=y
- +CONFIG_ERRNO_STR=y
- ---
- -2.20.1
- diff --git a/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-photonicat.patch b/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-photonicat.patch
- index 216186289282..35dd32e67b71 100644
- --- a/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-photonicat.patch
- +++ b/package/boot/uboot-rockchip/patches/314-rockchip-rk3568-Add-support-for-photonicat.patch
- @@ -5,15 +5,15 @@
- rk3568-mrkaio-m68s.dtb \
- rk3568-nanopi-r5s.dtb \
- + rk3568-photonicat.dtb \
- - rk3566-quartz64-a.dtb \
- - rk3568-rock-3a.dtb \
- - rk3568-rock-pi-e25.dtb
- + rk3566-radxa-cm3-io.dtb \
- + rk3568-rock-3a.dtb
- +
- --- /dev/null
- +++ b/arch/arm/dts/rk3568-photonicat-u-boot.dtsi
- @@ -0,0 +1,33 @@
- +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- +
- -+#include "rk3568-u-boot.dtsi"
- ++#include "rk356x-u-boot.dtsi"
- +
- +/ {
- + chosen {
- @@ -103,14 +103,17 @@
- +};
- --- /dev/null
- +++ b/configs/photonicat-rk3568_defconfig
- -@@ -0,0 +1,101 @@
- +@@ -0,0 +1,94 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-photonicat"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- @@ -120,89 +123,78 @@
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- +CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-photonicat.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- +CONFIG_SPL_ADC=y
- +CONFIG_SPL_ATF=y
- +CONFIG_SPL_BOARD_INIT=y
- +CONFIG_CMD_ADC=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- +CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- +CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- +CONFIG_CMD_REGULATOR=y
- ++# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- +CONFIG_OF_LIVE=y
- +CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- +CONFIG_MMC_IO_VOLTAGE=y
- +CONFIG_SPL_MMC_IO_VOLTAGE=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- ++CONFIG_SUPPORT_EMMC_RPMB=y
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- +CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- +CONFIG_DM_REGULATOR_FIXED=y
- +CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- +CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- +CONFIG_USB=y
- +CONFIG_USB_XHCI_HCD=y
- +CONFIG_USB_XHCI_DWC3=y
- +CONFIG_USB_EHCI_HCD=y
- +CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- +CONFIG_USB_DWC3=y
- +CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- +CONFIG_ERRNO_STR=y
- diff --git a/package/boot/uboot-rockchip/patches/315-rockchip-rk3568-Add-support-for-radxa_e25.patch b/package/boot/uboot-rockchip/patches/315-rockchip-rk3568-Add-support-for-radxa_e25.patch
- index 97db4c6722dd..f07e184af652 100644
- --- a/package/boot/uboot-rockchip/patches/315-rockchip-rk3568-Add-support-for-radxa_e25.patch
- +++ b/package/boot/uboot-rockchip/patches/315-rockchip-rk3568-Add-support-for-radxa_e25.patch
- @@ -1,21 +1,21 @@
- --- a/arch/arm/dts/Makefile
- +++ b/arch/arm/dts/Makefile
- @@ -177,7 +177,8 @@ rk3568-evb.dtb \
- - rk3568-mrkaio-m68s.dtb \
- rk3568-nanopi-r5s.dtb \
- - rk3566-quartz64-a.dtb \
- + rk3568-photonicat.dtb \
- + rk3566-radxa-cm3-io.dtb \
- - rk3568-rock-3a.dtb
- + rk3568-rock-3a.dtb \
- + rk3568-radxa-e25.dtb
-
- - dtb-$(CONFIG_ROCKCHIP_RV1108) += \
- - rv1108-elgin-r1.dtb \
- + dtb-$(CONFIG_ROCKCHIP_RK3588) += \
- + rk3588-edgeble-neu6a-io.dtb \
- --- /dev/null
- +++ b/arch/arm/dts/rk3568-radxa-e25-u-boot.dtsi
- @@ -0,0 +1,21 @@
- +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- +
- -+#include "rk3568-u-boot.dtsi"
- ++#include "rk356x-u-boot.dtsi"
- +
- +/ {
- + chosen {
- @@ -47,103 +47,93 @@
- +};
- --- /dev/null
- +++ b/configs/radxa-e25-rk3568_defconfig
- -@@ -0,0 +1,99 @@
- +@@ -0,0 +1,89 @@
- +CONFIG_ARM=y
- +CONFIG_SKIP_LOWLEVEL_INIT=y
- ++CONFIG_COUNTER_FREQUENCY=24000000
- +CONFIG_ARCH_ROCKCHIP=y
- -+CONFIG_SYS_TEXT_BASE=0x00a00000
- ++CONFIG_TEXT_BASE=0x00a00000
- +CONFIG_SPL_LIBCOMMON_SUPPORT=y
- +CONFIG_SPL_LIBGENERIC_SUPPORT=y
- +CONFIG_NR_DRAM_BANKS=2
- ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
- +CONFIG_DEFAULT_DEVICE_TREE="rk3568-radxa-e25"
- +CONFIG_ROCKCHIP_RK3568=y
- +CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
- +CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
- ++CONFIG_SPL_BOARD_INIT=y
- +CONFIG_SPL_MMC=y
- +CONFIG_SPL_SERIAL=y
- +CONFIG_SPL_STACK_R_ADDR=0x600000
- +CONFIG_TARGET_EVB_RK3568=y
- ++CONFIG_SPL_STACK=0x400000
- +CONFIG_DEBUG_UART_BASE=0xFE660000
- +CONFIG_DEBUG_UART_CLOCK=24000000
- -+CONFIG_DEBUG_UART=y
- +CONFIG_SYS_LOAD_ADDR=0xc00800
- -+CONFIG_API=y
- ++CONFIG_DEBUG_UART=y
- +CONFIG_FIT=y
- +CONFIG_FIT_VERBOSE=y
- +CONFIG_SPL_LOAD_FIT=y
- -+CONFIG_OF_SYSTEM_SETUP=y
- +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-radxa-e25.dtb"
- -+# CONFIG_SYS_DEVICE_NULLDEV is not set
- -+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=1
- +# CONFIG_DISPLAY_CPUINFO is not set
- +CONFIG_DISPLAY_BOARDINFO_LATE=y
- ++CONFIG_SPL_MAX_SIZE=0x40000
- ++CONFIG_SPL_PAD_TO=0x7f8000
- ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
- ++CONFIG_SPL_BSS_START_ADDR=0x4000000
- ++CONFIG_SPL_BSS_MAX_SIZE=0x4000
- +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
- ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
- +CONFIG_SPL_STACK_R=y
- -+CONFIG_SPL_SEPARATE_BSS=y
- +CONFIG_SPL_ADC=y
- +CONFIG_SPL_ATF=y
- -+CONFIG_SPL_BOARD_INIT=y
- +CONFIG_CMD_ADC=y
- -+CONFIG_CMD_BIND=y
- -+CONFIG_CMD_CLK=y
- +CONFIG_CMD_GPIO=y
- +CONFIG_CMD_GPT=y
- +CONFIG_CMD_I2C=y
- +CONFIG_CMD_MMC=y
- +CONFIG_CMD_USB=y
- -+# CONFIG_CMD_SETEXPR is not set
- -+CONFIG_CMD_PMIC=y
- +CONFIG_CMD_REGULATOR=y
- ++# CONFIG_CMD_SETEXPR is not set
- +# CONFIG_SPL_DOS_PARTITION is not set
- +CONFIG_SPL_OF_CONTROL=y
- +CONFIG_OF_LIVE=y
- +CONFIG_NET_RANDOM_ETHADDR=y
- -+CONFIG_SPL_DM_WARN=y
- +CONFIG_SPL_REGMAP=y
- +CONFIG_SPL_SYSCON=y
- +CONFIG_SPL_CLK=y
- ++CONFIG_CLK_SCMI=y
- ++CONFIG_RESET_SCMI=y
- +CONFIG_ROCKCHIP_GPIO=y
- -+CONFIG_ROCKCHIP_GPIO_V2=y
- +CONFIG_SYS_I2C_ROCKCHIP=y
- +CONFIG_MISC=y
- -+CONFIG_MMC_HS200_SUPPORT=y
- -+CONFIG_SPL_MMC_HS200_SUPPORT=y
- ++CONFIG_SUPPORT_EMMC_RPMB=y
- +CONFIG_MMC_DW=y
- +CONFIG_MMC_DW_ROCKCHIP=y
- +CONFIG_MMC_SDHCI=y
- +CONFIG_MMC_SDHCI_SDMA=y
- +CONFIG_MMC_SDHCI_ROCKCHIP=y
- -+CONFIG_DM_ETH=y
- +CONFIG_ETH_DESIGNWARE=y
- +CONFIG_GMAC_ROCKCHIP=y
- -+CONFIG_POWER_DOMAIN=y
- +CONFIG_DM_PMIC=y
- +CONFIG_PMIC_RK8XX=y
- +CONFIG_SPL_PMIC_RK8XX=y
- ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y
- ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
- +CONFIG_REGULATOR_PWM=y
- -+CONFIG_DM_REGULATOR_FIXED=y
- -+CONFIG_SPL_DM_REGULATOR_FIXED=y
- -+CONFIG_DM_REGULATOR_GPIO=y
- +CONFIG_REGULATOR_RK8XX=y
- +CONFIG_PWM_ROCKCHIP=y
- +CONFIG_SPL_RAM=y
- -+CONFIG_DM_RESET=y
- +CONFIG_BAUDRATE=1500000
- +CONFIG_DEBUG_UART_SHIFT=2
- ++CONFIG_SYS_NS16550_MEM32=y
- +CONFIG_SYSRESET=y
- +CONFIG_USB=y
- +CONFIG_USB_XHCI_HCD=y
- +CONFIG_USB_XHCI_DWC3=y
- +CONFIG_USB_EHCI_HCD=y
- +CONFIG_USB_EHCI_GENERIC=y
- -+CONFIG_USB_OHCI_HCD=y
- -+CONFIG_USB_OHCI_GENERIC=y
- +CONFIG_USB_DWC3=y
- +CONFIG_USB_DWC3_GENERIC=y
- -+CONFIG_ROCKCHIP_USB2_PHY=y
- -+CONFIG_USB_KEYBOARD=y
- -+CONFIG_USB_HOST_ETHER=y
- -+CONFIG_USB_ETHER_LAN75XX=y
- -+CONFIG_USB_ETHER_LAN78XX=y
- -+CONFIG_USB_ETHER_SMSC95XX=y
- +CONFIG_ERRNO_STR=y
|