Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Copyright (C) 2022 PHYTEC Messtechnik GmbH
0004  * Author: Teresa Remmet <t.remmet@phytec.de>
0005  */
0006 
0007 #include "imx8mm.dtsi"
0008 #include <dt-bindings/net/ti-dp83867.h>
0009 
0010 / {
0011         model = "PHYTEC phyCORE-i.MX8MM";
0012         compatible = "phytec,imx8mm-phycore-som", "fsl,imx8mm";
0013 
0014         aliases {
0015                 rtc0 = &rv3028;
0016                 rtc1 = &snvs_rtc;
0017         };
0018 
0019         memory@40000000 {
0020                 device_type = "memory";
0021                 reg = <0x0 0x40000000 0 0x80000000>;
0022         };
0023 
0024         reg_vdd_3v3_s: regulator-vdd-3v3-s {
0025                 compatible = "regulator-fixed";
0026                 regulator-always-on;
0027                 regulator-boot-on;
0028                 regulator-max-microvolt = <3300000>;
0029                 regulator-min-microvolt = <3300000>;
0030                 regulator-name = "VDD_3V3_S";
0031         };
0032 };
0033 
0034 &A53_0 {
0035         cpu-supply = <&reg_vdd_arm>;
0036 };
0037 
0038 &A53_1 {
0039         cpu-supply = <&reg_vdd_arm>;
0040 };
0041 
0042 &A53_2 {
0043         cpu-supply = <&reg_vdd_arm>;
0044 };
0045 
0046 &A53_3 {
0047         cpu-supply = <&reg_vdd_arm>;
0048 };
0049 
0050 &ddrc {
0051         operating-points-v2 = <&ddrc_opp_table>;
0052 
0053         ddrc_opp_table: opp-table {
0054                 compatible = "operating-points-v2";
0055 
0056                 opp-25M {
0057                         opp-hz = /bits/ 64 <25000000>;
0058                 };
0059 
0060                 opp-100M {
0061                         opp-hz = /bits/ 64 <100000000>;
0062                 };
0063 
0064                 opp-750M {
0065                         opp-hz = /bits/ 64 <750000000>;
0066                 };
0067         };
0068 };
0069 
0070 /* Ethernet */
0071 &fec1 {
0072         fsl,magic-packet;
0073         phy-mode = "rgmii-id";
0074         phy-handle = <&ethphy0>;
0075         pinctrl-names = "default";
0076         pinctrl-0 = <&pinctrl_fec1>;
0077         status = "okay";
0078 
0079         mdio {
0080                 #address-cells = <1>;
0081                 #size-cells = <0>;
0082 
0083                 ethphy0: ethernet-phy@0 {
0084                         compatible = "ethernet-phy-ieee802.3-c22";
0085                         enet-phy-lane-no-swap;
0086                         ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
0087                         ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
0088                         ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
0089                         ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
0090                         reg = <0>;
0091                         reset-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
0092                         reset-assert-us = <1000>;
0093                         reset-deassert-us = <1000>;
0094                 };
0095         };
0096 };
0097 
0098 /* SPI Flash */
0099 &flexspi {
0100         pinctrl-names = "default";
0101         pinctrl-0 = <&pinctrl_flexspi0>;
0102         status = "okay";
0103 
0104         som_flash: flash@0 {
0105                 compatible = "jedec,spi-nor";
0106                 reg = <0>;
0107                 spi-max-frequency = <80000000>;
0108                 spi-rx-bus-width = <4>;
0109                 spi-tx-bus-width = <1>;
0110         };
0111 };
0112 
0113 &gpio1 {
0114         gpio-line-names = "nINT_ETHPHY", "", "WDOG_INT", "X_RTC_INT",
0115                 "", "", "", "RESET_ETHPHY",
0116                 "", "", "nENABLE_FLATLINK";
0117 };
0118 
0119 /* I2C1 */
0120 &i2c1 {
0121         clock-frequency = <400000>;
0122         pinctrl-names = "default","gpio";
0123         pinctrl-0 = <&pinctrl_i2c1>;
0124         pinctrl-1 = <&pinctrl_i2c1_gpio>;
0125         scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0126         sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0127         status = "okay";
0128 
0129         pmic@8 {
0130                 compatible = "nxp,pf8121a";
0131                 reg = <0x08>;
0132 
0133                 regulators {
0134                         reg_nvcc_sd1: ldo1 {
0135                                 regulator-always-on;
0136                                 regulator-boot-on;
0137                                 regulator-max-microvolt = <3300000>;
0138                                 regulator-min-microvolt = <3300000>;
0139                                 regulator-name = "NVCC_SD1 (LDO1)";
0140 
0141                                 regulator-state-mem {
0142                                         regulator-off-in-suspend;
0143                                 };
0144                         };
0145 
0146                         reg_nvcc_sd2: ldo2 {
0147                                 regulator-always-on;
0148                                 regulator-boot-on;
0149                                 regulator-max-microvolt = <3300000>;
0150                                 regulator-min-microvolt = <1800000>;
0151                                 regulator-name = "NVCC_SD2 (LDO2)";
0152                                 vselect-en;
0153 
0154                                 regulator-state-mem {
0155                                         regulator-off-in-suspend;
0156                                 };
0157                         };
0158 
0159                         reg_vcc_enet: ldo3 {
0160                                 regulator-always-on;
0161                                 regulator-boot-on;
0162                                 regulator-max-microvolt = <2500000>;
0163                                 regulator-min-microvolt = <1500000>;
0164                                 regulator-name = "VCC_ENET_2V5 (LDO3)";
0165 
0166                                 regulator-state-mem {
0167                                         regulator-off-in-suspend;
0168                                 };
0169                         };
0170 
0171                         reg_vdda_1v8: ldo4 {
0172                                 regulator-always-on;
0173                                 regulator-boot-on;
0174                                 regulator-max-microvolt = <1800000>;
0175                                 regulator-min-microvolt = <1500000>;
0176                                 regulator-name = "VDDA_1V8 (LDO4)";
0177 
0178                                 regulator-state-mem {
0179                                         regulator-on-in-suspend;
0180                                         regulator-suspend-min-microvolt = <1500000>;
0181                                         regulator-suspend-max-microvolt = <1500000>;
0182                                 };
0183                         };
0184 
0185                         reg_soc_vdda_phy: buck1 {
0186                                 regulator-always-on;
0187                                 regulator-boot-on;
0188                                 regulator-max-microvolt = <900000>;
0189                                 regulator-min-microvolt = <400000>;
0190                                 regulator-name = "VDD_SOC_VDDA_PHY_0P8 (BUCK1)";
0191 
0192                                 regulator-state-mem {
0193                                         regulator-on-in-suspend;
0194                                         regulator-suspend-min-microvolt = <400000>;
0195                                         regulator-suspend-max-microvolt = <400000>;
0196                                 };
0197                         };
0198 
0199                         reg_vdd_gpu_dram: buck2 {
0200                                 regulator-always-on;
0201                                 regulator-boot-on;
0202                                 regulator-max-microvolt = <1000000>;
0203                                 regulator-min-microvolt = <1000000>;
0204                                 regulator-name = "VDD_GPU_DRAM (BUCK2)";
0205 
0206                                 regulator-state-mem {
0207                                         regulator-on-in-suspend;
0208                                         regulator-suspend-max-microvolt = <1000000>;
0209                                         regulator-suspend-min-microvolt = <1000000>;
0210                                 };
0211                         };
0212 
0213                         reg_vdd_gpu: buck3 {
0214                                 regulator-always-on;
0215                                 regulator-boot-on;
0216                                 regulator-max-microvolt = <1000000>;
0217                                 regulator-min-microvolt = <400000>;
0218                                 regulator-name = "VDD_VPU (BUCK3)";
0219 
0220                                 regulator-state-mem {
0221                                         regulator-off-in-suspend;
0222                                 };
0223                         };
0224 
0225                         reg_vdd_mipi: buck4 {
0226                                 regulator-always-on;
0227                                 regulator-boot-on;
0228                                 regulator-max-microvolt = <1050000>;
0229                                 regulator-min-microvolt = <900000>;
0230                                 regulator-name = "VDD_MIPI_0P9 (BUCK4)";
0231 
0232                                 regulator-state-mem {
0233                                         regulator-off-in-suspend;
0234                                 };
0235                         };
0236 
0237                         reg_vdd_arm: buck5 {
0238                                 regulator-always-on;
0239                                 regulator-boot-on;
0240                                 regulator-max-microvolt = <1050000>;
0241                                 regulator-min-microvolt = <400000>;
0242                                 regulator-name = "VDD_ARM (BUCK5)";
0243 
0244                                 regulator-state-mem {
0245                                         regulator-off-in-suspend;
0246                                 };
0247                         };
0248 
0249                         reg_vdd_1v8: buck6 {
0250                                 regulator-always-on;
0251                                 regulator-boot-on;
0252                                 regulator-max-microvolt = <1800000>;
0253                                 regulator-min-microvolt = <1800000>;
0254                                 regulator-name = "VDD_1V8 (BUCK6)";
0255 
0256                                 regulator-state-mem {
0257                                         regulator-on-in-suspend;
0258                                         regulator-suspend-max-microvolt = <1800000>;
0259                                         regulator-suspend-min-microvolt = <1800000>;
0260                                 };
0261                         };
0262 
0263                         reg_nvcc_dram: buck7 {
0264                                 regulator-always-on;
0265                                 regulator-boot-on;
0266                                 regulator-max-microvolt = <1100000>;
0267                                 regulator-min-microvolt = <1100000>;
0268                                 regulator-name = "NVCC_DRAM_1P1V (BUCK7)";
0269                         };
0270 
0271                         reg_vsnvs: vsnvs {
0272                                 regulator-always-on;
0273                                 regulator-boot-on;
0274                                 regulator-max-microvolt = <1800000>;
0275                                 regulator-min-microvolt = <1800000>;
0276                                 regulator-name = "NVCC_SNVS_1P8 (VSNVS)";
0277                         };
0278                 };
0279         };
0280 
0281         sn65dsi83: bridge@2d {
0282                 compatible = "ti,sn65dsi83";
0283                 enable-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
0284                 pinctrl-names = "default";
0285                 pinctrl-0 = <&pinctrl_sn65dsi83>;
0286                 reg = <0x2d>;
0287                 status = "disabled";
0288         };
0289 
0290         eeprom@51 {
0291                 compatible = "atmel,24c32";
0292                 pagesize = <32>;
0293                 reg = <0x51>;
0294                 vcc-supply = <&reg_vdd_3v3_s>;
0295         };
0296 
0297         rv3028: rtc@52 {
0298                 compatible = "microcrystal,rv3028";
0299                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
0300                 interrupt-parent = <&gpio1>;
0301                 pinctrl-names = "default";
0302                 pinctrl-0 = <&pinctrl_rtc>;
0303                 reg = <0x52>;
0304         };
0305 };
0306 
0307 /* EMMC */
0308 &usdhc3 {
0309         assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>;
0310         assigned-clock-rates = <400000000>;
0311         bus-width = <8>;
0312         keep-power-in-suspend;
0313         pinctrl-names = "default", "state_100mhz", "state_200mhz";
0314         pinctrl-0 = <&pinctrl_usdhc3>;
0315         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
0316         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
0317         non-removable;
0318         status = "okay";
0319 };
0320 
0321 /* Watchdog */
0322 &wdog1 {
0323         fsl,ext-reset-output;
0324         pinctrl-names = "default";
0325         pinctrl-0 = <&pinctrl_wdog>;
0326         status = "okay";
0327 };
0328 
0329 &iomuxc {
0330         pinctrl_fec1: fec1grp {
0331                 fsl,pins = <
0332                         MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                 0x2
0333                         MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO               0x2
0334                         MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x90
0335                         MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x90
0336                         MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x90
0337                         MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x90
0338                         MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x90
0339                         MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x90
0340                         MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x16
0341                         MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x16
0342                         MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x16
0343                         MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x16
0344                         MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x16
0345                         MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x16
0346                         MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7               0x10
0347                 >;
0348         };
0349 
0350         pinctrl_flexspi0: flexspi0grp {
0351                 fsl,pins = <
0352                         MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK               0x1c2
0353                         MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B            0x82
0354                         MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0           0x82
0355                         MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1           0x82
0356                         MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2           0x82
0357                         MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3           0x82
0358                 >;
0359         };
0360 
0361         pinctrl_i2c1: i2c1grp {
0362                 fsl,pins = <
0363                         MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                  0x400001c0
0364                         MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL                  0x400001c0
0365                 >;
0366         };
0367 
0368         pinctrl_i2c1_gpio: i2c1gpiogrp {
0369                 fsl,pins = <
0370                         MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15                0x1e0
0371                         MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14                0x1e0
0372                 >;
0373         };
0374 
0375         pinctrl_rtc: rtcgrp {
0376                 fsl,pins = <
0377                         MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3               0x1c0
0378                 >;
0379         };
0380 
0381         pinctrl_sn65dsi83: sn65dsi83grp {
0382                 fsl,pins = <
0383                         MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10              0x0
0384                 >;
0385         };
0386 
0387         pinctrl_usdhc3: usdhc3grp {
0388                 fsl,pins = <
0389                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d0
0390                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x190
0391                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d0
0392                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d0
0393                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d0
0394                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d0
0395                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
0396                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d0
0397                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d0
0398                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x190
0399                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d0
0400                 >;
0401         };
0402 
0403         pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
0404                 fsl,pins = <
0405                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d4
0406                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x194
0407                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d4
0408                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d4
0409                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d4
0410                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d4
0411                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d4
0412                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d4
0413                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d4
0414                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x194
0415                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d4
0416                 >;
0417         };
0418 
0419         pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
0420                 fsl,pins = <
0421                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d6
0422                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x196
0423                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d6
0424                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d6
0425                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d6
0426                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d6
0427                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d6
0428                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d6
0429                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d6
0430                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x196
0431                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d6
0432                 >;
0433         };
0434 
0435         pinctrl_wdog: wdoggrp {
0436                 fsl,pins = <
0437                         MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B            0x26
0438                 >;
0439         };
0440 };