[PATCHv2 01/13] net: fsl_pq_mdio: Add the compatible "fsl, gianfar-mdio" support
Zhiqiang Hou
Zhiqiang.Hou at nxp.com
Fri Jun 5 10:55:05 CEST 2020
From: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
Add compatible string "fsl,gianfar-mdio" support and update the
device-tree-bindings doc.
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
---
V2:
- Rebase the patch, no change intended.
doc/device-tree-bindings/net/fsl-tsec-phy.txt | 3 ++-
drivers/net/fsl_mdio.c | 15 +++++++++++++--
include/fsl_mdio.h | 4 ++++
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/doc/device-tree-bindings/net/fsl-tsec-phy.txt b/doc/device-tree-bindings/net/fsl-tsec-phy.txt
index 8e8574bc97..a709b89a5c 100644
--- a/doc/device-tree-bindings/net/fsl-tsec-phy.txt
+++ b/doc/device-tree-bindings/net/fsl-tsec-phy.txt
@@ -28,7 +28,8 @@ device that exists on this bus, a PHY node should be created.
Required properties:
- compatible : Should define the compatible device type for the
- mdio. Currently supported string/device is "fsl,etsec2-mdio".
+ mdio. Currently supported string/device is "fsl,etsec2-mdio" and
+ "fsl,gianfar-mdio".
- reg : Offset and length of the register set for the device
Example:
diff --git a/drivers/net/fsl_mdio.c b/drivers/net/fsl_mdio.c
index 284508062c..ea9c37ad19 100644
--- a/drivers/net/fsl_mdio.c
+++ b/drivers/net/fsl_mdio.c
@@ -138,10 +138,12 @@ static int dm_fsl_pq_mdio_write(struct udevice *dev, int addr, int devad,
static int fsl_pq_mdio_probe(struct udevice *dev)
{
struct fsl_pq_mdio_info *info = dev_get_priv(dev);
+ struct fsl_pq_mdio_data *data;
fdt_addr_t reg;
+ data = (struct fsl_pq_mdio_data *)dev_get_driver_data(dev);
reg = devfdt_get_addr(dev);
- info->regs = map_physmem(reg + TSEC_MDIO_REGS_OFFSET, 0, MAP_NOCACHE);
+ info->regs = map_physmem(reg + data->mdio_regs_off, 0, MAP_NOCACHE);
return fsl_pq_mdio_reset(info->regs);
}
@@ -151,8 +153,17 @@ static const struct mdio_ops fsl_pq_mdio_ops = {
.write = dm_fsl_pq_mdio_write,
};
+static struct fsl_pq_mdio_data etsec2_data = {
+ .mdio_regs_off = TSEC_MDIO_REGS_OFFSET,
+};
+
+static struct fsl_pq_mdio_data gianfar_data = {
+ .mdio_regs_off = 0x0,
+};
+
static const struct udevice_id fsl_pq_mdio_ids[] = {
- { .compatible = "fsl,etsec2-mdio" },
+ { .compatible = "fsl,etsec2-mdio", .data = (ulong)&etsec2_data },
+ { .compatible = "fsl,gianfar-mdio", .data = (ulong)&gianfar_data },
{ }
};
diff --git a/include/fsl_mdio.h b/include/fsl_mdio.h
index 386c477a8b..80e3100cda 100644
--- a/include/fsl_mdio.h
+++ b/include/fsl_mdio.h
@@ -53,6 +53,10 @@ int memac_mdio_read(struct mii_dev *bus, int port_addr, int dev_addr,
int regnum);
int memac_mdio_reset(struct mii_dev *bus);
+struct fsl_pq_mdio_data {
+ u32 mdio_regs_off;
+};
+
struct fsl_pq_mdio_info {
struct tsec_mii_mng __iomem *regs;
char *name;
--
2.25.1
More information about the U-Boot
mailing list