#ifndef _RTL8366_SMI_H
#define _RTL8366_SMI_H
+#include <linux/phy.h>
+
struct rtl8366_smi_ops;
+struct mii_bus;
struct rtl8366_smi {
struct device *parent;
unsigned int gpio_sda;
unsigned int gpio_sck;
spinlock_t lock;
+ struct mii_bus *mii_bus;
+ int mii_irq[PHY_MAX_ADDR];
struct rtl8366_smi_ops *ops;
};
struct rtl8366_smi_ops {
int (*detect)(struct rtl8366_smi *smi);
+
+ int (*mii_read)(struct mii_bus *bus, int addr, int reg);
+ int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val);
};
int rtl8366_smi_init(struct rtl8366_smi *smi);