linux/drivers/net/phy
Lukasz Majewski ac6e058b75 net: phy: dp83867: Recover from "port mirroring" N/A MODE4
The DP83867 when not properly bootstrapped - especially with LED_0 pin -
can enter N/A MODE4 for "port mirroring" feature.

To provide normal operation of the PHY, one needs not only to explicitly
disable the port mirroring feature, but as well stop some IC internal
testing (which disables RGMII communication).

To do that the STRAP_STS1 (0x006E) register must be read and RESERVED bit
11 examined. When it is set, the another RESERVED bit (11) at PHYCR
(0x0010) register must be clear to disable testing mode and enable RGMII
communication.

Thorough explanation of the problem can be found at following e2e thread:
"DP83867IR: Problem with RESERVED bits in PHY Control Register (PHYCR) -
Linux driver"

https://e2e.ti.com/support/interface/ethernet/f/903/p/571313/2096954#2096954

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 13:59:27 -05:00
..
amd.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
aquantia.c net: phy: aquantia: add PHY ID of AQR106 and AQR107 2016-10-20 14:25:23 -04:00
at803x.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-10-30 12:42:58 -04:00
bcm-cygnus.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
bcm-phy-lib.c net: phy: broadcom: Add support code for reading PHY counters 2016-11-30 10:22:27 -05:00
bcm-phy-lib.h net: phy: broadcom: Add support code for reading PHY counters 2016-11-30 10:22:27 -05:00
bcm7xxx.c net: phy: bcm7xxx: Add BCM74371 PHY ID 2017-02-07 13:03:10 -05:00
bcm63xx.c net: phy: bcm63xx: Utilize correct config_intr function 2017-01-18 16:56:10 -05:00
bcm87xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
broadcom.c net: phy: broadcom: rehook BCM54612E specific init 2017-02-01 14:20:20 -05:00
cicada.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
davicom.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
dp83640_reg.h
dp83640.c ptp: dp83640: Use the high resolution frequency method. 2016-11-09 21:19:53 -05:00
dp83848.c net: phy: dp83848: add DP83620 PHY support 2017-01-17 15:47:25 -05:00
dp83867.c net: phy: dp83867: Recover from "port mirroring" N/A MODE4 2017-02-07 13:59:27 -05:00
et1011c.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
fixed_phy.c net: phy: fixed_phy: fix of_node leak in fixed_phy_unregister 2016-11-17 12:05:05 -05:00
icplus.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
intel-xway.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
Kconfig net: phy: Add Meson GXL PHY hardware dependency 2017-01-09 16:34:39 -05:00
lxt.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
Makefile net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
marvell.c net: phy: marvell: Add support for 88e1545 PHY 2017-02-02 22:05:28 -05:00
mdio_bus.c net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
mdio_device.c net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
mdio-bcm-iproc.c
mdio-bcm-unimac.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-bitbang.c
mdio-boardinfo.c net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
mdio-boardinfo.h net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
mdio-cavium.c phy: mdio-cavium: Add missing MODULE_* annotations. 2016-03-16 19:55:37 -04:00
mdio-cavium.h phy: mdio-octeon: Refactor into two files/modules 2016-03-14 15:27:22 -04:00
mdio-gpio.c net: mdio-gpio: Use gpio subsystem to handle low-active pins 2017-01-12 15:05:10 -05:00
mdio-hisi-femac.c net: Add MDIO bus driver for the Hisilicon FEMAC 2016-07-16 21:32:58 -07:00
mdio-moxart.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-mux-bcm-iproc.c net: mdio-mux: Add MDIO mux driver for iProc SoCs 2016-06-10 23:24:54 -07:00
mdio-mux-gpio.c mdio: mux: Enhanced MDIO mux framework for integrated multiplexers 2016-06-10 23:24:53 -07:00
mdio-mux-mmioreg.c net: mdio-mux-mmioreg: Add support for 16bit and 32bit register sizes 2016-11-09 12:50:55 -05:00
mdio-mux.c mdio: mux: avoid 'maybe-uninitialized' warning 2016-06-15 20:48:52 -07:00
mdio-octeon.c phy: mdio-octeon: Refactor into two files/modules 2016-03-14 15:27:22 -04:00
mdio-sun4i.c mdio-sun4i: oops in error handling in probe 2016-03-21 11:30:01 -04:00
mdio-thunder.c phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses. 2016-03-14 15:27:22 -04:00
mdio-xgene.c xgene_enet: remove bogus forward declarations 2017-02-02 17:12:20 -05:00
mdio-xgene.h xgene_enet: remove bogus forward declarations 2017-02-02 17:12:20 -05:00
meson-gxl.c net: phy: Add Meson GXL Internal PHY driver 2016-11-09 12:50:55 -05:00
micrel.c net: phy: micrel: KSZ8795 do not set SUPPORTED_[Asym_]Pause 2017-01-29 18:45:15 -05:00
microchip.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
mscc.c net: phy: Add mdi(x) support in Microsemi PHYs driver 2016-12-01 11:26:47 -05:00
national.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
phy_device.c net: phy: use boolean dt properties for eee broken modes 2016-12-20 13:50:50 -05:00
phy_led_triggers.c net: phy: leds: Break dependency of phy.h on phy_led_triggers.h 2017-01-25 14:40:19 -05:00
phy.c net: phy: leds: Break dependency of phy.h on phy_led_triggers.h 2017-01-25 14:40:19 -05:00
qsemi.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
realtek.c net: phy: realtek: fix enabling of the TX-delay for RTL8211F 2016-11-28 12:06:54 -05:00
smsc.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
spi_ks8995.c net: phy: spi_ks8895: Don't leak references to SPI devices 2016-04-21 15:00:27 -04:00
ste10Xp.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
swphy.c phy: generate swphy registers on the fly 2016-06-27 10:40:57 -04:00
swphy.h phy: generate swphy registers on the fly 2016-06-27 10:40:57 -04:00
teranetics.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
vitesse.c net: phy: vitesse: add support for VSC8572 2016-12-02 10:36:47 -05:00
xilinx_gmii2rgmii.c net: phy: xgmiitorgmii: Fix non static symbol warning 2016-08-23 17:17:48 -07:00