summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-02-20ARM: dts: armada388-clearfog: document MPP usageclearfog-4.10Russell King
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20PCI: mvebu: extend PCIe reset durationRussell King
Some PCIe cards (such as ASM1062 based SATA cards) appear to need a slightly longer delay between reset being released and the first card access. Increase the default delay from 20ms to 30ms. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20sfp: removal of defsRussell King
2017-02-20implement slot capabilities (SSPL)Russell King
2017-02-20mvebu/clearfog updatesRussell King
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: add SFP module supportRussell King
Add SFP module support for Clearfog using the SFP phylink support. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: increase speed of i2c0 to 400kHzRussell King
All the devices on I2C0 support fast mode, so increase the bus speed to match. The Armada 388 is known to have a timing issue when in standard mode, which we believe causes the ficticious device at 0x64 to appear. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: emmc on clearfog baseRussell King
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20Merge branches 'clearfog-sent', 'mvebu-cpuidle' and 'phy' into clearfogRussell King
2017-02-20ARM: dts: armada388-clearfog: move uart nodesRussell King
Move the uart nodes over to use the label form to reference the serial devices, rather than replicating the device node path. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move ethernet related nodesRussell King
Move the ethernet, buffer manager, and mdio nodes over to use label form to reference the devices rather than replicating the device path. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move I2C nodesRussell King
Move the I2C nodes over to use the label form to reference the I2C controllers, rather than replicating the device node path. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move device specific pinctrl nodesRussell King
Move the device specific pinctrl nodes over to use the label form to reference the pin mux controller, rather than replicating the device node path. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: add pro model DTS fileRussell King
Add the DTS file to describe the clearfog pro model - we update the platform name and compatible string compared to the original version. The original version remains for compatibility for the time being as the name of the file has become established, and the machine name and/or compatible may be used by userspace. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: add base model DTS fileRussell King
Add the DTS file to describe the clearfog base model. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move rear buttonRussell King
Move the rear button support into the clearfog pro support file. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move SPI CS1Russell King
Move the SPI CS1 configuration to the clearfog .dts file as this is only present on pro models. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move second PCIe portRussell King
Move the second PCIe port to the clearfog .dts file as this is only present on the pro models. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move DSA switchRussell King
Move the DSA switch configuration to the clearfog .dts file as this is only present on the pro models. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: split clearfog DTS fileRussell King
There are two versions of the clearfog - a base and a pro model. The base model has an additional PHY on eth1, replacing the DSA switch on the pro model. MPP assignments are slightly different. The base model also omits the second PCIe, and footprint for a PIC microcontroller. In order to cater for these differences, move all the existing clearfog support to a dtsi file before starting to modify it, to make the following changes more clear. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move sdhci pinctrl node to microsomRussell King
Move the SDHCI pinctrl node to the microsom file - the microsom can have optional eMMC support which uses these same pinctrl settings, so it is sensible to have these here. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: move SPI flash into microsomRussell King
The optional SPI flash is fitted to the microsom, not the clearfog board, so it should be specified in the microsom DTS include file. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20ARM: dts: armada388-clearfog: fix SPI flash #size-cellsRussell King
The SPI flash #size-cells is specified in the binding documentation to have value 1, but we were setting it to zero. This wasn't causing any problem as we do not list any partitions, but it's worth specifying correctly if we're going to specify it at all. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20cpuidle: mvebu: indicate failure to enter deeper sleep statesRussell King
The cpuidle ->enter method expects the return value to be the sleep state we entered. Returning negative numbers or other codes is not permissible since coupled CPU idle was merged. At least some of the mvebu_v7_cpu_suspend() implementations return the value from cpu_suspend(), which returns zero if the CPU vectors back into the kernel via cpu_resume() (the success case), or the non-zero return value of the suspend actor, or one (failure cases). We do not want to be returning the failure case value back to CPU idle as that indicates that we successfully entered one of the deeper idle states. Always return zero instead, indicating that we slept for the shortest amount of time. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20phylink: ensure link drops are reportedRussell King
When the MAC reports a link failure, it can be momentary. Ensure that the event is reported by latching the loss of link, so that the worker reports link down. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20phylink: propagate PHY interface mode to MAC driverRussell King
Some 10Gigabit PHYs automatically switch the mode of their host interface depending on their negotiated speed. We need to communicate this to the MAC driver so the MAC can switch its host interface to match the PHYs new operating mode. Provide the current PHY interface mode to the MAC driver. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20net: phy: fix marvell phy status readingRussell King
The Marvell driver incorrectly provides phydev->lp_advertising as the logical and of the link partner's advert and our advert. This is incorrect - this field is supposed to store the link parter's unmodified advertisment. This allows ethtool to report the correct link partner auto-negotiation status. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20phy: marvell: 88E1540: add flow control supportRussell King
The Marvell PHYs support pause frame advertisments, so we should not be masking their support off. Add the necessary flag to the Marvell PHY to allow any MAC level pause frame support to be advertised. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20phy: marvell: 88E1111: add flow control supportRussell King
The Marvell PHYs support pause frame advertisments, so we should not be masking their support off. Add the necessary flag to the Marvell PHY to allow any MAC level pause frame support to be advertised. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20phy: marvell: 88E1512: add flow control supportRussell King
The Marvell PHYs support pause frame advertisments, so we should not be masking their support off. Add the necessary flag to the Marvell PHY to allow any MAC level pause frame support to be advertised. Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20sfp/phylink: hook up eeprom functionsRussell King
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20net: mvneta: add module EEPROM reading supportRussell King
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20phylink: add module EEPROM supportRussell King
Add support for reading module EEPROMs through phylink. Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20net: mvneta: add EEE supportRussell King
Add EEE support to mvneta. This allows us to enable the low power idle support at MAC level if there is a PHY attached through phylink which supports LPI. The appropriate ethtool support is provided to allow the feature to be controlled, including ethtool statistics for EEE wakeup errors. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20phylink: add EEE supportRussell King
Add EEE hooks to phylink to allow the phylib EEE functions for the connected phy to be safely accessed. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20net: mvneta: enable flow control for fixed connectionsRussell King
Allow symetric flow control to be enabled for fixed link connections as well as other types of connections by setting the supported and advertised capability bits. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20net: mvneta: enable flow control for PHY connectionsRussell King
Enable flow control support for PHY connections by indicating our support via the ethtool capabilities. phylink takes care of the appropriate handling. Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20net: mvneta: add flow control support via phylinkRussell King
Add flow control support to mvneta, including the ethtool hooks. This uses the phylink code to calculate the result of autonegotiation where a phy is attached, and to handle the ethtool settings. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20phylink: add flow control supportRussell King
Add flow control support, including ethtool support, to phylink. We add support to allow ethtool to get and set the current flow control settings, and the 802.3 specified resolution for the local and remote link partner abilities. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20net: mvneta: add nway_reset supportRussell King
Add ethtool nway_reset support to mvneta via phylink, so that userspace can request the link in whatever mode to be renegotiated via ethtool -r ethX. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20phylink: add ethtool nway_reset supportRussell King
Add ethtool nway_reset support to phylink, to allow userspace to request a re-negotiation of the link. Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20phy: fixed-phy: remove fixed_phy_update_state()Russell King
mvneta is the only user of fixed_phy_update_state(), which has been converted to use phylink instead. Remove fixed_phy_update_state(). Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20net: mvneta: disable MVNETA_CAUSE_PSC_SYNC_CHANGE interruptRussell King
The PSC sync change interrupt can fire multiple times while the link is down. As this isn't information we make use of, it's pointless having the interrupt enabled, so let's disable this interrupt. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20net: mvneta: convert to phylinkRussell King
Convert mvneta to use phylink, which models the MAC to PHY link in a generic, reusable form. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> - remove unused sync status
2017-02-20sfp: display SFP module informationRussell King
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-02-20sfp: add phylink based SFP module supportRussell King
Add support for SFP hotpluggable modules via phylink. This supports both copper and optical SFP modules, which require different Serdes modes in order to properly negotiate the link. Optical SFP modules typically require the Serdes link to be talking 1000base-X mode - this is the gigabit ethernet mode defined by the 802.3 standard. Copper SFP modules typically integrate a PHY in the module to convert from Serdes to copper, and the PHY will be configured by the vendor to either present a 1000base-X Serdes link (for fixed 1000base-T) or a SGMII Serdes link. However, this is vendor defined, so we instead detect the PHY, switch the link to SGMII mode, and use traditional PHY based negotiation. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> - set port and port capability depending on connector type - move autoneg mode setting to probe function - set "supported" speed capabilities depending on reported ethernet capabilities - checks for short read - dump eeprom base ID when checksum fails
2017-02-20phylink: add support for MII ioctl access to Clause 45 PHYsRussell King
Add support for reading and writing the clause 45 MII registers. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2017-02-20phylink: add hooks for SFP supportRussell King
Add support to phylink for SFP, which needs to control and configure the ethernet MAC link state. Specifically, SFP needs to: 1. set the negotiation mode between SGMII and 1000base-X 2. attach and detach the module PHY 3. prevent the link coming up when errors are reported In the absence of a PHY, we also need to set the ethtool port type according to the module plugged in. Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> - rework phylink_set_link_*(), combining into a single function.
2017-02-20phylink: add phylink infrastructureRussell King
The link between the ethernet MAC and its PHY has become more complex as the interface evolves. This is especially true with serdes links, where the part of the PHY is effectively integrated into the MAC. Serdes links can be connected to a variety of devices, including SFF modules soldered down onto the board with the MAC, a SFP cage with a hotpluggable SFP module which may contain a PHY or directly modulate the serdes signals onto optical media with or without a PHY, or even a classical PHY connection. Moreover, the negotiation information on serdes links comes in two varieties - SGMII mode, where the PHY provides its speed/duplex/flow control information to the MAC, and 1000base-X mode where both ends exchange their abilities and each resolve the link capabilities. This means we need a more flexible means to support these arrangements, particularly with the hotpluggable nature of SFP, where the PHY can be attached or detached after the network device has been brought up. Ethtool information can come from multiple sources: - we may have a PHY operating in either SGMII or 1000base-X mode, in which case we take ethtool/mii data directly from the PHY. - we may have a optical SFP module without a PHY, with the MAC operating in 1000base-X mode - the ethtool/mii data needs to come from the MAC. - we may have a copper SFP module with a PHY whic can't be accessed, which means we need to take ethtool/mii data from the MAC. Phylink aims to solve this by providing an intermediary between the MAC and PHY, providing a safe way for PHYs to be hotplugged, and allowing a SFP driver to reconfigure the serdes connection. Phylink also takes over support of fixed link connections, where the speed/duplex/flow control are fixed, but link status may be controlled by a GPIO signal. By avoiding the fixed-phy implementation, phylink can provide a faster response to link events: fixed-phy has to wait for phylib to operate its state machine, which can take several seconds. In comparison, phylink takes milliseconds. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> - remove sync status - rework supported and advertisment handling - add 1000base-x speed for fixed links - use functionality exported from phy-core, reworking __phylink_ethtool_ksettings_set for it
2017-02-20phy: add I2C mdio busRussell King
Add an I2C MDIO bus bridge library, to allow phylib to access PHYs which are connected to an I2C bus instead of the more conventional MDIO bus. Such PHYs can be found in SFP adapters and SFF modules. Since PHYs appear at I2C bus address 0x40..0x5f, and 0x50/0x51 are reserved for SFP EEPROMs/diagnostics, we must not allow the MDIO bus to access these I2C addresses. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>