stm32mp157c-ev1.dts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2. /*
  3. * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
  4. * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
  5. */
  6. /dts-v1/;
  7. #include "stm32mp157c-ed1.dts"
  8. #include <dt-bindings/gpio/gpio.h>
  9. #include <dt-bindings/input/input.h>
  10. / {
  11. model = "STMicroelectronics STM32MP157C eval daughter on eval mother";
  12. compatible = "st,stm32mp157c-ev1", "st,stm32mp157c-ed1", "st,stm32mp157";
  13. chosen {
  14. stdout-path = "serial0:115200n8";
  15. };
  16. aliases {
  17. serial0 = &uart4;
  18. serial1 = &usart3;
  19. ethernet0 = &ethernet0;
  20. };
  21. clocks {
  22. clk_ext_camera: clk-ext-camera {
  23. #clock-cells = <0>;
  24. compatible = "fixed-clock";
  25. clock-frequency = <24000000>;
  26. };
  27. };
  28. joystick {
  29. compatible = "gpio-keys";
  30. pinctrl-0 = <&joystick_pins>;
  31. pinctrl-names = "default";
  32. button-0 {
  33. label = "JoySel";
  34. linux,code = <KEY_ENTER>;
  35. interrupt-parent = <&stmfx_pinctrl>;
  36. interrupts = <0 IRQ_TYPE_EDGE_RISING>;
  37. };
  38. button-1 {
  39. label = "JoyDown";
  40. linux,code = <KEY_DOWN>;
  41. interrupt-parent = <&stmfx_pinctrl>;
  42. interrupts = <1 IRQ_TYPE_EDGE_RISING>;
  43. };
  44. button-2 {
  45. label = "JoyLeft";
  46. linux,code = <KEY_LEFT>;
  47. interrupt-parent = <&stmfx_pinctrl>;
  48. interrupts = <2 IRQ_TYPE_EDGE_RISING>;
  49. };
  50. button-3 {
  51. label = "JoyRight";
  52. linux,code = <KEY_RIGHT>;
  53. interrupt-parent = <&stmfx_pinctrl>;
  54. interrupts = <3 IRQ_TYPE_EDGE_RISING>;
  55. };
  56. button-4 {
  57. label = "JoyUp";
  58. linux,code = <KEY_UP>;
  59. interrupt-parent = <&stmfx_pinctrl>;
  60. interrupts = <4 IRQ_TYPE_EDGE_RISING>;
  61. };
  62. };
  63. panel_backlight: panel-backlight {
  64. compatible = "gpio-backlight";
  65. gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
  66. default-on;
  67. status = "okay";
  68. };
  69. };
  70. &cec {
  71. pinctrl-names = "default";
  72. pinctrl-0 = <&cec_pins_a>;
  73. status = "okay";
  74. };
  75. &dcmi {
  76. status = "okay";
  77. pinctrl-names = "default", "sleep";
  78. pinctrl-0 = <&dcmi_pins_a>;
  79. pinctrl-1 = <&dcmi_sleep_pins_a>;
  80. port {
  81. dcmi_0: endpoint {
  82. remote-endpoint = <&ov5640_0>;
  83. bus-width = <8>;
  84. hsync-active = <0>;
  85. vsync-active = <0>;
  86. pclk-sample = <1>;
  87. };
  88. };
  89. };
  90. &dsi {
  91. phy-dsi-supply = <&reg18>;
  92. status = "okay";
  93. ports {
  94. port@0 {
  95. reg = <0>;
  96. dsi_in: endpoint {
  97. remote-endpoint = <&ltdc_ep0_out>;
  98. };
  99. };
  100. port@1 {
  101. reg = <1>;
  102. dsi_out: endpoint {
  103. remote-endpoint = <&dsi_panel_in>;
  104. };
  105. };
  106. };
  107. panel-dsi@0 {
  108. compatible = "raydium,rm68200";
  109. reg = <0>;
  110. reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>;
  111. backlight = <&panel_backlight>;
  112. power-supply = <&v3v3>;
  113. status = "okay";
  114. port {
  115. dsi_panel_in: endpoint {
  116. remote-endpoint = <&dsi_out>;
  117. };
  118. };
  119. };
  120. };
  121. &ethernet0 {
  122. status = "okay";
  123. pinctrl-0 = <&ethernet0_rgmii_pins_a>;
  124. pinctrl-1 = <&ethernet0_rgmii_sleep_pins_a>;
  125. pinctrl-names = "default", "sleep";
  126. phy-mode = "rgmii-id";
  127. max-speed = <1000>;
  128. phy-handle = <&phy0>;
  129. mdio0 {
  130. #address-cells = <1>;
  131. #size-cells = <0>;
  132. compatible = "snps,dwmac-mdio";
  133. phy0: ethernet-phy@0 {
  134. reg = <0>;
  135. };
  136. };
  137. };
  138. &fmc {
  139. pinctrl-names = "default", "sleep";
  140. pinctrl-0 = <&fmc_pins_a>;
  141. pinctrl-1 = <&fmc_sleep_pins_a>;
  142. status = "okay";
  143. nand-controller@4,0 {
  144. status = "okay";
  145. nand@0 {
  146. reg = <0>;
  147. nand-on-flash-bbt;
  148. #address-cells = <1>;
  149. #size-cells = <1>;
  150. };
  151. };
  152. };
  153. &i2c2 {
  154. pinctrl-names = "default", "sleep";
  155. pinctrl-0 = <&i2c2_pins_a>;
  156. pinctrl-1 = <&i2c2_sleep_pins_a>;
  157. i2c-scl-rising-time-ns = <185>;
  158. i2c-scl-falling-time-ns = <20>;
  159. status = "okay";
  160. ov5640: camera@3c {
  161. compatible = "ovti,ov5640";
  162. reg = <0x3c>;
  163. clocks = <&clk_ext_camera>;
  164. clock-names = "xclk";
  165. DOVDD-supply = <&v2v8>;
  166. powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>;
  167. reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
  168. rotation = <180>;
  169. status = "okay";
  170. port {
  171. ov5640_0: endpoint {
  172. remote-endpoint = <&dcmi_0>;
  173. bus-width = <8>;
  174. data-shift = <2>; /* lines 9:2 are used */
  175. hsync-active = <0>;
  176. vsync-active = <0>;
  177. pclk-sample = <1>;
  178. };
  179. };
  180. };
  181. stmfx: stmfx@42 {
  182. compatible = "st,stmfx-0300";
  183. reg = <0x42>;
  184. interrupts = <8 IRQ_TYPE_EDGE_RISING>;
  185. interrupt-parent = <&gpioi>;
  186. vdd-supply = <&v3v3>;
  187. stmfx_pinctrl: pinctrl {
  188. compatible = "st,stmfx-0300-pinctrl";
  189. gpio-controller;
  190. #gpio-cells = <2>;
  191. interrupt-controller;
  192. #interrupt-cells = <2>;
  193. gpio-ranges = <&stmfx_pinctrl 0 0 24>;
  194. joystick_pins: joystick-pins {
  195. pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
  196. bias-pull-down;
  197. };
  198. };
  199. };
  200. };
  201. &i2c5 {
  202. pinctrl-names = "default", "sleep";
  203. pinctrl-0 = <&i2c5_pins_a>;
  204. pinctrl-1 = <&i2c5_sleep_pins_a>;
  205. i2c-scl-rising-time-ns = <185>;
  206. i2c-scl-falling-time-ns = <20>;
  207. status = "okay";
  208. };
  209. &ltdc {
  210. status = "okay";
  211. port {
  212. ltdc_ep0_out: endpoint@0 {
  213. reg = <0>;
  214. remote-endpoint = <&dsi_in>;
  215. };
  216. };
  217. };
  218. &m_can1 {
  219. pinctrl-names = "default", "sleep";
  220. pinctrl-0 = <&m_can1_pins_a>;
  221. pinctrl-1 = <&m_can1_sleep_pins_a>;
  222. status = "okay";
  223. };
  224. &qspi {
  225. pinctrl-names = "default", "sleep";
  226. pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
  227. pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
  228. reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
  229. #address-cells = <1>;
  230. #size-cells = <0>;
  231. status = "okay";
  232. flash0: mx66l51235l@0 {
  233. compatible = "jedec,spi-nor";
  234. reg = <0>;
  235. spi-rx-bus-width = <4>;
  236. spi-max-frequency = <108000000>;
  237. #address-cells = <1>;
  238. #size-cells = <1>;
  239. };
  240. flash1: mx66l51235l@1 {
  241. compatible = "jedec,spi-nor";
  242. reg = <1>;
  243. spi-rx-bus-width = <4>;
  244. spi-max-frequency = <108000000>;
  245. #address-cells = <1>;
  246. #size-cells = <1>;
  247. };
  248. };
  249. &sdmmc3 {
  250. pinctrl-names = "default", "opendrain", "sleep";
  251. pinctrl-0 = <&sdmmc3_b4_pins_a>;
  252. pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
  253. pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
  254. broken-cd;
  255. st,neg-edge;
  256. bus-width = <4>;
  257. vmmc-supply = <&v3v3>;
  258. status = "disabled";
  259. };
  260. &spi1 {
  261. pinctrl-names = "default";
  262. pinctrl-0 = <&spi1_pins_a>;
  263. status = "disabled";
  264. };
  265. &timers2 {
  266. /* spare dmas for other usage (un-delete to enable pwm capture) */
  267. /delete-property/dmas;
  268. /delete-property/dma-names;
  269. status = "disabled";
  270. pwm {
  271. pinctrl-0 = <&pwm2_pins_a>;
  272. pinctrl-1 = <&pwm2_sleep_pins_a>;
  273. pinctrl-names = "default", "sleep";
  274. status = "okay";
  275. };
  276. timer@1 {
  277. status = "okay";
  278. };
  279. };
  280. &timers8 {
  281. /delete-property/dmas;
  282. /delete-property/dma-names;
  283. status = "disabled";
  284. pwm {
  285. pinctrl-0 = <&pwm8_pins_a>;
  286. pinctrl-1 = <&pwm8_sleep_pins_a>;
  287. pinctrl-names = "default", "sleep";
  288. status = "okay";
  289. };
  290. timer@7 {
  291. status = "okay";
  292. };
  293. };
  294. &timers12 {
  295. /delete-property/dmas;
  296. /delete-property/dma-names;
  297. status = "disabled";
  298. pwm {
  299. pinctrl-0 = <&pwm12_pins_a>;
  300. pinctrl-1 = <&pwm12_sleep_pins_a>;
  301. pinctrl-names = "default", "sleep";
  302. status = "okay";
  303. };
  304. timer@11 {
  305. status = "okay";
  306. };
  307. };
  308. &usart3 {
  309. pinctrl-names = "default", "sleep", "idle";
  310. pinctrl-0 = <&usart3_pins_b>;
  311. pinctrl-1 = <&usart3_sleep_pins_b>;
  312. pinctrl-2 = <&usart3_idle_pins_b>;
  313. /*
  314. * HW flow control USART3_RTS is optional, and isn't default wired to
  315. * the connector. SB23 needs to be soldered in order to use it, and R77
  316. * (ETH_CLK) should be removed.
  317. */
  318. uart-has-rtscts;
  319. status = "disabled";
  320. };
  321. &usbh_ehci {
  322. phys = <&usbphyc_port0>;
  323. status = "okay";
  324. };
  325. &usbotg_hs {
  326. pinctrl-0 = <&usbotg_hs_pins_a>;
  327. pinctrl-names = "default";
  328. phys = <&usbphyc_port1 0>;
  329. phy-names = "usb2-phy";
  330. status = "okay";
  331. };
  332. &usbphyc {
  333. status = "okay";
  334. };