vf610-bk4.dts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright 2018
  4. * Lukasz Majewski, DENX Software Engineering, [email protected]
  5. */
  6. /dts-v1/;
  7. #include "vf610.dtsi"
  8. / {
  9. model = "Liebherr BK4 controller";
  10. compatible = "lwn,bk4", "fsl,vf610";
  11. chosen {
  12. stdout-path = &uart1;
  13. };
  14. memory@80000000 {
  15. device_type = "memory";
  16. reg = <0x80000000 0x8000000>;
  17. };
  18. audio_ext: oscillator-audio {
  19. compatible = "fixed-clock";
  20. #clock-cells = <0>;
  21. clock-frequency = <24576000>;
  22. };
  23. enet_ext: oscillator-ethernet {
  24. compatible = "fixed-clock";
  25. #clock-cells = <0>;
  26. clock-frequency = <50000000>;
  27. };
  28. leds {
  29. compatible = "gpio-leds";
  30. pinctrl-names = "default";
  31. pinctrl-0 = <&pinctrl_gpio_leds>;
  32. /* LED D5 */
  33. led0: heartbeat {
  34. label = "heartbeat";
  35. gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
  36. default-state = "on";
  37. linux,default-trigger = "heartbeat";
  38. };
  39. };
  40. reg_3p3v: regulator-3p3v {
  41. compatible = "regulator-fixed";
  42. regulator-name = "3P3V";
  43. regulator-min-microvolt = <3300000>;
  44. regulator-max-microvolt = <3300000>;
  45. regulator-always-on;
  46. };
  47. reg_vcc_3v3_mcu: regulator-vcc3v3mcu {
  48. compatible = "regulator-fixed";
  49. regulator-name = "vcc_3v3_mcu";
  50. regulator-min-microvolt = <3300000>;
  51. regulator-max-microvolt = <3300000>;
  52. };
  53. spi {
  54. compatible = "spi-gpio";
  55. pinctrl-0 = <&pinctrl_gpio_spi>;
  56. pinctrl-names = "default";
  57. #address-cells = <1>;
  58. #size-cells = <0>;
  59. /* PTD12 ->RPIO[91] */
  60. sck-gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
  61. /* PTD10 ->RPIO[89] */
  62. miso-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
  63. num-chipselects = <0>;
  64. gpio@0 {
  65. compatible = "pisosr-gpio";
  66. reg = <0>;
  67. gpio-controller;
  68. #gpio-cells = <2>;
  69. /* PTB18 -> RGPIO[40] */
  70. load-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
  71. spi-max-frequency = <100000>;
  72. };
  73. };
  74. };
  75. &adc0 {
  76. vref-supply = <&reg_vcc_3v3_mcu>;
  77. status = "okay";
  78. };
  79. &adc1 {
  80. vref-supply = <&reg_vcc_3v3_mcu>;
  81. status = "okay";
  82. };
  83. &can0 {
  84. pinctrl-names = "default";
  85. pinctrl-0 = <&pinctrl_can0>;
  86. status = "okay";
  87. };
  88. &can1 {
  89. pinctrl-names = "default";
  90. pinctrl-0 = <&pinctrl_can1>;
  91. status = "okay";
  92. };
  93. &clks {
  94. clocks = <&sxosc>, <&fxosc>, <&enet_ext>, <&audio_ext>;
  95. clock-names = "sxosc", "fxosc", "enet_ext", "audio_ext";
  96. };
  97. &dspi0 {
  98. pinctrl-names = "default";
  99. pinctrl-0 = <&pinctrl_dspi0>;
  100. bus-num = <0>;
  101. status = "okay";
  102. spidev0@0 {
  103. compatible = "lwn,bk4";
  104. spi-max-frequency = <30000000>;
  105. reg = <0>;
  106. fsl,spi-cs-sck-delay = <200>;
  107. fsl,spi-sck-cs-delay = <400>;
  108. };
  109. };
  110. &dspi3 {
  111. pinctrl-names = "default";
  112. pinctrl-0 = <&pinctrl_dspi3>;
  113. bus-num = <3>;
  114. status = "okay";
  115. spi-slave;
  116. #address-cells = <0>;
  117. slave {
  118. compatible = "lwn,bk4";
  119. spi-max-frequency = <30000000>;
  120. };
  121. };
  122. &edma0 {
  123. status = "okay";
  124. };
  125. &edma1 {
  126. status = "okay";
  127. };
  128. &esdhc1 {
  129. pinctrl-names = "default";
  130. pinctrl-0 = <&pinctrl_esdhc1>;
  131. bus-width = <4>;
  132. cd-gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
  133. status = "okay";
  134. };
  135. &fec0 {
  136. phy-mode = "rmii";
  137. phy-handle = <&ethphy0>;
  138. pinctrl-names = "default";
  139. pinctrl-0 = <&pinctrl_fec0>;
  140. status = "okay";
  141. mdio {
  142. #address-cells = <1>;
  143. #size-cells = <0>;
  144. ethphy0: ethernet-phy@1 {
  145. reg = <1>;
  146. clocks = <&clks VF610_CLK_ENET_50M>;
  147. clock-names = "rmii-ref";
  148. };
  149. };
  150. };
  151. &fec1 {
  152. phy-mode = "rmii";
  153. phy-handle = <&ethphy1>;
  154. pinctrl-names = "default";
  155. pinctrl-0 = <&pinctrl_fec1>;
  156. status = "okay";
  157. mdio {
  158. #address-cells = <1>;
  159. #size-cells = <0>;
  160. ethphy1: ethernet-phy@1 {
  161. reg = <1>;
  162. clocks = <&clks VF610_CLK_ENET_50M>;
  163. clock-names = "rmii-ref";
  164. };
  165. };
  166. };
  167. &i2c2 {
  168. clock-frequency = <400000>;
  169. pinctrl-names = "default";
  170. pinctrl-0 = <&pinctrl_i2c2>;
  171. status = "okay";
  172. at24c256: eeprom@50 {
  173. compatible = "atmel,24c256";
  174. reg = <0x50>;
  175. };
  176. m41t62: rtc@68 {
  177. compatible = "st,m41t62";
  178. reg = <0x68>;
  179. };
  180. };
  181. &nfc {
  182. assigned-clocks = <&clks VF610_CLK_NFC>;
  183. assigned-clock-rates = <33000000>;
  184. pinctrl-names = "default";
  185. pinctrl-0 = <&pinctrl_nfc>;
  186. status = "okay";
  187. nand@0 {
  188. compatible = "fsl,vf610-nfc-nandcs";
  189. reg = <0>;
  190. #address-cells = <1>;
  191. #size-cells = <1>;
  192. nand-bus-width = <16>;
  193. nand-ecc-mode = "hw";
  194. nand-ecc-strength = <24>;
  195. nand-ecc-step-size = <2048>;
  196. nand-on-flash-bbt;
  197. };
  198. };
  199. &qspi0 {
  200. pinctrl-names = "default";
  201. pinctrl-0 = <&pinctrl_qspi0>;
  202. status = "okay";
  203. n25q128a13_4: flash@0 {
  204. compatible = "n25q128a13", "jedec,spi-nor";
  205. #address-cells = <1>;
  206. #size-cells = <1>;
  207. spi-max-frequency = <66000000>;
  208. spi-rx-bus-width = <4>;
  209. reg = <0>;
  210. };
  211. n25q128a13_2: flash@2 {
  212. compatible = "n25q128a13", "jedec,spi-nor";
  213. #address-cells = <1>;
  214. #size-cells = <1>;
  215. spi-max-frequency = <66000000>;
  216. spi-rx-bus-width = <2>;
  217. reg = <2>;
  218. };
  219. };
  220. &uart0 {
  221. pinctrl-names = "default";
  222. pinctrl-0 = <&pinctrl_uart0>;
  223. /delete-property/dma-names;
  224. status = "okay";
  225. };
  226. &uart1 {
  227. pinctrl-names = "default";
  228. pinctrl-0 = <&pinctrl_uart1>;
  229. /delete-property/dma-names;
  230. status = "okay";
  231. };
  232. &uart2 {
  233. pinctrl-names = "default";
  234. pinctrl-0 = <&pinctrl_uart2>;
  235. /delete-property/dma-names;
  236. status = "okay";
  237. };
  238. &uart3 {
  239. pinctrl-names = "default";
  240. pinctrl-0 = <&pinctrl_uart3>;
  241. /delete-property/dma-names;
  242. status = "okay";
  243. };
  244. &usbdev0 {
  245. disable-over-current;
  246. status = "okay";
  247. };
  248. &usbh1 {
  249. disable-over-current;
  250. status = "okay";
  251. };
  252. &usbmisc0 {
  253. status = "okay";
  254. };
  255. &usbmisc1 {
  256. status = "okay";
  257. };
  258. &usbphy0 {
  259. status = "okay";
  260. };
  261. &usbphy1 {
  262. status = "okay";
  263. };
  264. &iomuxc {
  265. pinctrl-names = "default";
  266. pinctrl-0 = <&pinctrl_hog>;
  267. pinctrl_hog: hoggrp {
  268. fsl,pins = <
  269. /* One_Wire_PSU_EN */
  270. VF610_PAD_PTC29__GPIO_102 0x1183
  271. /* SPI ENABLE */
  272. VF610_PAD_PTB26__GPIO_96 0x1183
  273. /* EB control */
  274. VF610_PAD_PTE14__GPIO_119 0x1183
  275. VF610_PAD_PTE4__GPIO_109 0x1181
  276. /* Feedback_Lines */
  277. VF610_PAD_PTC31__GPIO_104 0x1181
  278. VF610_PAD_PTA7__GPIO_134 0x1181
  279. VF610_PAD_PTD9__GPIO_88 0x1181
  280. VF610_PAD_PTE1__GPIO_106 0x1183
  281. VF610_PAD_PTB2__GPIO_24 0x1181
  282. VF610_PAD_PTB3__GPIO_25 0x1181
  283. VF610_PAD_PTB1__GPIO_23 0x1181
  284. /* SDHC Enable */
  285. VF610_PAD_PTE19__GPIO_124 0x1183
  286. /* SDHC Overcurrent */
  287. VF610_PAD_PTB23__GPIO_93 0x1181
  288. /* GPI */
  289. VF610_PAD_PTE2__GPIO_107 0x1181
  290. VF610_PAD_PTE3__GPIO_108 0x1181
  291. VF610_PAD_PTE5__GPIO_110 0x1181
  292. VF610_PAD_PTE6__GPIO_111 0x1181
  293. /* GPO */
  294. VF610_PAD_PTE0__GPIO_105 0x1183
  295. VF610_PAD_PTE7__GPIO_112 0x1183
  296. /* RS485 Control */
  297. VF610_PAD_PTB8__GPIO_30 0x1183
  298. VF610_PAD_PTB9__GPIO_31 0x1183
  299. VF610_PAD_PTE8__GPIO_113 0x1183
  300. /* MPBUS MPB_EN */
  301. VF610_PAD_PTE28__GPIO_133 0x1183
  302. /* MISC */
  303. VF610_PAD_PTE10__GPIO_115 0x1183
  304. VF610_PAD_PTE11__GPIO_116 0x1183
  305. VF610_PAD_PTE17__GPIO_122 0x1183
  306. VF610_PAD_PTC30__GPIO_103 0x1183
  307. VF610_PAD_PTB0__GPIO_22 0x1181
  308. /* RESETINFO */
  309. VF610_PAD_PTE26__GPIO_131 0x1183
  310. VF610_PAD_PTD6__GPIO_85 0x1181
  311. VF610_PAD_PTE27__GPIO_132 0x1181
  312. VF610_PAD_PTE13__GPIO_118 0x1181
  313. VF610_PAD_PTE21__GPIO_126 0x1181
  314. VF610_PAD_PTE22__GPIO_127 0x1181
  315. /* EE_5V_EN */
  316. VF610_PAD_PTE18__GPIO_123 0x1183
  317. /* EE_5V_OC_N */
  318. VF610_PAD_PTE25__GPIO_130 0x1181
  319. >;
  320. };
  321. pinctrl_can0: can0grp {
  322. fsl,pins = <
  323. VF610_PAD_PTB14__CAN0_RX 0x1181
  324. VF610_PAD_PTB15__CAN0_TX 0x1182
  325. >;
  326. };
  327. pinctrl_can1: can1grp {
  328. fsl,pins = <
  329. VF610_PAD_PTB16__CAN1_RX 0x1181
  330. VF610_PAD_PTB17__CAN1_TX 0x1182
  331. >;
  332. };
  333. pinctrl_dspi0: dspi0grp {
  334. fsl,pins = <
  335. VF610_PAD_PTB18__DSPI0_CS1 0x1182
  336. VF610_PAD_PTB19__DSPI0_CS0 0x1182
  337. VF610_PAD_PTB20__DSPI0_SIN 0x1181
  338. VF610_PAD_PTB21__DSPI0_SOUT 0x1182
  339. VF610_PAD_PTB22__DSPI0_SCK 0x1182
  340. >;
  341. };
  342. pinctrl_dspi3: dspi3grp {
  343. fsl,pins = <
  344. VF610_PAD_PTD10__DSPI3_CS0 0x1181
  345. VF610_PAD_PTD11__DSPI3_SIN 0x1181
  346. VF610_PAD_PTD12__DSPI3_SOUT 0x1182
  347. VF610_PAD_PTD13__DSPI3_SCK 0x1181
  348. >;
  349. };
  350. pinctrl_esdhc1: esdhc1grp {
  351. fsl,pins = <
  352. VF610_PAD_PTA24__ESDHC1_CLK 0x31ef
  353. VF610_PAD_PTA25__ESDHC1_CMD 0x31ef
  354. VF610_PAD_PTA26__ESDHC1_DAT0 0x31ef
  355. VF610_PAD_PTA27__ESDHC1_DAT1 0x31ef
  356. VF610_PAD_PTA28__ESDHC1_DATA2 0x31ef
  357. VF610_PAD_PTA29__ESDHC1_DAT3 0x31ef
  358. VF610_PAD_PTB28__GPIO_98 0x219d
  359. >;
  360. };
  361. pinctrl_fec0: fec0grp {
  362. fsl,pins = <
  363. VF610_PAD_PTA6__RMII_CLKIN 0x30dd
  364. VF610_PAD_PTC0__ENET_RMII0_MDC 0x30de
  365. VF610_PAD_PTC1__ENET_RMII0_MDIO 0x30df
  366. VF610_PAD_PTC2__ENET_RMII0_CRS 0x30dd
  367. VF610_PAD_PTC3__ENET_RMII0_RXD1 0x30dd
  368. VF610_PAD_PTC4__ENET_RMII0_RXD0 0x30dd
  369. VF610_PAD_PTC5__ENET_RMII0_RXER 0x30dd
  370. VF610_PAD_PTC6__ENET_RMII0_TXD1 0x30de
  371. VF610_PAD_PTC7__ENET_RMII0_TXD0 0x30de
  372. VF610_PAD_PTC8__ENET_RMII0_TXEN 0x30de
  373. >;
  374. };
  375. pinctrl_fec1: fec1grp {
  376. fsl,pins = <
  377. VF610_PAD_PTC9__ENET_RMII1_MDC 0x30de
  378. VF610_PAD_PTC10__ENET_RMII1_MDIO 0x30df
  379. VF610_PAD_PTC11__ENET_RMII1_CRS 0x30dd
  380. VF610_PAD_PTC12__ENET_RMII1_RXD1 0x30dd
  381. VF610_PAD_PTC13__ENET_RMII1_RXD0 0x30dd
  382. VF610_PAD_PTC14__ENET_RMII1_RXER 0x30dd
  383. VF610_PAD_PTC15__ENET_RMII1_TXD1 0x30de
  384. VF610_PAD_PTC16__ENET_RMII1_TXD0 0x30de
  385. VF610_PAD_PTC17__ENET_RMII1_TXEN 0x30de
  386. >;
  387. };
  388. pinctrl_gpio_leds: gpioledsgrp {
  389. fsl,pins = <
  390. /* Heart bit LED */
  391. VF610_PAD_PTE12__GPIO_117 0x1183
  392. /* LEDS */
  393. VF610_PAD_PTE15__GPIO_120 0x1183
  394. VF610_PAD_PTA12__GPIO_5 0x1183
  395. VF610_PAD_PTA16__GPIO_6 0x1183
  396. VF610_PAD_PTE9__GPIO_114 0x1183
  397. VF610_PAD_PTE20__GPIO_125 0x1183
  398. VF610_PAD_PTE23__GPIO_128 0x1183
  399. VF610_PAD_PTE16__GPIO_121 0x1183
  400. >;
  401. };
  402. pinctrl_gpio_spi: pinctrl-gpio-spi {
  403. fsl,pins = <
  404. VF610_PAD_PTB18__GPIO_40 0x1183
  405. VF610_PAD_PTD10__GPIO_89 0x1183
  406. VF610_PAD_PTD12__GPIO_91 0x1183
  407. >;
  408. };
  409. pinctrl_i2c2: i2c2grp {
  410. fsl,pins = <
  411. VF610_PAD_PTA22__I2C2_SCL 0x34df
  412. VF610_PAD_PTA23__I2C2_SDA 0x34df
  413. >;
  414. };
  415. pinctrl_nfc: nfcgrp {
  416. fsl,pins = <
  417. VF610_PAD_PTD23__NF_IO7 0x28df
  418. VF610_PAD_PTD22__NF_IO6 0x28df
  419. VF610_PAD_PTD21__NF_IO5 0x28df
  420. VF610_PAD_PTD20__NF_IO4 0x28df
  421. VF610_PAD_PTD19__NF_IO3 0x28df
  422. VF610_PAD_PTD18__NF_IO2 0x28df
  423. VF610_PAD_PTD17__NF_IO1 0x28df
  424. VF610_PAD_PTD16__NF_IO0 0x28df
  425. VF610_PAD_PTB24__NF_WE_B 0x28c2
  426. VF610_PAD_PTB25__NF_CE0_B 0x28c2
  427. VF610_PAD_PTB27__NF_RE_B 0x28c2
  428. VF610_PAD_PTC26__NF_RB_B 0x283d
  429. VF610_PAD_PTC27__NF_ALE 0x28c2
  430. VF610_PAD_PTC28__NF_CLE 0x28c2
  431. >;
  432. };
  433. pinctrl_qspi0: qspi0grp {
  434. fsl,pins = <
  435. VF610_PAD_PTD0__QSPI0_A_QSCK 0x397f
  436. VF610_PAD_PTD1__QSPI0_A_CS0 0x397f
  437. VF610_PAD_PTD2__QSPI0_A_DATA3 0x397f
  438. VF610_PAD_PTD3__QSPI0_A_DATA2 0x397f
  439. VF610_PAD_PTD4__QSPI0_A_DATA1 0x397f
  440. VF610_PAD_PTD5__QSPI0_A_DATA0 0x397f
  441. VF610_PAD_PTD7__QSPI0_B_QSCK 0x397f
  442. VF610_PAD_PTD8__QSPI0_B_CS0 0x397f
  443. VF610_PAD_PTD11__QSPI0_B_DATA1 0x397f
  444. VF610_PAD_PTD12__QSPI0_B_DATA0 0x397f
  445. >;
  446. };
  447. pinctrl_uart0: uart0grp {
  448. fsl,pins = <
  449. VF610_PAD_PTB10__UART0_TX 0x21a2
  450. VF610_PAD_PTB11__UART0_RX 0x21a1
  451. >;
  452. };
  453. pinctrl_uart1: uart1grp {
  454. fsl,pins = <
  455. VF610_PAD_PTB4__UART1_TX 0x21a2
  456. VF610_PAD_PTB5__UART1_RX 0x21a1
  457. >;
  458. };
  459. pinctrl_uart2: uart2grp {
  460. fsl,pins = <
  461. VF610_PAD_PTB6__UART2_TX 0x21a2
  462. VF610_PAD_PTB7__UART2_RX 0x21a1
  463. >;
  464. };
  465. pinctrl_uart3: uart3grp {
  466. fsl,pins = <
  467. VF610_PAD_PTA20__UART3_TX 0x21a2
  468. VF610_PAD_PTA21__UART3_RX 0x21a1
  469. >;
  470. };
  471. };