net/fsl: Use [acpi|of]_mdiobus_register
Depending on the device node type, call the specific OF or ACPI mdiobus_register function. Note: For both ACPI and DT cases, endianness of MDIO controllers need to be specified using the "little-endian" property. Signed-off-by: Calvin Johnson <calvin.johnson@oss.nxp.com> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Acked-by: Grant Likely <grant.likely@arm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
803ca24d2f
commit
15e7064e87
@ -2,6 +2,7 @@
|
||||
* QorIQ 10G MDIO Controller
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
* Copyright 2021 NXP
|
||||
*
|
||||
* Authors: Andy Fleming <afleming@freescale.com>
|
||||
* Timur Tabi <timur@freescale.com>
|
||||
@ -11,15 +12,17 @@
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/acpi_mdio.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/phy.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mdio.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of_mdio.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/phy.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
/* Number of microseconds to wait for a register to respond */
|
||||
#define TIMEOUT 1000
|
||||
@ -243,10 +246,10 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
|
||||
|
||||
static int xgmac_mdio_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device_node *np = pdev->dev.of_node;
|
||||
struct mii_bus *bus;
|
||||
struct resource *res;
|
||||
struct fwnode_handle *fwnode;
|
||||
struct mdio_fsl_priv *priv;
|
||||
struct resource *res;
|
||||
struct mii_bus *bus;
|
||||
int ret;
|
||||
|
||||
/* In DPAA-1, MDIO is one of the many FMan sub-devices. The FMan
|
||||
@ -279,13 +282,22 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
|
||||
goto err_ioremap;
|
||||
}
|
||||
|
||||
/* For both ACPI and DT cases, endianness of MDIO controller
|
||||
* needs to be specified using "little-endian" property.
|
||||
*/
|
||||
priv->is_little_endian = device_property_read_bool(&pdev->dev,
|
||||
"little-endian");
|
||||
|
||||
priv->has_a011043 = device_property_read_bool(&pdev->dev,
|
||||
"fsl,erratum-a011043");
|
||||
|
||||
ret = of_mdiobus_register(bus, np);
|
||||
fwnode = pdev->dev.fwnode;
|
||||
if (is_of_node(fwnode))
|
||||
ret = of_mdiobus_register(bus, to_of_node(fwnode));
|
||||
else if (is_acpi_node(fwnode))
|
||||
ret = acpi_mdiobus_register(bus, fwnode);
|
||||
else
|
||||
ret = -EINVAL;
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "cannot register MDIO bus\n");
|
||||
goto err_registration;
|
||||
|
Loading…
x
Reference in New Issue
Block a user