mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-29 22:14:41 +08:00
046ead61dc
Enable the SFP connected to port 5 of the switch and wire up all GPIOs to the SFP cage. Because of a hardware limitation of the i2c controller on the iProc SoCs which prevents large i2c (> 63 bytes) transactions to work, we use the i2c-gpio interface instead, which does not have that limitation. This allows us to read the SFP module EEPROM, which would not be possible otherwise since it exceeds that size during a single read transfer. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Ray Jui <ray.jui@broadcom.com>
262 lines
4.9 KiB
Plaintext
262 lines
4.9 KiB
Plaintext
/*
|
|
* BSD LICENSE
|
|
*
|
|
* Copyright(c) 2016 Broadcom. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in
|
|
* the documentation and/or other materials provided with the
|
|
* distribution.
|
|
* * Neither the name of Broadcom Corporation nor the names of its
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include "bcm-nsp.dtsi"
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
model = "NorthStar Plus SVK (BCM958625HR)";
|
|
compatible = "brcm,bcm58625", "brcm,nsp";
|
|
|
|
aliases {
|
|
serial0 = &uart0;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0x60000000 0x20000000>;
|
|
};
|
|
|
|
gpio-restart {
|
|
compatible = "gpio-restart";
|
|
gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
|
|
open-source;
|
|
priority = <200>;
|
|
};
|
|
|
|
/* Hardware I2C block cannot do more than 63 bytes per transfer,
|
|
* which would prevent reading from a SFP's EEPROM (256 byte).
|
|
*/
|
|
i2c1: i2c {
|
|
compatible = "i2c-gpio";
|
|
sda-gpios = <&gpioa 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
scl-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
};
|
|
|
|
sfp: sfp {
|
|
compatible = "sff,sfp";
|
|
i2c-bus = <&i2c1>;
|
|
mod-def0-gpios = <&gpioa 28 GPIO_ACTIVE_LOW>;
|
|
los-gpios = <&gpioa 24 GPIO_ACTIVE_HIGH>;
|
|
tx-fault-gpios = <&gpioa 30 GPIO_ACTIVE_HIGH>;
|
|
tx-disable-gpios = <&gpioa 26 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
&amac0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&amac1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&amac2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&nand {
|
|
nandcs@0 {
|
|
compatible = "brcm,nandcs";
|
|
reg = <0>;
|
|
nand-on-flash-bbt;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
nand-ecc-strength = <24>;
|
|
nand-ecc-step-size = <1024>;
|
|
|
|
brcm,nand-oob-sector-size = <27>;
|
|
|
|
partition@0 {
|
|
label = "nboot";
|
|
reg = <0x00000000 0x00200000>;
|
|
read-only;
|
|
};
|
|
partition@200000 {
|
|
label = "nenv";
|
|
reg = <0x00200000 0x00400000>;
|
|
};
|
|
partition@600000 {
|
|
label = "nsystem";
|
|
reg = <0x00600000 0x00a00000>;
|
|
};
|
|
partition@1000000 {
|
|
label = "nrootfs";
|
|
reg = <0x01000000 0x03000000>;
|
|
};
|
|
partition@4000000 {
|
|
label = "ncustfs";
|
|
reg = <0x04000000 0x3c000000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pinctrl {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&nand_sel>;
|
|
nand_sel: nand_sel {
|
|
function = "nand";
|
|
groups = "nand_grp";
|
|
};
|
|
};
|
|
|
|
&qspi {
|
|
bspi-sel = <0>;
|
|
flash: m25p80@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "m25p80";
|
|
reg = <0x0>;
|
|
spi-max-frequency = <12500000>;
|
|
m25p,fast-read;
|
|
spi-cpol;
|
|
spi-cpha;
|
|
|
|
partition@0 {
|
|
label = "boot";
|
|
reg = <0x00000000 0x000a0000>;
|
|
};
|
|
|
|
partition@a0000 {
|
|
label = "env";
|
|
reg = <0x000a0000 0x00060000>;
|
|
};
|
|
|
|
partition@100000 {
|
|
label = "system";
|
|
reg = <0x00100000 0x00600000>;
|
|
};
|
|
|
|
partition@700000 {
|
|
label = "rootfs";
|
|
reg = <0x00700000 0x01900000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&sata_phy0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&sata_phy1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&srab {
|
|
compatible = "brcm,bcm58625-srab", "brcm,nsp-srab";
|
|
status = "okay";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
label = "port0";
|
|
reg = <0>;
|
|
};
|
|
|
|
port@1 {
|
|
label = "port1";
|
|
reg = <1>;
|
|
};
|
|
|
|
port@2 {
|
|
label = "port2";
|
|
reg = <2>;
|
|
};
|
|
|
|
port@3 {
|
|
label = "port3";
|
|
reg = <3>;
|
|
};
|
|
|
|
port@4 {
|
|
label = "port4";
|
|
reg = <4>;
|
|
};
|
|
|
|
port@5 {
|
|
label = "sfp";
|
|
phy-mode = "sgmii";
|
|
reg = <5>;
|
|
sfp = <&sfp>;
|
|
managed = "in-band-status";
|
|
};
|
|
|
|
port@8 {
|
|
ethernet = <&amac2>;
|
|
label = "cpu";
|
|
reg = <8>;
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&uart0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb3_phy {
|
|
status = "okay";
|
|
};
|
|
|
|
&xhci {
|
|
status = "okay";
|
|
};
|