1587c1fedSFrieder Schrempf// SPDX-License-Identifier: GPL-2.0+ OR MIT 2587c1fedSFrieder Schrempf/* 3587c1fedSFrieder Schrempf * Copyright (C) 2019 Kontron Electronics GmbH 4587c1fedSFrieder Schrempf */ 5587c1fedSFrieder Schrempf 6587c1fedSFrieder Schrempf#include "imx8mm.dtsi" 7587c1fedSFrieder Schrempf 8587c1fedSFrieder Schrempf/ { 9587c1fedSFrieder Schrempf model = "Kontron SL i.MX8MM (N801X SOM)"; 10587c1fedSFrieder Schrempf compatible = "kontron,imx8mm-sl", "fsl,imx8mm"; 11587c1fedSFrieder Schrempf 12587c1fedSFrieder Schrempf memory@40000000 { 13587c1fedSFrieder Schrempf device_type = "memory"; 14587c1fedSFrieder Schrempf /* 15587c1fedSFrieder Schrempf * There are multiple SoM flavors with different DDR sizes. 16587c1fedSFrieder Schrempf * The smallest is 1GB. For larger sizes the bootloader will 17587c1fedSFrieder Schrempf * update the reg property. 18587c1fedSFrieder Schrempf */ 19587c1fedSFrieder Schrempf reg = <0x0 0x40000000 0 0x80000000>; 20587c1fedSFrieder Schrempf }; 21587c1fedSFrieder Schrempf 22587c1fedSFrieder Schrempf chosen { 23587c1fedSFrieder Schrempf stdout-path = &uart3; 24587c1fedSFrieder Schrempf }; 25587c1fedSFrieder Schrempf}; 26587c1fedSFrieder Schrempf 27587c1fedSFrieder Schrempf&A53_0 { 28587c1fedSFrieder Schrempf cpu-supply = <®_vdd_arm>; 29587c1fedSFrieder Schrempf}; 30587c1fedSFrieder Schrempf 31587c1fedSFrieder Schrempf&A53_1 { 32587c1fedSFrieder Schrempf cpu-supply = <®_vdd_arm>; 33587c1fedSFrieder Schrempf}; 34587c1fedSFrieder Schrempf 35587c1fedSFrieder Schrempf&A53_2 { 36587c1fedSFrieder Schrempf cpu-supply = <®_vdd_arm>; 37587c1fedSFrieder Schrempf}; 38587c1fedSFrieder Schrempf 39587c1fedSFrieder Schrempf&A53_3 { 40587c1fedSFrieder Schrempf cpu-supply = <®_vdd_arm>; 41587c1fedSFrieder Schrempf}; 42587c1fedSFrieder Schrempf 43587c1fedSFrieder Schrempf&ddrc { 44587c1fedSFrieder Schrempf operating-points-v2 = <&ddrc_opp_table>; 45587c1fedSFrieder Schrempf 46587c1fedSFrieder Schrempf ddrc_opp_table: opp-table { 47587c1fedSFrieder Schrempf compatible = "operating-points-v2"; 48587c1fedSFrieder Schrempf 490c068a36SMarek Vasut opp-100000000 { 50587c1fedSFrieder Schrempf opp-hz = /bits/ 64 <100000000>; 51587c1fedSFrieder Schrempf }; 52587c1fedSFrieder Schrempf 530c068a36SMarek Vasut opp-750000000 { 54587c1fedSFrieder Schrempf opp-hz = /bits/ 64 <750000000>; 55587c1fedSFrieder Schrempf }; 56587c1fedSFrieder Schrempf }; 57587c1fedSFrieder Schrempf}; 58587c1fedSFrieder Schrempf 59587c1fedSFrieder Schrempf&ecspi1 { 60587c1fedSFrieder Schrempf pinctrl-names = "default"; 61587c1fedSFrieder Schrempf pinctrl-0 = <&pinctrl_ecspi1>; 62587c1fedSFrieder Schrempf cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; 63587c1fedSFrieder Schrempf status = "okay"; 64587c1fedSFrieder Schrempf 65587c1fedSFrieder Schrempf flash@0 { 66587c1fedSFrieder Schrempf compatible = "mxicy,mx25r1635f", "jedec,spi-nor"; 67587c1fedSFrieder Schrempf spi-max-frequency = <80000000>; 68587c1fedSFrieder Schrempf reg = <0>; 69b6379196SFrieder Schrempf 70b6379196SFrieder Schrempf partitions { 71b6379196SFrieder Schrempf compatible = "fixed-partitions"; 72b6379196SFrieder Schrempf #address-cells = <1>; 73b6379196SFrieder Schrempf #size-cells = <1>; 74b6379196SFrieder Schrempf 75b6379196SFrieder Schrempf partition@0 { 76b6379196SFrieder Schrempf label = "u-boot"; 77b6379196SFrieder Schrempf reg = <0x0 0x1e0000>; 78b6379196SFrieder Schrempf }; 79b6379196SFrieder Schrempf 80b6379196SFrieder Schrempf partition@1e0000 { 81b6379196SFrieder Schrempf label = "env"; 82b6379196SFrieder Schrempf reg = <0x1e0000 0x10000>; 83b6379196SFrieder Schrempf }; 84b6379196SFrieder Schrempf 85b6379196SFrieder Schrempf partition@1f0000 { 86b6379196SFrieder Schrempf label = "env_redundant"; 87b6379196SFrieder Schrempf reg = <0x1f0000 0x10000>; 88b6379196SFrieder Schrempf }; 89b6379196SFrieder Schrempf }; 90587c1fedSFrieder Schrempf }; 91587c1fedSFrieder Schrempf}; 92587c1fedSFrieder Schrempf 93587c1fedSFrieder Schrempf&i2c1 { 94587c1fedSFrieder Schrempf clock-frequency = <400000>; 95587c1fedSFrieder Schrempf pinctrl-names = "default"; 96587c1fedSFrieder Schrempf pinctrl-0 = <&pinctrl_i2c1>; 97587c1fedSFrieder Schrempf status = "okay"; 98587c1fedSFrieder Schrempf 99587c1fedSFrieder Schrempf pca9450: pmic@25 { 100587c1fedSFrieder Schrempf compatible = "nxp,pca9450a"; 101587c1fedSFrieder Schrempf reg = <0x25>; 102587c1fedSFrieder Schrempf pinctrl-names = "default"; 103587c1fedSFrieder Schrempf pinctrl-0 = <&pinctrl_pmic>; 104587c1fedSFrieder Schrempf interrupt-parent = <&gpio1>; 105587c1fedSFrieder Schrempf interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 106587c1fedSFrieder Schrempf 107587c1fedSFrieder Schrempf regulators { 108587c1fedSFrieder Schrempf reg_vdd_soc: BUCK1 { 1099cb41873SFrieder Schrempf regulator-name = "+0V8_VDD_SOC (BUCK1)"; 110587c1fedSFrieder Schrempf regulator-min-microvolt = <800000>; 111587c1fedSFrieder Schrempf regulator-max-microvolt = <850000>; 112587c1fedSFrieder Schrempf regulator-boot-on; 113587c1fedSFrieder Schrempf regulator-always-on; 114587c1fedSFrieder Schrempf regulator-ramp-delay = <3125>; 115587c1fedSFrieder Schrempf nxp,dvs-run-voltage = <850000>; 116587c1fedSFrieder Schrempf nxp,dvs-standby-voltage = <800000>; 117587c1fedSFrieder Schrempf }; 118587c1fedSFrieder Schrempf 119587c1fedSFrieder Schrempf reg_vdd_arm: BUCK2 { 1209cb41873SFrieder Schrempf regulator-name = "+0V9_VDD_ARM (BUCK2)"; 121587c1fedSFrieder Schrempf regulator-min-microvolt = <850000>; 122587c1fedSFrieder Schrempf regulator-max-microvolt = <950000>; 123587c1fedSFrieder Schrempf regulator-boot-on; 124587c1fedSFrieder Schrempf regulator-always-on; 125587c1fedSFrieder Schrempf regulator-ramp-delay = <3125>; 126587c1fedSFrieder Schrempf nxp,dvs-run-voltage = <950000>; 127587c1fedSFrieder Schrempf nxp,dvs-standby-voltage = <850000>; 128587c1fedSFrieder Schrempf }; 129587c1fedSFrieder Schrempf 130587c1fedSFrieder Schrempf reg_vdd_dram: BUCK3 { 1319cb41873SFrieder Schrempf regulator-name = "+0V9_VDD_DRAM&PU (BUCK3)"; 132587c1fedSFrieder Schrempf regulator-min-microvolt = <850000>; 133587c1fedSFrieder Schrempf regulator-max-microvolt = <950000>; 134587c1fedSFrieder Schrempf regulator-boot-on; 135587c1fedSFrieder Schrempf regulator-always-on; 136587c1fedSFrieder Schrempf }; 137587c1fedSFrieder Schrempf 138587c1fedSFrieder Schrempf reg_vdd_3v3: BUCK4 { 1399cb41873SFrieder Schrempf regulator-name = "+3V3 (BUCK4)"; 140587c1fedSFrieder Schrempf regulator-min-microvolt = <3300000>; 141587c1fedSFrieder Schrempf regulator-max-microvolt = <3300000>; 142587c1fedSFrieder Schrempf regulator-boot-on; 143587c1fedSFrieder Schrempf regulator-always-on; 144587c1fedSFrieder Schrempf }; 145587c1fedSFrieder Schrempf 146587c1fedSFrieder Schrempf reg_vdd_1v8: BUCK5 { 1479cb41873SFrieder Schrempf regulator-name = "+1V8 (BUCK5)"; 148587c1fedSFrieder Schrempf regulator-min-microvolt = <1800000>; 149587c1fedSFrieder Schrempf regulator-max-microvolt = <1800000>; 150587c1fedSFrieder Schrempf regulator-boot-on; 151587c1fedSFrieder Schrempf regulator-always-on; 152587c1fedSFrieder Schrempf }; 153587c1fedSFrieder Schrempf 154587c1fedSFrieder Schrempf reg_nvcc_dram: BUCK6 { 1559cb41873SFrieder Schrempf regulator-name = "+1V1_NVCC_DRAM (BUCK6)"; 156587c1fedSFrieder Schrempf regulator-min-microvolt = <1100000>; 157587c1fedSFrieder Schrempf regulator-max-microvolt = <1100000>; 158587c1fedSFrieder Schrempf regulator-boot-on; 159587c1fedSFrieder Schrempf regulator-always-on; 160587c1fedSFrieder Schrempf }; 161587c1fedSFrieder Schrempf 162587c1fedSFrieder Schrempf reg_nvcc_snvs: LDO1 { 1639cb41873SFrieder Schrempf regulator-name = "+1V8_NVCC_SNVS (LDO1)"; 164587c1fedSFrieder Schrempf regulator-min-microvolt = <1800000>; 165587c1fedSFrieder Schrempf regulator-max-microvolt = <1800000>; 166587c1fedSFrieder Schrempf regulator-boot-on; 167587c1fedSFrieder Schrempf regulator-always-on; 168587c1fedSFrieder Schrempf }; 169587c1fedSFrieder Schrempf 170587c1fedSFrieder Schrempf reg_vdd_snvs: LDO2 { 1719cb41873SFrieder Schrempf regulator-name = "+0V8_VDD_SNVS (LDO2)"; 172587c1fedSFrieder Schrempf regulator-min-microvolt = <800000>; 173587c1fedSFrieder Schrempf regulator-max-microvolt = <900000>; 174587c1fedSFrieder Schrempf regulator-boot-on; 175587c1fedSFrieder Schrempf regulator-always-on; 176587c1fedSFrieder Schrempf }; 177587c1fedSFrieder Schrempf 178587c1fedSFrieder Schrempf reg_vdda: LDO3 { 1799cb41873SFrieder Schrempf regulator-name = "+1V8_VDDA (LDO3)"; 180587c1fedSFrieder Schrempf regulator-min-microvolt = <1800000>; 181587c1fedSFrieder Schrempf regulator-max-microvolt = <1800000>; 182587c1fedSFrieder Schrempf regulator-boot-on; 183587c1fedSFrieder Schrempf regulator-always-on; 184587c1fedSFrieder Schrempf }; 185587c1fedSFrieder Schrempf 186587c1fedSFrieder Schrempf reg_vdd_phy: LDO4 { 1879cb41873SFrieder Schrempf regulator-name = "+0V9_VDD_PHY (LDO4)"; 188587c1fedSFrieder Schrempf regulator-min-microvolt = <900000>; 189587c1fedSFrieder Schrempf regulator-max-microvolt = <900000>; 190587c1fedSFrieder Schrempf regulator-boot-on; 191587c1fedSFrieder Schrempf regulator-always-on; 192587c1fedSFrieder Schrempf }; 193587c1fedSFrieder Schrempf 194587c1fedSFrieder Schrempf reg_nvcc_sd: LDO5 { 1959cb41873SFrieder Schrempf regulator-name = "NVCC_SD (LDO5)"; 196587c1fedSFrieder Schrempf regulator-min-microvolt = <1800000>; 197587c1fedSFrieder Schrempf regulator-max-microvolt = <3300000>; 198587c1fedSFrieder Schrempf }; 199587c1fedSFrieder Schrempf }; 200587c1fedSFrieder Schrempf }; 201587c1fedSFrieder Schrempf}; 202587c1fedSFrieder Schrempf 203587c1fedSFrieder Schrempf&uart3 { /* console */ 204587c1fedSFrieder Schrempf pinctrl-names = "default"; 205587c1fedSFrieder Schrempf pinctrl-0 = <&pinctrl_uart3>; 206587c1fedSFrieder Schrempf status = "okay"; 207587c1fedSFrieder Schrempf}; 208587c1fedSFrieder Schrempf 209587c1fedSFrieder Schrempf&usdhc1 { 210587c1fedSFrieder Schrempf pinctrl-names = "default", "state_100mhz", "state_200mhz"; 211587c1fedSFrieder Schrempf pinctrl-0 = <&pinctrl_usdhc1>; 212587c1fedSFrieder Schrempf pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 213587c1fedSFrieder Schrempf pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 214587c1fedSFrieder Schrempf vmmc-supply = <®_vdd_3v3>; 215587c1fedSFrieder Schrempf vqmmc-supply = <®_vdd_1v8>; 216587c1fedSFrieder Schrempf bus-width = <8>; 217587c1fedSFrieder Schrempf non-removable; 218587c1fedSFrieder Schrempf status = "okay"; 219587c1fedSFrieder Schrempf}; 220587c1fedSFrieder Schrempf 221587c1fedSFrieder Schrempf&wdog1 { 222587c1fedSFrieder Schrempf pinctrl-names = "default"; 223587c1fedSFrieder Schrempf pinctrl-0 = <&pinctrl_wdog>; 224587c1fedSFrieder Schrempf fsl,ext-reset-output; 225587c1fedSFrieder Schrempf status = "okay"; 226587c1fedSFrieder Schrempf}; 227587c1fedSFrieder Schrempf 228587c1fedSFrieder Schrempf&iomuxc { 229587c1fedSFrieder Schrempf pinctrl_ecspi1: ecspi1grp { 230587c1fedSFrieder Schrempf fsl,pins = < 231587c1fedSFrieder Schrempf MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82 232587c1fedSFrieder Schrempf MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x82 233587c1fedSFrieder Schrempf MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x82 234587c1fedSFrieder Schrempf MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19 235587c1fedSFrieder Schrempf >; 236587c1fedSFrieder Schrempf }; 237587c1fedSFrieder Schrempf 238587c1fedSFrieder Schrempf pinctrl_i2c1: i2c1grp { 239587c1fedSFrieder Schrempf fsl,pins = < 240*44033a1cSFrieder Schrempf MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000083 241*44033a1cSFrieder Schrempf MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000083 242587c1fedSFrieder Schrempf >; 243587c1fedSFrieder Schrempf }; 244587c1fedSFrieder Schrempf 245587c1fedSFrieder Schrempf pinctrl_pmic: pmicgrp { 246587c1fedSFrieder Schrempf fsl,pins = < 247587c1fedSFrieder Schrempf MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 248587c1fedSFrieder Schrempf >; 249587c1fedSFrieder Schrempf }; 250587c1fedSFrieder Schrempf 251587c1fedSFrieder Schrempf pinctrl_uart3: uart3grp { 252587c1fedSFrieder Schrempf fsl,pins = < 253587c1fedSFrieder Schrempf MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140 254587c1fedSFrieder Schrempf MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140 255587c1fedSFrieder Schrempf >; 256587c1fedSFrieder Schrempf }; 257587c1fedSFrieder Schrempf 258587c1fedSFrieder Schrempf pinctrl_usdhc1: usdhc1grp { 259587c1fedSFrieder Schrempf fsl,pins = < 260587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x190 261587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0 262587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0 263587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0 264587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0 265587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0 266587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d0 267587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d0 268587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d0 269587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d0 270587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019 271587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x190 272587c1fedSFrieder Schrempf >; 273587c1fedSFrieder Schrempf }; 274587c1fedSFrieder Schrempf 275587c1fedSFrieder Schrempf pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 276587c1fedSFrieder Schrempf fsl,pins = < 277587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x194 278587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d4 279587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d4 280587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d4 281587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d4 282587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d4 283587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d4 284587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d4 285587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d4 286587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d4 287587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019 288587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x194 289587c1fedSFrieder Schrempf >; 290587c1fedSFrieder Schrempf }; 291587c1fedSFrieder Schrempf 292587c1fedSFrieder Schrempf pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 293587c1fedSFrieder Schrempf fsl,pins = < 294587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x196 295587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d6 296587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d6 297587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d6 298587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d6 299587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d6 300587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d6 301587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d6 302587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d6 303587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d6 304587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019 305587c1fedSFrieder Schrempf MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x196 306587c1fedSFrieder Schrempf >; 307587c1fedSFrieder Schrempf }; 308587c1fedSFrieder Schrempf 309587c1fedSFrieder Schrempf pinctrl_wdog: wdoggrp { 310587c1fedSFrieder Schrempf fsl,pins = < 311587c1fedSFrieder Schrempf MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 312587c1fedSFrieder Schrempf >; 313587c1fedSFrieder Schrempf }; 314587c1fedSFrieder Schrempf}; 315