1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * STx/Freescale ADS5125 MPC5125 silicon 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2009 Freescale Semiconductor Inc. All rights reserved. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Reworked by Matteo Facchinetti (engineering@sirius-es.it) 8*4882a593Smuzhiyun * Copyright (C) 2013 Sirius Electronic Systems 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include <dt-bindings/clock/mpc512x-clock.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/dts-v1/; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun/ { 16*4882a593Smuzhiyun model = "mpc5125twr"; // In BSP "mpc5125ads" 17*4882a593Smuzhiyun compatible = "fsl,mpc5125ads", "fsl,mpc5125"; 18*4882a593Smuzhiyun #address-cells = <1>; 19*4882a593Smuzhiyun #size-cells = <1>; 20*4882a593Smuzhiyun interrupt-parent = <&ipic>; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun aliases { 23*4882a593Smuzhiyun gpio0 = &gpio0; 24*4882a593Smuzhiyun gpio1 = &gpio1; 25*4882a593Smuzhiyun ethernet0 = ð0; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun cpus { 29*4882a593Smuzhiyun #address-cells = <1>; 30*4882a593Smuzhiyun #size-cells = <0>; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun PowerPC,5125@0 { 33*4882a593Smuzhiyun device_type = "cpu"; 34*4882a593Smuzhiyun reg = <0>; 35*4882a593Smuzhiyun d-cache-line-size = <0x20>; // 32 bytes 36*4882a593Smuzhiyun i-cache-line-size = <0x20>; // 32 bytes 37*4882a593Smuzhiyun d-cache-size = <0x8000>; // L1, 32K 38*4882a593Smuzhiyun i-cache-size = <0x8000>; // L1, 32K 39*4882a593Smuzhiyun timebase-frequency = <49500000>;// 49.5 MHz (csb/4) 40*4882a593Smuzhiyun bus-frequency = <198000000>; // 198 MHz csb bus 41*4882a593Smuzhiyun clock-frequency = <396000000>; // 396 MHz ppc core 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun memory { 46*4882a593Smuzhiyun device_type = "memory"; 47*4882a593Smuzhiyun reg = <0x00000000 0x10000000>; // 256MB at 0 48*4882a593Smuzhiyun }; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun sram@30000000 { 51*4882a593Smuzhiyun compatible = "fsl,mpc5121-sram"; 52*4882a593Smuzhiyun reg = <0x30000000 0x08000>; // 32K at 0x30000000 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun clocks { 56*4882a593Smuzhiyun #address-cells = <1>; 57*4882a593Smuzhiyun #size-cells = <0>; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun osc: osc { 60*4882a593Smuzhiyun compatible = "fixed-clock"; 61*4882a593Smuzhiyun #clock-cells = <0>; 62*4882a593Smuzhiyun clock-frequency = <33000000>; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun soc@80000000 { 67*4882a593Smuzhiyun compatible = "fsl,mpc5121-immr"; 68*4882a593Smuzhiyun #address-cells = <1>; 69*4882a593Smuzhiyun #size-cells = <1>; 70*4882a593Smuzhiyun ranges = <0x0 0x80000000 0x400000>; 71*4882a593Smuzhiyun reg = <0x80000000 0x400000>; 72*4882a593Smuzhiyun bus-frequency = <66000000>; // 66 MHz ips bus 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun // IPIC 75*4882a593Smuzhiyun // interrupts cell = <intr #, sense> 76*4882a593Smuzhiyun // sense values match linux IORESOURCE_IRQ_* defines: 77*4882a593Smuzhiyun // sense == 8: Level, low assertion 78*4882a593Smuzhiyun // sense == 2: Edge, high-to-low change 79*4882a593Smuzhiyun // 80*4882a593Smuzhiyun ipic: interrupt-controller@c00 { 81*4882a593Smuzhiyun compatible = "fsl,mpc5121-ipic", "fsl,ipic"; 82*4882a593Smuzhiyun interrupt-controller; 83*4882a593Smuzhiyun #address-cells = <0>; 84*4882a593Smuzhiyun #interrupt-cells = <2>; 85*4882a593Smuzhiyun reg = <0xc00 0x100>; 86*4882a593Smuzhiyun }; 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun rtc@a00 { // Real time clock 89*4882a593Smuzhiyun compatible = "fsl,mpc5121-rtc"; 90*4882a593Smuzhiyun reg = <0xa00 0x100>; 91*4882a593Smuzhiyun interrupts = <79 0x8 80 0x8>; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun reset@e00 { // Reset module 95*4882a593Smuzhiyun compatible = "fsl,mpc5125-reset"; 96*4882a593Smuzhiyun reg = <0xe00 0x100>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun clks: clock@f00 { // Clock control 100*4882a593Smuzhiyun compatible = "fsl,mpc5121-clock"; 101*4882a593Smuzhiyun reg = <0xf00 0x100>; 102*4882a593Smuzhiyun #clock-cells = <1>; 103*4882a593Smuzhiyun clocks = <&osc>; 104*4882a593Smuzhiyun clock-names = "osc"; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun pmc@1000{ // Power Management Controller 108*4882a593Smuzhiyun compatible = "fsl,mpc5121-pmc"; 109*4882a593Smuzhiyun reg = <0x1000 0x100>; 110*4882a593Smuzhiyun interrupts = <83 0x2>; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun gpio0: gpio@1100 { 114*4882a593Smuzhiyun compatible = "fsl,mpc5125-gpio"; 115*4882a593Smuzhiyun reg = <0x1100 0x080>; 116*4882a593Smuzhiyun interrupts = <78 0x8>; 117*4882a593Smuzhiyun }; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun gpio1: gpio@1180 { 120*4882a593Smuzhiyun compatible = "fsl,mpc5125-gpio"; 121*4882a593Smuzhiyun reg = <0x1180 0x080>; 122*4882a593Smuzhiyun interrupts = <86 0x8>; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun can@1300 { // CAN rev.2 126*4882a593Smuzhiyun compatible = "fsl,mpc5121-mscan"; 127*4882a593Smuzhiyun interrupts = <12 0x8>; 128*4882a593Smuzhiyun reg = <0x1300 0x80>; 129*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_BDLC>, 130*4882a593Smuzhiyun <&clks MPC512x_CLK_IPS>, 131*4882a593Smuzhiyun <&clks MPC512x_CLK_SYS>, 132*4882a593Smuzhiyun <&clks MPC512x_CLK_REF>, 133*4882a593Smuzhiyun <&clks MPC512x_CLK_MSCAN0_MCLK>; 134*4882a593Smuzhiyun clock-names = "ipg", "ips", "sys", "ref", "mclk"; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun can@1380 { 138*4882a593Smuzhiyun compatible = "fsl,mpc5121-mscan"; 139*4882a593Smuzhiyun interrupts = <13 0x8>; 140*4882a593Smuzhiyun reg = <0x1380 0x80>; 141*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_BDLC>, 142*4882a593Smuzhiyun <&clks MPC512x_CLK_IPS>, 143*4882a593Smuzhiyun <&clks MPC512x_CLK_SYS>, 144*4882a593Smuzhiyun <&clks MPC512x_CLK_REF>, 145*4882a593Smuzhiyun <&clks MPC512x_CLK_MSCAN1_MCLK>; 146*4882a593Smuzhiyun clock-names = "ipg", "ips", "sys", "ref", "mclk"; 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun sdhc@1500 { 150*4882a593Smuzhiyun compatible = "fsl,mpc5121-sdhc"; 151*4882a593Smuzhiyun interrupts = <8 0x8>; 152*4882a593Smuzhiyun reg = <0x1500 0x100>; 153*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_IPS>, 154*4882a593Smuzhiyun <&clks MPC512x_CLK_SDHC>; 155*4882a593Smuzhiyun clock-names = "ipg", "per"; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun i2c@1700 { 159*4882a593Smuzhiyun #address-cells = <1>; 160*4882a593Smuzhiyun #size-cells = <0>; 161*4882a593Smuzhiyun compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 162*4882a593Smuzhiyun reg = <0x1700 0x20>; 163*4882a593Smuzhiyun interrupts = <0x9 0x8>; 164*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_I2C>; 165*4882a593Smuzhiyun clock-names = "ipg"; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun i2c@1720 { 169*4882a593Smuzhiyun #address-cells = <1>; 170*4882a593Smuzhiyun #size-cells = <0>; 171*4882a593Smuzhiyun compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 172*4882a593Smuzhiyun reg = <0x1720 0x20>; 173*4882a593Smuzhiyun interrupts = <0xa 0x8>; 174*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_I2C>; 175*4882a593Smuzhiyun clock-names = "ipg"; 176*4882a593Smuzhiyun }; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun i2c@1740 { 179*4882a593Smuzhiyun #address-cells = <1>; 180*4882a593Smuzhiyun #size-cells = <0>; 181*4882a593Smuzhiyun compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 182*4882a593Smuzhiyun reg = <0x1740 0x20>; 183*4882a593Smuzhiyun interrupts = <0xb 0x8>; 184*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_I2C>; 185*4882a593Smuzhiyun clock-names = "ipg"; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun i2ccontrol@1760 { 189*4882a593Smuzhiyun compatible = "fsl,mpc5121-i2c-ctrl"; 190*4882a593Smuzhiyun reg = <0x1760 0x8>; 191*4882a593Smuzhiyun }; 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun diu@2100 { 194*4882a593Smuzhiyun compatible = "fsl,mpc5121-diu"; 195*4882a593Smuzhiyun reg = <0x2100 0x100>; 196*4882a593Smuzhiyun interrupts = <64 0x8>; 197*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_DIU>; 198*4882a593Smuzhiyun clock-names = "ipg"; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun mdio@2800 { 202*4882a593Smuzhiyun compatible = "fsl,mpc5121-fec-mdio"; 203*4882a593Smuzhiyun reg = <0x2800 0x800>; 204*4882a593Smuzhiyun #address-cells = <1>; 205*4882a593Smuzhiyun #size-cells = <0>; 206*4882a593Smuzhiyun phy0: ethernet-phy@0 { 207*4882a593Smuzhiyun reg = <1>; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun eth0: ethernet@2800 { 212*4882a593Smuzhiyun compatible = "fsl,mpc5125-fec"; 213*4882a593Smuzhiyun reg = <0x2800 0x800>; 214*4882a593Smuzhiyun local-mac-address = [ 00 00 00 00 00 00 ]; 215*4882a593Smuzhiyun interrupts = <4 0x8>; 216*4882a593Smuzhiyun phy-handle = < &phy0 >; 217*4882a593Smuzhiyun phy-connection-type = "rmii"; 218*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_FEC>; 219*4882a593Smuzhiyun clock-names = "per"; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun // IO control 223*4882a593Smuzhiyun ioctl@a000 { 224*4882a593Smuzhiyun compatible = "fsl,mpc5125-ioctl"; 225*4882a593Smuzhiyun reg = <0xA000 0x1000>; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun // disable USB1 port 229*4882a593Smuzhiyun // TODO: 230*4882a593Smuzhiyun // correct pinmux config and fix USB3320 ulpi dependency 231*4882a593Smuzhiyun // before re-enabling it 232*4882a593Smuzhiyun usb@3000 { 233*4882a593Smuzhiyun compatible = "fsl,mpc5121-usb2-dr"; 234*4882a593Smuzhiyun reg = <0x3000 0x400>; 235*4882a593Smuzhiyun #address-cells = <1>; 236*4882a593Smuzhiyun #size-cells = <0>; 237*4882a593Smuzhiyun interrupts = <43 0x8>; 238*4882a593Smuzhiyun dr_mode = "host"; 239*4882a593Smuzhiyun phy_type = "ulpi"; 240*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_USB1>; 241*4882a593Smuzhiyun clock-names = "ipg"; 242*4882a593Smuzhiyun status = "disabled"; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun sclpc@10100 { 246*4882a593Smuzhiyun compatible = "fsl,mpc512x-lpbfifo"; 247*4882a593Smuzhiyun reg = <0x10100 0x50>; 248*4882a593Smuzhiyun interrupts = <7 0x8>; 249*4882a593Smuzhiyun dmas = <&dma0 26>; 250*4882a593Smuzhiyun dma-names = "rx-tx"; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun // 5125 PSCs are not 52xx or 5121 PSC compatible 254*4882a593Smuzhiyun // PSC1 uart0 aka ttyPSC0 255*4882a593Smuzhiyun serial@11100 { 256*4882a593Smuzhiyun compatible = "fsl,mpc5125-psc-uart", "fsl,mpc5125-psc"; 257*4882a593Smuzhiyun reg = <0x11100 0x100>; 258*4882a593Smuzhiyun interrupts = <40 0x8>; 259*4882a593Smuzhiyun fsl,rx-fifo-size = <16>; 260*4882a593Smuzhiyun fsl,tx-fifo-size = <16>; 261*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_PSC1>, 262*4882a593Smuzhiyun <&clks MPC512x_CLK_PSC1_MCLK>; 263*4882a593Smuzhiyun clock-names = "ipg", "mclk"; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun // PSC9 uart1 aka ttyPSC1 267*4882a593Smuzhiyun serial@11900 { 268*4882a593Smuzhiyun compatible = "fsl,mpc5125-psc-uart", "fsl,mpc5125-psc"; 269*4882a593Smuzhiyun reg = <0x11900 0x100>; 270*4882a593Smuzhiyun interrupts = <40 0x8>; 271*4882a593Smuzhiyun fsl,rx-fifo-size = <16>; 272*4882a593Smuzhiyun fsl,tx-fifo-size = <16>; 273*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_PSC9>, 274*4882a593Smuzhiyun <&clks MPC512x_CLK_PSC9_MCLK>; 275*4882a593Smuzhiyun clock-names = "ipg", "mclk"; 276*4882a593Smuzhiyun }; 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun pscfifo@11f00 { 279*4882a593Smuzhiyun compatible = "fsl,mpc5121-psc-fifo"; 280*4882a593Smuzhiyun reg = <0x11f00 0x100>; 281*4882a593Smuzhiyun interrupts = <40 0x8>; 282*4882a593Smuzhiyun clocks = <&clks MPC512x_CLK_PSC_FIFO>; 283*4882a593Smuzhiyun clock-names = "ipg"; 284*4882a593Smuzhiyun }; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun dma0: dma@14000 { 287*4882a593Smuzhiyun compatible = "fsl,mpc5121-dma"; // BSP name: "mpc512x-dma2" 288*4882a593Smuzhiyun reg = <0x14000 0x1800>; 289*4882a593Smuzhiyun interrupts = <65 0x8>; 290*4882a593Smuzhiyun #dma-cells = <1>; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun }; 293*4882a593Smuzhiyun}; 294