summaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)Author
2022-04-13net: dm9000: Add Kconfig entryMarek Vasut
Add Kconfig entry for the DM9000 MAC. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Add DM supportMarek Vasut
Add support for U-Boot DM and DT probing. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Receive one packet per recv callMarek Vasut
Instead of reading out the entire FIFO and possibly overwriting U-Boot memory, read out one packet per recv call, pass it to U-Boot network stack, and repeat. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Split non-DM specific bits from common codeMarek Vasut
Split network handling functions into non-DM specific parts and common code in preparation for conversion to DM. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Pass private data around for IOMarek Vasut
Pass private data into IO accessors and use the base addresses of IO and DATA window from the private data instead of using the hard coded macros DM9000_IO/DM9000_DATA. Currently both the DM9000_IO and DM9000_DATA are assigned to the respecive private data fields for the non-DM case backward compatibility. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Drop dm9000.h and staticize SROM accessMarek Vasut
Dispose of dm9000.h because none of the function prototypes declared in it are called anywhere in the codebase. Staticize dm9000_read_srom_word() because it is now called only from within the dm9000 driver. Drop dm9000_write_srom_word() because it is no longer used. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Drop static device private dataMarek Vasut
Allocate driver private data dynamically in its init function and drop the static driver private data variable. Pass the dynamic private data throughout the driver. This is done in preparation for DM conversion. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Rename board_info to dm9000_privMarek Vasut
Rename board_info structure to dm9000_priv to make it clear what this structure really contains, the driver private data. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Reorder and staticizeMarek Vasut
Reorder the driver functions to get rid of forward declarations. Staticize whatever is possible. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Checkpatch cleanupMarek Vasut
Fix checkpatch errors and warnings. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Drop volatilesMarek Vasut
Remove volatile keyword usage from arrays, they are not really volatile in any way, so this keyword is misused here. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Turn DM9000_DMP_PACKET() into a functionMarek Vasut
Rework DM9000_DMP_PACKET() into dm9000_dump_packet() function, this brings better type checking. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Drop unused dump_regs()Marek Vasut
Drop unused function dump_regs() because it is unused. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Make RxLen and RxStatus lowercaseMarek Vasut
Rename variables to lowercase to be consistent with coding style. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Replace DM9000_DBG() with debug()Marek Vasut
Use standard debug() macro to print debug messages instead of reinventing driver-specific macro again. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13net: dm9000: Make accessor names lowercaseMarek Vasut
Make accessor names lowercase to be consistent with coding style. No functional change. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Joe Hershberger <[email protected]> Cc: Ramon Fried <[email protected]>
2022-04-13driver: net: ti: keystone_net: Change priv member typeMarek Behún
Change type of private struct member mdio_base from void * to phys_addr_t. This allows us to drop 2 casts. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-13driver: net: ti: keystone_net: Convert to ofnode functionsMarek Behún
Convert fdt parsing functions to ofnode parsing functions. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-13driver: net: ti: keystone_net: Deduplicate codeMarek Behún
Deduplicate common code in ks2_eth_bind_slaves(). Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-12net: phy: nxp-tja11xx: Add NXP TJA11xx PHY driverMichael Trimarchi
Add driver for the NXP TJA1100 and TJA1101 PHYs. These PHYs are special BroadRReach 100BaseT1 PHYs used in automotive. Signed-off-by: Michael Trimarchi <[email protected]> Signed-off-by: Ariel D'Alessandro <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-12net: phy: Add phy_modify() accessorAriel D'Alessandro
Add read-modify-write unlocked accessor for accessing a PHY register. Signed-off-by: Ariel D'Alessandro <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-12phy: nxp-c45-tja11xx: Rename functions to be c45 tja11xx specificAriel D'Alessandro
This driver supports NXP C45 TJA11XX PHYs, but there're also other NXP TJA11XX PHYs. Let's rename functions in this driver to be c45 variant specific, so further drivers can be introduced adding support for NXP TJA11XX PHYs. Signed-off-by: Ariel D'Alessandro <[email protected]>
2022-04-12ARM: dts: net: dwc_eth_qos: Fix i.MX8MP compatible stringMarek Vasut
The correct compatible string for i.MX8MP variant of DWC EQoS MAC is "nxp,imx8mp-dwmac-eqos", use it. Drop the two current users of the current wrong compatible string to avoid breaking them. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Marcel Ziswiler <[email protected]> Cc: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Reviewed-by: Fabio Estevam <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10phy: adin: add driver for Analog Devices ADIN1300 PHYNate Drude
The current implementation configures RGMII using device tree phy-mode property and then calls genphy_config adin_config_rgmii_mode is derived from: https://github.com/varigit/linux-imx/blob/lf-5.10.y_var04/drivers/net/phy/adin.c#L218-L262 Signed-off-by: Nate Drude <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: eth-phy: prevent undesired de-assertion of phy-reset on requestTim Harvey
When gpio_request_by_name allocates a gpio output it by default will de-assert the gpio which for phy-reset will take the PHY out of reset. As this occurs before eth_phy_reset is called to assert the reset line it can cause undesired affects if reset timings are not properly met. Configure the gpio with GPIOD_IS_OUT_ACTIVE so that reset is kept active (reset asserted) to avoid this. Cc: Sean Anderson <[email protected]> Signed-off-by: Tim Harvey <[email protected]> Acked-by: Joe Hershberger <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: fec: prevent undesired de-assertion of phy-reset on requestTim Harvey
When gpio_request_by_name allocates a gpio output it by default will de-assert the gpio which for phy-reset will take the PHY out of reset. As this occurs before fec_gpio_reset is called to assert the reset line it can cause undesired affects if reset timings are not properly met. Configure the gpio with GPIOD_IS_OUT_ACTIVE so that reset is kept active (reset asserted) to avoid this. Cc: Sean Anderson <[email protected]> Signed-off-by: Tim Harvey <[email protected]> Acked-by: Joe Hershberger <[email protected]> Tested-by: Adam Ford <[email protected]> #imx8mm-beacon Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: phy: don't require PHY interface mode during PHY creationMarek Behún
Currently we require PHY interface mode to be known when finding/creating the PHY - the functions * phy_connect_phy_id() * phy_device_create() * create_phy_by_mask() * search_for_existing_phy() * get_phy_device_by_mask() * phy_find_by_mask() all require the interface parameter, but the only thing done with it is that it is assigned to phydev->interface. This makes it impossible to find a PHY device without overwriting the set mode. Since the interface mode is not used during .probe() and should be used at first in .config(), drop the interface parameter from these functions. Make the default value of phydev->interface (in phy_device_create()) to be PHY_INTERFACE_MODE_NA. Move the interface parameter to phy_connect_dev(), where it should be. Change all occurrences treewide. In occurrences where we don't call phy_connect_dev() for some reason (they only configure the PHY without connecting it to an ethernet controller), set phydev->interface = value from phy_find_by_mask call. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]>
2022-04-10bcmgenet, sun8i_emac: Don't connect PHY two timesMarek Behún
The bcmgenet and sun8i_emac drivers call phy_connect(), which finds / creates the PHY and also connects it to the eth device via phy_connect_dev(), then set some phydev members (bcmgenet only), and then call phy_connect_dev() explicitly again. Drop the second phy_connect_dev(), since it is unnecesary. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: phy: use ->is_c45 instead of is_10g_interface()Marek Behún
Use phydev->is_c45 instead of is_10g_interface(phydev->interface) to determine whether clause 45 protocol should be used. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: phy: xilinx: Check interface type in ->config(), not ->probe()Marek Behún
We want to be able to have phydev->interface uninitialized during ->probe(). We should assume that phydev->interface is initialized only before ->config(). Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NAMarek Behún
Rename constant PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA to make it compatible with Linux' naming. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Ramon Fried <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]>
2022-04-10treewide: Rename PHY_INTERFACE_MODE_COUNT to PHY_INTERFACE_MODE_MAXMarek Behún
Rename constant PHY_INTERFACE_MODE_COUNT to PHY_INTERFACE_MODE_MAX to make it compatible with Linux' naming. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]>
2022-04-10net: introduce helpers to get PHY interface mode from a device/ofnodeMarek Behún
Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]> Tested-by: Patrice Chotard <[email protected]>
2022-04-10net: phy: fix parsing wrong propertyMarek Behún
The "phy-interface-type" property should be "phy-connection-type". Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]>
2022-04-10treewide: use dm_mdio_read/write/reset() wrappersMarek Behún
Use the new dm_mdio_read/write/reset() wrappers treewide, instead of always getting and dereferencing MDIO operations structure pointer. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Ramon Fried <[email protected]> Reviewed-by: Vladimir Oltean <[email protected]>
2022-04-10net: phy: dp83867: Fix a never true comparisonHaolin Li
The type of the return value of phy_read() and phy_read_mmd() is int. Change the variable to not be unsigned so that we not get into an unsigned compared against 0. Signed-off-by: Haolin Li <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: phy: atheros: avoid error in ar803x_of_init() when PHY has no OF nodeVladimir Oltean
A DM_ETH driver may use phy_connect() towards a PHY address on an MDIO bus which is not specified in the device tree, as evidenced by: pfe_eth_probe -> pfe_phy_configure -> phy_connect When this happens, the PHY will have an invalid OF node. When ar803x_config() runs, it silently fails at ar803x_of_init(), and therefore, fails to run the rest of the initialization. This makes MII_BMCR contain what it had after BMCR_RESET (0x8000) has been written into it by phy_reset(). Since BMCR_RESET is volatile and self-clearing, the MII_BMCR ends up having a value of 0x0. The further configuration of this register, which is supposed to be handled by genphy_config_aneg() lower in ar803x_config(), never gets a chance to run due to this early error from ar803x_of_init(). As a result of having MII_BMCR as 0, the following symptom appears: => setenv ethact pfe_eth0 => setenv ipaddr 10.0.0.1 => ping 10.0.0.2 pfe_eth0 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY pfe_eth0 Manually writing 0x1140 into register 0 of the PHY makes the connection work, but it is rather desirable that the port works without any manual intervention. Fixes: fe6293a80959 ("phy: atheros: add device tree bindings and config") Signed-off-by: Vladimir Oltean <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-10net: phy: dp83867: avoid error in dp83867_of_init() when PHY has no OF nodeVladimir Oltean
A DM_ETH driver may use phy_connect() towards a PHY address on an MDIO bus which is not specified in the device tree, as evidenced by: pfe_eth_probe -> pfe_phy_configure -> phy_connect When this happens, the PHY will have an invalid OF node. The dp83867_config() method has extra initialization steps which are bypassed when the PHY lacks an OF node, which is undesirable because it will lead to broken networking. Allow the rest of the code to run. Fixes: 085445ca4104 ("net: phy: ti: Allow the driver to be more configurable") Signed-off-by: Vladimir Oltean <[email protected]> Reviewed-by: Ramon Fried <[email protected]>
2022-04-08arm: Remove unused ep93xx codeTom Rini
There are no platforms for this architecture anymore, remove unused code. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove uli526x driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove ns8382x driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove natsemi driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove lan91c96 driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove ftmac110 driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove dnet driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove cs8900 driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove ax88180 driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-08net: Remove armada100_fec driverTom Rini
This driver is not enabled by any board and not converted to DM_ETH. Remove. Signed-off-by: Tom Rini <[email protected]>
2022-04-05Merge tag 'xilinx-for-v2022.07-rc1-v2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze Xilinx changes for v2022.07-rc1 v2 xilinx: - Allow booting bigger kernels till 100MB zynqmp: - DT updates (reset IDs) - Remove unneeded low level uart initialization from psu_init* - Enable PWM features - Add support for 1EG device serial_zynq: - Change fifo behavior in DEBUG mode zynq_sdhci: - Fix BASECLK setting calculation clk_zynqmp: - Add support for showing video clock gpio: - Update slg driver to handle DT flags net: - Update ethernet_id code to support also DM_ETH_PHY - Add support for DM_ETH_PHY in gem driver - Enable dynamic mode for SGMII config in gem driver pwm: - Add driver for cadence PWM versal: - Add support for reserved memory firmware: - Handle PD enabling for SPL - Add support for IOUSLCR SGMII configurations include: - Sync phy.h with Linux - Update xilinx power domain dt binding headers
2022-04-05net: zynq_gem: Add SGMII dynamic config supportT Karthik Reddy
Add support for SGMII dynamic configuration which will takes care of configuring SGMII in the GEM secure (GEM_CLK_CTRL) configuration register. Signed-off-by: T Karthik Reddy <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/a8915186e44015959978d080a31de652f544cd4a.1648631275.git.michal.simek@xilinx.com