osd32mp1-red.dts 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469
  1. /* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
  2. /*
  3. * Copyright (C) STMicroelectronics 2020 - All Rights Reserved
  4. * Author: STM32CubeMX code generation for STMicroelectronics.
  5. */
  6. /* For more information on Device Tree configuration, please refer to
  7. * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration
  8. */
  9. /dts-v1/;
  10. #include "stm32mp157c-osd32mp1-red.dtsi"
  11. #include "stm32mp157cac-pinctrl.dtsi"
  12. #include "stm32mp157c-m4-srm.dtsi"
  13. #include <dt-bindings/input/input.h>
  14. #include <dt-bindings/mfd/st,stpmic1.h>
  15. #include <dt-bindings/rtc/rtc-stm32.h>
  16. / {
  17. model = "Octavo OSD32MP1-RED board";
  18. compatible = "octavo,osd32mp1-red", "st,stm32mp157";
  19. memory@c0000000 {
  20. reg = <0xc0000000 0x20000000>;
  21. };
  22. wifi_pwrseq: wifi-pwrseq {
  23. compatible = "mmc-pwrseq-simple";
  24. reset-gpios = <&gpiog 5 GPIO_ACTIVE_LOW>;
  25. };
  26. reserved-memory {
  27. #address-cells = <1>;
  28. #size-cells = <1>;
  29. ranges;
  30. retram: retram@0x38000000 {
  31. compatible = "shared-dma-pool";
  32. reg = <0x38000000 0x10000>;
  33. no-map;
  34. };
  35. mcuram: mcuram@0x30000000 {
  36. compatible = "shared-dma-pool";
  37. reg = <0x30000000 0x40000>;
  38. no-map;
  39. };
  40. mcuram2: mcuram2@0x10000000 {
  41. compatible = "shared-dma-pool";
  42. reg = <0x10000000 0x40000>;
  43. no-map;
  44. };
  45. vdev0vring0: vdev0vring0@10040000 {
  46. compatible = "shared-dma-pool";
  47. reg = <0x10040000 0x2000>;
  48. no-map;
  49. };
  50. vdev0vring1: vdev0vring1@10042000 {
  51. compatible = "shared-dma-pool";
  52. reg = <0x10042000 0x2000>;
  53. no-map;
  54. };
  55. vdev0buffer: vdev0buffer@10044000 {
  56. compatible = "shared-dma-pool";
  57. reg = <0x10044000 0x4000>;
  58. no-map;
  59. };
  60. gpu_reserved: gpu@d4000000 {
  61. reg = <0xd4000000 0x4000000>;
  62. no-map;
  63. };
  64. };
  65. aliases {
  66. ethernet0 = &ethernet0;
  67. serial0 = &uart4;
  68. serial1 = &usart3;
  69. serial2 = &uart7;
  70. serial3 = &usart2;
  71. };
  72. chosen {
  73. stdout-path = "serial0:115200n8";
  74. };
  75. sram: sram@10050000 {
  76. compatible = "mmio-sram";
  77. reg = <0x10050000 0x10000>;
  78. #address-cells = <1>;
  79. #size-cells = <1>;
  80. ranges = <0 0x10050000 0x10000>;
  81. dma_pool: dma_pool@0 {
  82. reg = <0x0 0x10000>;
  83. pool;
  84. };
  85. };
  86. led {
  87. compatible = "gpio-leds";
  88. blue {
  89. label = "heartbeat";
  90. gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
  91. linux,default-trigger = "heartbeat";
  92. default-state = "off";
  93. };
  94. };
  95. sound {
  96. compatible = "audio-graph-card";
  97. label = "STM32MP1-DK";
  98. routing =
  99. "Playback" , "MCLK",
  100. "Capture" , "MCLK",
  101. "MICL" , "Mic Bias";
  102. dais = <&i2s2_port>;
  103. status = "okay";
  104. };
  105. usb_phy_tuning: usb-phy-tuning {
  106. st,hs-dc-level = <2>;
  107. st,fs-rftime-tuning;
  108. st,hs-rftime-reduction;
  109. st,hs-current-trim = <15>;
  110. st,hs-impedance-trim = <1>;
  111. st,squelch-level = <3>;
  112. st,hs-rx-offset = <2>;
  113. st,no-lsfs-sc;
  114. };
  115. clocks {
  116. clk_ext_camera: clk-ext-camera {
  117. #clock-cells = <0>;
  118. compatible = "fixed-clock";
  119. clock-frequency = <24000000>;
  120. };
  121. clk_lsi: clk-lsi {
  122. clock-frequency = <32000>;
  123. };
  124. clk_hsi: clk-hsi {
  125. clock-frequency = <64000000>;
  126. };
  127. clk_csi: clk-csi {
  128. clock-frequency = <4000000>;
  129. };
  130. clk_lse: clk-lse {
  131. clock-frequency = <32768>;
  132. };
  133. clk_hse: clk-hse {
  134. clock-frequency = <24000000>;
  135. };
  136. };
  137. }; /*root*/
  138. &pinctrl {
  139. u-boot,dm-pre-reloc;
  140. dcmi_pins_mx: dcmi_mx-0 {
  141. pins {
  142. pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
  143. <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */
  144. <STM32_PINMUX('A', 10, AF13)>, /* DCMI_D1 */
  145. <STM32_PINMUX('B', 9, AF13)>, /* DCMI_D7 */
  146. <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */
  147. <STM32_PINMUX('E', 0, AF13)>, /* DCMI_D2 */
  148. <STM32_PINMUX('E', 1, AF13)>, /* DCMI_D3 */
  149. <STM32_PINMUX('E', 4, AF13)>, /* DCMI_D4 */
  150. <STM32_PINMUX('E', 13, AF13)>, /* DCMI_D6 */
  151. <STM32_PINMUX('G', 9, AF13)>, /* DCMI_VSYNC */
  152. <STM32_PINMUX('H', 6, AF13)>, /* DCMI_D8 */
  153. <STM32_PINMUX('H', 7, AF13)>, /* DCMI_D9 */
  154. <STM32_PINMUX('H', 15, AF13)>, /* DCMI_D11 */
  155. <STM32_PINMUX('I', 3, AF13)>, /* DCMI_D10 */
  156. <STM32_PINMUX('I', 4, AF13)>; /* DCMI_D5 */
  157. bias-disable;
  158. };
  159. };
  160. dcmi_sleep_pins_mx: dcmi_sleep_mx-0 {
  161. pins {
  162. pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* DCMI_HSYNC */
  163. <STM32_PINMUX('A', 6, ANALOG)>, /* DCMI_PIXCLK */
  164. <STM32_PINMUX('A', 10, ANALOG)>, /* DCMI_D1 */
  165. <STM32_PINMUX('B', 9, ANALOG)>, /* DCMI_D7 */
  166. <STM32_PINMUX('C', 6, ANALOG)>, /* DCMI_D0 */
  167. <STM32_PINMUX('E', 0, ANALOG)>, /* DCMI_D2 */
  168. <STM32_PINMUX('E', 1, ANALOG)>, /* DCMI_D3 */
  169. <STM32_PINMUX('E', 4, ANALOG)>, /* DCMI_D4 */
  170. <STM32_PINMUX('E', 13, ANALOG)>, /* DCMI_D6 */
  171. <STM32_PINMUX('G', 9, ANALOG)>, /* DCMI_VSYNC */
  172. <STM32_PINMUX('H', 6, ANALOG)>, /* DCMI_D8 */
  173. <STM32_PINMUX('H', 7, ANALOG)>, /* DCMI_D9 */
  174. <STM32_PINMUX('H', 15, ANALOG)>, /* DCMI_D11 */
  175. <STM32_PINMUX('I', 3, ANALOG)>, /* DCMI_D10 */
  176. <STM32_PINMUX('I', 4, ANALOG)>; /* DCMI_D5 */
  177. };
  178. };
  179. eth1_pins_mx: eth1_mx-0 {
  180. pins1 {
  181. pinmux = <STM32_PINMUX('A', 1, AF11)>, /* ETH1_RX_CLK */
  182. <STM32_PINMUX('A', 7, AF11)>, /* ETH1_RX_CTL */
  183. <STM32_PINMUX('B', 0, AF11)>, /* ETH1_RXD2 */
  184. <STM32_PINMUX('B', 1, AF11)>, /* ETH1_RXD3 */
  185. <STM32_PINMUX('C', 4, AF11)>, /* ETH1_RXD0 */
  186. <STM32_PINMUX('C', 5, AF11)>; /* ETH1_RXD1 */
  187. bias-disable;
  188. };
  189. pins2 {
  190. pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH1_MDIO */
  191. bias-disable;
  192. drive-push-pull;
  193. slew-rate = <0>;
  194. };
  195. pins3 {
  196. pinmux = <STM32_PINMUX('B', 11, AF11)>, /* ETH1_TX_CTL */
  197. <STM32_PINMUX('C', 1, AF11)>, /* ETH1_MDC */
  198. <STM32_PINMUX('C', 2, AF11)>, /* ETH1_TXD2 */
  199. <STM32_PINMUX('E', 2, AF11)>, /* ETH1_TXD3 */
  200. <STM32_PINMUX('G', 4, AF11)>, /* ETH1_GTX_CLK */
  201. <STM32_PINMUX('G', 13, AF11)>, /* ETH1_TXD0 */
  202. <STM32_PINMUX('G', 14, AF11)>; /* ETH1_TXD1 */
  203. bias-disable;
  204. drive-push-pull;
  205. slew-rate = <2>;
  206. };
  207. };
  208. eth1_sleep_pins_mx: eth1_sleep_mx-0 {
  209. pins {
  210. pinmux = <STM32_PINMUX('A', 1, ANALOG)>, /* ETH1_RX_CLK */
  211. <STM32_PINMUX('A', 2, ANALOG)>, /* ETH1_MDIO */
  212. <STM32_PINMUX('A', 7, ANALOG)>, /* ETH1_RX_CTL */
  213. <STM32_PINMUX('B', 0, ANALOG)>, /* ETH1_RXD2 */
  214. <STM32_PINMUX('B', 1, ANALOG)>, /* ETH1_RXD3 */
  215. <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_TX_CTL */
  216. <STM32_PINMUX('C', 1, ANALOG)>, /* ETH1_MDC */
  217. <STM32_PINMUX('C', 2, ANALOG)>, /* ETH1_TXD2 */
  218. <STM32_PINMUX('C', 4, ANALOG)>, /* ETH1_RXD0 */
  219. <STM32_PINMUX('C', 5, ANALOG)>, /* ETH1_RXD1 */
  220. <STM32_PINMUX('E', 2, ANALOG)>, /* ETH1_TXD3 */
  221. <STM32_PINMUX('G', 4, ANALOG)>, /* ETH1_GTX_CLK */
  222. <STM32_PINMUX('G', 13, ANALOG)>, /* ETH1_TXD0 */
  223. <STM32_PINMUX('G', 14, ANALOG)>; /* ETH1_TXD1 */
  224. };
  225. };
  226. i2c1_pins_mx: i2c1_mx-0 {
  227. pins {
  228. pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
  229. <STM32_PINMUX('F', 15, AF5)>; /* I2C1_SDA */
  230. bias-disable;
  231. drive-open-drain;
  232. slew-rate = <0>;
  233. };
  234. };
  235. i2c1_sleep_pins_mx: i2c1_sleep_mx-0 {
  236. pins {
  237. pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
  238. <STM32_PINMUX('F', 15, ANALOG)>; /* I2C1_SDA */
  239. };
  240. };
  241. i2c2_pins_mx: i2c2_mx-0 {
  242. pins {
  243. pinmux = <STM32_PINMUX('H', 5, AF4)>; /* I2C2_SDA */
  244. bias-disable;
  245. drive-open-drain;
  246. slew-rate = <0>;
  247. };
  248. };
  249. i2c2_sleep_pins_mx: i2c2_sleep_mx-0 {
  250. pins {
  251. pinmux = <STM32_PINMUX('H', 5, ANALOG)>; /* I2C2_SDA */
  252. };
  253. };
  254. i2c5_pins_mx: i2c5_mx-0 {
  255. pins {
  256. pinmux = <STM32_PINMUX('A', 11, AF4)>, /* I2C5_SCL */
  257. <STM32_PINMUX('A', 12, AF4)>; /* I2C5_SDA */
  258. bias-disable;
  259. drive-open-drain;
  260. slew-rate = <0>;
  261. };
  262. };
  263. i2c5_sleep_pins_mx: i2c5_sleep_mx-0 {
  264. pins {
  265. pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* I2C5_SCL */
  266. <STM32_PINMUX('A', 12, ANALOG)>; /* I2C5_SDA */
  267. };
  268. };
  269. i2s2_pins_mx: i2s2_mx-0 {
  270. pins {
  271. pinmux = <STM32_PINMUX('B', 12, AF5)>, /* I2S2_WS */
  272. <STM32_PINMUX('B', 13, AF5)>, /* I2S2_CK */
  273. <STM32_PINMUX('C', 3, AF5)>; /* I2S2_SDO */
  274. bias-disable;
  275. drive-push-pull;
  276. slew-rate = <1>;
  277. };
  278. };
  279. i2s2_sleep_pins_mx: i2s2_sleep_mx-0 {
  280. pins {
  281. pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* I2S2_WS */
  282. <STM32_PINMUX('B', 13, ANALOG)>, /* I2S2_CK */
  283. <STM32_PINMUX('C', 3, ANALOG)>; /* I2S2_SDO */
  284. };
  285. };
  286. ltdc_pins_mx: ltdc_mx-0 {
  287. pins1 {
  288. pinmux = <STM32_PINMUX('A', 3, AF14)>, /* LTDC_B5 */
  289. <STM32_PINMUX('B', 8, AF14)>, /* LTDC_B6 */
  290. <STM32_PINMUX('C', 0, AF14)>, /* LTDC_R5 */
  291. <STM32_PINMUX('D', 8, AF14)>, /* LTDC_B7 */
  292. <STM32_PINMUX('D', 9, AF14)>, /* LTDC_B0 */
  293. <STM32_PINMUX('D', 10, AF14)>, /* LTDC_B3 */
  294. <STM32_PINMUX('E', 6, AF14)>, /* LTDC_G1 */
  295. <STM32_PINMUX('E', 12, AF14)>, /* LTDC_B4 */
  296. <STM32_PINMUX('E', 14, AF13)>, /* LTDC_G0 */
  297. <STM32_PINMUX('E', 15, AF14)>, /* LTDC_R7 */
  298. <STM32_PINMUX('F', 10, AF14)>, /* LTDC_DE */
  299. <STM32_PINMUX('G', 10, AF14)>, /* LTDC_B2 */
  300. <STM32_PINMUX('G', 12, AF14)>, /* LTDC_B1 */
  301. <STM32_PINMUX('H', 2, AF14)>, /* LTDC_R0 */
  302. <STM32_PINMUX('H', 3, AF14)>, /* LTDC_R1 */
  303. <STM32_PINMUX('H', 4, AF14)>, /* LTDC_G4 */
  304. <STM32_PINMUX('H', 8, AF14)>, /* LTDC_R2 */
  305. <STM32_PINMUX('H', 9, AF14)>, /* LTDC_R3 */
  306. <STM32_PINMUX('H', 10, AF14)>, /* LTDC_R4 */
  307. <STM32_PINMUX('H', 12, AF14)>, /* LTDC_R6 */
  308. <STM32_PINMUX('H', 13, AF14)>, /* LTDC_G2 */
  309. <STM32_PINMUX('H', 14, AF14)>, /* LTDC_G3 */
  310. <STM32_PINMUX('I', 0, AF14)>, /* LTDC_G5 */
  311. <STM32_PINMUX('I', 1, AF14)>, /* LTDC_G6 */
  312. <STM32_PINMUX('I', 2, AF14)>, /* LTDC_G7 */
  313. <STM32_PINMUX('G', 7, AF14)>, /* LTDC_CLK */
  314. <STM32_PINMUX('I', 9, AF14)>, /* LTDC_VSYNC */
  315. <STM32_PINMUX('I', 10, AF14)>; /* LTDC_HSYNC */
  316. bias-disable;
  317. drive-push-pull;
  318. slew-rate = <1>;
  319. };
  320. };
  321. ltdc_sleep_pins_mx: ltdc_sleep_mx-0 {
  322. pins {
  323. pinmux = <STM32_PINMUX('A', 3, ANALOG)>, /* LTDC_B5 */
  324. <STM32_PINMUX('B', 8, ANALOG)>, /* LTDC_B6 */
  325. <STM32_PINMUX('C', 0, ANALOG)>, /* LTDC_R5 */
  326. <STM32_PINMUX('D', 8, ANALOG)>, /* LTDC_B7 */
  327. <STM32_PINMUX('D', 9, ANALOG)>, /* LTDC_B0 */
  328. <STM32_PINMUX('D', 10, ANALOG)>, /* LTDC_B3 */
  329. <STM32_PINMUX('E', 6, ANALOG)>, /* LTDC_G1 */
  330. <STM32_PINMUX('E', 12, ANALOG)>, /* LTDC_B4 */
  331. <STM32_PINMUX('E', 14, ANALOG)>, /* LTDC_G0 */
  332. <STM32_PINMUX('E', 15, ANALOG)>, /* LTDC_R7 */
  333. <STM32_PINMUX('F', 10, ANALOG)>, /* LTDC_DE */
  334. <STM32_PINMUX('G', 7, ANALOG)>, /* LTDC_CLK */
  335. <STM32_PINMUX('G', 10, ANALOG)>, /* LTDC_B2 */
  336. <STM32_PINMUX('G', 12, ANALOG)>, /* LTDC_B1 */
  337. <STM32_PINMUX('H', 2, ANALOG)>, /* LTDC_R0 */
  338. <STM32_PINMUX('H', 3, ANALOG)>, /* LTDC_R1 */
  339. <STM32_PINMUX('H', 4, ANALOG)>, /* LTDC_G4 */
  340. <STM32_PINMUX('H', 8, ANALOG)>, /* LTDC_R2 */
  341. <STM32_PINMUX('H', 9, ANALOG)>, /* LTDC_R3 */
  342. <STM32_PINMUX('H', 10, ANALOG)>, /* LTDC_R4 */
  343. <STM32_PINMUX('H', 12, ANALOG)>, /* LTDC_R6 */
  344. <STM32_PINMUX('H', 13, ANALOG)>, /* LTDC_G2 */
  345. <STM32_PINMUX('H', 14, ANALOG)>, /* LTDC_G3 */
  346. <STM32_PINMUX('I', 0, ANALOG)>, /* LTDC_G5 */
  347. <STM32_PINMUX('I', 1, ANALOG)>, /* LTDC_G6 */
  348. <STM32_PINMUX('I', 2, ANALOG)>, /* LTDC_G7 */
  349. <STM32_PINMUX('I', 9, ANALOG)>, /* LTDC_VSYNC */
  350. <STM32_PINMUX('I', 10, ANALOG)>; /* LTDC_HSYNC */
  351. };
  352. };
  353. sdmmc1_pins_mx: sdmmc1_mx-0 {
  354. u-boot,dm-pre-reloc;
  355. pins1 {
  356. u-boot,dm-pre-reloc;
  357. pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
  358. <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
  359. <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
  360. <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
  361. <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
  362. bias-disable;
  363. drive-push-pull;
  364. slew-rate = <1>;
  365. };
  366. pins2 {
  367. u-boot,dm-pre-reloc;
  368. pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
  369. bias-disable;
  370. drive-push-pull;
  371. slew-rate = <3>;
  372. };
  373. };
  374. sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 {
  375. u-boot,dm-pre-reloc;
  376. pins1 {
  377. u-boot,dm-pre-reloc;
  378. pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
  379. <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
  380. <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
  381. <STM32_PINMUX('C', 11, AF12)>; /* SDMMC1_D3 */
  382. bias-disable;
  383. drive-push-pull;
  384. slew-rate = <1>;
  385. };
  386. pins2 {
  387. u-boot,dm-pre-reloc;
  388. pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
  389. bias-disable;
  390. drive-push-pull;
  391. slew-rate = <3>;
  392. };
  393. pins3 {
  394. u-boot,dm-pre-reloc;
  395. pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
  396. bias-disable;
  397. drive-open-drain;
  398. slew-rate = <1>;
  399. };
  400. };
  401. sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 {
  402. u-boot,dm-pre-reloc;
  403. pins {
  404. u-boot,dm-pre-reloc;
  405. pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
  406. <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
  407. <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
  408. <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
  409. <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
  410. <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
  411. };
  412. };
  413. sdmmc2_pins_mx: sdmmc2_mx-0 {
  414. u-boot,dm-pre-reloc;
  415. pins1 {
  416. u-boot,dm-pre-reloc;
  417. pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
  418. <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
  419. <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
  420. <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
  421. <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
  422. <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
  423. <STM32_PINMUX('C', 7, AF10)>, /* SDMMC2_D7 */
  424. <STM32_PINMUX('E', 5, AF9)>, /* SDMMC2_D6 */
  425. <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
  426. bias-pull-up;
  427. drive-push-pull;
  428. slew-rate = <1>;
  429. };
  430. pins2 {
  431. u-boot,dm-pre-reloc;
  432. pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
  433. bias-pull-up;
  434. drive-push-pull;
  435. slew-rate = <2>;
  436. };
  437. };
  438. sdmmc2_opendrain_pins_mx: sdmmc2_opendrain_mx-0 {
  439. u-boot,dm-pre-reloc;
  440. pins1 {
  441. u-boot,dm-pre-reloc;
  442. pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
  443. <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
  444. <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
  445. <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
  446. <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
  447. <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
  448. <STM32_PINMUX('C', 7, AF10)>, /* SDMMC2_D7 */
  449. <STM32_PINMUX('E', 5, AF9)>; /* SDMMC2_D6 */
  450. bias-pull-up;
  451. drive-push-pull;
  452. slew-rate = <1>;
  453. };
  454. pins2 {
  455. u-boot,dm-pre-reloc;
  456. pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
  457. bias-pull-up;
  458. drive-push-pull;
  459. slew-rate = <2>;
  460. };
  461. pins3 {
  462. u-boot,dm-pre-reloc;
  463. pinmux = <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
  464. bias-pull-up;
  465. drive-open-drain;
  466. slew-rate = <1>;
  467. };
  468. };
  469. sdmmc2_sleep_pins_mx: sdmmc2_sleep_mx-0 {
  470. u-boot,dm-pre-reloc;
  471. pins {
  472. u-boot,dm-pre-reloc;
  473. pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
  474. <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
  475. <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
  476. <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
  477. <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
  478. <STM32_PINMUX('B', 15, ANALOG)>, /* SDMMC2_D1 */
  479. <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC2_D7 */
  480. <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
  481. <STM32_PINMUX('E', 5, ANALOG)>, /* SDMMC2_D6 */
  482. <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
  483. };
  484. };
  485. sdmmc3_pins_mx: sdmmc3_mx-0 {
  486. u-boot,dm-pre-reloc;
  487. pins1 {
  488. u-boot,dm-pre-reloc;
  489. pinmux = <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
  490. <STM32_PINMUX('F', 0, AF9)>, /* SDMMC3_D0 */
  491. <STM32_PINMUX('F', 1, AF9)>, /* SDMMC3_CMD */
  492. <STM32_PINMUX('F', 4, AF9)>, /* SDMMC3_D1 */
  493. <STM32_PINMUX('F', 5, AF9)>; /* SDMMC3_D2 */
  494. bias-disable;
  495. drive-push-pull;
  496. slew-rate = <1>;
  497. };
  498. pins2 {
  499. u-boot,dm-pre-reloc;
  500. pinmux = <STM32_PINMUX('G', 15, AF10)>; /* SDMMC3_CK */
  501. bias-disable;
  502. drive-push-pull;
  503. slew-rate = <2>;
  504. };
  505. };
  506. sdmmc3_opendrain_pins_mx: sdmmc3_opendrain_mx-0 {
  507. u-boot,dm-pre-reloc;
  508. pins1 {
  509. u-boot,dm-pre-reloc;
  510. pinmux = <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
  511. <STM32_PINMUX('F', 0, AF9)>, /* SDMMC3_D0 */
  512. <STM32_PINMUX('F', 4, AF9)>, /* SDMMC3_D1 */
  513. <STM32_PINMUX('F', 5, AF9)>; /* SDMMC3_D2 */
  514. bias-disable;
  515. drive-push-pull;
  516. slew-rate = <1>;
  517. };
  518. pins2 {
  519. u-boot,dm-pre-reloc;
  520. pinmux = <STM32_PINMUX('F', 1, AF9)>; /* SDMMC3_CMD */
  521. bias-disable;
  522. drive-open-drain;
  523. slew-rate = <1>;
  524. };
  525. pins3 {
  526. u-boot,dm-pre-reloc;
  527. pinmux = <STM32_PINMUX('G', 15, AF10)>; /* SDMMC3_CK */
  528. bias-disable;
  529. drive-push-pull;
  530. slew-rate = <2>;
  531. };
  532. };
  533. sdmmc3_sleep_pins_mx: sdmmc3_sleep_mx-0 {
  534. u-boot,dm-pre-reloc;
  535. pins {
  536. u-boot,dm-pre-reloc;
  537. pinmux = <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
  538. <STM32_PINMUX('F', 0, ANALOG)>, /* SDMMC3_D0 */
  539. <STM32_PINMUX('F', 1, ANALOG)>, /* SDMMC3_CMD */
  540. <STM32_PINMUX('F', 4, ANALOG)>, /* SDMMC3_D1 */
  541. <STM32_PINMUX('F', 5, ANALOG)>, /* SDMMC3_D2 */
  542. <STM32_PINMUX('G', 15, ANALOG)>; /* SDMMC3_CK */
  543. };
  544. };
  545. spi5_pins_mx: spi5_mx-0 {
  546. pins {
  547. pinmux = <STM32_PINMUX('F', 7, AF5)>, /* SPI5_SCK */
  548. <STM32_PINMUX('F', 8, AF5)>, /* SPI5_MISO */
  549. <STM32_PINMUX('F', 9, AF5)>; /* SPI5_MOSI */
  550. bias-disable;
  551. drive-push-pull;
  552. slew-rate = <1>;
  553. };
  554. };
  555. spi5_sleep_pins_mx: spi5_sleep_mx-0 {
  556. pins {
  557. pinmux = <STM32_PINMUX('F', 7, ANALOG)>, /* SPI5_SCK */
  558. <STM32_PINMUX('F', 8, ANALOG)>, /* SPI5_MISO */
  559. <STM32_PINMUX('F', 9, ANALOG)>; /* SPI5_MOSI */
  560. };
  561. };
  562. tim5_pwm_pins_mx: tim5_pwm_mx-0 {
  563. pins {
  564. pinmux = <STM32_PINMUX('H', 11, AF2)>; /* TIM5_CH2 */
  565. bias-disable;
  566. drive-push-pull;
  567. slew-rate = <0>;
  568. };
  569. };
  570. tim5_pwm_sleep_pins_mx: tim5_pwm_sleep_mx-0 {
  571. pins {
  572. pinmux = <STM32_PINMUX('H', 11, ANALOG)>; /* TIM5_CH2 */
  573. };
  574. };
  575. uart4_pins_mx: uart4_mx-0 {
  576. u-boot,dm-pre-reloc;
  577. pins1 {
  578. u-boot,dm-pre-reloc;
  579. pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
  580. bias-disable;
  581. };
  582. pins2 {
  583. u-boot,dm-pre-reloc;
  584. pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
  585. bias-disable;
  586. drive-push-pull;
  587. slew-rate = <0>;
  588. };
  589. };
  590. uart4_sleep_pins_mx: uart4_sleep_mx-0 {
  591. u-boot,dm-pre-reloc;
  592. pins {
  593. u-boot,dm-pre-reloc;
  594. pinmux = <STM32_PINMUX('B', 2, ANALOG)>, /* UART4_RX */
  595. <STM32_PINMUX('G', 11, ANALOG)>; /* UART4_TX */
  596. };
  597. };
  598. usart2_pins_mx: usart2_mx-0 {
  599. pins1 {
  600. pinmux = <STM32_PINMUX('D', 3, AF7)>, /* USART2_CTS */
  601. <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
  602. bias-disable;
  603. };
  604. pins2 {
  605. pinmux = <STM32_PINMUX('D', 4, AF7)>, /* USART2_RTS */
  606. <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
  607. bias-disable;
  608. drive-push-pull;
  609. slew-rate = <0>;
  610. };
  611. };
  612. usart2_idle_pins_mx: usart2_sleep_mx-0 {
  613. pins1 {
  614. pinmux = <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
  615. <STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
  616. <STM32_PINMUX('D', 3, ANALOG)>; /* USART2_CTS_NSS */
  617. };
  618. pins2 {
  619. pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
  620. bias-disable;
  621. };
  622. };
  623. usart2_sleep_pins_mx: usart2_sleep_mx-0 {
  624. pins {
  625. pinmux = <STM32_PINMUX('D', 3, ANALOG)>, /* USART2_CTS */
  626. <STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
  627. <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
  628. <STM32_PINMUX('D', 6, ANALOG)>; /* USART2_RX */
  629. };
  630. };
  631. m_can1_pins_mx: m_can1_sleep_mx-0 {
  632. pins1 {
  633. pinmux = <STM32_PINMUX('D', 1, AF9)>; /* CAN1_TX */
  634. slew-rate = <0>;
  635. drive-push-pull;
  636. bias-disable;
  637. };
  638. pins2 {
  639. pinmux = <STM32_PINMUX('D', 0, AF9)>; /* CAN1_RX */
  640. bias-disable;
  641. };
  642. };
  643. m_can1_sleep_pins_mx: m_can1_sleep-0 {
  644. pins {
  645. pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* CAN1_TX */
  646. <STM32_PINMUX('D', 0, ANALOG)>; /* CAN1_RX */
  647. };
  648. };
  649. stusb1600_pins_mx: stusb1600_mx-0 {
  650. pins {
  651. pinmux = <STM32_PINMUX('E', 8, ANALOG)>;
  652. bias-pull-up;
  653. };
  654. };
  655. };
  656. &pinctrl_z {
  657. u-boot,dm-pre-reloc;
  658. i2c2_pins_z_mx: i2c2_mx-0 {
  659. pins {
  660. pinmux = <STM32_PINMUX('Z', 6, AF3)>; /* I2C2_SCL */
  661. bias-disable;
  662. drive-open-drain;
  663. slew-rate = <0>;
  664. };
  665. };
  666. i2c2_sleep_pins_z_mx: i2c2_sleep_mx-0 {
  667. pins {
  668. pinmux = <STM32_PINMUX('Z', 6, ANALOG)>; /* I2C2_SCL */
  669. };
  670. };
  671. i2c4_pins_z_mx: i2c4_mx-0 {
  672. u-boot,dm-pre-reloc;
  673. pins {
  674. u-boot,dm-pre-reloc;
  675. pinmux = <STM32_PINMUX('Z', 4, AF6)>, /* I2C4_SCL */
  676. <STM32_PINMUX('Z', 5, AF6)>; /* I2C4_SDA */
  677. bias-disable;
  678. drive-open-drain;
  679. slew-rate = <0>;
  680. };
  681. };
  682. i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 {
  683. u-boot,dm-pre-reloc;
  684. pins {
  685. u-boot,dm-pre-reloc;
  686. pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C4_SCL */
  687. <STM32_PINMUX('Z', 5, ANALOG)>; /* I2C4_SDA */
  688. };
  689. };
  690. };
  691. &m4_rproc {
  692. memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
  693. <&vdev0vring1>, <&vdev0buffer>;
  694. mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
  695. mbox-names = "vq0", "vq1", "shutdown";
  696. interrupt-parent = <&exti>;
  697. interrupts = <68 1>;
  698. interrupt-names = "wdg";
  699. wakeup-source;
  700. recovery;
  701. status = "okay";
  702. };
  703. &bsec{
  704. status = "okay";
  705. };
  706. &dcmi{
  707. pinctrl-names = "default", "sleep";
  708. pinctrl-0 = <&dcmi_pins_mx>;
  709. pinctrl-1 = <&dcmi_sleep_pins_mx>;
  710. status = "okay";
  711. port {
  712. dcmi_0: endpoint {
  713. remote-endpoint = <&ov5640_0>;
  714. bus-width = <8>;
  715. hsync-active = <0>;
  716. vsync-active = <0>;
  717. pclk-sample = <1>;
  718. pclk-max-frequency = <77000000>;
  719. };
  720. };
  721. };
  722. &dsi{
  723. status = "okay";
  724. #address-cells = <1>;
  725. #size-cells = <0>;
  726. status = "okay";
  727. ports {
  728. #address-cells = <1>;
  729. #size-cells = <0>;
  730. port@0 {
  731. reg = <0>;
  732. dsi_in: endpoint {
  733. remote-endpoint = <&ltdc_ep1_out>;
  734. };
  735. };
  736. port@1 {
  737. reg = <1>;
  738. dsi_out: endpoint {
  739. remote-endpoint = <&panel_in>;
  740. };
  741. };
  742. };
  743. panel@0 {
  744. compatible = "orisetech,otm8009a";
  745. reg = <0>;
  746. reset-gpios = <&gpioe 9 GPIO_ACTIVE_LOW>;
  747. power-supply = <&v3v3>;
  748. status = "okay";
  749. port {
  750. panel_in: endpoint {
  751. remote-endpoint = <&dsi_out>;
  752. };
  753. };
  754. };
  755. };
  756. &ethernet0{
  757. pinctrl-names = "default", "sleep";
  758. pinctrl-0 = <&eth1_pins_mx>;
  759. pinctrl-1 = <&eth1_sleep_pins_mx>;
  760. status = "okay";
  761. st,eth_clk_sel = <1>;
  762. phy-mode = "rgmii-id";
  763. max-speed = <1000>;
  764. phy-handle = <&phy0>;
  765. mdio0 {
  766. #address-cells = <1>;
  767. #size-cells = <0>;
  768. compatible = "snps,dwmac-mdio";
  769. phy0: ethernet-phy@0 {
  770. reg = <3>;
  771. };
  772. };
  773. };
  774. &gpu{
  775. status = "okay";
  776. contiguous-area = <&gpu_reserved>;
  777. };
  778. &hsem{
  779. status = "okay";
  780. };
  781. &i2c1{
  782. pinctrl-names = "default", "sleep";
  783. pinctrl-0 = <&i2c1_pins_mx>;
  784. pinctrl-1 = <&i2c1_sleep_pins_mx>;
  785. status = "okay";
  786. i2c-scl-rising-time-ns = <100>;
  787. i2c-scl-falling-time-ns = <7>;
  788. /delete-property/dmas;
  789. /delete-property/dma-names;
  790. touchscreen@2a {
  791. compatible = "focaltech,ft6236";
  792. reg = <0x2a>;
  793. interrupts = <2 2>;
  794. interrupt-parent = <&gpiof>;
  795. interrupt-controller;
  796. touchscreen-size-x = <480>;
  797. touchscreen-size-y = <800>;
  798. status = "okay";
  799. };
  800. touchscreen@38 {
  801. compatible = "focaltech,ft6336";
  802. reg = <0x38>;
  803. interrupts = <2 2>;
  804. interrupt-parent = <&gpiof>;
  805. interrupt-controller;
  806. touchscreen-size-x = <480>;
  807. touchscreen-size-y = <800>;
  808. status = "okay";
  809. };
  810. hdmi-transmitter@39 {
  811. compatible = "sil,sii9022";
  812. reg = <0x39>;
  813. reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
  814. interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
  815. interrupt-parent = <&gpiog>;
  816. pinctrl-names = "default", "sleep";
  817. pinctrl-0 = <&ltdc_pins_mx>;
  818. pinctrl-1 = <&ltdc_sleep_pins_mx>;
  819. status = "okay";
  820. ports {
  821. #address-cells = <1>;
  822. #size-cells = <0>;
  823. port@0 {
  824. reg = <0>;
  825. sii9022_in: endpoint {
  826. remote-endpoint = <&ltdc_ep0_out>;
  827. };
  828. };
  829. port@1 {
  830. reg = <1>;
  831. sii9022_tx_endpoint: endpoint {
  832. remote-endpoint = <&i2s2_endpoint>;
  833. };
  834. };
  835. };
  836. };
  837. };
  838. &i2c2{
  839. pinctrl-names = "default", "sleep";
  840. pinctrl-0 = <&i2c2_pins_mx &i2c2_pins_z_mx>;
  841. pinctrl-1 = <&i2c2_sleep_pins_mx &i2c2_sleep_pins_z_mx>;
  842. status = "okay";
  843. i2c-scl-rising-time-ns = <185>;
  844. i2c-scl-falling-time-ns = <20>;
  845. /delete-property/dmas;
  846. /delete-property/dma-names;
  847. ov5640: camera@3c {
  848. compatible = "ovti,ov5640";
  849. reg = <0x3c>;
  850. clocks = <&clk_ext_camera>;
  851. clock-names = "xclk";
  852. DOVDD-supply = <&v3v3>;
  853. rotation = <180>;
  854. status = "okay";
  855. port {
  856. ov5640_0: endpoint {
  857. remote-endpoint = <&dcmi_0>;
  858. bus-width = <8>;
  859. data-shift = <2>; /* lines 9:2 are used */
  860. hsync-active = <0>;
  861. vsync-active = <0>;
  862. pclk-sample = <1>;
  863. pclk-max-frequency = <77000000>;
  864. };
  865. };
  866. };
  867. };
  868. &i2c4{
  869. u-boot,dm-pre-reloc;
  870. pinctrl-names = "default", "sleep";
  871. pinctrl-0 = <&i2c4_pins_z_mx>;
  872. pinctrl-1 = <&i2c4_sleep_pins_z_mx>;
  873. status = "okay";
  874. i2c-scl-rising-time-ns = <185>;
  875. i2c-scl-falling-time-ns = <20>;
  876. /delete-property/dmas;
  877. /delete-property/dma-names;
  878. typec: stusb1600@28 {
  879. compatible = "st,stusb1600";
  880. reg = <0x28>;
  881. interrupt-parent = <&gpioe>;
  882. interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
  883. pinctrl-0 = <&stusb1600_pins_mx>;
  884. pinctrl-names = "default";
  885. status = "okay";
  886. typec_con: connector {
  887. compatible = "usb-c-connector";
  888. label = "USB-C";
  889. power-role = "dual";
  890. power-opmode = "default";
  891. };
  892. };
  893. pmic: stpmic@33 {
  894. compatible = "st,stpmic1";
  895. reg = <0x33>;
  896. interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
  897. interrupt-controller;
  898. #interrupt-cells = <2>;
  899. status = "okay";
  900. st,main-control-register = <0x04>;
  901. st,vin-control-register = <0xc0>;
  902. st,usb-control-register = <0x20>;
  903. regulators {
  904. compatible = "st,stpmic1-regulators";
  905. ldo1-supply = <&v3v3>;
  906. ldo3-supply = <&vdd_ddr>;
  907. ldo6-supply = <&v3v3>;
  908. pwr_sw1-supply = <&bst_out>;
  909. pwr_sw2-supply = <&bst_out>;
  910. vddcore: buck1 {
  911. regulator-name = "vddcore";
  912. regulator-min-microvolt = <1200000>;
  913. regulator-max-microvolt = <1350000>;
  914. regulator-always-on;
  915. regulator-initial-mode = <0>;
  916. regulator-over-current-protection;
  917. };
  918. vdd_ddr: buck2 {
  919. regulator-name = "vdd_ddr";
  920. regulator-min-microvolt = <1350000>;
  921. regulator-max-microvolt = <1350000>;
  922. regulator-always-on;
  923. regulator-initial-mode = <0>;
  924. regulator-over-current-protection;
  925. };
  926. vdd: buck3 {
  927. regulator-name = "vdd";
  928. regulator-min-microvolt = <3300000>;
  929. regulator-max-microvolt = <3300000>;
  930. regulator-always-on;
  931. st,mask-reset;
  932. regulator-initial-mode = <0>;
  933. regulator-over-current-protection;
  934. };
  935. v3v3: buck4 {
  936. regulator-name = "v3v3";
  937. regulator-min-microvolt = <3300000>;
  938. regulator-max-microvolt = <3300000>;
  939. regulator-always-on;
  940. regulator-over-current-protection;
  941. regulator-initial-mode = <0>;
  942. };
  943. v1v8_ldo1: ldo1 {
  944. regulator-name = "v1v8_ldo1";
  945. regulator-min-microvolt = <1800000>;
  946. regulator-max-microvolt = <1800000>;
  947. regulator-always-on;
  948. interrupts = <IT_CURLIM_LDO1 0>;
  949. };
  950. v2v8_ldo2: ldo2 { //custom
  951. regulator-name = "v2v8_ldo2";
  952. regulator-min-microvolt = <2800000>;
  953. regulator-max-microvolt = <2800000>;
  954. regulator-always-on;
  955. interrupts = <IT_CURLIM_LDO2 0>;
  956. };
  957. vtt_ddr: ldo3 {
  958. regulator-name = "vtt_ddr";
  959. regulator-min-microvolt = <500000>;
  960. regulator-max-microvolt = <750000>;
  961. regulator-always-on;
  962. regulator-over-current-protection;
  963. };
  964. vdd_usb: ldo4 {
  965. regulator-name = "vdd_usb";
  966. regulator-min-microvolt = <3300000>;
  967. regulator-max-microvolt = <3300000>;
  968. interrupts = <IT_CURLIM_LDO4 0>;
  969. };
  970. v3v3_eth: ldo5 {
  971. regulator-name = "v3v3_eth";
  972. regulator-min-microvolt = <3300000>;
  973. regulator-max-microvolt = <3300000>;
  974. interrupts = <IT_CURLIM_LDO5 0>;
  975. regulator-boot-on;
  976. };
  977. v3v3_dsi: ldo6 {
  978. regulator-name = "v3v3_dsi";
  979. regulator-min-microvolt = <1200000>;
  980. regulator-max-microvolt = <1200000>;
  981. regulator-always-on;
  982. interrupts = <IT_CURLIM_LDO6 0>;
  983. };
  984. vref_ddr: vref_ddr {
  985. regulator-name = "vref_ddr";
  986. regulator-always-on;
  987. regulator-over-current-protection;
  988. };
  989. bst_out: boost {
  990. regulator-name = "bst_out";
  991. interrupts = <IT_OCP_BOOST 0>;
  992. regulator-always-on;
  993. };
  994. vbus_otg: pwr_sw1 {
  995. regulator-name = "vbus_otg";
  996. interrupts = <IT_OCP_OTG 0>;
  997. regulator-active-discharge;
  998. regulator-always-on;
  999. };
  1000. vbus_sw: pwr_sw2 {
  1001. regulator-name = "vbus_sw";
  1002. interrupts = <IT_OCP_SWOUT 0>;
  1003. regulator-active-discharge;
  1004. regulator-always-on;
  1005. };
  1006. };
  1007. onkey {
  1008. compatible = "st,stpmic1-onkey";
  1009. interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
  1010. interrupt-names = "onkey-falling", "onkey-rising";
  1011. status = "okay";
  1012. };
  1013. watchdog {
  1014. compatible = "st,stpmic1-wdt";
  1015. status = "disabled";
  1016. };
  1017. };
  1018. };
  1019. &i2c5{
  1020. pinctrl-names = "default", "sleep";
  1021. pinctrl-0 = <&i2c5_pins_mx>;
  1022. pinctrl-1 = <&i2c5_sleep_pins_mx>;
  1023. status = "okay";
  1024. /delete-property/dmas;
  1025. /delete-property/dma-names;
  1026. };
  1027. &i2s2{
  1028. clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
  1029. clock-names = "pclk", "i2sclk", "x8k", "x11k";
  1030. pinctrl-names = "default", "sleep";
  1031. pinctrl-0 = <&i2s2_pins_mx>;
  1032. pinctrl-1 = <&i2s2_sleep_pins_mx>;
  1033. status = "okay";
  1034. i2s2_port: port {
  1035. i2s2_endpoint: endpoint {
  1036. remote-endpoint = <&sii9022_tx_endpoint>;
  1037. format = "i2s";
  1038. mclk-fs = <256>;
  1039. };
  1040. };
  1041. };
  1042. &ipcc{
  1043. status = "okay";
  1044. };
  1045. &iwdg2{
  1046. status = "okay";
  1047. timeout-sec = <32>;
  1048. };
  1049. &ltdc{
  1050. status = "okay";
  1051. port {
  1052. #address-cells = <1>;
  1053. #size-cells = <0>;
  1054. ltdc_ep0_out: endpoint@0 {
  1055. reg = <0>;
  1056. remote-endpoint = <&sii9022_in>;
  1057. };
  1058. ltdc_ep1_out: endpoint@1 {
  1059. reg = <1>;
  1060. remote-endpoint = <&dsi_in>;
  1061. };
  1062. };
  1063. };
  1064. &pwr{
  1065. status = "okay";
  1066. pwr-regulators {
  1067. vdd-supply = <&vdd>;
  1068. vdd_3v3_usbfs-supply = <&vdd_usb>;
  1069. };
  1070. };
  1071. &rcc{
  1072. u-boot,dm-pre-reloc;
  1073. status = "okay";
  1074. };
  1075. &rng1{
  1076. status = "okay";
  1077. };
  1078. &rtc{
  1079. status = "okay";
  1080. st,lsco = <RTC_OUT2_RMP>;
  1081. };
  1082. &sdmmc1{
  1083. u-boot,dm-pre-reloc;
  1084. pinctrl-names = "default", "opendrain", "sleep";
  1085. pinctrl-0 = <&sdmmc1_pins_mx>;
  1086. pinctrl-1 = <&sdmmc1_opendrain_pins_mx>;
  1087. pinctrl-2 = <&sdmmc1_sleep_pins_mx>;
  1088. status = "okay";
  1089. broken-cd;
  1090. st,neg-edge;
  1091. bus-width = <4>;
  1092. vmmc-supply = <&v3v3>;
  1093. };
  1094. &sdmmc2{
  1095. u-boot,dm-pre-reloc;
  1096. pinctrl-names = "default", "opendrain", "sleep";
  1097. pinctrl-0 = <&sdmmc2_pins_mx>;
  1098. pinctrl-1 = <&sdmmc2_opendrain_pins_mx>;
  1099. pinctrl-2 = <&sdmmc2_sleep_pins_mx>;
  1100. status = "okay";
  1101. non-removable;
  1102. no-sd;
  1103. no-sdio;
  1104. st,neg-edge;
  1105. bus-width = <8>;
  1106. vmmc-supply = <&v3v3>;
  1107. vqmmc-supply = <&v3v3>;
  1108. mmc-ddr-3_3v;
  1109. };
  1110. &sdmmc3{
  1111. u-boot,dm-pre-reloc;
  1112. pinctrl-names = "default", "opendrain", "sleep";
  1113. pinctrl-0 = <&sdmmc3_pins_mx>;
  1114. pinctrl-1 = <&sdmmc3_opendrain_pins_mx>;
  1115. pinctrl-2 = <&sdmmc3_sleep_pins_mx>;
  1116. status = "okay";
  1117. arm,primecell-periphid = <0x10153180>;
  1118. non-removable;
  1119. st,neg-edge;
  1120. bus-width = <4>;
  1121. vmmc-supply = <&v3v3>;
  1122. mmc-pwrseq = <&wifi_pwrseq>;
  1123. #address-cells = <1>;
  1124. #size-cells = <0>;
  1125. keep-power-in-suspend;
  1126. status = "okay";
  1127. brcmf: bcrmf@1 {
  1128. reg = <1>;
  1129. compatible = "brcm,bcm4329-fmac";
  1130. status = "okay";
  1131. };
  1132. };
  1133. &tamp{
  1134. status = "okay";
  1135. };
  1136. &timers5 {
  1137. /delete-property/dmas;
  1138. /delete-property/dma-names;
  1139. status = "okay";
  1140. pwm {
  1141. pinctrl-0 = <&tim5_pwm_pins_mx>;
  1142. pinctrl-1 = <&tim5_pwm_sleep_pins_mx>;
  1143. pinctrl-names = "default", "sleep";
  1144. status = "okay";
  1145. };
  1146. timer@4 {
  1147. status = "okay";
  1148. };
  1149. };
  1150. &uart4{
  1151. u-boot,dm-pre-reloc;
  1152. pinctrl-names = "default", "sleep";
  1153. pinctrl-0 = <&uart4_pins_mx>;
  1154. pinctrl-1 = <&uart4_sleep_pins_mx>;
  1155. status = "okay";
  1156. };
  1157. &usart2{
  1158. pinctrl-names = "default", "sleep", "idle";
  1159. pinctrl-0 = <&usart2_pins_mx>;
  1160. pinctrl-1 = <&usart2_sleep_pins_mx>;
  1161. pinctrl-2 = <&usart2_idle_pins_mx>;
  1162. st,hw-flow-ctrl;
  1163. status = "okay";
  1164. bluetooth {
  1165. shutdown-gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>;
  1166. compatible = "brcm,bcm43438-bt";
  1167. max-speed = <3000000>;
  1168. };
  1169. };
  1170. &m4_rproc {
  1171. memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
  1172. <&vdev0vring1>, <&vdev0buffer>;
  1173. };
  1174. &dma1 {
  1175. sram = <&dma_pool>;
  1176. };
  1177. &dma2 {
  1178. sram = <&dma_pool>;
  1179. };
  1180. &usbh_ehci {
  1181. phys = <&usbphyc_port0>;
  1182. phy-names = "usb";
  1183. status = "okay";
  1184. };
  1185. &usbh_ohci{
  1186. phys = <&usbphyc_port0>;
  1187. phy-names = "usb";
  1188. status = "okay";
  1189. };
  1190. &usbotg_hs {
  1191. extcon = <&typec>;
  1192. phys = <&usbphyc_port1 0>;
  1193. phy-names = "usb2-phy";
  1194. status = "okay";
  1195. };
  1196. &usbphyc {
  1197. vdd3v3-supply = <&vdd_usb>;
  1198. status = "okay";
  1199. };
  1200. &usbphyc_port0 {
  1201. st,phy-tuning = <&usb_phy_tuning>;
  1202. };
  1203. &usbphyc_port1 {
  1204. st,phy-tuning = <&usb_phy_tuning>;
  1205. };
  1206. &spi5 {
  1207. pinctrl-names = "default", "sleep";
  1208. pinctrl-0 = <&spi5_pins_mx>;
  1209. pinctrl-1 = <&spi5_sleep_pins_mx>;
  1210. cs-gpios = <&gpiof 6 0>;
  1211. status = "okay";
  1212. spidev: spidev@0 {
  1213. compatible = "rohm,dh2228fv";
  1214. spi-max-frequency = <30000000>;
  1215. reg = <0>;
  1216. };
  1217. };
  1218. // WARNING: Do not try to enable DAC1 and DCMI
  1219. // This devices share the same pin PA4
  1220. &dac {
  1221. pinctrl-names = "default";
  1222. vref-supply = <&vrefbuf>;
  1223. status = "okay";
  1224. dac1: dac@1 {
  1225. pinctrl-0 = <&dac_ch1_pins_a>;
  1226. status = "disabled";
  1227. };
  1228. dac2: dac@2 {
  1229. pinctrl-0 = <&dac_ch2_pins_a>;
  1230. status = "okay";
  1231. };
  1232. };
  1233. &adc {
  1234. vdd-supply = <&vdd>;
  1235. vdda-supply = <&vdd>;
  1236. vref-supply = <&v3v3_eth>;
  1237. status = "okay";
  1238. adc1: adc@0 {
  1239. st,adc-channels = <0 1>; //ANA0 ANA1
  1240. status = "okay";
  1241. };
  1242. adc2: adc@100 {
  1243. //st,adc-channels = <0 1 2 6 12 18 19>;
  1244. status = "okay";
  1245. };
  1246. };
  1247. &m_can1 {
  1248. pinctrl-names = "default", "sleep";
  1249. pinctrl-0 = <&m_can1_pins_mx>;
  1250. pinctrl-1 = <&m_can1_sleep_pins_mx>;
  1251. status = "okay";
  1252. };