stm32mp157c-osd32mp1-red.dts 33 KB

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