linux-bl808/arch/arm/boot/dts/am571x-idk.dts
Grygorii Strashko 820f8a870f ARM: dts: am57xx: fix networking on boards with ksz9031 phy
Since commit bcf3440c6d ("net: phy: micrel: add phy-mode support for the
KSZ9031 PHY") the networking is broken on boards:
 am571x-idk
 am572x-idk
 am574x-idk
 am57xx-beagle-x15

All above boards have phy-mode = "rgmii" and this is worked before because
KSZ9031 PHY started with default RGMII internal delays configuration (TX
off, RX on 1.2 ns) and MAC provided TX delay. After above commit, the
KSZ9031 PHY starts handling phy mode properly and disables RX delay, as
result networking is become broken.

Fix it by switching to phy-mode = "rgmii-rxid" to reflect previous
behavior.

Cc: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Philippe Schenker <philippe.schenker@toradex.com>
Fixes: bcf3440c6d ("net: phy: micrel: add phy-mode support for the KSZ9031 PHY")
Reviewed-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2020-05-07 10:50:40 -07:00

211 lines
3.9 KiB
Text

// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
*/
/dts-v1/;
#include "am5718.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "dra7-mmc-iodelay.dtsi"
#include "dra72x-mmc-iodelay.dtsi"
#include "am57xx-idk-common.dtsi"
/ {
model = "TI AM5718 IDK";
compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7";
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x0 0x40000000>;
};
leds {
compatible = "gpio-leds";
cpu0-led {
label = "status0:red:cpu0";
gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
default-state = "off";
linux,default-trigger = "cpu0";
};
usr0-led {
label = "status0:green:usr";
gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
heartbeat-led {
label = "status0:blue:heartbeat";
gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
default-state = "off";
linux,default-trigger = "heartbeat";
};
usr1-led {
label = "status1:red:usr";
gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
usr2-led {
label = "status1:green:usr";
gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
mmc0-led {
label = "status1:blue:mmc0";
gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
default-state = "off";
linux,default-trigger = "mmc0";
};
};
idk-leds {
status = "disabled";
compatible = "gpio-leds";
red0-led {
label = "idk:red0";
gpios = <&gpio6 19 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
green0-led {
label = "idk:green0";
gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
blue0-led {
label = "idk:blue0";
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
red1-led {
label = "idk:red1";
gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
green1-led {
label = "idk:green1";
gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
blue1-led {
label = "idk:blue1";
gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
red2-led {
label = "idk:red2";
gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
green2-led {
label = "idk:green2";
gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
blue2-led {
label = "idk:blue2";
gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
red3-led {
label = "idk:red3";
gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
green3-led {
label = "idk:green3";
gpios = <&gpio7 25 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
blue3-led {
label = "idk:blue3";
gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
};
&extcon_usb2 {
id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>;
};
&sn65hvs882 {
load-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
};
&mailbox5 {
status = "okay";
mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
status = "okay";
};
mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
status = "okay";
};
};
&mailbox6 {
status = "okay";
mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
status = "okay";
};
};
&pcie1_rc {
status = "okay";
gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
};
&mmc1 {
pinctrl-names = "default", "hs";
pinctrl-0 = <&mmc1_pins_default_no_clk_pu>;
pinctrl-1 = <&mmc1_pins_hs>;
};
&mmc2 {
pinctrl-names = "default", "hs", "ddr_3_3v";
pinctrl-0 = <&mmc2_pins_default>;
pinctrl-1 = <&mmc2_pins_hs>;
pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>;
};
&mac_sw {
pinctrl-names = "default", "sleep";
status = "okay";
};
&cpsw_port1 {
phy-handle = <&ethphy0_sw>;
phy-mode = "rgmii-rxid";
ti,dual-emac-pvid = <1>;
};
&cpsw_port2 {
phy-handle = <&ethphy1_sw>;
phy-mode = "rgmii-rxid";
ti,dual-emac-pvid = <2>;
};
&davinci_mdio_sw {
ethphy0_sw: ethernet-phy@0 {
reg = <0>;
};
ethphy1_sw: ethernet-phy@1 {
reg = <1>;
};
};