meson-g12-common.dtsi 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
  4. */
  5. #include <dt-bindings/phy/phy.h>
  6. #include <dt-bindings/gpio/gpio.h>
  7. #include <dt-bindings/clock/g12a-clkc.h>
  8. #include <dt-bindings/clock/g12a-aoclkc.h>
  9. #include <dt-bindings/interrupt-controller/irq.h>
  10. #include <dt-bindings/interrupt-controller/arm-gic.h>
  11. #include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
  12. #include <dt-bindings/thermal/thermal.h>
  13. / {
  14. interrupt-parent = <&gic>;
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. aliases {
  18. mmc0 = &sd_emmc_b; /* SD card */
  19. mmc1 = &sd_emmc_c; /* eMMC */
  20. mmc2 = &sd_emmc_a; /* SDIO */
  21. };
  22. chosen {
  23. #address-cells = <2>;
  24. #size-cells = <2>;
  25. ranges;
  26. simplefb_cvbs: framebuffer-cvbs {
  27. compatible = "amlogic,simple-framebuffer",
  28. "simple-framebuffer";
  29. amlogic,pipeline = "vpu-cvbs";
  30. clocks = <&clkc CLKID_HDMI>,
  31. <&clkc CLKID_HTX_PCLK>,
  32. <&clkc CLKID_VPU_INTR>;
  33. status = "disabled";
  34. };
  35. simplefb_hdmi: framebuffer-hdmi {
  36. compatible = "amlogic,simple-framebuffer",
  37. "simple-framebuffer";
  38. amlogic,pipeline = "vpu-hdmi";
  39. clocks = <&clkc CLKID_HDMI>,
  40. <&clkc CLKID_HTX_PCLK>,
  41. <&clkc CLKID_VPU_INTR>;
  42. status = "disabled";
  43. };
  44. };
  45. efuse: efuse {
  46. compatible = "amlogic,meson-gxbb-efuse";
  47. clocks = <&clkc CLKID_EFUSE>;
  48. #address-cells = <1>;
  49. #size-cells = <1>;
  50. read-only;
  51. secure-monitor = <&sm>;
  52. };
  53. gpu_opp_table: opp-table-gpu {
  54. compatible = "operating-points-v2";
  55. opp-124999998 {
  56. opp-hz = /bits/ 64 <124999998>;
  57. opp-microvolt = <800000>;
  58. };
  59. opp-249999996 {
  60. opp-hz = /bits/ 64 <249999996>;
  61. opp-microvolt = <800000>;
  62. };
  63. opp-285714281 {
  64. opp-hz = /bits/ 64 <285714281>;
  65. opp-microvolt = <800000>;
  66. };
  67. opp-399999994 {
  68. opp-hz = /bits/ 64 <399999994>;
  69. opp-microvolt = <800000>;
  70. };
  71. opp-499999992 {
  72. opp-hz = /bits/ 64 <499999992>;
  73. opp-microvolt = <800000>;
  74. };
  75. opp-666666656 {
  76. opp-hz = /bits/ 64 <666666656>;
  77. opp-microvolt = <800000>;
  78. };
  79. opp-799999987 {
  80. opp-hz = /bits/ 64 <799999987>;
  81. opp-microvolt = <800000>;
  82. };
  83. };
  84. psci {
  85. compatible = "arm,psci-1.0";
  86. method = "smc";
  87. };
  88. reserved-memory {
  89. #address-cells = <2>;
  90. #size-cells = <2>;
  91. ranges;
  92. /* 3 MiB reserved for ARM Trusted Firmware (BL31) */
  93. secmon_reserved: secmon@5000000 {
  94. reg = <0x0 0x05000000 0x0 0x300000>;
  95. no-map;
  96. };
  97. /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
  98. secmon_reserved_bl32: secmon@5300000 {
  99. reg = <0x0 0x05300000 0x0 0x2000000>;
  100. no-map;
  101. };
  102. linux,cma {
  103. compatible = "shared-dma-pool";
  104. reusable;
  105. size = <0x0 0x10000000>;
  106. alignment = <0x0 0x400000>;
  107. linux,cma-default;
  108. };
  109. };
  110. sm: secure-monitor {
  111. compatible = "amlogic,meson-gxbb-sm";
  112. };
  113. soc {
  114. compatible = "simple-bus";
  115. #address-cells = <2>;
  116. #size-cells = <2>;
  117. ranges;
  118. pcie: pcie@fc000000 {
  119. compatible = "amlogic,g12a-pcie", "snps,dw-pcie";
  120. reg = <0x0 0xfc000000 0x0 0x400000>,
  121. <0x0 0xff648000 0x0 0x2000>,
  122. <0x0 0xfc400000 0x0 0x200000>;
  123. reg-names = "elbi", "cfg", "config";
  124. interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
  125. #interrupt-cells = <1>;
  126. interrupt-map-mask = <0 0 0 0>;
  127. interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
  128. bus-range = <0x0 0xff>;
  129. #address-cells = <3>;
  130. #size-cells = <2>;
  131. device_type = "pci";
  132. ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000>,
  133. <0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>;
  134. clocks = <&clkc CLKID_PCIE_PHY
  135. &clkc CLKID_PCIE_COMB
  136. &clkc CLKID_PCIE_PLL>;
  137. clock-names = "general",
  138. "pclk",
  139. "port";
  140. resets = <&reset RESET_PCIE_CTRL_A>,
  141. <&reset RESET_PCIE_APB>;
  142. reset-names = "port",
  143. "apb";
  144. num-lanes = <1>;
  145. phys = <&usb3_pcie_phy PHY_TYPE_PCIE>;
  146. phy-names = "pcie";
  147. status = "disabled";
  148. };
  149. ethmac: ethernet@ff3f0000 {
  150. compatible = "amlogic,meson-g12a-dwmac",
  151. "snps,dwmac-3.70a",
  152. "snps,dwmac";
  153. reg = <0x0 0xff3f0000 0x0 0x10000>,
  154. <0x0 0xff634540 0x0 0x8>;
  155. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  156. interrupt-names = "macirq";
  157. clocks = <&clkc CLKID_ETH>,
  158. <&clkc CLKID_FCLK_DIV2>,
  159. <&clkc CLKID_MPLL2>,
  160. <&clkc CLKID_FCLK_DIV2>;
  161. clock-names = "stmmaceth", "clkin0", "clkin1",
  162. "timing-adjustment";
  163. rx-fifo-depth = <4096>;
  164. tx-fifo-depth = <2048>;
  165. status = "disabled";
  166. mdio0: mdio {
  167. #address-cells = <1>;
  168. #size-cells = <0>;
  169. compatible = "snps,dwmac-mdio";
  170. };
  171. };
  172. apb: bus@ff600000 {
  173. compatible = "simple-bus";
  174. reg = <0x0 0xff600000 0x0 0x200000>;
  175. #address-cells = <2>;
  176. #size-cells = <2>;
  177. ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>;
  178. hdmi_tx: hdmi-tx@0 {
  179. compatible = "amlogic,meson-g12a-dw-hdmi";
  180. reg = <0x0 0x0 0x0 0x10000>;
  181. interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
  182. resets = <&reset RESET_HDMITX_CAPB3>,
  183. <&reset RESET_HDMITX_PHY>,
  184. <&reset RESET_HDMITX>;
  185. reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
  186. clocks = <&clkc CLKID_HDMI>,
  187. <&clkc CLKID_HTX_PCLK>,
  188. <&clkc CLKID_VPU_INTR>;
  189. clock-names = "isfr", "iahb", "venci";
  190. #address-cells = <1>;
  191. #size-cells = <0>;
  192. #sound-dai-cells = <0>;
  193. status = "disabled";
  194. /* VPU VENC Input */
  195. hdmi_tx_venc_port: port@0 {
  196. reg = <0>;
  197. hdmi_tx_in: endpoint {
  198. remote-endpoint = <&hdmi_tx_out>;
  199. };
  200. };
  201. /* TMDS Output */
  202. hdmi_tx_tmds_port: port@1 {
  203. reg = <1>;
  204. };
  205. };
  206. apb_efuse: bus@30000 {
  207. compatible = "simple-bus";
  208. reg = <0x0 0x30000 0x0 0x2000>;
  209. #address-cells = <2>;
  210. #size-cells = <2>;
  211. ranges = <0x0 0x0 0x0 0x30000 0x0 0x2000>;
  212. hwrng: rng@218 {
  213. compatible = "amlogic,meson-rng";
  214. reg = <0x0 0x218 0x0 0x4>;
  215. clocks = <&clkc CLKID_RNG0>;
  216. clock-names = "core";
  217. };
  218. };
  219. acodec: audio-controller@32000 {
  220. compatible = "amlogic,t9015";
  221. reg = <0x0 0x32000 0x0 0x14>;
  222. #sound-dai-cells = <0>;
  223. sound-name-prefix = "ACODEC";
  224. clocks = <&clkc CLKID_AUDIO_CODEC>;
  225. clock-names = "pclk";
  226. resets = <&reset RESET_AUDIO_CODEC>;
  227. status = "disabled";
  228. };
  229. periphs: bus@34400 {
  230. compatible = "simple-bus";
  231. reg = <0x0 0x34400 0x0 0x400>;
  232. #address-cells = <2>;
  233. #size-cells = <2>;
  234. ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>;
  235. periphs_pinctrl: pinctrl@40 {
  236. compatible = "amlogic,meson-g12a-periphs-pinctrl";
  237. #address-cells = <2>;
  238. #size-cells = <2>;
  239. ranges;
  240. gpio: bank@40 {
  241. reg = <0x0 0x40 0x0 0x4c>,
  242. <0x0 0xe8 0x0 0x18>,
  243. <0x0 0x120 0x0 0x18>,
  244. <0x0 0x2c0 0x0 0x40>,
  245. <0x0 0x340 0x0 0x1c>;
  246. reg-names = "gpio",
  247. "pull",
  248. "pull-enable",
  249. "mux",
  250. "ds";
  251. gpio-controller;
  252. #gpio-cells = <2>;
  253. gpio-ranges = <&periphs_pinctrl 0 0 86>;
  254. };
  255. cec_ao_a_h_pins: cec_ao_a_h {
  256. mux {
  257. groups = "cec_ao_a_h";
  258. function = "cec_ao_a_h";
  259. bias-disable;
  260. };
  261. };
  262. cec_ao_b_h_pins: cec_ao_b_h {
  263. mux {
  264. groups = "cec_ao_b_h";
  265. function = "cec_ao_b_h";
  266. bias-disable;
  267. };
  268. };
  269. emmc_ctrl_pins: emmc-ctrl {
  270. mux-0 {
  271. groups = "emmc_cmd";
  272. function = "emmc";
  273. bias-pull-up;
  274. drive-strength-microamp = <4000>;
  275. };
  276. mux-1 {
  277. groups = "emmc_clk";
  278. function = "emmc";
  279. bias-disable;
  280. drive-strength-microamp = <4000>;
  281. };
  282. };
  283. emmc_data_4b_pins: emmc-data-4b {
  284. mux-0 {
  285. groups = "emmc_nand_d0",
  286. "emmc_nand_d1",
  287. "emmc_nand_d2",
  288. "emmc_nand_d3";
  289. function = "emmc";
  290. bias-pull-up;
  291. drive-strength-microamp = <4000>;
  292. };
  293. };
  294. emmc_data_8b_pins: emmc-data-8b {
  295. mux-0 {
  296. groups = "emmc_nand_d0",
  297. "emmc_nand_d1",
  298. "emmc_nand_d2",
  299. "emmc_nand_d3",
  300. "emmc_nand_d4",
  301. "emmc_nand_d5",
  302. "emmc_nand_d6",
  303. "emmc_nand_d7";
  304. function = "emmc";
  305. bias-pull-up;
  306. drive-strength-microamp = <4000>;
  307. };
  308. };
  309. emmc_ds_pins: emmc-ds {
  310. mux {
  311. groups = "emmc_nand_ds";
  312. function = "emmc";
  313. bias-pull-down;
  314. drive-strength-microamp = <4000>;
  315. };
  316. };
  317. emmc_clk_gate_pins: emmc_clk_gate {
  318. mux {
  319. groups = "BOOT_8";
  320. function = "gpio_periphs";
  321. bias-pull-down;
  322. drive-strength-microamp = <4000>;
  323. };
  324. };
  325. hdmitx_ddc_pins: hdmitx_ddc {
  326. mux {
  327. groups = "hdmitx_sda",
  328. "hdmitx_sck";
  329. function = "hdmitx";
  330. bias-disable;
  331. drive-strength-microamp = <4000>;
  332. };
  333. };
  334. hdmitx_hpd_pins: hdmitx_hpd {
  335. mux {
  336. groups = "hdmitx_hpd_in";
  337. function = "hdmitx";
  338. bias-disable;
  339. };
  340. };
  341. i2c0_sda_c_pins: i2c0-sda-c {
  342. mux {
  343. groups = "i2c0_sda_c";
  344. function = "i2c0";
  345. bias-disable;
  346. drive-strength-microamp = <3000>;
  347. };
  348. };
  349. i2c0_sck_c_pins: i2c0-sck-c {
  350. mux {
  351. groups = "i2c0_sck_c";
  352. function = "i2c0";
  353. bias-disable;
  354. drive-strength-microamp = <3000>;
  355. };
  356. };
  357. i2c0_sda_z0_pins: i2c0-sda-z0 {
  358. mux {
  359. groups = "i2c0_sda_z0";
  360. function = "i2c0";
  361. bias-disable;
  362. drive-strength-microamp = <3000>;
  363. };
  364. };
  365. i2c0_sck_z1_pins: i2c0-sck-z1 {
  366. mux {
  367. groups = "i2c0_sck_z1";
  368. function = "i2c0";
  369. bias-disable;
  370. drive-strength-microamp = <3000>;
  371. };
  372. };
  373. i2c0_sda_z7_pins: i2c0-sda-z7 {
  374. mux {
  375. groups = "i2c0_sda_z7";
  376. function = "i2c0";
  377. bias-disable;
  378. drive-strength-microamp = <3000>;
  379. };
  380. };
  381. i2c0_sda_z8_pins: i2c0-sda-z8 {
  382. mux {
  383. groups = "i2c0_sda_z8";
  384. function = "i2c0";
  385. bias-disable;
  386. drive-strength-microamp = <3000>;
  387. };
  388. };
  389. i2c1_sda_x_pins: i2c1-sda-x {
  390. mux {
  391. groups = "i2c1_sda_x";
  392. function = "i2c1";
  393. bias-disable;
  394. drive-strength-microamp = <3000>;
  395. };
  396. };
  397. i2c1_sck_x_pins: i2c1-sck-x {
  398. mux {
  399. groups = "i2c1_sck_x";
  400. function = "i2c1";
  401. bias-disable;
  402. drive-strength-microamp = <3000>;
  403. };
  404. };
  405. i2c1_sda_h2_pins: i2c1-sda-h2 {
  406. mux {
  407. groups = "i2c1_sda_h2";
  408. function = "i2c1";
  409. bias-disable;
  410. drive-strength-microamp = <3000>;
  411. };
  412. };
  413. i2c1_sck_h3_pins: i2c1-sck-h3 {
  414. mux {
  415. groups = "i2c1_sck_h3";
  416. function = "i2c1";
  417. bias-disable;
  418. drive-strength-microamp = <3000>;
  419. };
  420. };
  421. i2c1_sda_h6_pins: i2c1-sda-h6 {
  422. mux {
  423. groups = "i2c1_sda_h6";
  424. function = "i2c1";
  425. bias-disable;
  426. drive-strength-microamp = <3000>;
  427. };
  428. };
  429. i2c1_sck_h7_pins: i2c1-sck-h7 {
  430. mux {
  431. groups = "i2c1_sck_h7";
  432. function = "i2c1";
  433. bias-disable;
  434. drive-strength-microamp = <3000>;
  435. };
  436. };
  437. i2c2_sda_x_pins: i2c2-sda-x {
  438. mux {
  439. groups = "i2c2_sda_x";
  440. function = "i2c2";
  441. bias-disable;
  442. drive-strength-microamp = <3000>;
  443. };
  444. };
  445. i2c2_sck_x_pins: i2c2-sck-x {
  446. mux {
  447. groups = "i2c2_sck_x";
  448. function = "i2c2";
  449. bias-disable;
  450. drive-strength-microamp = <3000>;
  451. };
  452. };
  453. i2c2_sda_z_pins: i2c2-sda-z {
  454. mux {
  455. groups = "i2c2_sda_z";
  456. function = "i2c2";
  457. bias-disable;
  458. drive-strength-microamp = <3000>;
  459. };
  460. };
  461. i2c2_sck_z_pins: i2c2-sck-z {
  462. mux {
  463. groups = "i2c2_sck_z";
  464. function = "i2c2";
  465. bias-disable;
  466. drive-strength-microamp = <3000>;
  467. };
  468. };
  469. i2c3_sda_h_pins: i2c3-sda-h {
  470. mux {
  471. groups = "i2c3_sda_h";
  472. function = "i2c3";
  473. bias-disable;
  474. drive-strength-microamp = <3000>;
  475. };
  476. };
  477. i2c3_sck_h_pins: i2c3-sck-h {
  478. mux {
  479. groups = "i2c3_sck_h";
  480. function = "i2c3";
  481. bias-disable;
  482. drive-strength-microamp = <3000>;
  483. };
  484. };
  485. i2c3_sda_a_pins: i2c3-sda-a {
  486. mux {
  487. groups = "i2c3_sda_a";
  488. function = "i2c3";
  489. bias-disable;
  490. drive-strength-microamp = <3000>;
  491. };
  492. };
  493. i2c3_sck_a_pins: i2c3-sck-a {
  494. mux {
  495. groups = "i2c3_sck_a";
  496. function = "i2c3";
  497. bias-disable;
  498. drive-strength-microamp = <3000>;
  499. };
  500. };
  501. mclk0_a_pins: mclk0-a {
  502. mux {
  503. groups = "mclk0_a";
  504. function = "mclk0";
  505. bias-disable;
  506. drive-strength-microamp = <3000>;
  507. };
  508. };
  509. mclk1_a_pins: mclk1-a {
  510. mux {
  511. groups = "mclk1_a";
  512. function = "mclk1";
  513. bias-disable;
  514. drive-strength-microamp = <3000>;
  515. };
  516. };
  517. mclk1_x_pins: mclk1-x {
  518. mux {
  519. groups = "mclk1_x";
  520. function = "mclk1";
  521. bias-disable;
  522. drive-strength-microamp = <3000>;
  523. };
  524. };
  525. mclk1_z_pins: mclk1-z {
  526. mux {
  527. groups = "mclk1_z";
  528. function = "mclk1";
  529. bias-disable;
  530. drive-strength-microamp = <3000>;
  531. };
  532. };
  533. nor_pins: nor {
  534. mux {
  535. groups = "nor_d",
  536. "nor_q",
  537. "nor_c",
  538. "nor_cs";
  539. function = "nor";
  540. bias-disable;
  541. };
  542. };
  543. pdm_din0_a_pins: pdm-din0-a {
  544. mux {
  545. groups = "pdm_din0_a";
  546. function = "pdm";
  547. bias-disable;
  548. };
  549. };
  550. pdm_din0_c_pins: pdm-din0-c {
  551. mux {
  552. groups = "pdm_din0_c";
  553. function = "pdm";
  554. bias-disable;
  555. };
  556. };
  557. pdm_din0_x_pins: pdm-din0-x {
  558. mux {
  559. groups = "pdm_din0_x";
  560. function = "pdm";
  561. bias-disable;
  562. };
  563. };
  564. pdm_din0_z_pins: pdm-din0-z {
  565. mux {
  566. groups = "pdm_din0_z";
  567. function = "pdm";
  568. bias-disable;
  569. };
  570. };
  571. pdm_din1_a_pins: pdm-din1-a {
  572. mux {
  573. groups = "pdm_din1_a";
  574. function = "pdm";
  575. bias-disable;
  576. };
  577. };
  578. pdm_din1_c_pins: pdm-din1-c {
  579. mux {
  580. groups = "pdm_din1_c";
  581. function = "pdm";
  582. bias-disable;
  583. };
  584. };
  585. pdm_din1_x_pins: pdm-din1-x {
  586. mux {
  587. groups = "pdm_din1_x";
  588. function = "pdm";
  589. bias-disable;
  590. };
  591. };
  592. pdm_din1_z_pins: pdm-din1-z {
  593. mux {
  594. groups = "pdm_din1_z";
  595. function = "pdm";
  596. bias-disable;
  597. };
  598. };
  599. pdm_din2_a_pins: pdm-din2-a {
  600. mux {
  601. groups = "pdm_din2_a";
  602. function = "pdm";
  603. bias-disable;
  604. };
  605. };
  606. pdm_din2_c_pins: pdm-din2-c {
  607. mux {
  608. groups = "pdm_din2_c";
  609. function = "pdm";
  610. bias-disable;
  611. };
  612. };
  613. pdm_din2_x_pins: pdm-din2-x {
  614. mux {
  615. groups = "pdm_din2_x";
  616. function = "pdm";
  617. bias-disable;
  618. };
  619. };
  620. pdm_din2_z_pins: pdm-din2-z {
  621. mux {
  622. groups = "pdm_din2_z";
  623. function = "pdm";
  624. bias-disable;
  625. };
  626. };
  627. pdm_din3_a_pins: pdm-din3-a {
  628. mux {
  629. groups = "pdm_din3_a";
  630. function = "pdm";
  631. bias-disable;
  632. };
  633. };
  634. pdm_din3_c_pins: pdm-din3-c {
  635. mux {
  636. groups = "pdm_din3_c";
  637. function = "pdm";
  638. bias-disable;
  639. };
  640. };
  641. pdm_din3_x_pins: pdm-din3-x {
  642. mux {
  643. groups = "pdm_din3_x";
  644. function = "pdm";
  645. bias-disable;
  646. };
  647. };
  648. pdm_din3_z_pins: pdm-din3-z {
  649. mux {
  650. groups = "pdm_din3_z";
  651. function = "pdm";
  652. bias-disable;
  653. };
  654. };
  655. pdm_dclk_a_pins: pdm-dclk-a {
  656. mux {
  657. groups = "pdm_dclk_a";
  658. function = "pdm";
  659. bias-disable;
  660. drive-strength-microamp = <500>;
  661. };
  662. };
  663. pdm_dclk_c_pins: pdm-dclk-c {
  664. mux {
  665. groups = "pdm_dclk_c";
  666. function = "pdm";
  667. bias-disable;
  668. drive-strength-microamp = <500>;
  669. };
  670. };
  671. pdm_dclk_x_pins: pdm-dclk-x {
  672. mux {
  673. groups = "pdm_dclk_x";
  674. function = "pdm";
  675. bias-disable;
  676. drive-strength-microamp = <500>;
  677. };
  678. };
  679. pdm_dclk_z_pins: pdm-dclk-z {
  680. mux {
  681. groups = "pdm_dclk_z";
  682. function = "pdm";
  683. bias-disable;
  684. drive-strength-microamp = <500>;
  685. };
  686. };
  687. pwm_a_pins: pwm-a {
  688. mux {
  689. groups = "pwm_a";
  690. function = "pwm_a";
  691. bias-disable;
  692. };
  693. };
  694. pwm_b_x7_pins: pwm-b-x7 {
  695. mux {
  696. groups = "pwm_b_x7";
  697. function = "pwm_b";
  698. bias-disable;
  699. };
  700. };
  701. pwm_b_x19_pins: pwm-b-x19 {
  702. mux {
  703. groups = "pwm_b_x19";
  704. function = "pwm_b";
  705. bias-disable;
  706. };
  707. };
  708. pwm_c_c_pins: pwm-c-c {
  709. mux {
  710. groups = "pwm_c_c";
  711. function = "pwm_c";
  712. bias-disable;
  713. };
  714. };
  715. pwm_c_x5_pins: pwm-c-x5 {
  716. mux {
  717. groups = "pwm_c_x5";
  718. function = "pwm_c";
  719. bias-disable;
  720. };
  721. };
  722. pwm_c_x8_pins: pwm-c-x8 {
  723. mux {
  724. groups = "pwm_c_x8";
  725. function = "pwm_c";
  726. bias-disable;
  727. };
  728. };
  729. pwm_d_x3_pins: pwm-d-x3 {
  730. mux {
  731. groups = "pwm_d_x3";
  732. function = "pwm_d";
  733. bias-disable;
  734. };
  735. };
  736. pwm_d_x6_pins: pwm-d-x6 {
  737. mux {
  738. groups = "pwm_d_x6";
  739. function = "pwm_d";
  740. bias-disable;
  741. };
  742. };
  743. pwm_e_pins: pwm-e {
  744. mux {
  745. groups = "pwm_e";
  746. function = "pwm_e";
  747. bias-disable;
  748. };
  749. };
  750. pwm_f_z_pins: pwm-f-z {
  751. mux {
  752. groups = "pwm_f_z";
  753. function = "pwm_f";
  754. bias-disable;
  755. };
  756. };
  757. pwm_f_a_pins: pwm-f-a {
  758. mux {
  759. groups = "pwm_f_a";
  760. function = "pwm_f";
  761. bias-disable;
  762. };
  763. };
  764. pwm_f_x_pins: pwm-f-x {
  765. mux {
  766. groups = "pwm_f_x";
  767. function = "pwm_f";
  768. bias-disable;
  769. };
  770. };
  771. pwm_f_h_pins: pwm-f-h {
  772. mux {
  773. groups = "pwm_f_h";
  774. function = "pwm_f";
  775. bias-disable;
  776. };
  777. };
  778. sdcard_c_pins: sdcard_c {
  779. mux-0 {
  780. groups = "sdcard_d0_c",
  781. "sdcard_d1_c",
  782. "sdcard_d2_c",
  783. "sdcard_d3_c",
  784. "sdcard_cmd_c";
  785. function = "sdcard";
  786. bias-pull-up;
  787. drive-strength-microamp = <4000>;
  788. };
  789. mux-1 {
  790. groups = "sdcard_clk_c";
  791. function = "sdcard";
  792. bias-disable;
  793. drive-strength-microamp = <4000>;
  794. };
  795. };
  796. sdcard_clk_gate_c_pins: sdcard_clk_gate_c {
  797. mux {
  798. groups = "GPIOC_4";
  799. function = "gpio_periphs";
  800. bias-pull-down;
  801. drive-strength-microamp = <4000>;
  802. };
  803. };
  804. sdcard_z_pins: sdcard_z {
  805. mux-0 {
  806. groups = "sdcard_d0_z",
  807. "sdcard_d1_z",
  808. "sdcard_d2_z",
  809. "sdcard_d3_z",
  810. "sdcard_cmd_z";
  811. function = "sdcard";
  812. bias-pull-up;
  813. drive-strength-microamp = <4000>;
  814. };
  815. mux-1 {
  816. groups = "sdcard_clk_z";
  817. function = "sdcard";
  818. bias-disable;
  819. drive-strength-microamp = <4000>;
  820. };
  821. };
  822. sdcard_clk_gate_z_pins: sdcard_clk_gate_z {
  823. mux {
  824. groups = "GPIOZ_6";
  825. function = "gpio_periphs";
  826. bias-pull-down;
  827. drive-strength-microamp = <4000>;
  828. };
  829. };
  830. sdio_pins: sdio {
  831. mux {
  832. groups = "sdio_d0",
  833. "sdio_d1",
  834. "sdio_d2",
  835. "sdio_d3",
  836. "sdio_clk",
  837. "sdio_cmd";
  838. function = "sdio";
  839. bias-disable;
  840. drive-strength-microamp = <4000>;
  841. };
  842. };
  843. sdio_clk_gate_pins: sdio_clk_gate {
  844. mux {
  845. groups = "GPIOX_4";
  846. function = "gpio_periphs";
  847. bias-pull-down;
  848. drive-strength-microamp = <4000>;
  849. };
  850. };
  851. spdif_in_a10_pins: spdif-in-a10 {
  852. mux {
  853. groups = "spdif_in_a10";
  854. function = "spdif_in";
  855. bias-disable;
  856. };
  857. };
  858. spdif_in_a12_pins: spdif-in-a12 {
  859. mux {
  860. groups = "spdif_in_a12";
  861. function = "spdif_in";
  862. bias-disable;
  863. };
  864. };
  865. spdif_in_h_pins: spdif-in-h {
  866. mux {
  867. groups = "spdif_in_h";
  868. function = "spdif_in";
  869. bias-disable;
  870. };
  871. };
  872. spdif_out_h_pins: spdif-out-h {
  873. mux {
  874. groups = "spdif_out_h";
  875. function = "spdif_out";
  876. drive-strength-microamp = <500>;
  877. bias-disable;
  878. };
  879. };
  880. spdif_out_a11_pins: spdif-out-a11 {
  881. mux {
  882. groups = "spdif_out_a11";
  883. function = "spdif_out";
  884. drive-strength-microamp = <500>;
  885. bias-disable;
  886. };
  887. };
  888. spdif_out_a13_pins: spdif-out-a13 {
  889. mux {
  890. groups = "spdif_out_a13";
  891. function = "spdif_out";
  892. drive-strength-microamp = <500>;
  893. bias-disable;
  894. };
  895. };
  896. spicc0_x_pins: spicc0-x {
  897. mux {
  898. groups = "spi0_mosi_x",
  899. "spi0_miso_x",
  900. "spi0_clk_x";
  901. function = "spi0";
  902. drive-strength-microamp = <4000>;
  903. bias-disable;
  904. };
  905. };
  906. spicc0_ss0_x_pins: spicc0-ss0-x {
  907. mux {
  908. groups = "spi0_ss0_x";
  909. function = "spi0";
  910. drive-strength-microamp = <4000>;
  911. bias-disable;
  912. };
  913. };
  914. spicc0_c_pins: spicc0-c {
  915. mux {
  916. groups = "spi0_mosi_c",
  917. "spi0_miso_c",
  918. "spi0_ss0_c",
  919. "spi0_clk_c";
  920. function = "spi0";
  921. drive-strength-microamp = <4000>;
  922. bias-disable;
  923. };
  924. };
  925. spicc1_pins: spicc1 {
  926. mux {
  927. groups = "spi1_mosi",
  928. "spi1_miso",
  929. "spi1_clk";
  930. function = "spi1";
  931. drive-strength-microamp = <4000>;
  932. };
  933. };
  934. spicc1_ss0_pins: spicc1-ss0 {
  935. mux {
  936. groups = "spi1_ss0";
  937. function = "spi1";
  938. drive-strength-microamp = <4000>;
  939. bias-disable;
  940. };
  941. };
  942. tdm_a_din0_pins: tdm-a-din0 {
  943. mux {
  944. groups = "tdm_a_din0";
  945. function = "tdm_a";
  946. bias-disable;
  947. };
  948. };
  949. tdm_a_din1_pins: tdm-a-din1 {
  950. mux {
  951. groups = "tdm_a_din1";
  952. function = "tdm_a";
  953. bias-disable;
  954. };
  955. };
  956. tdm_a_dout0_pins: tdm-a-dout0 {
  957. mux {
  958. groups = "tdm_a_dout0";
  959. function = "tdm_a";
  960. bias-disable;
  961. drive-strength-microamp = <3000>;
  962. };
  963. };
  964. tdm_a_dout1_pins: tdm-a-dout1 {
  965. mux {
  966. groups = "tdm_a_dout1";
  967. function = "tdm_a";
  968. bias-disable;
  969. drive-strength-microamp = <3000>;
  970. };
  971. };
  972. tdm_a_fs_pins: tdm-a-fs {
  973. mux {
  974. groups = "tdm_a_fs";
  975. function = "tdm_a";
  976. bias-disable;
  977. drive-strength-microamp = <3000>;
  978. };
  979. };
  980. tdm_a_sclk_pins: tdm-a-sclk {
  981. mux {
  982. groups = "tdm_a_sclk";
  983. function = "tdm_a";
  984. bias-disable;
  985. drive-strength-microamp = <3000>;
  986. };
  987. };
  988. tdm_a_slv_fs_pins: tdm-a-slv-fs {
  989. mux {
  990. groups = "tdm_a_slv_fs";
  991. function = "tdm_a";
  992. bias-disable;
  993. };
  994. };
  995. tdm_a_slv_sclk_pins: tdm-a-slv-sclk {
  996. mux {
  997. groups = "tdm_a_slv_sclk";
  998. function = "tdm_a";
  999. bias-disable;
  1000. };
  1001. };
  1002. tdm_b_din0_pins: tdm-b-din0 {
  1003. mux {
  1004. groups = "tdm_b_din0";
  1005. function = "tdm_b";
  1006. bias-disable;
  1007. };
  1008. };
  1009. tdm_b_din1_pins: tdm-b-din1 {
  1010. mux {
  1011. groups = "tdm_b_din1";
  1012. function = "tdm_b";
  1013. bias-disable;
  1014. };
  1015. };
  1016. tdm_b_din2_pins: tdm-b-din2 {
  1017. mux {
  1018. groups = "tdm_b_din2";
  1019. function = "tdm_b";
  1020. bias-disable;
  1021. };
  1022. };
  1023. tdm_b_din3_a_pins: tdm-b-din3-a {
  1024. mux {
  1025. groups = "tdm_b_din3_a";
  1026. function = "tdm_b";
  1027. bias-disable;
  1028. };
  1029. };
  1030. tdm_b_din3_h_pins: tdm-b-din3-h {
  1031. mux {
  1032. groups = "tdm_b_din3_h";
  1033. function = "tdm_b";
  1034. bias-disable;
  1035. };
  1036. };
  1037. tdm_b_dout0_pins: tdm-b-dout0 {
  1038. mux {
  1039. groups = "tdm_b_dout0";
  1040. function = "tdm_b";
  1041. bias-disable;
  1042. drive-strength-microamp = <3000>;
  1043. };
  1044. };
  1045. tdm_b_dout1_pins: tdm-b-dout1 {
  1046. mux {
  1047. groups = "tdm_b_dout1";
  1048. function = "tdm_b";
  1049. bias-disable;
  1050. drive-strength-microamp = <3000>;
  1051. };
  1052. };
  1053. tdm_b_dout2_pins: tdm-b-dout2 {
  1054. mux {
  1055. groups = "tdm_b_dout2";
  1056. function = "tdm_b";
  1057. bias-disable;
  1058. drive-strength-microamp = <3000>;
  1059. };
  1060. };
  1061. tdm_b_dout3_a_pins: tdm-b-dout3-a {
  1062. mux {
  1063. groups = "tdm_b_dout3_a";
  1064. function = "tdm_b";
  1065. bias-disable;
  1066. drive-strength-microamp = <3000>;
  1067. };
  1068. };
  1069. tdm_b_dout3_h_pins: tdm-b-dout3-h {
  1070. mux {
  1071. groups = "tdm_b_dout3_h";
  1072. function = "tdm_b";
  1073. bias-disable;
  1074. drive-strength-microamp = <3000>;
  1075. };
  1076. };
  1077. tdm_b_fs_pins: tdm-b-fs {
  1078. mux {
  1079. groups = "tdm_b_fs";
  1080. function = "tdm_b";
  1081. bias-disable;
  1082. drive-strength-microamp = <3000>;
  1083. };
  1084. };
  1085. tdm_b_sclk_pins: tdm-b-sclk {
  1086. mux {
  1087. groups = "tdm_b_sclk";
  1088. function = "tdm_b";
  1089. bias-disable;
  1090. drive-strength-microamp = <3000>;
  1091. };
  1092. };
  1093. tdm_b_slv_fs_pins: tdm-b-slv-fs {
  1094. mux {
  1095. groups = "tdm_b_slv_fs";
  1096. function = "tdm_b";
  1097. bias-disable;
  1098. };
  1099. };
  1100. tdm_b_slv_sclk_pins: tdm-b-slv-sclk {
  1101. mux {
  1102. groups = "tdm_b_slv_sclk";
  1103. function = "tdm_b";
  1104. bias-disable;
  1105. };
  1106. };
  1107. tdm_c_din0_a_pins: tdm-c-din0-a {
  1108. mux {
  1109. groups = "tdm_c_din0_a";
  1110. function = "tdm_c";
  1111. bias-disable;
  1112. };
  1113. };
  1114. tdm_c_din0_z_pins: tdm-c-din0-z {
  1115. mux {
  1116. groups = "tdm_c_din0_z";
  1117. function = "tdm_c";
  1118. bias-disable;
  1119. };
  1120. };
  1121. tdm_c_din1_a_pins: tdm-c-din1-a {
  1122. mux {
  1123. groups = "tdm_c_din1_a";
  1124. function = "tdm_c";
  1125. bias-disable;
  1126. };
  1127. };
  1128. tdm_c_din1_z_pins: tdm-c-din1-z {
  1129. mux {
  1130. groups = "tdm_c_din1_z";
  1131. function = "tdm_c";
  1132. bias-disable;
  1133. };
  1134. };
  1135. tdm_c_din2_a_pins: tdm-c-din2-a {
  1136. mux {
  1137. groups = "tdm_c_din2_a";
  1138. function = "tdm_c";
  1139. bias-disable;
  1140. };
  1141. };
  1142. eth_leds_pins: eth-leds {
  1143. mux {
  1144. groups = "eth_link_led",
  1145. "eth_act_led";
  1146. function = "eth";
  1147. bias-disable;
  1148. };
  1149. };
  1150. eth_pins: eth {
  1151. mux {
  1152. groups = "eth_mdio",
  1153. "eth_mdc",
  1154. "eth_rgmii_rx_clk",
  1155. "eth_rx_dv",
  1156. "eth_rxd0",
  1157. "eth_rxd1",
  1158. "eth_txen",
  1159. "eth_txd0",
  1160. "eth_txd1";
  1161. function = "eth";
  1162. drive-strength-microamp = <4000>;
  1163. bias-disable;
  1164. };
  1165. };
  1166. eth_rgmii_pins: eth-rgmii {
  1167. mux {
  1168. groups = "eth_rxd2_rgmii",
  1169. "eth_rxd3_rgmii",
  1170. "eth_rgmii_tx_clk",
  1171. "eth_txd2_rgmii",
  1172. "eth_txd3_rgmii";
  1173. function = "eth";
  1174. drive-strength-microamp = <4000>;
  1175. bias-disable;
  1176. };
  1177. };
  1178. tdm_c_din2_z_pins: tdm-c-din2-z {
  1179. mux {
  1180. groups = "tdm_c_din2_z";
  1181. function = "tdm_c";
  1182. bias-disable;
  1183. };
  1184. };
  1185. tdm_c_din3_a_pins: tdm-c-din3-a {
  1186. mux {
  1187. groups = "tdm_c_din3_a";
  1188. function = "tdm_c";
  1189. bias-disable;
  1190. };
  1191. };
  1192. tdm_c_din3_z_pins: tdm-c-din3-z {
  1193. mux {
  1194. groups = "tdm_c_din3_z";
  1195. function = "tdm_c";
  1196. bias-disable;
  1197. };
  1198. };
  1199. tdm_c_dout0_a_pins: tdm-c-dout0-a {
  1200. mux {
  1201. groups = "tdm_c_dout0_a";
  1202. function = "tdm_c";
  1203. bias-disable;
  1204. drive-strength-microamp = <3000>;
  1205. };
  1206. };
  1207. tdm_c_dout0_z_pins: tdm-c-dout0-z {
  1208. mux {
  1209. groups = "tdm_c_dout0_z";
  1210. function = "tdm_c";
  1211. bias-disable;
  1212. drive-strength-microamp = <3000>;
  1213. };
  1214. };
  1215. tdm_c_dout1_a_pins: tdm-c-dout1-a {
  1216. mux {
  1217. groups = "tdm_c_dout1_a";
  1218. function = "tdm_c";
  1219. bias-disable;
  1220. drive-strength-microamp = <3000>;
  1221. };
  1222. };
  1223. tdm_c_dout1_z_pins: tdm-c-dout1-z {
  1224. mux {
  1225. groups = "tdm_c_dout1_z";
  1226. function = "tdm_c";
  1227. bias-disable;
  1228. drive-strength-microamp = <3000>;
  1229. };
  1230. };
  1231. tdm_c_dout2_a_pins: tdm-c-dout2-a {
  1232. mux {
  1233. groups = "tdm_c_dout2_a";
  1234. function = "tdm_c";
  1235. bias-disable;
  1236. drive-strength-microamp = <3000>;
  1237. };
  1238. };
  1239. tdm_c_dout2_z_pins: tdm-c-dout2-z {
  1240. mux {
  1241. groups = "tdm_c_dout2_z";
  1242. function = "tdm_c";
  1243. bias-disable;
  1244. drive-strength-microamp = <3000>;
  1245. };
  1246. };
  1247. tdm_c_dout3_a_pins: tdm-c-dout3-a {
  1248. mux {
  1249. groups = "tdm_c_dout3_a";
  1250. function = "tdm_c";
  1251. bias-disable;
  1252. drive-strength-microamp = <3000>;
  1253. };
  1254. };
  1255. tdm_c_dout3_z_pins: tdm-c-dout3-z {
  1256. mux {
  1257. groups = "tdm_c_dout3_z";
  1258. function = "tdm_c";
  1259. bias-disable;
  1260. drive-strength-microamp = <3000>;
  1261. };
  1262. };
  1263. tdm_c_fs_a_pins: tdm-c-fs-a {
  1264. mux {
  1265. groups = "tdm_c_fs_a";
  1266. function = "tdm_c";
  1267. bias-disable;
  1268. drive-strength-microamp = <3000>;
  1269. };
  1270. };
  1271. tdm_c_fs_z_pins: tdm-c-fs-z {
  1272. mux {
  1273. groups = "tdm_c_fs_z";
  1274. function = "tdm_c";
  1275. bias-disable;
  1276. drive-strength-microamp = <3000>;
  1277. };
  1278. };
  1279. tdm_c_sclk_a_pins: tdm-c-sclk-a {
  1280. mux {
  1281. groups = "tdm_c_sclk_a";
  1282. function = "tdm_c";
  1283. bias-disable;
  1284. drive-strength-microamp = <3000>;
  1285. };
  1286. };
  1287. tdm_c_sclk_z_pins: tdm-c-sclk-z {
  1288. mux {
  1289. groups = "tdm_c_sclk_z";
  1290. function = "tdm_c";
  1291. bias-disable;
  1292. drive-strength-microamp = <3000>;
  1293. };
  1294. };
  1295. tdm_c_slv_fs_a_pins: tdm-c-slv-fs-a {
  1296. mux {
  1297. groups = "tdm_c_slv_fs_a";
  1298. function = "tdm_c";
  1299. bias-disable;
  1300. };
  1301. };
  1302. tdm_c_slv_fs_z_pins: tdm-c-slv-fs-z {
  1303. mux {
  1304. groups = "tdm_c_slv_fs_z";
  1305. function = "tdm_c";
  1306. bias-disable;
  1307. };
  1308. };
  1309. tdm_c_slv_sclk_a_pins: tdm-c-slv-sclk-a {
  1310. mux {
  1311. groups = "tdm_c_slv_sclk_a";
  1312. function = "tdm_c";
  1313. bias-disable;
  1314. };
  1315. };
  1316. tdm_c_slv_sclk_z_pins: tdm-c-slv-sclk-z {
  1317. mux {
  1318. groups = "tdm_c_slv_sclk_z";
  1319. function = "tdm_c";
  1320. bias-disable;
  1321. };
  1322. };
  1323. uart_a_pins: uart-a {
  1324. mux {
  1325. groups = "uart_a_tx",
  1326. "uart_a_rx";
  1327. function = "uart_a";
  1328. bias-disable;
  1329. };
  1330. };
  1331. uart_a_cts_rts_pins: uart-a-cts-rts {
  1332. mux {
  1333. groups = "uart_a_cts",
  1334. "uart_a_rts";
  1335. function = "uart_a";
  1336. bias-disable;
  1337. };
  1338. };
  1339. uart_b_pins: uart-b {
  1340. mux {
  1341. groups = "uart_b_tx",
  1342. "uart_b_rx";
  1343. function = "uart_b";
  1344. bias-disable;
  1345. };
  1346. };
  1347. uart_c_pins: uart-c {
  1348. mux {
  1349. groups = "uart_c_tx",
  1350. "uart_c_rx";
  1351. function = "uart_c";
  1352. bias-disable;
  1353. };
  1354. };
  1355. uart_c_cts_rts_pins: uart-c-cts-rts {
  1356. mux {
  1357. groups = "uart_c_cts",
  1358. "uart_c_rts";
  1359. function = "uart_c";
  1360. bias-disable;
  1361. };
  1362. };
  1363. };
  1364. };
  1365. cpu_temp: temperature-sensor@34800 {
  1366. compatible = "amlogic,g12a-cpu-thermal",
  1367. "amlogic,g12a-thermal";
  1368. reg = <0x0 0x34800 0x0 0x50>;
  1369. interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
  1370. clocks = <&clkc CLKID_TS>;
  1371. #thermal-sensor-cells = <0>;
  1372. amlogic,ao-secure = <&sec_AO>;
  1373. };
  1374. ddr_temp: temperature-sensor@34c00 {
  1375. compatible = "amlogic,g12a-ddr-thermal",
  1376. "amlogic,g12a-thermal";
  1377. reg = <0x0 0x34c00 0x0 0x50>;
  1378. interrupts = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>;
  1379. clocks = <&clkc CLKID_TS>;
  1380. #thermal-sensor-cells = <0>;
  1381. amlogic,ao-secure = <&sec_AO>;
  1382. };
  1383. usb2_phy0: phy@36000 {
  1384. compatible = "amlogic,g12a-usb2-phy";
  1385. reg = <0x0 0x36000 0x0 0x2000>;
  1386. clocks = <&xtal>;
  1387. clock-names = "xtal";
  1388. resets = <&reset RESET_USB_PHY20>;
  1389. reset-names = "phy";
  1390. #phy-cells = <0>;
  1391. };
  1392. dmc: bus@38000 {
  1393. compatible = "simple-bus";
  1394. #address-cells = <2>;
  1395. #size-cells = <2>;
  1396. ranges = <0x0 0x0 0x0 0x38000 0x0 0x2000>;
  1397. canvas: video-lut@48 {
  1398. compatible = "amlogic,canvas";
  1399. reg = <0x0 0x48 0x0 0x14>;
  1400. };
  1401. };
  1402. usb2_phy1: phy@3a000 {
  1403. compatible = "amlogic,g12a-usb2-phy";
  1404. reg = <0x0 0x3a000 0x0 0x2000>;
  1405. clocks = <&xtal>;
  1406. clock-names = "xtal";
  1407. resets = <&reset RESET_USB_PHY21>;
  1408. reset-names = "phy";
  1409. #phy-cells = <0>;
  1410. };
  1411. hiu: bus@3c000 {
  1412. compatible = "simple-bus";
  1413. reg = <0x0 0x3c000 0x0 0x1400>;
  1414. #address-cells = <2>;
  1415. #size-cells = <2>;
  1416. ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>;
  1417. hhi: system-controller@0 {
  1418. compatible = "amlogic,meson-gx-hhi-sysctrl",
  1419. "simple-mfd", "syscon";
  1420. reg = <0 0 0 0x400>;
  1421. clkc: clock-controller {
  1422. compatible = "amlogic,g12a-clkc";
  1423. #clock-cells = <1>;
  1424. clocks = <&xtal>;
  1425. clock-names = "xtal";
  1426. };
  1427. pwrc: power-controller {
  1428. compatible = "amlogic,meson-g12a-pwrc";
  1429. #power-domain-cells = <1>;
  1430. amlogic,ao-sysctrl = <&rti>;
  1431. resets = <&reset RESET_VIU>,
  1432. <&reset RESET_VENC>,
  1433. <&reset RESET_VCBUS>,
  1434. <&reset RESET_BT656>,
  1435. <&reset RESET_RDMA>,
  1436. <&reset RESET_VENCI>,
  1437. <&reset RESET_VENCP>,
  1438. <&reset RESET_VDAC>,
  1439. <&reset RESET_VDI6>,
  1440. <&reset RESET_VENCL>,
  1441. <&reset RESET_VID_LOCK>;
  1442. reset-names = "viu", "venc", "vcbus", "bt656",
  1443. "rdma", "venci", "vencp", "vdac",
  1444. "vdi6", "vencl", "vid_lock";
  1445. clocks = <&clkc CLKID_VPU>,
  1446. <&clkc CLKID_VAPB>;
  1447. clock-names = "vpu", "vapb";
  1448. /*
  1449. * VPU clocking is provided by two identical clock paths
  1450. * VPU_0 and VPU_1 muxed to a single clock by a glitch
  1451. * free mux to safely change frequency while running.
  1452. * Same for VAPB but with a final gate after the glitch free mux.
  1453. */
  1454. assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
  1455. <&clkc CLKID_VPU_0>,
  1456. <&clkc CLKID_VPU>, /* Glitch free mux */
  1457. <&clkc CLKID_VAPB_0_SEL>,
  1458. <&clkc CLKID_VAPB_0>,
  1459. <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
  1460. assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
  1461. <0>, /* Do Nothing */
  1462. <&clkc CLKID_VPU_0>,
  1463. <&clkc CLKID_FCLK_DIV4>,
  1464. <0>, /* Do Nothing */
  1465. <&clkc CLKID_VAPB_0>;
  1466. assigned-clock-rates = <0>, /* Do Nothing */
  1467. <666666666>,
  1468. <0>, /* Do Nothing */
  1469. <0>, /* Do Nothing */
  1470. <250000000>,
  1471. <0>; /* Do Nothing */
  1472. };
  1473. };
  1474. };
  1475. usb3_pcie_phy: phy@46000 {
  1476. compatible = "amlogic,g12a-usb3-pcie-phy";
  1477. reg = <0x0 0x46000 0x0 0x2000>;
  1478. clocks = <&clkc CLKID_PCIE_PLL>;
  1479. clock-names = "ref_clk";
  1480. resets = <&reset RESET_PCIE_PHY>;
  1481. reset-names = "phy";
  1482. assigned-clocks = <&clkc CLKID_PCIE_PLL>;
  1483. assigned-clock-rates = <100000000>;
  1484. #phy-cells = <1>;
  1485. };
  1486. eth_phy: mdio-multiplexer@4c000 {
  1487. compatible = "amlogic,g12a-mdio-mux";
  1488. reg = <0x0 0x4c000 0x0 0xa4>;
  1489. clocks = <&clkc CLKID_ETH_PHY>,
  1490. <&xtal>,
  1491. <&clkc CLKID_MPLL_50M>;
  1492. clock-names = "pclk", "clkin0", "clkin1";
  1493. mdio-parent-bus = <&mdio0>;
  1494. #address-cells = <1>;
  1495. #size-cells = <0>;
  1496. ext_mdio: mdio@0 {
  1497. reg = <0>;
  1498. #address-cells = <1>;
  1499. #size-cells = <0>;
  1500. };
  1501. int_mdio: mdio@1 {
  1502. reg = <1>;
  1503. #address-cells = <1>;
  1504. #size-cells = <0>;
  1505. internal_ephy: ethernet-phy@8 {
  1506. compatible = "ethernet-phy-id0180.3301",
  1507. "ethernet-phy-ieee802.3-c22";
  1508. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  1509. reg = <8>;
  1510. max-speed = <100>;
  1511. };
  1512. };
  1513. };
  1514. };
  1515. aobus: bus@ff800000 {
  1516. compatible = "simple-bus";
  1517. reg = <0x0 0xff800000 0x0 0x100000>;
  1518. #address-cells = <2>;
  1519. #size-cells = <2>;
  1520. ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
  1521. rti: sys-ctrl@0 {
  1522. compatible = "amlogic,meson-gx-ao-sysctrl",
  1523. "simple-mfd", "syscon";
  1524. reg = <0x0 0x0 0x0 0x100>;
  1525. #address-cells = <2>;
  1526. #size-cells = <2>;
  1527. ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
  1528. clkc_AO: clock-controller {
  1529. compatible = "amlogic,meson-g12a-aoclkc";
  1530. #clock-cells = <1>;
  1531. #reset-cells = <1>;
  1532. clocks = <&xtal>, <&clkc CLKID_CLK81>;
  1533. clock-names = "xtal", "mpeg-clk";
  1534. };
  1535. ao_pinctrl: pinctrl@14 {
  1536. compatible = "amlogic,meson-g12a-aobus-pinctrl";
  1537. #address-cells = <2>;
  1538. #size-cells = <2>;
  1539. ranges;
  1540. gpio_ao: bank@14 {
  1541. reg = <0x0 0x14 0x0 0x8>,
  1542. <0x0 0x1c 0x0 0x8>,
  1543. <0x0 0x24 0x0 0x14>;
  1544. reg-names = "mux",
  1545. "ds",
  1546. "gpio";
  1547. gpio-controller;
  1548. #gpio-cells = <2>;
  1549. gpio-ranges = <&ao_pinctrl 0 0 15>;
  1550. };
  1551. i2c_ao_sck_pins: i2c_ao_sck_pins {
  1552. mux {
  1553. groups = "i2c_ao_sck";
  1554. function = "i2c_ao";
  1555. bias-disable;
  1556. drive-strength-microamp = <3000>;
  1557. };
  1558. };
  1559. i2c_ao_sda_pins: i2c_ao_sda {
  1560. mux {
  1561. groups = "i2c_ao_sda";
  1562. function = "i2c_ao";
  1563. bias-disable;
  1564. drive-strength-microamp = <3000>;
  1565. };
  1566. };
  1567. i2c_ao_sck_e_pins: i2c_ao_sck_e {
  1568. mux {
  1569. groups = "i2c_ao_sck_e";
  1570. function = "i2c_ao";
  1571. bias-disable;
  1572. drive-strength-microamp = <3000>;
  1573. };
  1574. };
  1575. i2c_ao_sda_e_pins: i2c_ao_sda_e {
  1576. mux {
  1577. groups = "i2c_ao_sda_e";
  1578. function = "i2c_ao";
  1579. bias-disable;
  1580. drive-strength-microamp = <3000>;
  1581. };
  1582. };
  1583. mclk0_ao_pins: mclk0-ao {
  1584. mux {
  1585. groups = "mclk0_ao";
  1586. function = "mclk0_ao";
  1587. bias-disable;
  1588. drive-strength-microamp = <3000>;
  1589. };
  1590. };
  1591. tdm_ao_b_din0_pins: tdm-ao-b-din0 {
  1592. mux {
  1593. groups = "tdm_ao_b_din0";
  1594. function = "tdm_ao_b";
  1595. bias-disable;
  1596. };
  1597. };
  1598. spdif_ao_out_pins: spdif-ao-out {
  1599. mux {
  1600. groups = "spdif_ao_out";
  1601. function = "spdif_ao_out";
  1602. drive-strength-microamp = <500>;
  1603. bias-disable;
  1604. };
  1605. };
  1606. tdm_ao_b_din1_pins: tdm-ao-b-din1 {
  1607. mux {
  1608. groups = "tdm_ao_b_din1";
  1609. function = "tdm_ao_b";
  1610. bias-disable;
  1611. };
  1612. };
  1613. tdm_ao_b_din2_pins: tdm-ao-b-din2 {
  1614. mux {
  1615. groups = "tdm_ao_b_din2";
  1616. function = "tdm_ao_b";
  1617. bias-disable;
  1618. };
  1619. };
  1620. tdm_ao_b_dout0_pins: tdm-ao-b-dout0 {
  1621. mux {
  1622. groups = "tdm_ao_b_dout0";
  1623. function = "tdm_ao_b";
  1624. bias-disable;
  1625. drive-strength-microamp = <3000>;
  1626. };
  1627. };
  1628. tdm_ao_b_dout1_pins: tdm-ao-b-dout1 {
  1629. mux {
  1630. groups = "tdm_ao_b_dout1";
  1631. function = "tdm_ao_b";
  1632. bias-disable;
  1633. drive-strength-microamp = <3000>;
  1634. };
  1635. };
  1636. tdm_ao_b_dout2_pins: tdm-ao-b-dout2 {
  1637. mux {
  1638. groups = "tdm_ao_b_dout2";
  1639. function = "tdm_ao_b";
  1640. bias-disable;
  1641. drive-strength-microamp = <3000>;
  1642. };
  1643. };
  1644. tdm_ao_b_fs_pins: tdm-ao-b-fs {
  1645. mux {
  1646. groups = "tdm_ao_b_fs";
  1647. function = "tdm_ao_b";
  1648. bias-disable;
  1649. drive-strength-microamp = <3000>;
  1650. };
  1651. };
  1652. tdm_ao_b_sclk_pins: tdm-ao-b-sclk {
  1653. mux {
  1654. groups = "tdm_ao_b_sclk";
  1655. function = "tdm_ao_b";
  1656. bias-disable;
  1657. drive-strength-microamp = <3000>;
  1658. };
  1659. };
  1660. tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs {
  1661. mux {
  1662. groups = "tdm_ao_b_slv_fs";
  1663. function = "tdm_ao_b";
  1664. bias-disable;
  1665. };
  1666. };
  1667. tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk {
  1668. mux {
  1669. groups = "tdm_ao_b_slv_sclk";
  1670. function = "tdm_ao_b";
  1671. bias-disable;
  1672. };
  1673. };
  1674. uart_ao_a_pins: uart-a-ao {
  1675. mux {
  1676. groups = "uart_ao_a_tx",
  1677. "uart_ao_a_rx";
  1678. function = "uart_ao_a";
  1679. bias-disable;
  1680. };
  1681. };
  1682. uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
  1683. mux {
  1684. groups = "uart_ao_a_cts",
  1685. "uart_ao_a_rts";
  1686. function = "uart_ao_a";
  1687. bias-disable;
  1688. };
  1689. };
  1690. uart_ao_b_2_3_pins: uart-ao-b-2-3 {
  1691. mux {
  1692. groups = "uart_ao_b_tx_2",
  1693. "uart_ao_b_rx_3";
  1694. function = "uart_ao_b";
  1695. bias-disable;
  1696. };
  1697. };
  1698. uart_ao_b_8_9_pins: uart-ao-b-8-9 {
  1699. mux {
  1700. groups = "uart_ao_b_tx_8",
  1701. "uart_ao_b_rx_9";
  1702. function = "uart_ao_b";
  1703. bias-disable;
  1704. };
  1705. };
  1706. uart_ao_b_cts_rts_pins: uart-ao-b-cts-rts {
  1707. mux {
  1708. groups = "uart_ao_b_cts",
  1709. "uart_ao_b_rts";
  1710. function = "uart_ao_b";
  1711. bias-disable;
  1712. };
  1713. };
  1714. pwm_a_e_pins: pwm-a-e {
  1715. mux {
  1716. groups = "pwm_a_e";
  1717. function = "pwm_a_e";
  1718. bias-disable;
  1719. };
  1720. };
  1721. pwm_ao_a_pins: pwm-ao-a {
  1722. mux {
  1723. groups = "pwm_ao_a";
  1724. function = "pwm_ao_a";
  1725. bias-disable;
  1726. };
  1727. };
  1728. pwm_ao_b_pins: pwm-ao-b {
  1729. mux {
  1730. groups = "pwm_ao_b";
  1731. function = "pwm_ao_b";
  1732. bias-disable;
  1733. };
  1734. };
  1735. pwm_ao_c_4_pins: pwm-ao-c-4 {
  1736. mux {
  1737. groups = "pwm_ao_c_4";
  1738. function = "pwm_ao_c";
  1739. bias-disable;
  1740. };
  1741. };
  1742. pwm_ao_c_6_pins: pwm-ao-c-6 {
  1743. mux {
  1744. groups = "pwm_ao_c_6";
  1745. function = "pwm_ao_c";
  1746. bias-disable;
  1747. };
  1748. };
  1749. pwm_ao_d_5_pins: pwm-ao-d-5 {
  1750. mux {
  1751. groups = "pwm_ao_d_5";
  1752. function = "pwm_ao_d";
  1753. bias-disable;
  1754. };
  1755. };
  1756. pwm_ao_d_10_pins: pwm-ao-d-10 {
  1757. mux {
  1758. groups = "pwm_ao_d_10";
  1759. function = "pwm_ao_d";
  1760. bias-disable;
  1761. };
  1762. };
  1763. pwm_ao_d_e_pins: pwm-ao-d-e {
  1764. mux {
  1765. groups = "pwm_ao_d_e";
  1766. function = "pwm_ao_d";
  1767. };
  1768. };
  1769. remote_input_ao_pins: remote-input-ao {
  1770. mux {
  1771. groups = "remote_ao_input";
  1772. function = "remote_ao_input";
  1773. bias-disable;
  1774. };
  1775. };
  1776. };
  1777. };
  1778. vrtc: rtc@a8 {
  1779. compatible = "amlogic,meson-vrtc";
  1780. reg = <0x0 0x000a8 0x0 0x4>;
  1781. };
  1782. cec_AO: cec@100 {
  1783. compatible = "amlogic,meson-gx-ao-cec";
  1784. reg = <0x0 0x00100 0x0 0x14>;
  1785. interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
  1786. clocks = <&clkc_AO CLKID_AO_CEC>;
  1787. clock-names = "core";
  1788. status = "disabled";
  1789. };
  1790. sec_AO: ao-secure@140 {
  1791. compatible = "amlogic,meson-gx-ao-secure", "syscon";
  1792. reg = <0x0 0x140 0x0 0x140>;
  1793. amlogic,has-chip-id;
  1794. };
  1795. cecb_AO: cec@280 {
  1796. compatible = "amlogic,meson-g12a-ao-cec";
  1797. reg = <0x0 0x00280 0x0 0x1c>;
  1798. interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
  1799. clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>;
  1800. clock-names = "oscin";
  1801. status = "disabled";
  1802. };
  1803. pwm_AO_cd: pwm@2000 {
  1804. compatible = "amlogic,meson-g12a-ao-pwm-cd";
  1805. reg = <0x0 0x2000 0x0 0x20>;
  1806. #pwm-cells = <3>;
  1807. status = "disabled";
  1808. };
  1809. uart_AO: serial@3000 {
  1810. compatible = "amlogic,meson-gx-uart",
  1811. "amlogic,meson-ao-uart";
  1812. reg = <0x0 0x3000 0x0 0x18>;
  1813. interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
  1814. clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>;
  1815. clock-names = "xtal", "pclk", "baud";
  1816. status = "disabled";
  1817. };
  1818. uart_AO_B: serial@4000 {
  1819. compatible = "amlogic,meson-gx-uart",
  1820. "amlogic,meson-ao-uart";
  1821. reg = <0x0 0x4000 0x0 0x18>;
  1822. interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
  1823. clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
  1824. clock-names = "xtal", "pclk", "baud";
  1825. status = "disabled";
  1826. };
  1827. i2c_AO: i2c@5000 {
  1828. compatible = "amlogic,meson-axg-i2c";
  1829. status = "disabled";
  1830. reg = <0x0 0x05000 0x0 0x20>;
  1831. interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
  1832. #address-cells = <1>;
  1833. #size-cells = <0>;
  1834. clocks = <&clkc CLKID_I2C>;
  1835. };
  1836. pwm_AO_ab: pwm@7000 {
  1837. compatible = "amlogic,meson-g12a-ao-pwm-ab";
  1838. reg = <0x0 0x7000 0x0 0x20>;
  1839. #pwm-cells = <3>;
  1840. status = "disabled";
  1841. };
  1842. ir: ir@8000 {
  1843. compatible = "amlogic,meson-gxbb-ir";
  1844. reg = <0x0 0x8000 0x0 0x20>;
  1845. interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
  1846. status = "disabled";
  1847. };
  1848. saradc: adc@9000 {
  1849. compatible = "amlogic,meson-g12a-saradc",
  1850. "amlogic,meson-saradc";
  1851. reg = <0x0 0x9000 0x0 0x48>;
  1852. #io-channel-cells = <1>;
  1853. interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
  1854. clocks = <&xtal>,
  1855. <&clkc_AO CLKID_AO_SAR_ADC>,
  1856. <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
  1857. <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
  1858. clock-names = "clkin", "core", "adc_clk", "adc_sel";
  1859. status = "disabled";
  1860. };
  1861. };
  1862. vdec: video-decoder@ff620000 {
  1863. compatible = "amlogic,g12a-vdec";
  1864. reg = <0x0 0xff620000 0x0 0x10000>,
  1865. <0x0 0xffd0e180 0x0 0xe4>;
  1866. reg-names = "dos", "esparser";
  1867. interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
  1868. <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
  1869. interrupt-names = "vdec", "esparser";
  1870. amlogic,ao-sysctrl = <&rti>;
  1871. amlogic,canvas = <&canvas>;
  1872. clocks = <&clkc CLKID_PARSER>,
  1873. <&clkc CLKID_DOS>,
  1874. <&clkc CLKID_VDEC_1>,
  1875. <&clkc CLKID_VDEC_HEVC>,
  1876. <&clkc CLKID_VDEC_HEVCF>;
  1877. clock-names = "dos_parser", "dos", "vdec_1",
  1878. "vdec_hevc", "vdec_hevcf";
  1879. resets = <&reset RESET_PARSER>;
  1880. reset-names = "esparser";
  1881. };
  1882. vpu: vpu@ff900000 {
  1883. compatible = "amlogic,meson-g12a-vpu";
  1884. reg = <0x0 0xff900000 0x0 0x100000>,
  1885. <0x0 0xff63c000 0x0 0x1000>;
  1886. reg-names = "vpu", "hhi";
  1887. interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
  1888. #address-cells = <1>;
  1889. #size-cells = <0>;
  1890. amlogic,canvas = <&canvas>;
  1891. /* CVBS VDAC output port */
  1892. cvbs_vdac_port: port@0 {
  1893. reg = <0>;
  1894. };
  1895. /* HDMI-TX output port */
  1896. hdmi_tx_port: port@1 {
  1897. reg = <1>;
  1898. hdmi_tx_out: endpoint {
  1899. remote-endpoint = <&hdmi_tx_in>;
  1900. };
  1901. };
  1902. };
  1903. gic: interrupt-controller@ffc01000 {
  1904. compatible = "arm,gic-400";
  1905. reg = <0x0 0xffc01000 0 0x1000>,
  1906. <0x0 0xffc02000 0 0x2000>,
  1907. <0x0 0xffc04000 0 0x2000>,
  1908. <0x0 0xffc06000 0 0x2000>;
  1909. interrupt-controller;
  1910. interrupts = <GIC_PPI 9
  1911. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  1912. #interrupt-cells = <3>;
  1913. #address-cells = <0>;
  1914. };
  1915. cbus: bus@ffd00000 {
  1916. compatible = "simple-bus";
  1917. reg = <0x0 0xffd00000 0x0 0x100000>;
  1918. #address-cells = <2>;
  1919. #size-cells = <2>;
  1920. ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>;
  1921. reset: reset-controller@1004 {
  1922. compatible = "amlogic,meson-axg-reset";
  1923. reg = <0x0 0x1004 0x0 0x9c>;
  1924. #reset-cells = <1>;
  1925. };
  1926. gpio_intc: interrupt-controller@f080 {
  1927. compatible = "amlogic,meson-g12a-gpio-intc",
  1928. "amlogic,meson-gpio-intc";
  1929. reg = <0x0 0xf080 0x0 0x10>;
  1930. interrupt-controller;
  1931. #interrupt-cells = <2>;
  1932. amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
  1933. };
  1934. watchdog: watchdog@f0d0 {
  1935. compatible = "amlogic,meson-gxbb-wdt";
  1936. reg = <0x0 0xf0d0 0x0 0x10>;
  1937. clocks = <&xtal>;
  1938. };
  1939. spicc0: spi@13000 {
  1940. compatible = "amlogic,meson-g12a-spicc";
  1941. reg = <0x0 0x13000 0x0 0x44>;
  1942. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  1943. clocks = <&clkc CLKID_SPICC0>,
  1944. <&clkc CLKID_SPICC0_SCLK>;
  1945. clock-names = "core", "pclk";
  1946. #address-cells = <1>;
  1947. #size-cells = <0>;
  1948. status = "disabled";
  1949. };
  1950. spicc1: spi@15000 {
  1951. compatible = "amlogic,meson-g12a-spicc";
  1952. reg = <0x0 0x15000 0x0 0x44>;
  1953. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  1954. clocks = <&clkc CLKID_SPICC1>,
  1955. <&clkc CLKID_SPICC1_SCLK>;
  1956. clock-names = "core", "pclk";
  1957. #address-cells = <1>;
  1958. #size-cells = <0>;
  1959. status = "disabled";
  1960. };
  1961. spifc: spi@14000 {
  1962. compatible = "amlogic,meson-gxbb-spifc";
  1963. status = "disabled";
  1964. reg = <0x0 0x14000 0x0 0x80>;
  1965. #address-cells = <1>;
  1966. #size-cells = <0>;
  1967. clocks = <&clkc CLKID_CLK81>;
  1968. };
  1969. pwm_ef: pwm@19000 {
  1970. compatible = "amlogic,meson-g12a-ee-pwm";
  1971. reg = <0x0 0x19000 0x0 0x20>;
  1972. #pwm-cells = <3>;
  1973. status = "disabled";
  1974. };
  1975. pwm_cd: pwm@1a000 {
  1976. compatible = "amlogic,meson-g12a-ee-pwm";
  1977. reg = <0x0 0x1a000 0x0 0x20>;
  1978. #pwm-cells = <3>;
  1979. status = "disabled";
  1980. };
  1981. pwm_ab: pwm@1b000 {
  1982. compatible = "amlogic,meson-g12a-ee-pwm";
  1983. reg = <0x0 0x1b000 0x0 0x20>;
  1984. #pwm-cells = <3>;
  1985. status = "disabled";
  1986. };
  1987. i2c3: i2c@1c000 {
  1988. compatible = "amlogic,meson-axg-i2c";
  1989. status = "disabled";
  1990. reg = <0x0 0x1c000 0x0 0x20>;
  1991. interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
  1992. #address-cells = <1>;
  1993. #size-cells = <0>;
  1994. clocks = <&clkc CLKID_I2C>;
  1995. };
  1996. i2c2: i2c@1d000 {
  1997. compatible = "amlogic,meson-axg-i2c";
  1998. status = "disabled";
  1999. reg = <0x0 0x1d000 0x0 0x20>;
  2000. interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
  2001. #address-cells = <1>;
  2002. #size-cells = <0>;
  2003. clocks = <&clkc CLKID_I2C>;
  2004. };
  2005. i2c1: i2c@1e000 {
  2006. compatible = "amlogic,meson-axg-i2c";
  2007. status = "disabled";
  2008. reg = <0x0 0x1e000 0x0 0x20>;
  2009. interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
  2010. #address-cells = <1>;
  2011. #size-cells = <0>;
  2012. clocks = <&clkc CLKID_I2C>;
  2013. };
  2014. i2c0: i2c@1f000 {
  2015. compatible = "amlogic,meson-axg-i2c";
  2016. status = "disabled";
  2017. reg = <0x0 0x1f000 0x0 0x20>;
  2018. interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
  2019. #address-cells = <1>;
  2020. #size-cells = <0>;
  2021. clocks = <&clkc CLKID_I2C>;
  2022. };
  2023. clk_msr: clock-measure@18000 {
  2024. compatible = "amlogic,meson-g12a-clk-measure";
  2025. reg = <0x0 0x18000 0x0 0x10>;
  2026. };
  2027. uart_C: serial@22000 {
  2028. compatible = "amlogic,meson-gx-uart";
  2029. reg = <0x0 0x22000 0x0 0x18>;
  2030. interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
  2031. clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
  2032. clock-names = "xtal", "pclk", "baud";
  2033. status = "disabled";
  2034. };
  2035. uart_B: serial@23000 {
  2036. compatible = "amlogic,meson-gx-uart";
  2037. reg = <0x0 0x23000 0x0 0x18>;
  2038. interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
  2039. clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
  2040. clock-names = "xtal", "pclk", "baud";
  2041. status = "disabled";
  2042. };
  2043. uart_A: serial@24000 {
  2044. compatible = "amlogic,meson-gx-uart";
  2045. reg = <0x0 0x24000 0x0 0x18>;
  2046. interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
  2047. clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
  2048. clock-names = "xtal", "pclk", "baud";
  2049. status = "disabled";
  2050. fifo-size = <128>;
  2051. };
  2052. };
  2053. sd_emmc_a: sd@ffe03000 {
  2054. compatible = "amlogic,meson-axg-mmc";
  2055. reg = <0x0 0xffe03000 0x0 0x800>;
  2056. interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
  2057. status = "disabled";
  2058. clocks = <&clkc CLKID_SD_EMMC_A>,
  2059. <&clkc CLKID_SD_EMMC_A_CLK0>,
  2060. <&clkc CLKID_FCLK_DIV2>;
  2061. clock-names = "core", "clkin0", "clkin1";
  2062. resets = <&reset RESET_SD_EMMC_A>;
  2063. };
  2064. sd_emmc_b: sd@ffe05000 {
  2065. compatible = "amlogic,meson-axg-mmc";
  2066. reg = <0x0 0xffe05000 0x0 0x800>;
  2067. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  2068. status = "disabled";
  2069. clocks = <&clkc CLKID_SD_EMMC_B>,
  2070. <&clkc CLKID_SD_EMMC_B_CLK0>,
  2071. <&clkc CLKID_FCLK_DIV2>;
  2072. clock-names = "core", "clkin0", "clkin1";
  2073. resets = <&reset RESET_SD_EMMC_B>;
  2074. };
  2075. sd_emmc_c: mmc@ffe07000 {
  2076. compatible = "amlogic,meson-axg-mmc";
  2077. reg = <0x0 0xffe07000 0x0 0x800>;
  2078. interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
  2079. status = "disabled";
  2080. clocks = <&clkc CLKID_SD_EMMC_C>,
  2081. <&clkc CLKID_SD_EMMC_C_CLK0>,
  2082. <&clkc CLKID_FCLK_DIV2>;
  2083. clock-names = "core", "clkin0", "clkin1";
  2084. resets = <&reset RESET_SD_EMMC_C>;
  2085. };
  2086. usb: usb@ffe09000 {
  2087. status = "disabled";
  2088. compatible = "amlogic,meson-g12a-usb-ctrl";
  2089. reg = <0x0 0xffe09000 0x0 0xa0>;
  2090. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  2091. #address-cells = <2>;
  2092. #size-cells = <2>;
  2093. ranges;
  2094. clocks = <&clkc CLKID_USB>;
  2095. resets = <&reset RESET_USB>;
  2096. dr_mode = "otg";
  2097. phys = <&usb2_phy0>, <&usb2_phy1>,
  2098. <&usb3_pcie_phy PHY_TYPE_USB3>;
  2099. phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0";
  2100. dwc2: usb@ff400000 {
  2101. compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
  2102. reg = <0x0 0xff400000 0x0 0x40000>;
  2103. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  2104. clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
  2105. clock-names = "otg";
  2106. phys = <&usb2_phy1>;
  2107. phy-names = "usb2-phy";
  2108. dr_mode = "peripheral";
  2109. g-rx-fifo-size = <192>;
  2110. g-np-tx-fifo-size = <128>;
  2111. g-tx-fifo-size = <128 128 16 16 16>;
  2112. };
  2113. dwc3: usb@ff500000 {
  2114. compatible = "snps,dwc3";
  2115. reg = <0x0 0xff500000 0x0 0x100000>;
  2116. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  2117. dr_mode = "host";
  2118. snps,dis_u2_susphy_quirk;
  2119. snps,quirk-frame-length-adjustment = <0x20>;
  2120. snps,parkmode-disable-ss-quirk;
  2121. };
  2122. };
  2123. mali: gpu@ffe40000 {
  2124. compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
  2125. reg = <0x0 0xffe40000 0x0 0x40000>;
  2126. interrupt-parent = <&gic>;
  2127. interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
  2128. <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
  2129. <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
  2130. interrupt-names = "job", "mmu", "gpu";
  2131. clocks = <&clkc CLKID_MALI>;
  2132. resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
  2133. operating-points-v2 = <&gpu_opp_table>;
  2134. #cooling-cells = <2>;
  2135. };
  2136. };
  2137. thermal-zones {
  2138. cpu_thermal: cpu-thermal {
  2139. polling-delay = <1000>;
  2140. polling-delay-passive = <100>;
  2141. thermal-sensors = <&cpu_temp>;
  2142. trips {
  2143. cpu_passive: cpu-passive {
  2144. temperature = <85000>; /* millicelsius */
  2145. hysteresis = <2000>; /* millicelsius */
  2146. type = "passive";
  2147. };
  2148. cpu_hot: cpu-hot {
  2149. temperature = <95000>; /* millicelsius */
  2150. hysteresis = <2000>; /* millicelsius */
  2151. type = "hot";
  2152. };
  2153. cpu_critical: cpu-critical {
  2154. temperature = <110000>; /* millicelsius */
  2155. hysteresis = <2000>; /* millicelsius */
  2156. type = "critical";
  2157. };
  2158. };
  2159. };
  2160. ddr_thermal: ddr-thermal {
  2161. polling-delay = <1000>;
  2162. polling-delay-passive = <100>;
  2163. thermal-sensors = <&ddr_temp>;
  2164. trips {
  2165. ddr_passive: ddr-passive {
  2166. temperature = <85000>; /* millicelsius */
  2167. hysteresis = <2000>; /* millicelsius */
  2168. type = "passive";
  2169. };
  2170. ddr_critical: ddr-critical {
  2171. temperature = <110000>; /* millicelsius */
  2172. hysteresis = <2000>; /* millicelsius */
  2173. type = "critical";
  2174. };
  2175. };
  2176. cooling-maps {
  2177. map {
  2178. trip = <&ddr_passive>;
  2179. cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  2180. };
  2181. };
  2182. };
  2183. };
  2184. timer {
  2185. compatible = "arm,armv8-timer";
  2186. interrupts = <GIC_PPI 13
  2187. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  2188. <GIC_PPI 14
  2189. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  2190. <GIC_PPI 11
  2191. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  2192. <GIC_PPI 10
  2193. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
  2194. arm,no-tick-in-suspend;
  2195. };
  2196. xtal: xtal-clk {
  2197. compatible = "fixed-clock";
  2198. clock-frequency = <24000000>;
  2199. clock-output-names = "xtal";
  2200. #clock-cells = <0>;
  2201. };
  2202. };