1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Device Tree file for SolidRun Armada 38x Microsom 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2015 Russell King 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 8*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun memory { 12*4882a593Smuzhiyun device_type = "memory"; 13*4882a593Smuzhiyun reg = <0x00000000 0x10000000>; /* 256 MB */ 14*4882a593Smuzhiyun }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun soc { 17*4882a593Smuzhiyun ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 18*4882a593Smuzhiyun MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 19*4882a593Smuzhiyun MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 20*4882a593Smuzhiyun MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000 21*4882a593Smuzhiyun MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun internal-regs { 24*4882a593Smuzhiyun rtc@a3800 { 25*4882a593Smuzhiyun /* 26*4882a593Smuzhiyun * If the rtc doesn't work, run "date reset" 27*4882a593Smuzhiyun * twice in u-boot. 28*4882a593Smuzhiyun */ 29*4882a593Smuzhiyun status = "okay"; 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun}; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun&bm { 36*4882a593Smuzhiyun status = "okay"; 37*4882a593Smuzhiyun}; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun&bm_bppi { 40*4882a593Smuzhiyun status = "okay"; 41*4882a593Smuzhiyun}; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunð0 { 44*4882a593Smuzhiyun /* ethernet@70000 */ 45*4882a593Smuzhiyun pinctrl-0 = <&ge0_rgmii_pins>; 46*4882a593Smuzhiyun pinctrl-names = "default"; 47*4882a593Smuzhiyun phy = <&phy_dedicated>; 48*4882a593Smuzhiyun phy-mode = "rgmii-id"; 49*4882a593Smuzhiyun buffer-manager = <&bm>; 50*4882a593Smuzhiyun bm,pool-long = <0>; 51*4882a593Smuzhiyun bm,pool-short = <1>; 52*4882a593Smuzhiyun status = "okay"; 53*4882a593Smuzhiyun}; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun&mdio { 56*4882a593Smuzhiyun /* 57*4882a593Smuzhiyun * Add the phy clock here, so the phy can be accessed to read its 58*4882a593Smuzhiyun * IDs prior to binding with the driver. 59*4882a593Smuzhiyun */ 60*4882a593Smuzhiyun pinctrl-0 = <&mdio_pins µsom_phy_clk_pins>; 61*4882a593Smuzhiyun pinctrl-names = "default"; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun phy_dedicated: ethernet-phy@0 { 64*4882a593Smuzhiyun /* 65*4882a593Smuzhiyun * Annoyingly, the marvell phy driver configures the LED 66*4882a593Smuzhiyun * register, rather than preserving reset-loaded setting. 67*4882a593Smuzhiyun * We undo that rubbish here. 68*4882a593Smuzhiyun */ 69*4882a593Smuzhiyun marvell,reg-init = <3 16 0 0x101e>; 70*4882a593Smuzhiyun reg = <0>; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun}; 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun&i2c0 { 75*4882a593Smuzhiyun clock-frequency = <400000>; 76*4882a593Smuzhiyun pinctrl-0 = <&i2c0_pins>; 77*4882a593Smuzhiyun pinctrl-names = "default"; 78*4882a593Smuzhiyun status = "okay"; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun eeprom@53 { 81*4882a593Smuzhiyun compatible = "atmel,24c02"; 82*4882a593Smuzhiyun reg = <0x53>; 83*4882a593Smuzhiyun pagesize = <16>; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun}; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun&pinctrl { 88*4882a593Smuzhiyun microsom_phy_clk_pins: microsom-phy-clk-pins { 89*4882a593Smuzhiyun marvell,pins = "mpp45"; 90*4882a593Smuzhiyun marvell,function = "ref"; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun /* Optional eMMC */ 93*4882a593Smuzhiyun microsom_sdhci_pins: microsom-sdhci-pins { 94*4882a593Smuzhiyun marvell,pins = "mpp21", "mpp28", "mpp37", 95*4882a593Smuzhiyun "mpp38", "mpp39", "mpp40"; 96*4882a593Smuzhiyun marvell,function = "sd0"; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun}; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun&spi1 { 101*4882a593Smuzhiyun /* The microsom has an optional W25Q32 on board, connected to CS0 */ 102*4882a593Smuzhiyun pinctrl-0 = <&spi1_pins>; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun w25q32: spi-flash@0 { 105*4882a593Smuzhiyun #address-cells = <1>; 106*4882a593Smuzhiyun #size-cells = <1>; 107*4882a593Smuzhiyun compatible = "w25q32", "jedec,spi-nor"; 108*4882a593Smuzhiyun reg = <0>; /* Chip select 0 */ 109*4882a593Smuzhiyun spi-max-frequency = <3000000>; 110*4882a593Smuzhiyun }; 111*4882a593Smuzhiyun}; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun&uart0 { 114*4882a593Smuzhiyun pinctrl-0 = <&uart0_pins>; 115*4882a593Smuzhiyun pinctrl-names = "default"; 116*4882a593Smuzhiyun status = "okay"; 117*4882a593Smuzhiyun}; 118