blob: 59e43b9c775673c1ac6a7d06fdd0f4e3d3f7b403 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0+
/*
* Marvell / Cavium Inc. EVB CN7300
*/
/dts-v1/;
#include "mrvl,cn73xx.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "cavium,ebb7304";
compatible = "cavium,ebb7304";
aliases {
mmc0 = &mmc0;
mmc1 = &mmc1;
serial0 = &uart0;
spi0 = &spi;
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
/* Power on GPIO 8, active high */
reg_mmc_3v3: regulator@0 {
compatible = "regulator-fixed";
reg = <0>;
regulator-name = "mmc-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
chosen {
stdout-path = &uart0;
};
};
&bootbus {
/*
* bootbus CS0 for CFI flash is remapped (0x1fc0.0000 -> 1f40.0000)
* as the initial size is too small for the 8MiB flash device
*/
ranges = <0 0 0 0x1f400000 0xc00000>,
<1 0 0x10000 0x10000000 0>,
<2 0 0x10000 0x20000000 0>,
<3 0 0x10000 0x30000000 0>,
<4 0 0 0x1d020000 0x10000>,
<5 0 0x10000 0x50000000 0>,
<6 0 0x10000 0x60000000 0>,
<7 0 0x10000 0x70000000 0>;
cavium,cs-config@0 {
compatible = "cavium,octeon-3860-bootbus-config";
cavium,cs-index = <0>;
cavium,t-adr = <10>;
cavium,t-ce = <50>;
cavium,t-oe = <50>;
cavium,t-we = <35>;
cavium,t-rd-hld = <25>;
cavium,t-wr-hld = <35>;
cavium,t-pause = <0>;
cavium,t-wait = <50>;
cavium,t-page = <30>;
cavium,t-rd-dly = <0>;
cavium,page-mode = <1>;
cavium,pages = <8>;
cavium,bus-width = <8>;
};
cavium,cs-config@4 {
compatible = "cavium,octeon-3860-bootbus-config";
cavium,cs-index = <4>;
cavium,t-adr = <10>;
cavium,t-ce = <10>;
cavium,t-oe = <160>;
cavium,t-we = <100>;
cavium,t-rd-hld = <10>;
cavium,t-wr-hld = <0>;
cavium,t-pause = <50>;
cavium,t-wait = <50>;
cavium,t-page = <10>;
cavium,t-rd-dly = <10>;
cavium,pages = <0>;
cavium,bus-width = <8>;
};
flash0: nor@0,0 {
compatible = "cfi-flash";
reg = <0 0 0x800000>;
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader";
reg = <0 0x340000>;
read-only;
};
partition@300000 {
label = "storage";
reg = <0x340000 0x4be000>;
};
partition@7fe000 {
label = "environment";
reg = <0x7fe000 0x2000>;
read-only;
};
};
};
&i2c0 {
bootph-all; /* Needed early for DDR SPD EEPROM */
clock-frequency = <100000>;
rtc@68 {
compatible = "dallas,ds1337";
reg = <0x68>;
};
tlv-eeprom@56 {
compatible = "atmel,24c256", "microchip,24lc256";
reg = <0x56>;
pagesize = <64>;
};
};
&i2c1 {
bootph-all; /* Needed early for DDR SPD EEPROM */
clock-frequency = <100000>;
};
&spi {
flash@0 {
compatible = "micron,n25q128a11", "jedec,spi-nor";
spi-max-frequency = <2000000>;
reg = <0>;
};
};
/* USB 0 */
&usb0 {
status = "okay";
/*
* Power is specified by three parts:
* 1) GPIO handle (must be &gpio)
* 2) GPIO pin number
* 3) Active high (0) or active low (1)
*/
power = <&gpio 20 0>;
};
/* USB 1 */
&usb1 {
status = "okay";
/*
* Power is specified by three parts:
* 1) GPIO handle (must be &gpio)
* 2) GPIO pin number
* 3) Active high (0) or active low (1)
*/
power = <&gpio 21 0>;
};
&mmc {
status = "okay";
/* The board has two MMC slots
* If both are occupied, the speed must be reduced,
* as extra data-line load increases slew time,
* and dat-skew adjustment does not help significantly.
*/
mmc0: mmc-slot@0 {
compatible = "cavium,octeon-6130-mmc-slot", "mmc-slot";
reg = <0>;
vqmmc-supply = <&reg_mmc_3v3>;
voltage-ranges = <3300 3300>;
//spi-max-frequency = <52000000>; // just one
spi-max-frequency = <37000000>; // both slots
/* bus width can be 1, 4 or 8 */
bus-width = <8>; /* new std property */
cavium,bus-max-width = <8>; /* custom property */
wp-gpios = <&gpio 22 0>; /* active high */
cd-gpios = <&gpio 23 1>; /* active low */
};
mmc1: mmc-slot@1 {
compatible = "cavium,octeon-6130-mmc-slot", "mmc-slot";
reg = <1>;
vqmmc-supply = <&reg_mmc_3v3>;
voltage-ranges = <3300 3300>;
//spi-max-frequency = <52000000>; // just one
spi-max-frequency = <37000000>; // both slots
/* bus width can be 1, 4 or 8 */
bus-width = <8>; /* new std property */
cavium,bus-max-width = <8>; /* custom property */
wp-gpios = <&gpio 24 0>; /* active high */
cd-gpios = <&gpio 25 1>; /* active low */
};
};
/* SMI_1 -- Available on rev 2 and later boards */
&smi1 {
/**
* The phy names are broken down as follows:
* (m)phyxxyzzs
* where:
* xx = 01 for SGMII, 10 for DXAUI, 20 for RXAUI
* and 40 for XFI/LXAUI
* y = QLM/DLM number
* zz = PHY address (decimal)
* s = sub-phy number in the case of the Cortina
* PHY
* a mphy is a nexus phy that contains one or more
* sub-phys, for example the Cortina CS4223.
*/
/* QLM 2 */
phy01208: ethernet-phy@01208 {
reg = <8>;
compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22";
marvell,reg-init = <3 0x10 0 0x8665>,
<3 0x11 0 0x00aa>,
<3 0x12 0 0x4105>,
<3 0x13 0 0x8a08>;
interrupt-parent = <&gpio>;
interrupts = <12 8>; /* Pin 12, active low */
};
};
/* BGX 0 */
&bgx0 {
status = "okay";
phy-handle = <&phy01208>; /* put phy-handle in BGX node and MAC node */
/* SerDes 0, may differ from PCS Lane/LMAC */
eth0: ethernet-mac@D {
compatible = "cavium,octeon-7890-bgx-port";
reg = <0>;
local-mac-address = [ 00 00 00 00 00 00 ];
phy-handle = <&phy01208>;
};
};