Root/
Source at commit 5e66606 created 13 years 9 months ago. By juhosg, generic: rtl8366: move mii bus handling to the rtl8366_smi code | |
---|---|
1 | /* |
2 | * Realtek RTL8366 SMI interface driver defines |
3 | * |
4 | * Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org> |
5 | * |
6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License version 2 as published |
8 | * by the Free Software Foundation. |
9 | */ |
10 | |
11 | #ifndef _RTL8366_SMI_H |
12 | #define _RTL8366_SMI_H |
13 | |
14 | #include <linux/phy.h> |
15 | |
16 | struct rtl8366_smi_ops; |
17 | struct mii_bus; |
18 | |
19 | struct rtl8366_smi { |
20 | struct device *parent; |
21 | unsigned int gpio_sda; |
22 | unsigned int gpio_sck; |
23 | spinlock_t lock; |
24 | struct mii_bus *mii_bus; |
25 | int mii_irq[PHY_MAX_ADDR]; |
26 | |
27 | struct rtl8366_smi_ops *ops; |
28 | }; |
29 | |
30 | struct rtl8366_smi_ops { |
31 | int (*detect)(struct rtl8366_smi *smi); |
32 | |
33 | int (*mii_read)(struct mii_bus *bus, int addr, int reg); |
34 | int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val); |
35 | }; |
36 | |
37 | int rtl8366_smi_init(struct rtl8366_smi *smi); |
38 | void rtl8366_smi_cleanup(struct rtl8366_smi *smi); |
39 | int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data); |
40 | int rtl8366_smi_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data); |
41 | |
42 | #endif /* _RTL8366_SMI_H */ |
43 |