f8b5a33707
The ZII devel B board has two generations of Marvell Switches. The
mv88e6352 supports an MDIO clock of 12MHz. However the older 88e6185
does not like 12MHz, and often fails to probe.
Reduce the clock speed to 5MHz, which seems to work reliably.
Cc: Chris Healy <cphealy@gmail.com>
Fixes: b955387667
("ARM: dts: ZII: update MDIO speed and preamble")
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Chris Healy <cphealy@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
445 lines
8.2 KiB
Plaintext
445 lines
8.2 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/*
|
|
* Copyright (C) 2015, 2016 Zodiac Inflight Innovations
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include "vf610-zii-dev.dtsi"
|
|
|
|
/ {
|
|
model = "ZII VF610 Development Board, Rev B";
|
|
compatible = "zii,vf610dev-b", "zii,vf610dev", "fsl,vf610";
|
|
|
|
mdio-mux {
|
|
compatible = "mdio-mux-gpio";
|
|
pinctrl-0 = <&pinctrl_mdio_mux>;
|
|
pinctrl-names = "default";
|
|
gpios = <&gpio0 8 GPIO_ACTIVE_HIGH
|
|
&gpio0 9 GPIO_ACTIVE_HIGH
|
|
&gpio0 24 GPIO_ACTIVE_HIGH
|
|
&gpio0 25 GPIO_ACTIVE_HIGH>;
|
|
mdio-parent-bus = <&mdio1>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
mdio_mux_1: mdio@1 {
|
|
reg = <1>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch0: switch@0 {
|
|
compatible = "marvell,mv88e6085";
|
|
pinctrl-0 = <&pinctrl_gpio_switch0>;
|
|
pinctrl-names = "default";
|
|
reg = <0>;
|
|
dsa,member = <0 0>;
|
|
interrupt-parent = <&gpio0>;
|
|
interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
eeprom-length = <512>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "lan0";
|
|
phy-handle = <&switch0phy0>;
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan1";
|
|
phy-handle = <&switch0phy1>;
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan2";
|
|
phy-handle = <&switch0phy2>;
|
|
};
|
|
|
|
switch0port5: port@5 {
|
|
reg = <5>;
|
|
label = "dsa";
|
|
phy-mode = "rgmii-txid";
|
|
link = <&switch1port6
|
|
&switch2port9>;
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
port@6 {
|
|
reg = <6>;
|
|
label = "cpu";
|
|
ethernet = <&fec1>;
|
|
|
|
fixed-link {
|
|
speed = <100>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
switch0phy0: switch0phy0@0 {
|
|
reg = <0>;
|
|
interrupt-parent = <&switch0>;
|
|
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
switch0phy1: switch1phy0@1 {
|
|
reg = <1>;
|
|
interrupt-parent = <&switch0>;
|
|
interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
switch0phy2: switch1phy0@2 {
|
|
reg = <2>;
|
|
interrupt-parent = <&switch0>;
|
|
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
mdio_mux_2: mdio@2 {
|
|
reg = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch1: switch@0 {
|
|
compatible = "marvell,mv88e6085";
|
|
pinctrl-0 = <&pinctrl_gpio_switch1>;
|
|
pinctrl-names = "default";
|
|
reg = <0>;
|
|
dsa,member = <0 1>;
|
|
interrupt-parent = <&gpio0>;
|
|
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
eeprom-length = <512>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "lan3";
|
|
phy-handle = <&switch1phy0>;
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan4";
|
|
phy-handle = <&switch1phy1>;
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan5";
|
|
phy-handle = <&switch1phy2>;
|
|
};
|
|
|
|
switch1port5: port@5 {
|
|
reg = <5>;
|
|
label = "dsa";
|
|
link = <&switch2port9>;
|
|
phy-mode = "rgmii-txid";
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
switch1port6: port@6 {
|
|
reg = <6>;
|
|
label = "dsa";
|
|
phy-mode = "rgmii-txid";
|
|
link = <&switch0port5>;
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch1phy0: switch1phy0@0 {
|
|
reg = <0>;
|
|
interrupt-parent = <&switch1>;
|
|
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
|
|
switch1phy1: switch1phy0@1 {
|
|
reg = <1>;
|
|
interrupt-parent = <&switch1>;
|
|
interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
|
|
switch1phy2: switch1phy0@2 {
|
|
reg = <2>;
|
|
interrupt-parent = <&switch1>;
|
|
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
mdio_mux_4: mdio@4 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <4>;
|
|
|
|
switch2: switch@0 {
|
|
compatible = "marvell,mv88e6085";
|
|
reg = <0>;
|
|
dsa,member = <0 2>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "lan6";
|
|
phy-handle = <&switch2phy0>;
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan7";
|
|
phy-handle = <&switch2phy1>;
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan8";
|
|
phy-handle = <&switch2phy2>;
|
|
};
|
|
|
|
port@3 {
|
|
reg = <3>;
|
|
label = "optical3";
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
link-gpios = <&gpio6 2
|
|
GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
port@4 {
|
|
reg = <4>;
|
|
label = "optical4";
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
link-gpios = <&gpio6 3
|
|
GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
switch2port9: port@9 {
|
|
reg = <9>;
|
|
label = "dsa";
|
|
phy-mode = "rgmii-txid";
|
|
link = <&switch1port5
|
|
&switch0port5>;
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch2phy0: phy@0 {
|
|
reg = <0>;
|
|
};
|
|
switch2phy1: phy@1 {
|
|
reg = <1>;
|
|
};
|
|
switch2phy2: phy@2 {
|
|
reg = <2>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
mdio_mux_8: mdio@8 {
|
|
reg = <8>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
};
|
|
|
|
spi0 {
|
|
compatible = "spi-gpio";
|
|
pinctrl-0 = <&pinctrl_gpio_spi0>;
|
|
pinctrl-names = "default";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
|
gpio-mosi = <&gpio1 11 GPIO_ACTIVE_HIGH>;
|
|
gpio-miso = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
|
cs-gpios = <&gpio1 9 GPIO_ACTIVE_LOW
|
|
&gpio1 8 GPIO_ACTIVE_HIGH>;
|
|
num-chipselects = <2>;
|
|
|
|
flash@0 {
|
|
compatible = "m25p128", "jedec,spi-nor";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
reg = <0>;
|
|
spi-max-frequency = <1000000>;
|
|
};
|
|
|
|
at93c46d@1 {
|
|
compatible = "atmel,at93c46d";
|
|
pinctrl-0 = <&pinctrl_gpio_e6185_eeprom_sel>;
|
|
pinctrl-names = "default";
|
|
#address-cells = <0>;
|
|
#size-cells = <0>;
|
|
reg = <1>;
|
|
spi-max-frequency = <500000>;
|
|
spi-cs-high;
|
|
data-size = <16>;
|
|
select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c0 {
|
|
gpio5: io-expander@20 {
|
|
compatible = "nxp,pca9554";
|
|
reg = <0x20>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
|
|
};
|
|
|
|
gpio6: io-expander@22 {
|
|
compatible = "nxp,pca9554";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_pca9554_22>;
|
|
reg = <0x22>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
interrupt-controller;
|
|
interrupt-parent = <&gpio3>;
|
|
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
|
};
|
|
};
|
|
|
|
&i2c2 {
|
|
tca9548@70 {
|
|
compatible = "nxp,pca9548";
|
|
pinctrl-0 = <&pinctrl_i2c_mux_reset>;
|
|
pinctrl-names = "default";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x70>;
|
|
reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
|
|
|
|
i2c@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0>;
|
|
|
|
sfp1: eeprom@50 {
|
|
compatible = "atmel,24c02";
|
|
reg = <0x50>;
|
|
};
|
|
};
|
|
|
|
i2c@1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <1>;
|
|
|
|
sfp2: eeprom@50 {
|
|
compatible = "atmel,24c02";
|
|
reg = <0x50>;
|
|
};
|
|
};
|
|
|
|
i2c@2 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <2>;
|
|
|
|
sfp3: eeprom@50 {
|
|
compatible = "atmel,24c02";
|
|
reg = <0x50>;
|
|
};
|
|
};
|
|
|
|
i2c@3 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <3>;
|
|
|
|
sfp4: eeprom@50 {
|
|
compatible = "atmel,24c02";
|
|
reg = <0x50>;
|
|
};
|
|
};
|
|
|
|
i2c@4 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <4>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&mdio1 {
|
|
clock-frequency = <5000000>;
|
|
};
|
|
|
|
&iomuxc {
|
|
pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
|
|
fsl,pins = <
|
|
VF610_PAD_PTE27__GPIO_132 0x33e2
|
|
>;
|
|
};
|
|
|
|
pinctrl_gpio_spi0: pinctrl-gpio-spi0 {
|
|
fsl,pins = <
|
|
VF610_PAD_PTB22__GPIO_44 0x33e2
|
|
VF610_PAD_PTB21__GPIO_43 0x33e2
|
|
VF610_PAD_PTB20__GPIO_42 0x33e1
|
|
VF610_PAD_PTB19__GPIO_41 0x33e2
|
|
VF610_PAD_PTB18__GPIO_40 0x33e2
|
|
>;
|
|
};
|
|
|
|
pinctrl_mdio_mux: pinctrl-mdio-mux {
|
|
fsl,pins = <
|
|
VF610_PAD_PTA18__GPIO_8 0x31c2
|
|
VF610_PAD_PTA19__GPIO_9 0x31c2
|
|
VF610_PAD_PTB2__GPIO_24 0x31c2
|
|
VF610_PAD_PTB3__GPIO_25 0x31c2
|
|
>;
|
|
};
|
|
|
|
pinctrl_pca9554_22: pinctrl-pca95540-22 {
|
|
fsl,pins = <
|
|
VF610_PAD_PTB28__GPIO_98 0x219d
|
|
>;
|
|
};
|
|
};
|