imx8mm-kontron-sl.dtsi 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. // SPDX-License-Identifier: GPL-2.0+ OR MIT
  2. /*
  3. * Copyright (C) 2019 Kontron Electronics GmbH
  4. */
  5. #include "imx8mm.dtsi"
  6. / {
  7. model = "Kontron SL i.MX8MM (N801X SOM)";
  8. compatible = "kontron,imx8mm-sl", "fsl,imx8mm";
  9. memory@40000000 {
  10. device_type = "memory";
  11. /*
  12. * There are multiple SoM flavors with different DDR sizes.
  13. * The smallest is 1GB. For larger sizes the bootloader will
  14. * update the reg property.
  15. */
  16. reg = <0x0 0x40000000 0 0x80000000>;
  17. };
  18. chosen {
  19. stdout-path = &uart3;
  20. };
  21. };
  22. &A53_0 {
  23. cpu-supply = <&reg_vdd_arm>;
  24. };
  25. &A53_1 {
  26. cpu-supply = <&reg_vdd_arm>;
  27. };
  28. &A53_2 {
  29. cpu-supply = <&reg_vdd_arm>;
  30. };
  31. &A53_3 {
  32. cpu-supply = <&reg_vdd_arm>;
  33. };
  34. &ddrc {
  35. operating-points-v2 = <&ddrc_opp_table>;
  36. ddrc_opp_table: opp-table {
  37. compatible = "operating-points-v2";
  38. opp-100M {
  39. opp-hz = /bits/ 64 <100000000>;
  40. };
  41. opp-750M {
  42. opp-hz = /bits/ 64 <750000000>;
  43. };
  44. };
  45. };
  46. &ecspi1 {
  47. pinctrl-names = "default";
  48. pinctrl-0 = <&pinctrl_ecspi1>;
  49. cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
  50. status = "okay";
  51. flash@0 {
  52. compatible = "mxicy,mx25r1635f", "jedec,spi-nor";
  53. spi-max-frequency = <80000000>;
  54. reg = <0>;
  55. partitions {
  56. compatible = "fixed-partitions";
  57. #address-cells = <1>;
  58. #size-cells = <1>;
  59. partition@0 {
  60. label = "u-boot";
  61. reg = <0x0 0x1e0000>;
  62. };
  63. partition@1e0000 {
  64. label = "env";
  65. reg = <0x1e0000 0x10000>;
  66. };
  67. partition@1f0000 {
  68. label = "env_redundant";
  69. reg = <0x1f0000 0x10000>;
  70. };
  71. };
  72. };
  73. };
  74. &i2c1 {
  75. clock-frequency = <400000>;
  76. pinctrl-names = "default";
  77. pinctrl-0 = <&pinctrl_i2c1>;
  78. status = "okay";
  79. pca9450: pmic@25 {
  80. compatible = "nxp,pca9450a";
  81. reg = <0x25>;
  82. pinctrl-names = "default";
  83. pinctrl-0 = <&pinctrl_pmic>;
  84. interrupt-parent = <&gpio1>;
  85. interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
  86. regulators {
  87. reg_vdd_soc: BUCK1 {
  88. regulator-name = "+0V8_VDD_SOC (BUCK1)";
  89. regulator-min-microvolt = <800000>;
  90. regulator-max-microvolt = <850000>;
  91. regulator-boot-on;
  92. regulator-always-on;
  93. regulator-ramp-delay = <3125>;
  94. nxp,dvs-run-voltage = <850000>;
  95. nxp,dvs-standby-voltage = <800000>;
  96. };
  97. reg_vdd_arm: BUCK2 {
  98. regulator-name = "+0V9_VDD_ARM (BUCK2)";
  99. regulator-min-microvolt = <850000>;
  100. regulator-max-microvolt = <950000>;
  101. regulator-boot-on;
  102. regulator-always-on;
  103. regulator-ramp-delay = <3125>;
  104. nxp,dvs-run-voltage = <950000>;
  105. nxp,dvs-standby-voltage = <850000>;
  106. };
  107. reg_vdd_dram: BUCK3 {
  108. regulator-name = "+0V9_VDD_DRAM&PU (BUCK3)";
  109. regulator-min-microvolt = <850000>;
  110. regulator-max-microvolt = <950000>;
  111. regulator-boot-on;
  112. regulator-always-on;
  113. };
  114. reg_vdd_3v3: BUCK4 {
  115. regulator-name = "+3V3 (BUCK4)";
  116. regulator-min-microvolt = <3300000>;
  117. regulator-max-microvolt = <3300000>;
  118. regulator-boot-on;
  119. regulator-always-on;
  120. };
  121. reg_vdd_1v8: BUCK5 {
  122. regulator-name = "+1V8 (BUCK5)";
  123. regulator-min-microvolt = <1800000>;
  124. regulator-max-microvolt = <1800000>;
  125. regulator-boot-on;
  126. regulator-always-on;
  127. };
  128. reg_nvcc_dram: BUCK6 {
  129. regulator-name = "+1V1_NVCC_DRAM (BUCK6)";
  130. regulator-min-microvolt = <1100000>;
  131. regulator-max-microvolt = <1100000>;
  132. regulator-boot-on;
  133. regulator-always-on;
  134. };
  135. reg_nvcc_snvs: LDO1 {
  136. regulator-name = "+1V8_NVCC_SNVS (LDO1)";
  137. regulator-min-microvolt = <1800000>;
  138. regulator-max-microvolt = <1800000>;
  139. regulator-boot-on;
  140. regulator-always-on;
  141. };
  142. reg_vdd_snvs: LDO2 {
  143. regulator-name = "+0V8_VDD_SNVS (LDO2)";
  144. regulator-min-microvolt = <800000>;
  145. regulator-max-microvolt = <900000>;
  146. regulator-boot-on;
  147. regulator-always-on;
  148. };
  149. reg_vdda: LDO3 {
  150. regulator-name = "+1V8_VDDA (LDO3)";
  151. regulator-min-microvolt = <1800000>;
  152. regulator-max-microvolt = <1800000>;
  153. regulator-boot-on;
  154. regulator-always-on;
  155. };
  156. reg_vdd_phy: LDO4 {
  157. regulator-name = "+0V9_VDD_PHY (LDO4)";
  158. regulator-min-microvolt = <900000>;
  159. regulator-max-microvolt = <900000>;
  160. regulator-boot-on;
  161. regulator-always-on;
  162. };
  163. reg_nvcc_sd: LDO5 {
  164. regulator-name = "NVCC_SD (LDO5)";
  165. regulator-min-microvolt = <1800000>;
  166. regulator-max-microvolt = <3300000>;
  167. };
  168. };
  169. };
  170. };
  171. &uart3 { /* console */
  172. pinctrl-names = "default";
  173. pinctrl-0 = <&pinctrl_uart3>;
  174. status = "okay";
  175. };
  176. &usdhc1 {
  177. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  178. pinctrl-0 = <&pinctrl_usdhc1>;
  179. pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
  180. pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
  181. vmmc-supply = <&reg_vdd_3v3>;
  182. vqmmc-supply = <&reg_vdd_1v8>;
  183. bus-width = <8>;
  184. non-removable;
  185. status = "okay";
  186. };
  187. &wdog1 {
  188. pinctrl-names = "default";
  189. pinctrl-0 = <&pinctrl_wdog>;
  190. fsl,ext-reset-output;
  191. status = "okay";
  192. };
  193. &iomuxc {
  194. pinctrl_ecspi1: ecspi1grp {
  195. fsl,pins = <
  196. MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82
  197. MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x82
  198. MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x82
  199. MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19
  200. >;
  201. };
  202. pinctrl_i2c1: i2c1grp {
  203. fsl,pins = <
  204. MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
  205. MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
  206. >;
  207. };
  208. pinctrl_pmic: pmicgrp {
  209. fsl,pins = <
  210. MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141
  211. >;
  212. };
  213. pinctrl_uart3: uart3grp {
  214. fsl,pins = <
  215. MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140
  216. MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140
  217. >;
  218. };
  219. pinctrl_usdhc1: usdhc1grp {
  220. fsl,pins = <
  221. MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x190
  222. MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0
  223. MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0
  224. MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0
  225. MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0
  226. MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0
  227. MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d0
  228. MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d0
  229. MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d0
  230. MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d0
  231. MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019
  232. MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x190
  233. >;
  234. };
  235. pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
  236. fsl,pins = <
  237. MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x194
  238. MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d4
  239. MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d4
  240. MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d4
  241. MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d4
  242. MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d4
  243. MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d4
  244. MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d4
  245. MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d4
  246. MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d4
  247. MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019
  248. MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x194
  249. >;
  250. };
  251. pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
  252. fsl,pins = <
  253. MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x196
  254. MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d6
  255. MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d6
  256. MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d6
  257. MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d6
  258. MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d6
  259. MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d6
  260. MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d6
  261. MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d6
  262. MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d6
  263. MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019
  264. MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x196
  265. >;
  266. };
  267. pinctrl_wdog: wdoggrp {
  268. fsl,pins = <
  269. MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
  270. >;
  271. };
  272. };