imx8mm-kontron-osm-s.dtsi 7.5 KB

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