forked from OERV-BSP/u-boot
net: miiphybb: Introduce bb_miiphy_alloc()/bb_miiphy_free() wrappers
Introduce bb_miiphy_alloc()/bb_miiphy_free() wrappers to allocate and free struct bb_miiphy_bus. Make struct bb_miiphy_bus wrap struct mii_dev, which will become useful later in bb_miiphy_bus accessors, which would be able to access struct bb_miiphy_bus using container_of, even if the PHY stack only passes in the inner struct mii_dev . Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <ioports.h>
|
||||
#include <ppc_asm.tmpl>
|
||||
#include <malloc.h>
|
||||
#include <miiphy.h>
|
||||
#include <asm/global_data.h>
|
||||
|
||||
@@ -30,6 +31,24 @@ static inline struct bb_miiphy_bus *bb_miiphy_getbus(const char *devname)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct bb_miiphy_bus *bb_miiphy_alloc(void)
|
||||
{
|
||||
struct bb_miiphy_bus *bus;
|
||||
|
||||
bus = malloc(sizeof(*bus));
|
||||
if (!bus)
|
||||
return bus;
|
||||
|
||||
mdio_init(&bus->mii);
|
||||
|
||||
return bus;
|
||||
}
|
||||
|
||||
void bb_miiphy_free(struct bb_miiphy_bus *bus)
|
||||
{
|
||||
free(bus);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Utility to send the preamble, address, and register (common to read
|
||||
|
||||
@@ -73,11 +73,15 @@ struct bb_miiphy_bus {
|
||||
int (*set_mdc)(struct bb_miiphy_bus *bus, int v);
|
||||
int (*delay)(struct bb_miiphy_bus *bus);
|
||||
void *priv;
|
||||
struct mii_dev mii;
|
||||
};
|
||||
|
||||
extern struct bb_miiphy_bus bb_miiphy_buses[];
|
||||
extern int bb_miiphy_buses_num;
|
||||
|
||||
struct bb_miiphy_bus *bb_miiphy_alloc(void);
|
||||
void bb_miiphy_free(struct bb_miiphy_bus *bus);
|
||||
|
||||
int bb_miiphy_read(struct mii_dev *miidev, int addr, int devad, int reg);
|
||||
int bb_miiphy_write(struct mii_dev *miidev, int addr, int devad, int reg,
|
||||
u16 value);
|
||||
|
||||
Reference in New Issue
Block a user