0001-Add-OSD32MP1-RED-Device-Tree-support.patch 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848
  1. From 69029a32acdfac1499750f657c16ab3a3cbfa8f8 Mon Sep 17 00:00:00 2001
  2. From: Kory Maincent <kory.maincent@bootlin.com>
  3. Date: Mon, 3 Oct 2022 12:17:37 +0200
  4. Subject: [PATCH 1/2] Add OSD32MP1-RED Device Tree support
  5. Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
  6. ---
  7. arch/arm/dts/Makefile | 3 +-
  8. .../dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi | 119 ++
  9. .../dts/stm32mp157c-osd32mp1-red-u-boot.dtsi | 233 +++
  10. arch/arm/dts/stm32mp157c-osd32mp1-red.dts | 1445 +++++++++++++++++
  11. 4 files changed, 1799 insertions(+), 1 deletion(-)
  12. create mode 100644 arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi
  13. create mode 100644 arch/arm/dts/stm32mp157c-osd32mp1-red-u-boot.dtsi
  14. create mode 100644 arch/arm/dts/stm32mp157c-osd32mp1-red.dts
  15. diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
  16. index 83677c3d4f..00b27c8695 100644
  17. --- a/arch/arm/dts/Makefile
  18. +++ b/arch/arm/dts/Makefile
  19. @@ -959,7 +959,8 @@ dtb-$(CONFIG_STM32MP15x) += \
  20. stm32mp157f-ed1.dtb \
  21. stm32mp157f-ev1.dtb \
  22. stm32mp15xx-dhcom-pdk2.dtb \
  23. - stm32mp15xx-dhcor-avenger96.dtb
  24. + stm32mp15xx-dhcor-avenger96.dtb \
  25. + stm32mp157c-osd32mp1-red.dtb
  26. dtb-$(CONFIG_SOC_K3_AM6) += k3-am654-base-board.dtb k3-am654-r5-base-board.dtb
  27. dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-common-proc-board.dtb \
  28. diff --git a/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi
  29. new file mode 100644
  30. index 0000000000..362f3281b8
  31. --- /dev/null
  32. +++ b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi
  33. @@ -0,0 +1,119 @@
  34. +/*
  35. + * Copyright (C) 2015-2018, STMicroelectronics - All Rights Reserved
  36. + *
  37. + * SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause
  38. + *
  39. + */
  40. +
  41. +/*
  42. + * File generated by STMicroelectronics STM32CubeMX DDR Tool for MPUs
  43. + * DDR type: DDR3 / DDR3L
  44. + * DDR width: 16bits
  45. + * DDR density: 4Gb
  46. + * System frequency: 533000Khz
  47. + * Relaxed Timing Mode: false
  48. + * Address mapping type: RBC
  49. + *
  50. + * Save Date: 2020.08.20, save Time: 10:57:25
  51. + */
  52. +
  53. +#define DDR_MEM_NAME "DDR3-DDR3L 16bits 533000Khz"
  54. +#define DDR_MEM_SPEED 533000
  55. +#define DDR_MEM_SIZE 0x20000000
  56. +
  57. +#define DDR_MSTR 0x00041401
  58. +#define DDR_MRCTRL0 0x00000010
  59. +#define DDR_MRCTRL1 0x00000000
  60. +#define DDR_DERATEEN 0x00000000
  61. +#define DDR_DERATEINT 0x00800000
  62. +#define DDR_PWRCTL 0x00000000
  63. +#define DDR_PWRTMG 0x00400010
  64. +#define DDR_HWLPCTL 0x00000000
  65. +#define DDR_RFSHCTL0 0x00210000
  66. +#define DDR_RFSHCTL3 0x00000000
  67. +#define DDR_RFSHTMG 0x0081008B
  68. +#define DDR_CRCPARCTL0 0x00000000
  69. +#define DDR_DRAMTMG0 0x121B2414
  70. +#define DDR_DRAMTMG1 0x000A041C
  71. +#define DDR_DRAMTMG2 0x0608090F
  72. +#define DDR_DRAMTMG3 0x0050400C
  73. +#define DDR_DRAMTMG4 0x08040608
  74. +#define DDR_DRAMTMG5 0x06060403
  75. +#define DDR_DRAMTMG6 0x02020002
  76. +#define DDR_DRAMTMG7 0x00000202
  77. +#define DDR_DRAMTMG8 0x00001005
  78. +#define DDR_DRAMTMG14 0x000000A0
  79. +#define DDR_ZQCTL0 0xC2000040
  80. +#define DDR_DFITMG0 0x02060105
  81. +#define DDR_DFITMG1 0x00000202
  82. +#define DDR_DFILPCFG0 0x07000000
  83. +#define DDR_DFIUPD0 0xC0400003
  84. +#define DDR_DFIUPD1 0x00000000
  85. +#define DDR_DFIUPD2 0x00000000
  86. +#define DDR_DFIPHYMSTR 0x00000000
  87. +#define DDR_ODTCFG 0x06000600
  88. +#define DDR_ODTMAP 0x00000001
  89. +#define DDR_SCHED 0x00000C01
  90. +#define DDR_SCHED1 0x00000000
  91. +#define DDR_PERFHPR1 0x01000001
  92. +#define DDR_PERFLPR1 0x08000200
  93. +#define DDR_PERFWR1 0x08000400
  94. +#define DDR_DBG0 0x00000000
  95. +#define DDR_DBG1 0x00000000
  96. +#define DDR_DBGCMD 0x00000000
  97. +#define DDR_POISONCFG 0x00000000
  98. +#define DDR_PCCFG 0x00000010
  99. +#define DDR_PCFGR_0 0x00010000
  100. +#define DDR_PCFGW_0 0x00000000
  101. +#define DDR_PCFGQOS0_0 0x02100C03
  102. +#define DDR_PCFGQOS1_0 0x00800100
  103. +#define DDR_PCFGWQOS0_0 0x01100C03
  104. +#define DDR_PCFGWQOS1_0 0x01000200
  105. +#define DDR_PCFGR_1 0x00010000
  106. +#define DDR_PCFGW_1 0x00000000
  107. +#define DDR_PCFGQOS0_1 0x02100C03
  108. +#define DDR_PCFGQOS1_1 0x00800040
  109. +#define DDR_PCFGWQOS0_1 0x01100C03
  110. +#define DDR_PCFGWQOS1_1 0x01000200
  111. +#define DDR_ADDRMAP1 0x00070707
  112. +#define DDR_ADDRMAP2 0x00000000
  113. +#define DDR_ADDRMAP3 0x1F000000
  114. +#define DDR_ADDRMAP4 0x00001F1F
  115. +#define DDR_ADDRMAP5 0x06060606
  116. +#define DDR_ADDRMAP6 0x0F060606
  117. +#define DDR_ADDRMAP9 0x00000000
  118. +#define DDR_ADDRMAP10 0x00000000
  119. +#define DDR_ADDRMAP11 0x00000000
  120. +#define DDR_PGCR 0x01442E02
  121. +#define DDR_PTR0 0x0022AA5B
  122. +#define DDR_PTR1 0x04841104
  123. +#define DDR_PTR2 0x042DA068
  124. +#define DDR_ACIOCR 0x10400812
  125. +#define DDR_DXCCR 0x00000C40
  126. +#define DDR_DSGCR 0xF200011F
  127. +#define DDR_DCR 0x0000000B
  128. +#define DDR_DTPR0 0x38D488D0
  129. +#define DDR_DTPR1 0x098B00D8
  130. +#define DDR_DTPR2 0x10023600
  131. +#define DDR_MR0 0x00000840
  132. +#define DDR_MR1 0x00000000
  133. +#define DDR_MR2 0x00000208
  134. +#define DDR_MR3 0x00000000
  135. +#define DDR_ODTCR 0x00010000
  136. +#define DDR_ZQ0CR1 0x00000038
  137. +#define DDR_DX0GCR 0x0000CE81
  138. +#define DDR_DX0DLLCR 0x40000000
  139. +#define DDR_DX0DQTR 0xFFFFFFFF
  140. +#define DDR_DX0DQSTR 0x3DB02000
  141. +#define DDR_DX1GCR 0x0000CE81
  142. +#define DDR_DX1DLLCR 0x40000000
  143. +#define DDR_DX1DQTR 0xFFFFFFFF
  144. +#define DDR_DX1DQSTR 0x3DB02000
  145. +#define DDR_DX2GCR 0x0000CE80
  146. +#define DDR_DX2DLLCR 0x40000000
  147. +#define DDR_DX2DQTR 0xFFFFFFFF
  148. +#define DDR_DX2DQSTR 0x3DB02000
  149. +#define DDR_DX3GCR 0x0000CE80
  150. +#define DDR_DX3DLLCR 0x40000000
  151. +#define DDR_DX3DQTR 0xFFFFFFFF
  152. +#define DDR_DX3DQSTR 0x3DB02000
  153. diff --git a/arch/arm/dts/stm32mp157c-osd32mp1-red-u-boot.dtsi b/arch/arm/dts/stm32mp157c-osd32mp1-red-u-boot.dtsi
  154. new file mode 100644
  155. index 0000000000..6da91e0bb8
  156. --- /dev/null
  157. +++ b/arch/arm/dts/stm32mp157c-osd32mp1-red-u-boot.dtsi
  158. @@ -0,0 +1,233 @@
  159. +/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause*/
  160. +/*
  161. + * Copyright (C) 2020, Octavo Systems LLC - All Rights Reserved
  162. + */
  163. +
  164. +/* For more information on Device Tree configuration, please refer to
  165. + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration
  166. + */
  167. +
  168. +#include <dt-bindings/clock/stm32mp1-clksrc.h>
  169. +#include "stm32mp15-osd32mp1-ddr3-1x4Gb.dtsi"
  170. +#include "stm32mp15-u-boot.dtsi"
  171. +#include "stm32mp15-ddr.dtsi"
  172. +
  173. +
  174. +/ {
  175. +
  176. + aliases{
  177. + i2c0 = &i2c4;
  178. + mmc0 = &sdmmc1;
  179. + usb0 = &usbotg_hs;
  180. + };
  181. +
  182. + config{
  183. + u-boot,boot-led = "heartbeat";
  184. + u-boot,error-led = "error";
  185. + u-boot,mmc-env-partition = "fip";
  186. + };
  187. +
  188. +#ifdef CONFIG_STM32MP15x_STM32IMAGE
  189. + config {
  190. + u-boot,mmc-env-partition = "ssbl";
  191. + };
  192. +
  193. + /* only needed for boot with TF-A, witout FIP support */
  194. + firmware {
  195. + optee {
  196. + compatible = "linaro,optee-tz";
  197. + method = "smc";
  198. + };
  199. + };
  200. +
  201. + reserved-memory {
  202. + optee@de000000 {
  203. + reg = <0xde000000 0x02000000>;
  204. + no-map;
  205. + };
  206. + };
  207. +#endif
  208. +
  209. + led {
  210. + red {
  211. + label = "error";
  212. + gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
  213. + default-state = "off";
  214. + status = "okay";
  215. + };
  216. +
  217. + blue {
  218. + default-state = "on";
  219. + };
  220. + };
  221. +}; /*root*/
  222. +
  223. +#ifndef CONFIG_TFABOOT
  224. +
  225. +&i2s2{
  226. + clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
  227. +};
  228. +
  229. +
  230. +
  231. +&sai2{
  232. + clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
  233. +};
  234. +
  235. +
  236. +&clk_hse {
  237. + st,digbypass;
  238. +};
  239. +
  240. +&rcc {
  241. + u-boot,dm-pre-reloc;
  242. + st,clksrc = <
  243. + CLK_MPU_PLL1P
  244. + CLK_AXI_PLL2P
  245. + CLK_MCU_PLL3P
  246. + CLK_PLL12_HSE
  247. + CLK_PLL3_HSE
  248. + CLK_PLL4_HSE
  249. + CLK_RTC_LSE
  250. + CLK_MCO1_DISABLED
  251. + CLK_MCO2_DISABLED
  252. + >;
  253. + st,clkdiv = <
  254. + 1 /*MPU*/
  255. + 0 /*AXI*/
  256. + 0 /*MCU*/
  257. + 1 /*APB1*/
  258. + 1 /*APB2*/
  259. + 1 /*APB3*/
  260. + 1 /*APB4*/
  261. + 2 /*APB5*/
  262. + 23 /*RTC*/
  263. + 0 /*MCO1*/
  264. + 0 /*MCO2*/
  265. + >;
  266. + st,pkcs = <
  267. + CLK_CKPER_HSE
  268. + CLK_ETH_PLL3Q
  269. + CLK_SDMMC12_PLL4P
  270. + CLK_DSI_DSIPLL
  271. + CLK_STGEN_HSE
  272. + CLK_USBPHY_HSE
  273. + CLK_SPI2S1_PLL3Q
  274. + CLK_SPI2S23_CKPER
  275. + CLK_SPI45_PCLK2
  276. + CLK_SPI6_DISABLED
  277. + CLK_I2C46_HSI
  278. + CLK_SDMMC3_PLL4P
  279. + CLK_USBO_USBPHY
  280. + CLK_ADC_CKPER
  281. + CLK_CEC_LSE
  282. + CLK_I2C12_HSI
  283. + CLK_I2C35_HSI
  284. + CLK_UART1_DISABLED
  285. + CLK_UART24_HSI
  286. + CLK_UART35_HSI
  287. + CLK_UART6_DISABLED
  288. + CLK_UART78_DISABLED
  289. + CLK_SPDIF_DISABLED
  290. + CLK_SAI1_DISABLED
  291. + CLK_SAI2_DISABLED
  292. + CLK_SAI3_DISABLED
  293. + CLK_SAI4_DISABLED
  294. + CLK_RNG1_LSI
  295. + CLK_LPTIM1_DISABLED
  296. + CLK_LPTIM23_DISABLED
  297. + CLK_LPTIM45_DISABLED
  298. + >;
  299. + pll1:st,pll@0 {
  300. + cfg = < 2 80 0 1 1 PQR(1,0,0) >;
  301. + frac = < 0x800>;
  302. + u-boot,dm-pre-reloc;
  303. + };
  304. + pll2:st,pll@1 {
  305. + cfg = < 2 65 1 0 0 PQR(1,1,1) >;
  306. + frac = < 0x1400>;
  307. + u-boot,dm-pre-reloc;
  308. + };
  309. + pll3:st,pll@2 {
  310. + cfg = < 1 61 3 5 36 PQR(1,1,0) >;
  311. + frac = < 0x1000 >;
  312. + u-boot,dm-pre-reloc;
  313. + };
  314. + pll4:st,pll@3 {
  315. + cfg = < 3 98 5 7 7 PQR(1,1,1) >;
  316. + u-boot,dm-pre-reloc;
  317. + };
  318. +};
  319. +
  320. +&i2c4{
  321. + u-boot,dm-pre-reloc;
  322. +};
  323. +
  324. +&i2c4_pins_z_mx {
  325. + u-boot,dm-pre-reloc;
  326. + pins {
  327. + u-boot,dm-pre-reloc;
  328. + };
  329. +};
  330. +
  331. +&sdmmc1{
  332. + u-boot,dm-pre-reloc;
  333. +};
  334. +
  335. +&sdmmc2{
  336. + u-boot,dm-pre-reloc;
  337. +};
  338. +
  339. +&sdmmc1_pins_mx {
  340. + u-boot,dm-spl;
  341. + pins1 {
  342. + u-boot,dm-spl;
  343. + };
  344. + pins2 {
  345. + u-boot,dm-spl;
  346. + };
  347. +};
  348. +
  349. +&sdmmc2_pins_mx {
  350. + u-boot,dm-spl;
  351. + pins1 {
  352. + u-boot,dm-spl;
  353. + };
  354. + pins2 {
  355. + u-boot,dm-spl;
  356. + };
  357. +};
  358. +
  359. +#endif /*CONFIG_TFABOOT*/
  360. +
  361. +&cryp1{
  362. + u-boot,dm-pre-reloc;
  363. +};
  364. +
  365. +&hash1{
  366. + u-boot,dm-pre-reloc;
  367. +};
  368. +
  369. +&uart4{
  370. + u-boot,dm-pre-reloc;
  371. +};
  372. +
  373. +&usbotg_hs{
  374. + u-boot,dm-pre-reloc;
  375. + u-boot,force-b-session-valid;
  376. + hnp-srp-disable;
  377. + dr_mode = "peripheral";
  378. +};
  379. +
  380. +&usbphyc{
  381. + u-boot,dm-pre-reloc;
  382. +};
  383. +
  384. +&usbphyc_port0{
  385. + u-boot,dm-pre-reloc;
  386. +};
  387. +
  388. +&usbphyc_port1{
  389. + u-boot,dm-pre-reloc;
  390. +};
  391. +
  392. diff --git a/arch/arm/dts/stm32mp157c-osd32mp1-red.dts b/arch/arm/dts/stm32mp157c-osd32mp1-red.dts
  393. new file mode 100644
  394. index 0000000000..6104aff03d
  395. --- /dev/null
  396. +++ b/arch/arm/dts/stm32mp157c-osd32mp1-red.dts
  397. @@ -0,0 +1,1445 @@
  398. +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
  399. +/*
  400. + * Copyright (C) Octavo Systems 2021 - All Rights Reserved
  401. + * Author: Neeraj Dantu <dantuguf14105@gmail.com> for Octavo Systems
  402. + */
  403. +
  404. +/dts-v1/;
  405. +
  406. +#include <dt-bindings/pinctrl/stm32-pinfunc.h>
  407. +#include "stm32mp157.dtsi"
  408. +#include "stm32mp15xc.dtsi"
  409. +#include "stm32mp15xxac-pinctrl.dtsi"
  410. +#include "stm32mp15-m4-srm.dtsi"
  411. +#include <dt-bindings/mfd/st,stpmic1.h>
  412. +#include <dt-bindings/gpio/gpio.h>
  413. +#include <dt-bindings/rtc/rtc-stm32.h>
  414. +
  415. +/ {
  416. + model = "Octavo OSD32MP1 RED board";
  417. + compatible = "st,stm32mp157c-osd32mp1-red", "st,stm32mp157";
  418. +
  419. + memory@c0000000 {
  420. + device_type = "memory";
  421. + reg = <0xc0000000 0x20000000>;
  422. + };
  423. +
  424. + wifi_pwrseq: wifi-pwrseq {
  425. + compatible = "mmc-pwrseq-simple";
  426. + reset-gpios = <&gpiog 5 GPIO_ACTIVE_LOW>;
  427. + };
  428. +
  429. + clocks {
  430. + clk_ext_camera: clk-ext-camera {
  431. + #clock-cells = <0>;
  432. + compatible = "fixed-clock";
  433. + clock-frequency = <24000000>;
  434. + };
  435. + };
  436. +
  437. + reserved-memory {
  438. + #address-cells = <1>;
  439. + #size-cells = <1>;
  440. + ranges;
  441. +
  442. + mcuram2:mcuram2@10000000{
  443. + compatible = "shared-dma-pool";
  444. + reg = <0x10000000 0x40000>;
  445. + no-map;
  446. + };
  447. +
  448. + vdev0vring0:vdev0vring0@10040000{
  449. + compatible = "shared-dma-pool";
  450. + reg = <0x10040000 0x1000>;
  451. + no-map;
  452. + };
  453. +
  454. + vdev0vring1:vdev0vring1@10041000{
  455. + compatible = "shared-dma-pool";
  456. + reg = <0x10041000 0x1000>;
  457. + no-map;
  458. + };
  459. +
  460. + vdev0buffer:vdev0buffer@10042000{
  461. + compatible = "shared-dma-pool";
  462. + reg = <0x10042000 0x4000>;
  463. + no-map;
  464. + };
  465. +
  466. + mcuram:mcuram@30000000{
  467. + compatible = "shared-dma-pool";
  468. + reg = <0x30000000 0x40000>;
  469. + no-map;
  470. + };
  471. +
  472. + retram:retram@38000000{
  473. + compatible = "shared-dma-pool";
  474. + reg = <0x38000000 0x10000>;
  475. + no-map;
  476. + };
  477. +
  478. + gpu_reserved:gpu@d4000000{
  479. + reg = <0xd4000000 0x4000000>;
  480. + no-map;
  481. + };
  482. + };
  483. +
  484. +
  485. + aliases {
  486. + ethernet0 = &ethernet0;
  487. + serial0 = &uart4;
  488. + serial1 = &usart3;
  489. + serial2 = &uart7;
  490. + serial3 = &usart2;
  491. + };
  492. +
  493. + chosen {
  494. + stdout-path = "serial0:115200n8";
  495. + };
  496. +
  497. + led {
  498. + compatible = "gpio-leds";
  499. + blue {
  500. + label = "heartbeat";
  501. + gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
  502. + linux,default-trigger = "heartbeat";
  503. + default-state = "off";
  504. + };
  505. + };
  506. +
  507. + usb_phy_tuning:usb-phy-tuning{
  508. + st,hs-dc-level = <2>;
  509. + st,fs-rftime-tuning;
  510. + st,hs-rftime-reduction;
  511. + st,hs-current-trim = <15>;
  512. + st,hs-impedance-trim = <1>;
  513. + st,squelch-level = <3>;
  514. + st,hs-rx-offset = <2>;
  515. + st,no-lsfs-sc;
  516. + };
  517. +
  518. + vin:vin{
  519. + compatible = "regulator-fixed";
  520. + regulator-name = "vin";
  521. + regulator-min-microvolt = <5000000>;
  522. + regulator-max-microvolt = <5000000>;
  523. + regulator-always-on;
  524. + };
  525. +
  526. + sound {
  527. + compatible = "audio-graph-card";
  528. + label = "STM32MP15-DK";
  529. + routing =
  530. + "Playback" , "MCLK",
  531. + "Capture" , "MCLK",
  532. + "MICL" , "Mic Bias";
  533. + dais = <&i2s2_port>;
  534. + status = "okay";
  535. + };
  536. +};
  537. +
  538. +&pinctrl {
  539. + u-boot,dm-pre-reloc;
  540. + dcmi_pins_mx: dcmi_mx-0 {
  541. + pins {
  542. + pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
  543. + <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */
  544. + <STM32_PINMUX('A', 10, AF13)>, /* DCMI_D1 */
  545. + <STM32_PINMUX('B', 9, AF13)>, /* DCMI_D7 */
  546. + <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */
  547. + <STM32_PINMUX('E', 0, AF13)>, /* DCMI_D2 */
  548. + <STM32_PINMUX('E', 1, AF13)>, /* DCMI_D3 */
  549. + <STM32_PINMUX('E', 4, AF13)>, /* DCMI_D4 */
  550. + <STM32_PINMUX('E', 13, AF13)>, /* DCMI_D6 */
  551. + <STM32_PINMUX('G', 9, AF13)>, /* DCMI_VSYNC */
  552. + <STM32_PINMUX('H', 6, AF13)>, /* DCMI_D8 */
  553. + <STM32_PINMUX('H', 7, AF13)>, /* DCMI_D9 */
  554. + <STM32_PINMUX('H', 15, AF13)>, /* DCMI_D11 */
  555. + <STM32_PINMUX('I', 3, AF13)>, /* DCMI_D10 */
  556. + <STM32_PINMUX('I', 4, AF13)>; /* DCMI_D5 */
  557. + bias-disable;
  558. + };
  559. + };
  560. +
  561. + dcmi_sleep_pins_mx: dcmi_sleep_mx-0 {
  562. + pins {
  563. + pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* DCMI_HSYNC */
  564. + <STM32_PINMUX('A', 6, ANALOG)>, /* DCMI_PIXCLK */
  565. + <STM32_PINMUX('A', 10, ANALOG)>, /* DCMI_D1 */
  566. + <STM32_PINMUX('B', 9, ANALOG)>, /* DCMI_D7 */
  567. + <STM32_PINMUX('C', 6, ANALOG)>, /* DCMI_D0 */
  568. + <STM32_PINMUX('E', 0, ANALOG)>, /* DCMI_D2 */
  569. + <STM32_PINMUX('E', 1, ANALOG)>, /* DCMI_D3 */
  570. + <STM32_PINMUX('E', 4, ANALOG)>, /* DCMI_D4 */
  571. + <STM32_PINMUX('E', 13, ANALOG)>, /* DCMI_D6 */
  572. + <STM32_PINMUX('G', 9, ANALOG)>, /* DCMI_VSYNC */
  573. + <STM32_PINMUX('H', 6, ANALOG)>, /* DCMI_D8 */
  574. + <STM32_PINMUX('H', 7, ANALOG)>, /* DCMI_D9 */
  575. + <STM32_PINMUX('H', 15, ANALOG)>, /* DCMI_D11 */
  576. + <STM32_PINMUX('I', 3, ANALOG)>, /* DCMI_D10 */
  577. + <STM32_PINMUX('I', 4, ANALOG)>; /* DCMI_D5 */
  578. + };
  579. + };
  580. +
  581. + eth1_pins_mx: eth1_mx-0 {
  582. + pins1 {
  583. + pinmux = <STM32_PINMUX('A', 1, AF11)>, /* ETH1_RX_CLK */
  584. + <STM32_PINMUX('A', 7, AF11)>, /* ETH1_RX_CTL */
  585. + <STM32_PINMUX('B', 0, AF11)>, /* ETH1_RXD2 */
  586. + <STM32_PINMUX('B', 1, AF11)>, /* ETH1_RXD3 */
  587. + <STM32_PINMUX('C', 4, AF11)>, /* ETH1_RXD0 */
  588. + <STM32_PINMUX('C', 5, AF11)>; /* ETH1_RXD1 */
  589. + bias-disable;
  590. + };
  591. + pins2 {
  592. + pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH1_MDIO */
  593. + bias-disable;
  594. + drive-push-pull;
  595. + slew-rate = <0>;
  596. + };
  597. + pins3 {
  598. + pinmux = <STM32_PINMUX('B', 11, AF11)>, /* ETH1_TX_CTL */
  599. + <STM32_PINMUX('C', 1, AF11)>, /* ETH1_MDC */
  600. + <STM32_PINMUX('C', 2, AF11)>, /* ETH1_TXD2 */
  601. + <STM32_PINMUX('E', 2, AF11)>, /* ETH1_TXD3 */
  602. + <STM32_PINMUX('G', 4, AF11)>, /* ETH1_GTX_CLK */
  603. + <STM32_PINMUX('G', 13, AF11)>, /* ETH1_TXD0 */
  604. + <STM32_PINMUX('G', 14, AF11)>; /* ETH1_TXD1 */
  605. + bias-disable;
  606. + drive-push-pull;
  607. + slew-rate = <2>;
  608. + };
  609. + };
  610. +
  611. + eth1_sleep_pins_mx: eth1_sleep_mx-0 {
  612. + pins {
  613. + pinmux = <STM32_PINMUX('A', 1, ANALOG)>, /* ETH1_RX_CLK */
  614. + <STM32_PINMUX('A', 2, ANALOG)>, /* ETH1_MDIO */
  615. + <STM32_PINMUX('A', 7, ANALOG)>, /* ETH1_RX_CTL */
  616. + <STM32_PINMUX('B', 0, ANALOG)>, /* ETH1_RXD2 */
  617. + <STM32_PINMUX('B', 1, ANALOG)>, /* ETH1_RXD3 */
  618. + <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_TX_CTL */
  619. + <STM32_PINMUX('C', 1, ANALOG)>, /* ETH1_MDC */
  620. + <STM32_PINMUX('C', 2, ANALOG)>, /* ETH1_TXD2 */
  621. + <STM32_PINMUX('C', 4, ANALOG)>, /* ETH1_RXD0 */
  622. + <STM32_PINMUX('C', 5, ANALOG)>, /* ETH1_RXD1 */
  623. + <STM32_PINMUX('E', 2, ANALOG)>, /* ETH1_TXD3 */
  624. + <STM32_PINMUX('G', 4, ANALOG)>, /* ETH1_GTX_CLK */
  625. + <STM32_PINMUX('G', 13, ANALOG)>, /* ETH1_TXD0 */
  626. + <STM32_PINMUX('G', 14, ANALOG)>; /* ETH1_TXD1 */
  627. + };
  628. + };
  629. +
  630. + i2c1_pins_mx: i2c1_mx-0 {
  631. + pins {
  632. + pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
  633. + <STM32_PINMUX('F', 15, AF5)>; /* I2C1_SDA */
  634. + bias-disable;
  635. + drive-open-drain;
  636. + slew-rate = <0>;
  637. + };
  638. + };
  639. +
  640. + i2c1_sleep_pins_mx: i2c1_sleep_mx-0 {
  641. + pins {
  642. + pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
  643. + <STM32_PINMUX('F', 15, ANALOG)>; /* I2C1_SDA */
  644. + };
  645. + };
  646. +
  647. + i2c2_pins_mx: i2c2_mx-0 {
  648. + pins {
  649. + pinmux = <STM32_PINMUX('H', 5, AF4)>; /* I2C2_SDA */
  650. + bias-disable;
  651. + drive-open-drain;
  652. + slew-rate = <0>;
  653. + };
  654. + };
  655. +
  656. + i2c2_sleep_pins_mx: i2c2_sleep_mx-0 {
  657. + pins {
  658. + pinmux = <STM32_PINMUX('H', 5, ANALOG)>; /* I2C2_SDA */
  659. + };
  660. + };
  661. +
  662. + i2c5_pins_mx: i2c5_mx-0 {
  663. + pins {
  664. + pinmux = <STM32_PINMUX('A', 11, AF4)>, /* I2C5_SCL */
  665. + <STM32_PINMUX('A', 12, AF4)>; /* I2C5_SDA */
  666. + bias-disable;
  667. + drive-open-drain;
  668. + slew-rate = <0>;
  669. + };
  670. + };
  671. +
  672. + i2c5_sleep_pins_mx: i2c5_sleep_mx-0 {
  673. + pins {
  674. + pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* I2C5_SCL */
  675. + <STM32_PINMUX('A', 12, ANALOG)>; /* I2C5_SDA */
  676. + };
  677. + };
  678. +
  679. + i2s2_pins_mx: i2s2_mx-0 {
  680. + pins {
  681. + pinmux = <STM32_PINMUX('B', 12, AF5)>, /* I2S2_WS */
  682. + <STM32_PINMUX('B', 13, AF5)>, /* I2S2_CK */
  683. + <STM32_PINMUX('C', 3, AF5)>; /* I2S2_SDO */
  684. + bias-disable;
  685. + drive-push-pull;
  686. + slew-rate = <1>;
  687. + };
  688. + };
  689. +
  690. + i2s2_sleep_pins_mx: i2s2_sleep_mx-0 {
  691. + pins {
  692. + pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* I2S2_WS */
  693. + <STM32_PINMUX('B', 13, ANALOG)>, /* I2S2_CK */
  694. + <STM32_PINMUX('C', 3, ANALOG)>; /* I2S2_SDO */
  695. + };
  696. + };
  697. +
  698. + ltdc_pins_mx: ltdc_mx-0 {
  699. + pins1 {
  700. + pinmux = <STM32_PINMUX('A', 3, AF14)>, /* LTDC_B5 */
  701. + <STM32_PINMUX('B', 8, AF14)>, /* LTDC_B6 */
  702. + <STM32_PINMUX('C', 0, AF14)>, /* LTDC_R5 */
  703. + <STM32_PINMUX('D', 8, AF14)>, /* LTDC_B7 */
  704. + <STM32_PINMUX('D', 9, AF14)>, /* LTDC_B0 */
  705. + <STM32_PINMUX('D', 10, AF14)>, /* LTDC_B3 */
  706. + <STM32_PINMUX('E', 6, AF14)>, /* LTDC_G1 */
  707. + <STM32_PINMUX('E', 12, AF14)>, /* LTDC_B4 */
  708. + <STM32_PINMUX('E', 14, AF13)>, /* LTDC_G0 */
  709. + <STM32_PINMUX('E', 15, AF14)>, /* LTDC_R7 */
  710. + <STM32_PINMUX('F', 10, AF14)>, /* LTDC_DE */
  711. + <STM32_PINMUX('G', 10, AF14)>, /* LTDC_B2 */
  712. + <STM32_PINMUX('G', 12, AF14)>, /* LTDC_B1 */
  713. + <STM32_PINMUX('H', 2, AF14)>, /* LTDC_R0 */
  714. + <STM32_PINMUX('H', 3, AF14)>, /* LTDC_R1 */
  715. + <STM32_PINMUX('H', 4, AF14)>, /* LTDC_G4 */
  716. + <STM32_PINMUX('H', 8, AF14)>, /* LTDC_R2 */
  717. + <STM32_PINMUX('H', 9, AF14)>, /* LTDC_R3 */
  718. + <STM32_PINMUX('H', 10, AF14)>, /* LTDC_R4 */
  719. + <STM32_PINMUX('H', 12, AF14)>, /* LTDC_R6 */
  720. + <STM32_PINMUX('H', 13, AF14)>, /* LTDC_G2 */
  721. + <STM32_PINMUX('H', 14, AF14)>, /* LTDC_G3 */
  722. + <STM32_PINMUX('I', 0, AF14)>, /* LTDC_G5 */
  723. + <STM32_PINMUX('I', 1, AF14)>, /* LTDC_G6 */
  724. + <STM32_PINMUX('I', 2, AF14)>, /* LTDC_G7 */
  725. + <STM32_PINMUX('I', 9, AF14)>, /* LTDC_VSYNC */
  726. + <STM32_PINMUX('I', 10, AF14)>; /* LTDC_HSYNC */
  727. + bias-disable;
  728. + drive-push-pull;
  729. + slew-rate = <0>;
  730. + };
  731. + pins2 {
  732. + pinmux = <STM32_PINMUX('G', 7, AF14)>; /* LTDC_CLK */
  733. + bias-disable;
  734. + drive-push-pull;
  735. + slew-rate = <1>;
  736. + };
  737. + };
  738. +
  739. + ltdc_sleep_pins_mx: ltdc_sleep_mx-0 {
  740. + pins {
  741. + pinmux = <STM32_PINMUX('A', 3, ANALOG)>, /* LTDC_B5 */
  742. + <STM32_PINMUX('B', 8, ANALOG)>, /* LTDC_B6 */
  743. + <STM32_PINMUX('C', 0, ANALOG)>, /* LTDC_R5 */
  744. + <STM32_PINMUX('D', 8, ANALOG)>, /* LTDC_B7 */
  745. + <STM32_PINMUX('D', 9, ANALOG)>, /* LTDC_B0 */
  746. + <STM32_PINMUX('D', 10, ANALOG)>, /* LTDC_B3 */
  747. + <STM32_PINMUX('E', 6, ANALOG)>, /* LTDC_G1 */
  748. + <STM32_PINMUX('E', 12, ANALOG)>, /* LTDC_B4 */
  749. + <STM32_PINMUX('E', 14, ANALOG)>, /* LTDC_G0 */
  750. + <STM32_PINMUX('E', 15, ANALOG)>, /* LTDC_R7 */
  751. + <STM32_PINMUX('F', 10, ANALOG)>, /* LTDC_DE */
  752. + <STM32_PINMUX('G', 7, ANALOG)>, /* LTDC_CLK */
  753. + <STM32_PINMUX('G', 10, ANALOG)>, /* LTDC_B2 */
  754. + <STM32_PINMUX('G', 12, ANALOG)>, /* LTDC_B1 */
  755. + <STM32_PINMUX('H', 2, ANALOG)>, /* LTDC_R0 */
  756. + <STM32_PINMUX('H', 3, ANALOG)>, /* LTDC_R1 */
  757. + <STM32_PINMUX('H', 4, ANALOG)>, /* LTDC_G4 */
  758. + <STM32_PINMUX('H', 8, ANALOG)>, /* LTDC_R2 */
  759. + <STM32_PINMUX('H', 9, ANALOG)>, /* LTDC_R3 */
  760. + <STM32_PINMUX('H', 10, ANALOG)>, /* LTDC_R4 */
  761. + <STM32_PINMUX('H', 12, ANALOG)>, /* LTDC_R6 */
  762. + <STM32_PINMUX('H', 13, ANALOG)>, /* LTDC_G2 */
  763. + <STM32_PINMUX('H', 14, ANALOG)>, /* LTDC_G3 */
  764. + <STM32_PINMUX('I', 0, ANALOG)>, /* LTDC_G5 */
  765. + <STM32_PINMUX('I', 1, ANALOG)>, /* LTDC_G6 */
  766. + <STM32_PINMUX('I', 2, ANALOG)>, /* LTDC_G7 */
  767. + <STM32_PINMUX('I', 9, ANALOG)>, /* LTDC_VSYNC */
  768. + <STM32_PINMUX('I', 10, ANALOG)>; /* LTDC_HSYNC */
  769. + };
  770. + };
  771. +
  772. + sdmmc1_pins_mx: sdmmc1_mx-0 {
  773. + u-boot,dm-pre-reloc;
  774. + pins1 {
  775. + u-boot,dm-pre-reloc;
  776. + pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
  777. + <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
  778. + <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
  779. + <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
  780. + <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
  781. + bias-disable;
  782. + drive-push-pull;
  783. + slew-rate = <1>;
  784. + };
  785. + pins2 {
  786. + u-boot,dm-pre-reloc;
  787. + pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
  788. + bias-disable;
  789. + drive-push-pull;
  790. + slew-rate = <2>;
  791. + };
  792. + };
  793. +
  794. + sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 {
  795. + u-boot,dm-pre-reloc;
  796. + pins1 {
  797. + u-boot,dm-pre-reloc;
  798. + pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
  799. + <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
  800. + <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
  801. + <STM32_PINMUX('C', 11, AF12)>; /* SDMMC1_D3 */
  802. + bias-disable;
  803. + drive-push-pull;
  804. + slew-rate = <1>;
  805. + };
  806. + pins2 {
  807. + u-boot,dm-pre-reloc;
  808. + pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
  809. + bias-disable;
  810. + drive-push-pull;
  811. + slew-rate = <2>;
  812. + };
  813. + pins3 {
  814. + u-boot,dm-pre-reloc;
  815. + pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
  816. + bias-disable;
  817. + drive-open-drain;
  818. + slew-rate = <1>;
  819. + };
  820. + };
  821. +
  822. + sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 {
  823. + u-boot,dm-pre-reloc;
  824. + pins {
  825. + u-boot,dm-pre-reloc;
  826. + pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
  827. + <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
  828. + <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
  829. + <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
  830. + <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
  831. + <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
  832. + };
  833. + };
  834. +
  835. + sdmmc2_pins_mx: sdmmc2_mx-0 {
  836. + u-boot,dm-pre-reloc;
  837. + pins1 {
  838. + u-boot,dm-pre-reloc;
  839. + pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
  840. + <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
  841. + <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
  842. + <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
  843. + <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
  844. + <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
  845. + <STM32_PINMUX('C', 7, AF10)>, /* SDMMC2_D7 */
  846. + <STM32_PINMUX('E', 5, AF9)>, /* SDMMC2_D6 */
  847. + <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
  848. + bias-pull-up;
  849. + drive-push-pull;
  850. + slew-rate = <1>;
  851. + };
  852. + pins2 {
  853. + u-boot,dm-pre-reloc;
  854. + pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
  855. + bias-pull-up;
  856. + drive-push-pull;
  857. + slew-rate = <2>;
  858. + };
  859. + };
  860. +
  861. + sdmmc2_opendrain_pins_mx: sdmmc2_opendrain_mx-0 {
  862. + u-boot,dm-pre-reloc;
  863. + pins1 {
  864. + u-boot,dm-pre-reloc;
  865. + pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
  866. + <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
  867. + <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
  868. + <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
  869. + <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
  870. + <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
  871. + <STM32_PINMUX('C', 7, AF10)>, /* SDMMC2_D7 */
  872. + <STM32_PINMUX('E', 5, AF9)>; /* SDMMC2_D6 */
  873. + bias-pull-up;
  874. + drive-push-pull;
  875. + slew-rate = <1>;
  876. + };
  877. + pins2 {
  878. + u-boot,dm-pre-reloc;
  879. + pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
  880. + bias-pull-up;
  881. + drive-push-pull;
  882. + slew-rate = <2>;
  883. + };
  884. + pins3 {
  885. + u-boot,dm-pre-reloc;
  886. + pinmux = <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
  887. + bias-pull-up;
  888. + drive-open-drain;
  889. + slew-rate = <1>;
  890. + };
  891. + };
  892. +
  893. + sdmmc2_sleep_pins_mx: sdmmc2_sleep_mx-0 {
  894. + u-boot,dm-pre-reloc;
  895. + pins {
  896. + u-boot,dm-pre-reloc;
  897. + pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
  898. + <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
  899. + <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
  900. + <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
  901. + <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
  902. + <STM32_PINMUX('B', 15, ANALOG)>, /* SDMMC2_D1 */
  903. + <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC2_D7 */
  904. + <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
  905. + <STM32_PINMUX('E', 5, ANALOG)>, /* SDMMC2_D6 */
  906. + <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
  907. + };
  908. + };
  909. +
  910. + sdmmc3_pins_mx: sdmmc3_mx-0 {
  911. + u-boot,dm-pre-reloc;
  912. + pins1 {
  913. + u-boot,dm-pre-reloc;
  914. + pinmux = <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
  915. + <STM32_PINMUX('F', 0, AF9)>, /* SDMMC3_D0 */
  916. + <STM32_PINMUX('F', 1, AF9)>, /* SDMMC3_CMD */
  917. + <STM32_PINMUX('F', 4, AF9)>, /* SDMMC3_D1 */
  918. + <STM32_PINMUX('F', 5, AF9)>; /* SDMMC3_D2 */
  919. + bias-disable;
  920. + drive-push-pull;
  921. + slew-rate = <1>;
  922. + };
  923. + pins2 {
  924. + u-boot,dm-pre-reloc;
  925. + pinmux = <STM32_PINMUX('G', 15, AF10)>; /* SDMMC3_CK */
  926. + bias-disable;
  927. + drive-push-pull;
  928. + slew-rate = <2>;
  929. + };
  930. + };
  931. +
  932. + sdmmc3_opendrain_pins_mx: sdmmc3_opendrain_mx-0 {
  933. + u-boot,dm-pre-reloc;
  934. + pins1 {
  935. + u-boot,dm-pre-reloc;
  936. + pinmux = <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
  937. + <STM32_PINMUX('F', 0, AF9)>, /* SDMMC3_D0 */
  938. + <STM32_PINMUX('F', 4, AF9)>, /* SDMMC3_D1 */
  939. + <STM32_PINMUX('F', 5, AF9)>; /* SDMMC3_D2 */
  940. + bias-disable;
  941. + drive-push-pull;
  942. + slew-rate = <1>;
  943. + };
  944. + pins2 {
  945. + u-boot,dm-pre-reloc;
  946. + pinmux = <STM32_PINMUX('F', 1, AF9)>; /* SDMMC3_CMD */
  947. + bias-disable;
  948. + drive-open-drain;
  949. + slew-rate = <1>;
  950. + };
  951. + pins3 {
  952. + u-boot,dm-pre-reloc;
  953. + pinmux = <STM32_PINMUX('G', 15, AF10)>; /* SDMMC3_CK */
  954. + bias-disable;
  955. + drive-push-pull;
  956. + slew-rate = <2>;
  957. + };
  958. + };
  959. +
  960. + sdmmc3_sleep_pins_mx: sdmmc3_sleep_mx-0 {
  961. + u-boot,dm-pre-reloc;
  962. + pins {
  963. + u-boot,dm-pre-reloc;
  964. + pinmux = <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
  965. + <STM32_PINMUX('F', 0, ANALOG)>, /* SDMMC3_D0 */
  966. + <STM32_PINMUX('F', 1, ANALOG)>, /* SDMMC3_CMD */
  967. + <STM32_PINMUX('F', 4, ANALOG)>, /* SDMMC3_D1 */
  968. + <STM32_PINMUX('F', 5, ANALOG)>, /* SDMMC3_D2 */
  969. + <STM32_PINMUX('G', 15, ANALOG)>; /* SDMMC3_CK */
  970. + };
  971. + };
  972. +
  973. + spi5_pins_mx: spi5_mx-0 {
  974. + pins {
  975. + pinmux = <STM32_PINMUX('F', 7, AF5)>, /* SPI5_SCK */
  976. + <STM32_PINMUX('F', 8, AF5)>, /* SPI5_MISO */
  977. + <STM32_PINMUX('F', 9, AF5)>; /* SPI5_MOSI */
  978. + bias-disable;
  979. + drive-push-pull;
  980. + slew-rate = <1>;
  981. + };
  982. + };
  983. +
  984. + spi5_sleep_pins_mx: spi5_sleep_mx-0 {
  985. + pins {
  986. + pinmux = <STM32_PINMUX('F', 7, ANALOG)>, /* SPI5_SCK */
  987. + <STM32_PINMUX('F', 8, ANALOG)>, /* SPI5_MISO */
  988. + <STM32_PINMUX('F', 9, ANALOG)>; /* SPI5_MOSI */
  989. + };
  990. + };
  991. +
  992. + tim5_pwm_pins_mx: tim5_pwm_mx-0 {
  993. + pins {
  994. + pinmux = <STM32_PINMUX('H', 11, AF2)>; /* TIM5_CH2 */
  995. + bias-disable;
  996. + drive-push-pull;
  997. + slew-rate = <0>;
  998. + };
  999. + };
  1000. +
  1001. + tim5_pwm_sleep_pins_mx: tim5_pwm_sleep_mx-0 {
  1002. + pins {
  1003. + pinmux = <STM32_PINMUX('H', 11, ANALOG)>; /* TIM5_CH2 */
  1004. + };
  1005. + };
  1006. +
  1007. + uart4_pins_mx: uart4_mx-0 {
  1008. + u-boot,dm-pre-reloc;
  1009. + pins1 {
  1010. + u-boot,dm-pre-reloc;
  1011. + pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
  1012. + bias-disable;
  1013. + };
  1014. + pins2 {
  1015. + u-boot,dm-pre-reloc;
  1016. + pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
  1017. + bias-disable;
  1018. + drive-push-pull;
  1019. + slew-rate = <0>;
  1020. + };
  1021. + };
  1022. +
  1023. + uart4_sleep_pins_mx: uart4_sleep_mx-0 {
  1024. + u-boot,dm-pre-reloc;
  1025. + pins {
  1026. + u-boot,dm-pre-reloc;
  1027. + pinmux = <STM32_PINMUX('B', 2, ANALOG)>, /* UART4_RX */
  1028. + <STM32_PINMUX('G', 11, ANALOG)>; /* UART4_TX */
  1029. + };
  1030. + };
  1031. +
  1032. + usart2_pins_mx: usart2_mx-0 {
  1033. + pins1 {
  1034. + pinmux = <STM32_PINMUX('D', 3, AF7)>, /* USART2_CTS */
  1035. + <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
  1036. + bias-disable;
  1037. + };
  1038. + pins2 {
  1039. + pinmux = <STM32_PINMUX('D', 4, AF7)>, /* USART2_RTS */
  1040. + <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
  1041. + bias-disable;
  1042. + drive-push-pull;
  1043. + slew-rate = <0>;
  1044. + };
  1045. + };
  1046. +
  1047. + usart2_sleep_pins_mx: usart2_sleep_mx-0 {
  1048. + pins {
  1049. + pinmux = <STM32_PINMUX('D', 3, ANALOG)>, /* USART2_CTS */
  1050. + <STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
  1051. + <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
  1052. + <STM32_PINMUX('D', 6, ANALOG)>; /* USART2_RX */
  1053. + };
  1054. + };
  1055. +
  1056. + cec_pins_mx: cec-1 {
  1057. + pins {
  1058. + pinmux = <STM32_PINMUX('B', 6, AF5)>;
  1059. + bias-disable;
  1060. + drive-open-drain;
  1061. + slew-rate = <0>;
  1062. + };
  1063. + };
  1064. +
  1065. + cec_sleep_pins_mx: cec-sleep-1 {
  1066. + pins {
  1067. + pinmux = <STM32_PINMUX('B', 6, ANALOG)>; /* HDMI_CEC */
  1068. + };
  1069. + };
  1070. +
  1071. + stusb1600_pins_mx: stusb1600-0 {
  1072. + pins {
  1073. + pinmux = <STM32_PINMUX('I', 11, ANALOG)>;
  1074. + bias-pull-up;
  1075. + };
  1076. + };
  1077. +
  1078. + m_can1_pins_mx: m_can1_sleep_mx-0 {
  1079. + pins1 {
  1080. + pinmux = <STM32_PINMUX('D', 1, AF9)>; /* CAN1_TX */
  1081. + slew-rate = <0>;
  1082. + drive-push-pull;
  1083. + bias-disable;
  1084. + };
  1085. + pins2 {
  1086. + pinmux = <STM32_PINMUX('D', 0, AF9)>; /* CAN1_RX */
  1087. + bias-disable;
  1088. + };
  1089. + };
  1090. +
  1091. + m_can1_sleep_pins_mx: m_can1_sleep-0 {
  1092. + pins {
  1093. + pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* CAN1_TX */
  1094. + <STM32_PINMUX('D', 0, ANALOG)>; /* CAN1_RX */
  1095. + };
  1096. + };
  1097. +
  1098. +};
  1099. +
  1100. +&pinctrl_z {
  1101. + u-boot,dm-pre-reloc;
  1102. +
  1103. + i2c2_pins_z_mx: i2c2_mx-0 {
  1104. + pins {
  1105. + pinmux = <STM32_PINMUX('Z', 6, AF3)>; /* I2C2_SCL */
  1106. + bias-disable;
  1107. + drive-open-drain;
  1108. + slew-rate = <0>;
  1109. + };
  1110. + };
  1111. +
  1112. + i2c2_sleep_pins_z_mx: i2c2_sleep_mx-0 {
  1113. + pins {
  1114. + pinmux = <STM32_PINMUX('Z', 6, ANALOG)>; /* I2C2_SCL */
  1115. + };
  1116. + };
  1117. +
  1118. + i2c4_pins_z_mx: i2c4_mx-0 {
  1119. + u-boot,dm-pre-reloc;
  1120. + pins {
  1121. + u-boot,dm-pre-reloc;
  1122. + pinmux = <STM32_PINMUX('Z', 4, AF6)>, /* I2C4_SCL */
  1123. + <STM32_PINMUX('Z', 5, AF6)>; /* I2C4_SDA */
  1124. + bias-disable;
  1125. + drive-open-drain;
  1126. + slew-rate = <0>;
  1127. + };
  1128. + };
  1129. +
  1130. + i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 {
  1131. + u-boot,dm-pre-reloc;
  1132. + pins {
  1133. + u-boot,dm-pre-reloc;
  1134. + pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C4_SCL */
  1135. + <STM32_PINMUX('Z', 5, ANALOG)>; /* I2C4_SDA */
  1136. + };
  1137. + };
  1138. +};
  1139. +
  1140. +&m4_rproc{
  1141. + memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
  1142. + <&vdev0vring1>, <&vdev0buffer>;
  1143. + mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
  1144. + mbox-names = "vq0", "vq1", "shutdown";
  1145. + interrupt-parent = <&exti>;
  1146. + interrupts = <68 1>;
  1147. + wakeup-source;
  1148. + status = "okay";
  1149. +};
  1150. +
  1151. +&dcmi{
  1152. + pinctrl-names = "default", "sleep";
  1153. + pinctrl-0 = <&dcmi_pins_mx>;
  1154. + pinctrl-1 = <&dcmi_sleep_pins_mx>;
  1155. + status = "okay";
  1156. +
  1157. + port {
  1158. + dcmi_0: endpoint {
  1159. + remote-endpoint = <&ov5640_0>;
  1160. + bus-width = <8>;
  1161. + hsync-active = <0>;
  1162. + vsync-active = <0>;
  1163. + pclk-sample = <1>;
  1164. + pclk-max-frequency = <77000000>;
  1165. + };
  1166. + };
  1167. +};
  1168. +
  1169. +&dsi{
  1170. + status = "okay";
  1171. +
  1172. + ports {
  1173. + port@0 {
  1174. + reg = <0>;
  1175. + dsi_in: endpoint {
  1176. + remote-endpoint = <&ltdc_ep1_out>;
  1177. + };
  1178. + };
  1179. +
  1180. + port@1 {
  1181. + reg = <1>;
  1182. + dsi_out: endpoint {
  1183. + remote-endpoint = <&panel_in>;
  1184. + };
  1185. + };
  1186. + };
  1187. +
  1188. + panel_otm8009a: panel-otm8009a@0 {
  1189. + compatible = "orisetech,otm8009a";
  1190. + reg = <0>;
  1191. + reset-gpios = <&gpioe 9 GPIO_ACTIVE_LOW>;
  1192. + power-supply = <&v3v3>;
  1193. + status = "okay";
  1194. +
  1195. + port {
  1196. + panel_in: endpoint {
  1197. + remote-endpoint = <&dsi_out>;
  1198. + };
  1199. + };
  1200. + };
  1201. +};
  1202. +
  1203. +&ethernet0{
  1204. + pinctrl-names = "default", "sleep";
  1205. + pinctrl-0 = <&eth1_pins_mx>;
  1206. + pinctrl-1 = <&eth1_sleep_pins_mx>;
  1207. + status = "okay";
  1208. +
  1209. +
  1210. + st,eth-clk-sel; //custom
  1211. + phy-mode = "rgmii-id";
  1212. + max-speed = <1000>;
  1213. + phy-handle = <&phy0>;
  1214. + nvmem-cells = <&ethernet_mac_address>;
  1215. + nvmem-cell-names = "mac-address";
  1216. +
  1217. + mdio0 {
  1218. + #address-cells = <1>;
  1219. + #size-cells = <0>;
  1220. + compatible = "snps,dwmac-mdio";
  1221. + phy0: ethernet-phy@0 {
  1222. + reg = <3>;
  1223. + };
  1224. + };
  1225. +};
  1226. +
  1227. +&gpu{
  1228. + status = "okay";
  1229. + contiguous-area = <&gpu_reserved>;
  1230. +};
  1231. +
  1232. +&hash1 {
  1233. + status = "okay";
  1234. +};
  1235. +
  1236. +&hsem{
  1237. + status = "okay";
  1238. +};
  1239. +
  1240. +&cryp1{
  1241. + u-boot,dm-pre-reloc;
  1242. + status = "okay";
  1243. +};
  1244. +
  1245. +&i2c1{
  1246. + pinctrl-names = "default", "sleep";
  1247. + pinctrl-0 = <&i2c1_pins_mx>;
  1248. + pinctrl-1 = <&i2c1_sleep_pins_mx>;
  1249. + status = "okay";
  1250. + i2c-scl-rising-time-ns = <100>;
  1251. + i2c-scl-falling-time-ns = <7>;
  1252. + /delete-property/dmas;
  1253. + /delete-property/dma-names;
  1254. +
  1255. + touchscreen@2a {
  1256. + compatible = "focaltech,ft6236";
  1257. + reg = <0x2a>;
  1258. + interrupts = <2 2>;
  1259. + interrupt-parent = <&gpiof>;
  1260. + interrupt-controller;
  1261. + touchscreen-size-x = <480>;
  1262. + touchscreen-size-y = <800>;
  1263. + panel = <&panel_otm8009a>;
  1264. + vcc-supply = <&v3v3>;
  1265. + status = "okay";
  1266. + };
  1267. + touchscreen@38 {
  1268. + compatible = "focaltech,ft6236";
  1269. + reg = <0x38>;
  1270. + interrupts = <2 2>;
  1271. + interrupt-parent = <&gpiof>;
  1272. + interrupt-controller;
  1273. + touchscreen-size-x = <480>;
  1274. + touchscreen-size-y = <800>;
  1275. + panel = <&panel_otm8009a>;
  1276. + vcc-supply = <&v3v3>;
  1277. + status = "okay";
  1278. + };
  1279. +
  1280. + hdmi-transmitter@39 {
  1281. + compatible = "sil,sii9022";
  1282. + reg = <0x39>;
  1283. + reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
  1284. + interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
  1285. + interrupt-parent = <&gpiog>;
  1286. + pinctrl-names = "default", "sleep";
  1287. + pinctrl-0 = <&ltdc_pins_mx>;
  1288. + pinctrl-1 = <&ltdc_sleep_pins_mx>;
  1289. + status = "okay";
  1290. +
  1291. + ports {
  1292. + #address-cells = <1>;
  1293. + #size-cells = <0>;
  1294. +
  1295. + port@0 {
  1296. + reg = <0>;
  1297. + sii9022_in: endpoint {
  1298. + remote-endpoint = <&ltdc_ep0_out>;
  1299. + };
  1300. + };
  1301. +
  1302. + port@1 {
  1303. + reg = <1>;
  1304. + sii9022_tx_endpoint: endpoint {
  1305. + remote-endpoint = <&i2s2_endpoint>;
  1306. + };
  1307. + };
  1308. + };
  1309. + };
  1310. +};
  1311. +
  1312. +&i2c2{
  1313. + pinctrl-names = "default", "sleep";
  1314. + pinctrl-0 = <&i2c2_pins_mx &i2c2_pins_z_mx>;
  1315. + pinctrl-1 = <&i2c2_sleep_pins_mx &i2c2_sleep_pins_z_mx>;
  1316. + status = "okay";
  1317. + i2c-scl-rising-time-ns = <185>;
  1318. + i2c-scl-falling-time-ns = <20>;
  1319. + /delete-property/dmas;
  1320. + /delete-property/dma-names;
  1321. +
  1322. + ov5640: camera@3c {
  1323. + compatible = "ovti,ov5640";
  1324. + reg = <0x3c>;
  1325. + clocks = <&clk_ext_camera>;
  1326. + clock-names = "xclk";
  1327. + DOVDD-supply = <&v3v3>;
  1328. + //powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>;
  1329. + //reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
  1330. + //powerdown-gpios = <&gpioc 3 GPIO_ACTIVE_HIGH>; //custom
  1331. + //reset-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; //custom
  1332. + rotation = <180>;
  1333. + status = "okay";
  1334. +
  1335. + port {
  1336. + ov5640_0: endpoint {
  1337. + remote-endpoint = <&dcmi_0>;
  1338. + bus-width = <8>;
  1339. + data-shift = <2>; /* lines 9:2 are used */
  1340. + hsync-active = <0>;
  1341. + vsync-active = <0>;
  1342. + pclk-sample = <1>;
  1343. + pclk-max-frequency = <77000000>;
  1344. + };
  1345. + };
  1346. + };
  1347. +};
  1348. +
  1349. +&i2c4{
  1350. + u-boot,dm-pre-reloc;
  1351. + pinctrl-names = "default", "sleep";
  1352. + pinctrl-0 = <&i2c4_pins_z_mx>;
  1353. + pinctrl-1 = <&i2c4_sleep_pins_z_mx>;
  1354. + status = "okay";
  1355. + i2c-scl-rising-time-ns = <185>;
  1356. + i2c-scl-falling-time-ns = <20>;
  1357. + clock-frequency = <400000>;
  1358. + /delete-property/ dmas;
  1359. + /delete-property/ dma-names;
  1360. +
  1361. + typec: stusb1600@28 {
  1362. + compatible = "st,stusb1600";
  1363. + reg = <0x28>;
  1364. + interrupt-parent = <&gpioe>;
  1365. + interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
  1366. + pinctrl-0 = <&stusb1600_pins_mx>;
  1367. + pinctrl-names = "default";
  1368. + status = "okay";
  1369. + vdd-supply = <&vin>;
  1370. +
  1371. + typec_con: connector {
  1372. + compatible = "usb-c-connector";
  1373. + label = "USB-C";
  1374. + power-role = "dual";
  1375. + power-opmode = "default";
  1376. +
  1377. + port {
  1378. + con_usbotg_hs_ep: endpoint {
  1379. + remote-endpoint = <&usbotg_hs_ep>;
  1380. + };
  1381. + };
  1382. + };
  1383. + };
  1384. +
  1385. + pmic:stpmic@33{
  1386. + compatible = "st,stpmic1";
  1387. + reg = <0x33>;
  1388. + interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
  1389. + interrupt-controller;
  1390. + #interrupt-cells = <2>;
  1391. + status = "okay";
  1392. +
  1393. + st,main-control-register = <0x04>;
  1394. + st,vin-control-register = <0xc0>;
  1395. + st,usb-control-register = <0x20>;
  1396. +
  1397. + regulators{
  1398. + compatible = "st,stpmic1-regulators";
  1399. + buck1-supply = <&vin>;
  1400. + buck2-supply = <&vin>;
  1401. + buck3-supply = <&vin>;
  1402. + buck4-supply = <&vin>;
  1403. + ldo1-supply = <&v3v3>;
  1404. + ldo2-supply = <&vin>;
  1405. + ldo3-supply = <&vdd_ddr>;
  1406. + ldo4-supply = <&vin>;
  1407. + ldo5-supply = <&vin>;
  1408. + ldo6-supply = <&v3v3>;
  1409. + vref_ddr-supply = <&vin>;
  1410. + boost-supply = <&vin>;
  1411. + pwr_sw1-supply = <&bst_out>;
  1412. + pwr_sw2-supply = <&bst_out>;
  1413. +
  1414. +
  1415. + vddcore:buck1{
  1416. + regulator-name = "vddcore";
  1417. + regulator-min-microvolt = <1200000>;
  1418. + regulator-max-microvolt = <1350000>;
  1419. + regulator-always-on;
  1420. + regulator-initial-mode = <0>;
  1421. + regulator-over-current-protection;
  1422. + };
  1423. +
  1424. + vdd_ddr:buck2{
  1425. + regulator-name = "vdd_ddr";
  1426. + regulator-min-microvolt = <1350000>;
  1427. + regulator-max-microvolt = <1350000>;
  1428. + regulator-always-on;
  1429. + regulator-initial-mode = <0>;
  1430. + regulator-over-current-protection;
  1431. + };
  1432. +
  1433. + vdd:buck3{
  1434. + regulator-name = "vdd";
  1435. + regulator-min-microvolt = <3300000>;
  1436. + regulator-max-microvolt = <3300000>;
  1437. + regulator-always-on;
  1438. + st,mask-reset;
  1439. + regulator-initial-mode = <0>;
  1440. + regulator-over-current-protection;
  1441. + };
  1442. +
  1443. + v3v3:buck4{
  1444. + regulator-name = "v3v3";
  1445. + regulator-min-microvolt = <3300000>;
  1446. + regulator-max-microvolt = <3300000>;
  1447. + regulator-always-on;
  1448. + regulator-over-current-protection;
  1449. + regulator-initial-mode = <0>;
  1450. + };
  1451. +
  1452. + v1v8_audio:ldo1{
  1453. + regulator-name = "v1v8_audio";
  1454. + regulator-min-microvolt = <1800000>;
  1455. + regulator-max-microvolt = <1800000>;
  1456. + regulator-always-on;
  1457. + interrupts = <IT_CURLIM_LDO1 0>;
  1458. + };
  1459. +
  1460. + v3v3_hdmi:ldo2{
  1461. + regulator-name = "v3v3_hdmi";
  1462. + regulator-min-microvolt = <3300000>;
  1463. + regulator-max-microvolt = <3300000>;
  1464. + regulator-always-on;
  1465. + interrupts = <IT_CURLIM_LDO2 0>;
  1466. + };
  1467. +
  1468. + vtt_ddr:ldo3{
  1469. + regulator-name = "vtt_ddr";
  1470. + regulator-min-microvolt = <500000>;
  1471. + regulator-max-microvolt = <750000>;
  1472. + regulator-always-on;
  1473. + regulator-over-current-protection;
  1474. + };
  1475. +
  1476. + vdd_usb:ldo4{
  1477. + regulator-name = "vdd_usb";
  1478. + interrupts = <IT_CURLIM_LDO4 0>;
  1479. + };
  1480. +
  1481. + v3v3_eth:ldo5{
  1482. + regulator-name = "v3v3_eth";
  1483. + regulator-min-microvolt = <3300000>;
  1484. + regulator-max-microvolt = <3300000>;
  1485. + interrupts = <IT_CURLIM_LDO5 0>;
  1486. + regulator-boot-on;
  1487. + };
  1488. +
  1489. + v3v3_dsi:ldo6{
  1490. + regulator-name = "v3v3_dsi";
  1491. + regulator-min-microvolt = <3300000>;
  1492. + regulator-max-microvolt = <3300000>;
  1493. + regulator-always-on;
  1494. + interrupts = <IT_CURLIM_LDO6 0>;
  1495. + };
  1496. +
  1497. + vref_ddr:vref_ddr{
  1498. + regulator-name = "vref_ddr";
  1499. + regulator-always-on;
  1500. + regulator-over-current-protection;
  1501. + };
  1502. +
  1503. + bst_out:boost{
  1504. + regulator-name = "bst_out";
  1505. + interrupts = <IT_OCP_BOOST 0>;
  1506. + regulator-always-on;
  1507. + };
  1508. +
  1509. + vbus_otg:pwr_sw1{
  1510. + regulator-name = "vbus_otg";
  1511. + interrupts = <IT_OCP_OTG 0>;
  1512. + regulator-active-discharge;
  1513. + regulator-always-on;
  1514. + };
  1515. +
  1516. + vbus_sw:pwr_sw2{
  1517. + regulator-name = "vbus_sw";
  1518. + interrupts = <IT_OCP_SWOUT 0>;
  1519. + regulator-active-discharge = <1>;
  1520. + regulator-always-on;
  1521. + };
  1522. + };
  1523. +
  1524. + onkey{
  1525. + compatible = "st,stpmic1-onkey";
  1526. + interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
  1527. + interrupt-names = "onkey-falling", "onkey-rising";
  1528. + power-off-time-sec = <10>;
  1529. + status = "okay";
  1530. + };
  1531. +
  1532. + watchdog {
  1533. + compatible = "st,stpmic1-wdt";
  1534. + status = "disabled";
  1535. + };
  1536. + };
  1537. + eeprom@50 {
  1538. + compatible = "atmel,24c02";
  1539. + reg = <0x50>;
  1540. + pagesize = <16>;
  1541. + };
  1542. +};
  1543. +
  1544. +&i2c5{
  1545. + pinctrl-names = "default", "sleep";
  1546. + pinctrl-0 = <&i2c5_pins_mx>;
  1547. + pinctrl-1 = <&i2c5_sleep_pins_mx>;
  1548. + status = "okay";
  1549. +
  1550. + /delete-property/dmas;
  1551. + /delete-property/dma-names;
  1552. +
  1553. +};
  1554. +
  1555. +&spi5 {
  1556. + pinctrl-names = "default", "sleep";
  1557. + pinctrl-0 = <&spi5_pins_mx>;
  1558. + pinctrl-1 = <&spi5_sleep_pins_mx>;
  1559. + cs-gpios = <&gpiof 6 0>;
  1560. + status = "okay";
  1561. +
  1562. + spidev: spidev@0 {
  1563. + compatible = "rohm,dh2228fv";
  1564. + spi-max-frequency = <30000000>;
  1565. + reg = <0>;
  1566. + };
  1567. +};
  1568. +
  1569. +&i2s2{
  1570. + clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
  1571. + clock-names = "pclk", "i2sclk", "x8k", "x11k";
  1572. + pinctrl-names = "default", "sleep";
  1573. + pinctrl-0 = <&i2s2_pins_mx>;
  1574. + pinctrl-1 = <&i2s2_sleep_pins_mx>;
  1575. + status = "okay";
  1576. +
  1577. + i2s2_port: port {
  1578. + i2s2_endpoint: endpoint {
  1579. + remote-endpoint = <&sii9022_tx_endpoint>;
  1580. + format = "i2s";
  1581. + mclk-fs = <256>;
  1582. + };
  1583. + };
  1584. +};
  1585. +
  1586. +&ipcc{
  1587. + status = "okay";
  1588. +};
  1589. +
  1590. +&iwdg2{
  1591. + status = "okay";
  1592. + timeout-sec = <32>;
  1593. +};
  1594. +
  1595. +&ltdc{
  1596. + status = "okay";
  1597. + port {
  1598. + ltdc_ep0_out: endpoint@0 {
  1599. + reg = <0>;
  1600. + remote-endpoint = <&sii9022_in>;
  1601. + };
  1602. +
  1603. + ltdc_ep1_out: endpoint@1 {
  1604. + reg = <1>;
  1605. + remote-endpoint = <&dsi_in>;
  1606. + };
  1607. + };
  1608. +};
  1609. +
  1610. +&pwr_regulators {
  1611. + vdd-supply = <&vdd>;
  1612. + vdd_3v3_usbfs-supply = <&vdd_usb>;
  1613. +};
  1614. +
  1615. +&rcc{
  1616. + u-boot,dm-pre-reloc;
  1617. + status = "okay";
  1618. +};
  1619. +
  1620. +&rng1{
  1621. + status = "okay";
  1622. +};
  1623. +
  1624. +&rtc{
  1625. + status = "okay";
  1626. +};
  1627. +
  1628. +&cec {
  1629. + pinctrl-names = "default", "sleep";
  1630. + pinctrl-0 = <&cec_pins_mx>;
  1631. + pinctrl-1 = <&cec_sleep_pins_mx>;
  1632. + status = "okay";
  1633. +};
  1634. +
  1635. +&cpu0{
  1636. + cpu-supply = <&vddcore>;
  1637. +};
  1638. +
  1639. +&cpu1{
  1640. + cpu-supply = <&vddcore>;
  1641. +};
  1642. +
  1643. +&crc1 {
  1644. + status = "okay";
  1645. +};
  1646. +
  1647. +&dts {
  1648. + status = "okay";
  1649. +};
  1650. +
  1651. +&sdmmc1{
  1652. + u-boot,dm-pre-reloc;
  1653. + pinctrl-names = "default", "opendrain", "sleep";
  1654. + pinctrl-0 = <&sdmmc1_pins_mx>;
  1655. + pinctrl-1 = <&sdmmc1_opendrain_pins_mx>;
  1656. + pinctrl-2 = <&sdmmc1_sleep_pins_mx>;
  1657. + status = "okay";
  1658. +
  1659. + cd-gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
  1660. + disable-wp;
  1661. + st,neg-edge;
  1662. + bus-width = <4>;
  1663. + vmmc-supply = <&v3v3>;
  1664. +};
  1665. +
  1666. +&sdmmc2{
  1667. + u-boot,dm-pre-reloc;
  1668. + pinctrl-names = "default", "opendrain", "sleep";
  1669. + pinctrl-0 = <&sdmmc2_pins_mx>;
  1670. + pinctrl-1 = <&sdmmc2_opendrain_pins_mx>;
  1671. + pinctrl-2 = <&sdmmc2_sleep_pins_mx>;
  1672. + status = "okay";
  1673. + non-removable;
  1674. + no-sd;
  1675. + no-sdio;
  1676. + st,neg-edge;
  1677. + bus-width = <8>;
  1678. + vmmc-supply = <&v3v3>;
  1679. + vqmmc-supply = <&v3v3>;
  1680. + mmc-ddr-3_3v;
  1681. +};
  1682. +
  1683. +&sdmmc3{
  1684. + pinctrl-names = "default", "opendrain", "sleep";
  1685. + pinctrl-0 = <&sdmmc3_pins_mx>;
  1686. + pinctrl-1 = <&sdmmc3_opendrain_pins_mx>;
  1687. + pinctrl-2 = <&sdmmc3_sleep_pins_mx>;
  1688. + arm,primecell-periphid = <0x10153180>;
  1689. + non-removable;
  1690. + st,neg-edge;
  1691. + bus-width = <4>;
  1692. + vmmc-supply = <&v3v3>;
  1693. + //mmc-pwrseq = <&wifi_pwrseq>;
  1694. + #address-cells = <1>;
  1695. + #size-cells = <0>;
  1696. + keep-power-in-suspend;
  1697. + status = "disabled";
  1698. + //status = "okay";
  1699. +
  1700. + brcmf: bcrmf@1 {
  1701. + reg = <1>;
  1702. + compatible = "brcm,bcm4329-fmac";
  1703. + };
  1704. +};
  1705. +
  1706. +&tamp{
  1707. + status = "okay";
  1708. +};
  1709. +
  1710. +&timers5 {
  1711. + /delete-property/dmas;
  1712. + /delete-property/dma-names;
  1713. + status = "okay";
  1714. + pwm {
  1715. + pinctrl-0 = <&tim5_pwm_pins_mx>;
  1716. + pinctrl-1 = <&tim5_pwm_sleep_pins_mx>;
  1717. + pinctrl-names = "default", "sleep";
  1718. + status = "okay";
  1719. + };
  1720. + timer@4 {
  1721. + status = "okay";
  1722. + };
  1723. +};
  1724. +
  1725. +&uart4{
  1726. + u-boot,dm-pre-reloc;
  1727. + pinctrl-names = "default", "sleep";
  1728. + pinctrl-0 = <&uart4_pins_mx>;
  1729. + pinctrl-1 = <&uart4_sleep_pins_mx>;
  1730. + /delete-property/dmas;
  1731. + /delete-property/dma-names;
  1732. + status = "okay";
  1733. +};
  1734. +
  1735. +&usart2{
  1736. + pinctrl-names = "default", "sleep";
  1737. + pinctrl-0 = <&usart2_pins_mx>;
  1738. + pinctrl-1 = <&usart2_sleep_pins_mx>;
  1739. + uart-has-rtscts;
  1740. + status = "okay";
  1741. +
  1742. + bluetooth {
  1743. + shutdown-gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>;
  1744. + compatible = "brcm,bcm43438-bt";
  1745. + max-speed = <3000000>;
  1746. + vbat-supply = <&v3v3>;
  1747. + vddio-supply = <&v3v3>;
  1748. + };
  1749. +};
  1750. +
  1751. +&sram {
  1752. + dma_pool: dma_pool@0 {
  1753. + reg = <0x50000 0x10000>;
  1754. + pool;
  1755. + };
  1756. +};
  1757. +
  1758. +&dma1 {
  1759. + sram = <&dma_pool>;
  1760. +};
  1761. +
  1762. +&dma2 {
  1763. + sram = <&dma_pool>;
  1764. +};
  1765. +
  1766. +&adc {
  1767. + vdd-supply = <&vdd>;
  1768. + vdda-supply = <&v3v3_eth>;
  1769. + vref-supply = <&v3v3_eth>;
  1770. + status = "okay";
  1771. + adc1: adc@0 {
  1772. + st,min-sample-time-nsecs = <5000>;
  1773. + st,adc-channels = <0 1>;
  1774. + status = "okay";
  1775. + };
  1776. +
  1777. + adc_temp: temp {
  1778. + status = "okay";
  1779. + };
  1780. +};
  1781. +
  1782. +
  1783. +// WARNING: Do not try to enable DAC1 and DCMI
  1784. +// This devices share the same pin PA4
  1785. +/* &dac {
  1786. + pinctrl-names = "default";
  1787. + status = "okay";
  1788. + dac1: dac@1 {
  1789. + pinctrl-0 = <&dac_ch1_pins_a>;
  1790. + status = "disabled";
  1791. + };
  1792. + dac2: dac@2 {
  1793. + pinctrl-0 = <&dac_ch2_pins_a>;
  1794. + status = "okay";
  1795. + };
  1796. +};*/
  1797. +
  1798. +&usbh_ehci {
  1799. + phys = <&usbphyc_port0>;
  1800. + phy-names = "usb";
  1801. + status = "okay";
  1802. +};
  1803. +
  1804. +&usbh_ohci{
  1805. + phys = <&usbphyc_port0>;
  1806. + phy-names = "usb";
  1807. + status = "okay";
  1808. +};
  1809. +
  1810. +&usbotg_hs {
  1811. + phys = <&usbphyc_port1 0>;
  1812. + phy-names = "usb2-phy";
  1813. + usb-role-switch;
  1814. + status = "okay";
  1815. +
  1816. + port {
  1817. + usbotg_hs_ep: endpoint {
  1818. + remote-endpoint = <&con_usbotg_hs_ep>;
  1819. + };
  1820. + };
  1821. +};
  1822. +
  1823. +&usbphyc {
  1824. + status = "okay";
  1825. +};
  1826. +
  1827. +&usbphyc_port0 {
  1828. + phy-supply = <&vdd_usb>;
  1829. + st,phy-tuning = <&usb_phy_tuning>;
  1830. +};
  1831. +
  1832. +&usbphyc_port1 {
  1833. + phy-supply = <&vdd_usb>;
  1834. + st,phy-tuning = <&usb_phy_tuning>;
  1835. +};
  1836. +
  1837. +&m_can1 {
  1838. + pinctrl-names = "default", "sleep";
  1839. + pinctrl-0 = <&m_can1_pins_mx>;
  1840. + pinctrl-1 = <&m_can1_sleep_pins_mx>;
  1841. + status = "okay";
  1842. +};
  1843. --
  1844. 2.25.1