1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2022 PHYTEC Messtechnik GmbH 4 * Author: Teresa Remmet <t.remmet@phytec.de> 5 */ 6 7#include "imx8mm.dtsi" 8#include <dt-bindings/net/ti-dp83867.h> 9 10/ { 11 model = "PHYTEC phyCORE-i.MX8MM"; 12 compatible = "phytec,imx8mm-phycore-som", "fsl,imx8mm"; 13 14 aliases { 15 rtc0 = &rv3028; 16 rtc1 = &snvs_rtc; 17 }; 18 19 memory@40000000 { 20 device_type = "memory"; 21 reg = <0x0 0x40000000 0 0x80000000>; 22 }; 23 24 reg_vdd_3v3_s: regulator-vdd-3v3-s { 25 compatible = "regulator-fixed"; 26 regulator-always-on; 27 regulator-boot-on; 28 regulator-max-microvolt = <3300000>; 29 regulator-min-microvolt = <3300000>; 30 regulator-name = "VDD_3V3_S"; 31 }; 32}; 33 34&A53_0 { 35 cpu-supply = <®_vdd_arm>; 36}; 37 38&A53_1 { 39 cpu-supply = <®_vdd_arm>; 40}; 41 42&A53_2 { 43 cpu-supply = <®_vdd_arm>; 44}; 45 46&A53_3 { 47 cpu-supply = <®_vdd_arm>; 48}; 49 50&ddrc { 51 operating-points-v2 = <&ddrc_opp_table>; 52 53 ddrc_opp_table: opp-table { 54 compatible = "operating-points-v2"; 55 56 opp-25000000 { 57 opp-hz = /bits/ 64 <25000000>; 58 }; 59 60 opp-100000000 { 61 opp-hz = /bits/ 64 <100000000>; 62 }; 63 64 opp-750000000 { 65 opp-hz = /bits/ 64 <750000000>; 66 }; 67 }; 68}; 69 70/* Ethernet */ 71&fec1 { 72 fsl,magic-packet; 73 phy-mode = "rgmii-id"; 74 phy-handle = <ðphy0>; 75 pinctrl-names = "default"; 76 pinctrl-0 = <&pinctrl_fec1>; 77 status = "okay"; 78 79 mdio { 80 #address-cells = <1>; 81 #size-cells = <0>; 82 83 ethphy0: ethernet-phy@0 { 84 compatible = "ethernet-phy-ieee802.3-c22"; 85 enet-phy-lane-no-swap; 86 ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; 87 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 88 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 89 ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 90 reg = <0>; 91 reset-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 92 reset-assert-us = <1000>; 93 reset-deassert-us = <1000>; 94 }; 95 }; 96}; 97 98/* SPI Flash */ 99&flexspi { 100 pinctrl-names = "default"; 101 pinctrl-0 = <&pinctrl_flexspi0>; 102 status = "okay"; 103 104 som_flash: flash@0 { 105 #address-cells = <1>; 106 #size-cells = <1>; 107 compatible = "jedec,spi-nor"; 108 reg = <0>; 109 spi-max-frequency = <80000000>; 110 spi-rx-bus-width = <4>; 111 spi-tx-bus-width = <1>; 112 }; 113}; 114 115&gpio1 { 116 gpio-line-names = "nINT_ETHPHY", "", "WDOG_INT", "X_RTC_INT", 117 "", "", "", "RESET_ETHPHY", 118 "", "", "nENABLE_FLATLINK"; 119}; 120 121/* I2C1 */ 122&i2c1 { 123 clock-frequency = <400000>; 124 pinctrl-names = "default","gpio"; 125 pinctrl-0 = <&pinctrl_i2c1>; 126 pinctrl-1 = <&pinctrl_i2c1_gpio>; 127 scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 128 sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 129 status = "okay"; 130 131 pmic@8 { 132 compatible = "nxp,pf8121a"; 133 reg = <0x08>; 134 135 regulators { 136 reg_nvcc_sd1: ldo1 { 137 regulator-always-on; 138 regulator-boot-on; 139 regulator-max-microvolt = <3300000>; 140 regulator-min-microvolt = <3300000>; 141 regulator-name = "NVCC_SD1 (LDO1)"; 142 143 regulator-state-mem { 144 regulator-off-in-suspend; 145 }; 146 }; 147 148 reg_nvcc_sd2: ldo2 { 149 regulator-always-on; 150 regulator-boot-on; 151 regulator-max-microvolt = <3300000>; 152 regulator-min-microvolt = <1800000>; 153 regulator-name = "NVCC_SD2 (LDO2)"; 154 vselect-en; 155 156 regulator-state-mem { 157 regulator-off-in-suspend; 158 }; 159 }; 160 161 reg_vcc_enet: ldo3 { 162 regulator-always-on; 163 regulator-boot-on; 164 regulator-max-microvolt = <2500000>; 165 regulator-min-microvolt = <1500000>; 166 regulator-name = "VCC_ENET_2V5 (LDO3)"; 167 168 regulator-state-mem { 169 regulator-off-in-suspend; 170 }; 171 }; 172 173 reg_vdda_1v8: ldo4 { 174 regulator-always-on; 175 regulator-boot-on; 176 regulator-max-microvolt = <1800000>; 177 regulator-min-microvolt = <1500000>; 178 regulator-name = "VDDA_1V8 (LDO4)"; 179 180 regulator-state-mem { 181 regulator-on-in-suspend; 182 regulator-suspend-min-microvolt = <1500000>; 183 regulator-suspend-max-microvolt = <1500000>; 184 }; 185 }; 186 187 reg_soc_vdda_phy: buck1 { 188 regulator-always-on; 189 regulator-boot-on; 190 regulator-max-microvolt = <900000>; 191 regulator-min-microvolt = <400000>; 192 regulator-name = "VDD_SOC_VDDA_PHY_0P8 (BUCK1)"; 193 194 regulator-state-mem { 195 regulator-on-in-suspend; 196 regulator-suspend-min-microvolt = <400000>; 197 regulator-suspend-max-microvolt = <400000>; 198 }; 199 }; 200 201 reg_vdd_gpu_dram: buck2 { 202 regulator-always-on; 203 regulator-boot-on; 204 regulator-max-microvolt = <1000000>; 205 regulator-min-microvolt = <1000000>; 206 regulator-name = "VDD_GPU_DRAM (BUCK2)"; 207 208 regulator-state-mem { 209 regulator-on-in-suspend; 210 regulator-suspend-max-microvolt = <1000000>; 211 regulator-suspend-min-microvolt = <1000000>; 212 }; 213 }; 214 215 reg_vdd_gpu: buck3 { 216 regulator-always-on; 217 regulator-boot-on; 218 regulator-max-microvolt = <1000000>; 219 regulator-min-microvolt = <400000>; 220 regulator-name = "VDD_VPU (BUCK3)"; 221 222 regulator-state-mem { 223 regulator-off-in-suspend; 224 }; 225 }; 226 227 reg_vdd_mipi: buck4 { 228 regulator-always-on; 229 regulator-boot-on; 230 regulator-max-microvolt = <1050000>; 231 regulator-min-microvolt = <900000>; 232 regulator-name = "VDD_MIPI_0P9 (BUCK4)"; 233 234 regulator-state-mem { 235 regulator-off-in-suspend; 236 }; 237 }; 238 239 reg_vdd_arm: buck5 { 240 regulator-always-on; 241 regulator-boot-on; 242 regulator-max-microvolt = <1050000>; 243 regulator-min-microvolt = <400000>; 244 regulator-name = "VDD_ARM (BUCK5)"; 245 246 regulator-state-mem { 247 regulator-off-in-suspend; 248 }; 249 }; 250 251 reg_vdd_1v8: buck6 { 252 regulator-always-on; 253 regulator-boot-on; 254 regulator-max-microvolt = <1800000>; 255 regulator-min-microvolt = <1800000>; 256 regulator-name = "VDD_1V8 (BUCK6)"; 257 258 regulator-state-mem { 259 regulator-on-in-suspend; 260 regulator-suspend-max-microvolt = <1800000>; 261 regulator-suspend-min-microvolt = <1800000>; 262 }; 263 }; 264 265 reg_nvcc_dram: buck7 { 266 regulator-always-on; 267 regulator-boot-on; 268 regulator-max-microvolt = <1100000>; 269 regulator-min-microvolt = <1100000>; 270 regulator-name = "NVCC_DRAM_1P1V (BUCK7)"; 271 }; 272 273 reg_vsnvs: vsnvs { 274 regulator-always-on; 275 regulator-boot-on; 276 regulator-max-microvolt = <1800000>; 277 regulator-min-microvolt = <1800000>; 278 regulator-name = "NVCC_SNVS_1P8 (VSNVS)"; 279 }; 280 }; 281 }; 282 283 sn65dsi83: bridge@2d { 284 compatible = "ti,sn65dsi83"; 285 enable-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; 286 pinctrl-names = "default"; 287 pinctrl-0 = <&pinctrl_sn65dsi83>; 288 reg = <0x2d>; 289 status = "disabled"; 290 }; 291 292 eeprom@51 { 293 compatible = "atmel,24c32"; 294 pagesize = <32>; 295 reg = <0x51>; 296 vcc-supply = <®_vdd_3v3_s>; 297 }; 298 299 rv3028: rtc@52 { 300 compatible = "microcrystal,rv3028"; 301 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 302 interrupt-parent = <&gpio1>; 303 pinctrl-names = "default"; 304 pinctrl-0 = <&pinctrl_rtc>; 305 reg = <0x52>; 306 }; 307}; 308 309/* EMMC */ 310&usdhc3 { 311 assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>; 312 assigned-clock-rates = <400000000>; 313 bus-width = <8>; 314 keep-power-in-suspend; 315 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 316 pinctrl-0 = <&pinctrl_usdhc3>; 317 pinctrl-1 = <&pinctrl_usdhc3_100mhz>; 318 pinctrl-2 = <&pinctrl_usdhc3_200mhz>; 319 non-removable; 320 status = "okay"; 321}; 322 323/* Watchdog */ 324&wdog1 { 325 fsl,ext-reset-output; 326 pinctrl-names = "default"; 327 pinctrl-0 = <&pinctrl_wdog>; 328 status = "okay"; 329}; 330 331&iomuxc { 332 pinctrl_fec1: fec1grp { 333 fsl,pins = < 334 MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x2 335 MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x2 336 MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x90 337 MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x90 338 MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x90 339 MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x90 340 MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x90 341 MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x90 342 MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x16 343 MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x16 344 MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x16 345 MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x16 346 MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x16 347 MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x16 348 MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x10 349 >; 350 }; 351 352 pinctrl_flexspi0: flexspi0grp { 353 fsl,pins = < 354 MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x1c2 355 MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B 0x82 356 MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0 0x82 357 MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1 0x82 358 MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2 0x82 359 MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3 0x82 360 >; 361 }; 362 363 pinctrl_i2c1: i2c1grp { 364 fsl,pins = < 365 MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c0 366 MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c0 367 >; 368 }; 369 370 pinctrl_i2c1_gpio: i2c1gpiogrp { 371 fsl,pins = < 372 MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15 0x1e0 373 MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14 0x1e0 374 >; 375 }; 376 377 pinctrl_rtc: rtcgrp { 378 fsl,pins = < 379 MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x1c0 380 >; 381 }; 382 383 pinctrl_sn65dsi83: sn65dsi83grp { 384 fsl,pins = < 385 MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x0 386 >; 387 }; 388 389 pinctrl_usdhc3: usdhc3grp { 390 fsl,pins = < 391 MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0 392 MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190 393 MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0 394 MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0 395 MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0 396 MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0 397 MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0 398 MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0 399 MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0 400 MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190 401 MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0 402 >; 403 }; 404 405 pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { 406 fsl,pins = < 407 MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4 408 MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194 409 MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4 410 MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4 411 MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4 412 MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4 413 MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4 414 MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4 415 MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4 416 MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194 417 MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4 418 >; 419 }; 420 421 pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { 422 fsl,pins = < 423 MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6 424 MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196 425 MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6 426 MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6 427 MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6 428 MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6 429 MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6 430 MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6 431 MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6 432 MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196 433 MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6 434 >; 435 }; 436 437 pinctrl_wdog: wdoggrp { 438 fsl,pins = < 439 MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x26 440 >; 441 }; 442}; 443