#include <linux/device.h>
#include <linux/mdio-mux.h>
#include <linux/module.h>
#include <linux/of_mdio.h>
#include <linux/phy.h>
#include <linux/platform_device.h>
#define DRV_DESCRIPTION …
struct mdio_mux_child_bus;
struct mdio_mux_parent_bus { … };
struct mdio_mux_child_bus { … };
static int mdio_mux_read(struct mii_bus *bus, int phy_id, int regnum)
{ … }
static int mdio_mux_read_c45(struct mii_bus *bus, int phy_id, int dev_addr,
int regnum)
{ … }
static int mdio_mux_write(struct mii_bus *bus, int phy_id,
int regnum, u16 val)
{ … }
static int mdio_mux_write_c45(struct mii_bus *bus, int phy_id, int dev_addr,
int regnum, u16 val)
{ … }
static int parent_count;
static void mdio_mux_uninit_children(struct mdio_mux_parent_bus *pb)
{ … }
int mdio_mux_init(struct device *dev,
struct device_node *mux_node,
int (*switch_fn)(int cur, int desired, void *data),
void **mux_handle,
void *data,
struct mii_bus *mux_bus)
{ … }
EXPORT_SYMBOL_GPL(…);
void mdio_mux_uninit(void *mux_handle)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…);
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;