]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dev/mdio/mdio_if.m
Merge upstream r948: fix race condition in openpam_ttyconv(3).
[FreeBSD/FreeBSD.git] / sys / dev / mdio / mdio_if.m
1 # $FreeBSD$
2
3 #include <sys/bus.h>
4
5 INTERFACE mdio;
6
7 CODE {
8         #include <dev/mdio/mdio.h>
9
10         static int
11         mdio_null_readextreg(device_t dev, int phy, int devad, int reg)
12         {
13                 if (devad == MDIO_DEVADDR_NONE)
14                         return (MDIO_READREG(dev, phy, reg));
15                 return (~0U);
16         }
17
18         static int
19         mdio_null_writeextreg(device_t dev, int phy, int devad, int reg,
20             int val)
21         {
22                 if (devad == MDIO_DEVADDR_NONE)
23                         return (MDIO_WRITEREG(dev, phy, reg, val));
24
25                 return (EINVAL);
26         }
27 }
28
29 /**
30  * @brief Read register from device on MDIO bus.
31  *
32  * @param dev   MDIO bus device.
33  * @param phy   PHY address.
34  * @param reg   The PHY register offset.
35  */
36 METHOD int readreg {
37         device_t                dev;
38         int                     phy;
39         int                     reg;
40 };
41
42 /**
43  * @brief Read register from device on MDIO muxed bus.
44  *
45  * @param dev   MDIO bus device.
46  * @param bus   MDIO bus mux position
47  * @param phy   PHY address.
48  * @param reg   The PHY register offset.
49  */
50 METHOD int readreg_mux {
51         device_t                dev;
52         int                     bus;
53         int                     phy;
54         int                     reg;
55 };
56
57 /**
58  * @brief Write register to device on MDIO bus.
59  *
60  * @param dev   MDIO bus device.
61  * @param phy   PHY address.
62  * @param reg   The PHY register offset.
63  * @param val   The value to write at offset @p reg.
64  */
65 METHOD int writereg {
66         device_t                dev;
67         int                     phy;
68         int                     reg;
69         int                     val;
70 };
71
72 /**
73  * @brief Write register to device on MDIO muxed bus.
74  *
75  * @param dev   MDIO bus device.
76  * @param bus   MDIO bus mux position
77  * @param phy   PHY address.
78  * @param reg   The PHY register offset.
79  * @param val   The value to write at offset @p reg.
80  */
81 METHOD int writereg_mux {
82         device_t                dev;
83         int                     bus;
84         int                     phy;
85         int                     reg;
86         int                     val;
87 };
88
89
90 /**
91  * @brief Read extended register from device on MDIO bus.
92  *
93  * @param dev   MDIO bus device.
94  * @param phy   PHY address.
95  * @param devad The MDIO IEEE 802.3 Clause 45 device address, or
96  *              MDIO_DEVADDR_NONE to request Clause 22 register addressing.
97  * @param reg   The PHY register offset.
98  */
99 METHOD int readextreg {
100         device_t                dev;
101         int                     phy;
102         int                     devad;
103         int                     reg;
104 } DEFAULT mdio_null_readextreg;
105
106
107 /**
108  * @brief Write extended register to device on MDIO bus.
109  *
110  * @param dev   MDIO bus device.
111  * @param phy   PHY address.
112  * @param devad The MDIO IEEE 802.3 Clause 45 device address, or
113  *              MDIO_DEVADDR_NONE to request Clause 22 register addressing.
114  * @param reg   The PHY register offset.
115  * @param val   The value to write at offset @p reg.
116  */
117 METHOD int writeextreg {
118         device_t                dev;
119         int                     phy;
120         int                     devad;
121         int                     reg;
122         int                     val;
123 } DEFAULT mdio_null_writeextreg;