1*d4916664SConor Dooley// SPDX-License-Identifier: GPL-2.0 2*d4916664SConor Dooley/* 3*d4916664SConor Dooley * Original all-in-one devicetree: 4*d4916664SConor Dooley * Copyright (C) 2021-2022 - Wolfgang Grandegger <wg@aries-embedded.de> 5*d4916664SConor Dooley * Rewritten to use includes: 6*d4916664SConor Dooley * Copyright (C) 2022 - Conor Dooley <conor.dooley@microchip.com> 7*d4916664SConor Dooley */ 8*d4916664SConor Dooley/dts-v1/; 9*d4916664SConor Dooley 10*d4916664SConor Dooley#include "mpfs.dtsi" 11*d4916664SConor Dooley#include "mpfs-m100pfs-fabric.dtsi" 12*d4916664SConor Dooley 13*d4916664SConor Dooley/* Clock frequency (in Hz) of the rtcclk */ 14*d4916664SConor Dooley#define MTIMER_FREQ 1000000 15*d4916664SConor Dooley 16*d4916664SConor Dooley/ { 17*d4916664SConor Dooley model = "Aries Embedded M100PFEVPS"; 18*d4916664SConor Dooley compatible = "aries,m100pfsevp", "microchip,mpfs"; 19*d4916664SConor Dooley 20*d4916664SConor Dooley aliases { 21*d4916664SConor Dooley ethernet0 = &mac0; 22*d4916664SConor Dooley ethernet1 = &mac1; 23*d4916664SConor Dooley serial0 = &mmuart0; 24*d4916664SConor Dooley serial1 = &mmuart1; 25*d4916664SConor Dooley serial2 = &mmuart2; 26*d4916664SConor Dooley serial3 = &mmuart3; 27*d4916664SConor Dooley serial4 = &mmuart4; 28*d4916664SConor Dooley gpio0 = &gpio0; 29*d4916664SConor Dooley gpio1 = &gpio2; 30*d4916664SConor Dooley }; 31*d4916664SConor Dooley 32*d4916664SConor Dooley chosen { 33*d4916664SConor Dooley stdout-path = "serial1:115200n8"; 34*d4916664SConor Dooley }; 35*d4916664SConor Dooley 36*d4916664SConor Dooley cpus { 37*d4916664SConor Dooley timebase-frequency = <MTIMER_FREQ>; 38*d4916664SConor Dooley }; 39*d4916664SConor Dooley 40*d4916664SConor Dooley ddrc_cache_lo: memory@80000000 { 41*d4916664SConor Dooley device_type = "memory"; 42*d4916664SConor Dooley reg = <0x0 0x80000000 0x0 0x40000000>; 43*d4916664SConor Dooley }; 44*d4916664SConor Dooley ddrc_cache_hi: memory@1040000000 { 45*d4916664SConor Dooley device_type = "memory"; 46*d4916664SConor Dooley reg = <0x10 0x40000000 0x0 0x40000000>; 47*d4916664SConor Dooley }; 48*d4916664SConor Dooley}; 49*d4916664SConor Dooley 50*d4916664SConor Dooley&can0 { 51*d4916664SConor Dooley status = "okay"; 52*d4916664SConor Dooley}; 53*d4916664SConor Dooley 54*d4916664SConor Dooley&i2c0 { 55*d4916664SConor Dooley status = "okay"; 56*d4916664SConor Dooley}; 57*d4916664SConor Dooley 58*d4916664SConor Dooley&i2c1 { 59*d4916664SConor Dooley status = "okay"; 60*d4916664SConor Dooley}; 61*d4916664SConor Dooley 62*d4916664SConor Dooley&gpio0 { 63*d4916664SConor Dooley interrupts = <13>, <14>, <15>, <16>, 64*d4916664SConor Dooley <17>, <18>, <19>, <20>, 65*d4916664SConor Dooley <21>, <22>, <23>, <24>, 66*d4916664SConor Dooley <25>, <26>; 67*d4916664SConor Dooley ngpios = <14>; 68*d4916664SConor Dooley status = "okay"; 69*d4916664SConor Dooley 70*d4916664SConor Dooley pmic-irq-hog { 71*d4916664SConor Dooley gpio-hog; 72*d4916664SConor Dooley gpios = <13 0>; 73*d4916664SConor Dooley input; 74*d4916664SConor Dooley }; 75*d4916664SConor Dooley 76*d4916664SConor Dooley /* Set to low for eMMC, high for SD-card */ 77*d4916664SConor Dooley mmc-sel-hog { 78*d4916664SConor Dooley gpio-hog; 79*d4916664SConor Dooley gpios = <12 0>; 80*d4916664SConor Dooley output-high; 81*d4916664SConor Dooley }; 82*d4916664SConor Dooley}; 83*d4916664SConor Dooley 84*d4916664SConor Dooley&gpio2 { 85*d4916664SConor Dooley interrupts = <13>, <14>, <15>, <16>, 86*d4916664SConor Dooley <17>, <18>, <19>, <20>, 87*d4916664SConor Dooley <21>, <22>, <23>, <24>, 88*d4916664SConor Dooley <25>, <26>, <27>, <28>, 89*d4916664SConor Dooley <29>, <30>, <31>, <32>, 90*d4916664SConor Dooley <33>, <34>, <35>, <36>, 91*d4916664SConor Dooley <37>, <38>, <39>, <40>, 92*d4916664SConor Dooley <41>, <42>, <43>, <44>; 93*d4916664SConor Dooley status = "okay"; 94*d4916664SConor Dooley}; 95*d4916664SConor Dooley 96*d4916664SConor Dooley&mac0 { 97*d4916664SConor Dooley status = "okay"; 98*d4916664SConor Dooley phy-mode = "gmii"; 99*d4916664SConor Dooley phy-handle = <&phy0>; 100*d4916664SConor Dooley phy0: ethernet-phy@0 { 101*d4916664SConor Dooley reg = <0>; 102*d4916664SConor Dooley }; 103*d4916664SConor Dooley}; 104*d4916664SConor Dooley 105*d4916664SConor Dooley&mac1 { 106*d4916664SConor Dooley status = "okay"; 107*d4916664SConor Dooley phy-mode = "gmii"; 108*d4916664SConor Dooley phy-handle = <&phy1>; 109*d4916664SConor Dooley phy1: ethernet-phy@0 { 110*d4916664SConor Dooley reg = <0>; 111*d4916664SConor Dooley }; 112*d4916664SConor Dooley}; 113*d4916664SConor Dooley 114*d4916664SConor Dooley&mbox { 115*d4916664SConor Dooley status = "okay"; 116*d4916664SConor Dooley}; 117*d4916664SConor Dooley 118*d4916664SConor Dooley&mmc { 119*d4916664SConor Dooley max-frequency = <50000000>; 120*d4916664SConor Dooley bus-width = <4>; 121*d4916664SConor Dooley cap-mmc-highspeed; 122*d4916664SConor Dooley cap-sd-highspeed; 123*d4916664SConor Dooley no-1-8-v; 124*d4916664SConor Dooley sd-uhs-sdr12; 125*d4916664SConor Dooley sd-uhs-sdr25; 126*d4916664SConor Dooley sd-uhs-sdr50; 127*d4916664SConor Dooley sd-uhs-sdr104; 128*d4916664SConor Dooley disable-wp; 129*d4916664SConor Dooley status = "okay"; 130*d4916664SConor Dooley}; 131*d4916664SConor Dooley 132*d4916664SConor Dooley&mmuart1 { 133*d4916664SConor Dooley status = "okay"; 134*d4916664SConor Dooley}; 135*d4916664SConor Dooley 136*d4916664SConor Dooley&mmuart2 { 137*d4916664SConor Dooley status = "okay"; 138*d4916664SConor Dooley}; 139*d4916664SConor Dooley 140*d4916664SConor Dooley&mmuart3 { 141*d4916664SConor Dooley status = "okay"; 142*d4916664SConor Dooley}; 143*d4916664SConor Dooley 144*d4916664SConor Dooley&mmuart4 { 145*d4916664SConor Dooley status = "okay"; 146*d4916664SConor Dooley}; 147*d4916664SConor Dooley 148*d4916664SConor Dooley&pcie { 149*d4916664SConor Dooley status = "okay"; 150*d4916664SConor Dooley}; 151*d4916664SConor Dooley 152*d4916664SConor Dooley&qspi { 153*d4916664SConor Dooley status = "okay"; 154*d4916664SConor Dooley}; 155*d4916664SConor Dooley 156*d4916664SConor Dooley&refclk { 157*d4916664SConor Dooley clock-frequency = <125000000>; 158*d4916664SConor Dooley}; 159*d4916664SConor Dooley 160*d4916664SConor Dooley&rtc { 161*d4916664SConor Dooley status = "okay"; 162*d4916664SConor Dooley}; 163*d4916664SConor Dooley 164*d4916664SConor Dooley&spi0 { 165*d4916664SConor Dooley status = "okay"; 166*d4916664SConor Dooley}; 167*d4916664SConor Dooley 168*d4916664SConor Dooley&spi1 { 169*d4916664SConor Dooley status = "okay"; 170*d4916664SConor Dooley}; 171*d4916664SConor Dooley 172*d4916664SConor Dooley&syscontroller { 173*d4916664SConor Dooley status = "okay"; 174*d4916664SConor Dooley}; 175*d4916664SConor Dooley 176*d4916664SConor Dooley&usb { 177*d4916664SConor Dooley status = "okay"; 178*d4916664SConor Dooley dr_mode = "host"; 179*d4916664SConor Dooley}; 180