\hypertarget{mii__fdt_8c_source}{}\doxysection{mii\+\_\+fdt.\+c}
\label{mii__fdt_8c_source}\index{dev/mii/mii\_fdt.c@{dev/mii/mii\_fdt.c}}
\mbox{\hyperlink{mii__fdt_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00002}00002 \textcolor{comment}{ * Copyright (c) 2017 Ian Lepore <ian@freebsd.org>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00003}00003 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00005}00005 \textcolor{comment}{ * Development sponsored by Microsemi, Inc.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00028}00028 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00029}00029 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00030}\mbox{\hyperlink{mii__fdt_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00030}} \mbox{\hyperlink{mii__fdt_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00031}00031 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00032}00032 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00033}00033 \textcolor{comment}{ * Utility functions for PHY drivers on systems configured using FDT data.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/socket.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00041}00041 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <net/if.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <net/if\_media.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <dev/ofw/openfirm.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <dev/ofw/ofw\_bus.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <dev/ofw/ofw\_bus\_subr.h>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{mii_8h}{dev/mii/mii.h}}>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{miivar_8h}{dev/mii/miivar.h}}>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{mii__fdt_8h}{dev/mii/mii\_fdt.h}}>}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00053}00053 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00054}00054 \textcolor{comment}{ * Table to translate MII\_CONTYPE\_xxxx constants to/from devicetree strings.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00055}00055 \textcolor{comment}{ * We explicitly associate the enum values with the strings in a table to avoid}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00056}00056 \textcolor{comment}{ * relying on this list being sorted in the same order as the enum in miivar.h,}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00057}00057 \textcolor{comment}{ * and to avoid problems if the enum gains new types that aren't in the FDT}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00058}00058 \textcolor{comment}{ * data.  However, the "{}unknown"{} entry must be first because it is referenced}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00059}00059 \textcolor{comment}{ * using subscript 0 in mii\_fdt\_contype\_to\_name().}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00060}00060 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00061}\mbox{\hyperlink{structcontype__names}{00061}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structcontype__names}{contype\_names}} \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00062}\mbox{\hyperlink{structcontype__names_ac2fc08017ebf6c53b50734e4a05c572f}{00062}}         \mbox{\hyperlink{miivar_8h_a37fa9ed450b982dc7d87f2197e4a7667}{mii\_contype\_t}} \mbox{\hyperlink{structcontype__names_ac2fc08017ebf6c53b50734e4a05c572f}{type}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00063}\mbox{\hyperlink{structcontype__names_a83e7e56cf88fd750e14fd885753f56a8}{00063}}         \textcolor{keyword}{const} \textcolor{keywordtype}{char}   *\mbox{\hyperlink{structcontype__names_a83e7e56cf88fd750e14fd885753f56a8}{name}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00064}00064 \} \mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}[] = \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00065}00065         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a776514561342e4653ad6f8a713cf63c9}{MII\_CONTYPE\_UNKNOWN}},                \textcolor{stringliteral}{"{}unknown"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00066}00066         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a40c567a5d0abba368ae188ae39f36bee}{MII\_CONTYPE\_MII}},                \textcolor{stringliteral}{"{}mii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00067}00067         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994abb921ce5f31be90e209f8352416f26c5}{MII\_CONTYPE\_GMII}},              \textcolor{stringliteral}{"{}gmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00068}00068         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a14e28da40997f067fae438b62638478e}{MII\_CONTYPE\_SGMII}},            \textcolor{stringliteral}{"{}sgmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00069}00069         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a6683d8151f44ca16ac016cc1a511b432}{MII\_CONTYPE\_QSGMII}},          \textcolor{stringliteral}{"{}qsgmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00070}00070         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994af3f2943860bdb09cd14168293c210e20}{MII\_CONTYPE\_TBI}},                \textcolor{stringliteral}{"{}tbi"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00071}00071         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994ac1af4c4aec6a8663fa57613b539b0ce3}{MII\_CONTYPE\_REVMII}},          \textcolor{stringliteral}{"{}rev-\/mii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00072}00072         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994abff80a5cb150f75159bfa22532c2593b}{MII\_CONTYPE\_RMII}},              \textcolor{stringliteral}{"{}rmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00073}00073         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a0cefdef8a2bca1c8f6f2f323942a99c5}{MII\_CONTYPE\_RGMII}},            \textcolor{stringliteral}{"{}rgmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00074}00074         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a0dfa11579e2eeb4c703354babd691db8}{MII\_CONTYPE\_RGMII\_ID}},              \textcolor{stringliteral}{"{}rgmii-\/id"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00075}00075         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a7167a24aa24d9aa3c71c28fcbf070524}{MII\_CONTYPE\_RGMII\_RXID}},  \textcolor{stringliteral}{"{}rgmii-\/rxid"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00076}00076         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994aa83c73872aeb5ec7eea1c15257c5a4ff}{MII\_CONTYPE\_RGMII\_TXID}},  \textcolor{stringliteral}{"{}rgmii-\/txid"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00077}00077         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a13e88ed3756f35c63d39270ce22c1864}{MII\_CONTYPE\_RTBI}},              \textcolor{stringliteral}{"{}rtbi"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00078}00078         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994abca36b5f1180e8397ef06d1daec9520c}{MII\_CONTYPE\_SMII}},              \textcolor{stringliteral}{"{}smii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00079}00079         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994ae6c38541866030de400ac07ed0a4462c}{MII\_CONTYPE\_XGMII}},            \textcolor{stringliteral}{"{}xgmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00080}00080         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994ad41cfdad8954206b6fb88e45ff11e61f}{MII\_CONTYPE\_TRGMII}},          \textcolor{stringliteral}{"{}trgmii"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00081}00081         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994adb17d252258dab2eec506e8ed5ba3760}{MII\_CONTYPE\_2000BX}},          \textcolor{stringliteral}{"{}2000base-\/x"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00082}00082         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994aeb48babac0ef9b7ee2735b15e76da76c}{MII\_CONTYPE\_2500BX}},          \textcolor{stringliteral}{"{}2500base-\/x"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00083}00083         \{\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994ae58778de1c28e7676429daf517be2be0}{MII\_CONTYPE\_RXAUI}},            \textcolor{stringliteral}{"{}rxaui"{}}\},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00084}\mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{00084}} \};                                                           }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00085}00085 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00086}00086 \textcolor{keyword}{static} phandle\_t}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00087}\mbox{\hyperlink{mii__fdt_8c_a198f623839a080307406c14ffaae07ca}{00087}} \mbox{\hyperlink{mii__fdt_8c_a198f623839a080307406c14ffaae07ca}{mii\_fdt\_get\_phynode}}(phandle\_t macnode)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00088}00088 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00089}00089         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *props[] = \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00090}00090             \textcolor{stringliteral}{"{}phy-\/handle"{}}, \textcolor{stringliteral}{"{}phy"{}}, \textcolor{stringliteral}{"{}phy-\/device"{}}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00091}00091         \};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00092}00092         pcell\_t xref;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00093}00093         u\_int i;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00095}00095         \textcolor{keywordflow}{for} (i = 0; i < nitems(props); ++i) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00096}00096                 \textcolor{keywordflow}{if} (OF\_getencprop(macnode, props[i], \&xref, \textcolor{keyword}{sizeof}(xref)) > 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00097}00097                         \textcolor{keywordflow}{return} (OF\_node\_from\_xref(xref));}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00098}00098         \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00099}00099         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00100}00100 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00102}00102 \textcolor{keyword}{static} phandle\_t}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00103}\mbox{\hyperlink{mii__fdt_8c_a7a7821172bc865ab19af9ace694faed0}{00103}} \mbox{\hyperlink{mii__fdt_8c_a7a7821172bc865ab19af9ace694faed0}{mii\_fdt\_lookup\_phy}}(phandle\_t node, \textcolor{keywordtype}{int} addr)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00104}00104 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00105}00105         phandle\_t ports, phynode, child;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00106}00106         \textcolor{keywordtype}{int} \mbox{\hyperlink{miibus__if_8m_aa391927e06832c3d8d2f4e89a25cdd81}{reg}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00107}00107 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00108}00108         \textcolor{comment}{/* First try to see if we have a direct xref pointing to a PHY. */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00109}00109         phynode = \mbox{\hyperlink{mii__fdt_8c_a198f623839a080307406c14ffaae07ca}{mii\_fdt\_get\_phynode}}(node);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00110}00110         \textcolor{keywordflow}{if} (phynode != -\/1)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00111}00111                 \textcolor{keywordflow}{return} (phynode);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00113}00113         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00114}00114 \textcolor{comment}{         * Now handle the "{}switch"{} case.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00115}00115 \textcolor{comment}{         * Search "{}ports"{} subnode for nodes that describe a switch port}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00116}00116 \textcolor{comment}{         * including a PHY xref.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00117}00117 \textcolor{comment}{         * Since we have multiple candidates select one based on PHY address.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00118}00118 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00119}00119         ports = ofw\_bus\_find\_child(node, \textcolor{stringliteral}{"{}ports"{}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00120}00120         \textcolor{keywordflow}{if} (ports <= 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00121}00121                 \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00122}00122 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00123}00123         \textcolor{keywordflow}{for} (child = OF\_child(ports); child != 0; child = OF\_peer(child)) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00124}00124                 \textcolor{keywordflow}{if} (ofw\_bus\_node\_status\_okay(child) == 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00125}00125                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00127}00127                 phynode = \mbox{\hyperlink{mii__fdt_8c_a198f623839a080307406c14ffaae07ca}{mii\_fdt\_get\_phynode}}(child);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00128}00128                 \textcolor{keywordflow}{if} (phynode <= 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00129}00129                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00130}00130 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00131}00131                 \textcolor{keywordflow}{if} (OF\_getencprop(phynode, \textcolor{stringliteral}{"{}reg"{}}, \&\mbox{\hyperlink{miibus__if_8m_aa391927e06832c3d8d2f4e89a25cdd81}{reg}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{miibus__if_8m_aa391927e06832c3d8d2f4e89a25cdd81}{reg}})) <= 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00132}00132                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00133}00133 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00134}00134                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{miibus__if_8m_aa391927e06832c3d8d2f4e89a25cdd81}{reg}} == addr)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00135}00135                         \textcolor{keywordflow}{return} (phynode);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00136}00136         \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00137}00137         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00138}00138 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00139}00139 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00140}00140 \mbox{\hyperlink{miivar_8h_a37fa9ed450b982dc7d87f2197e4a7667}{mii\_contype\_t}}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00141}\mbox{\hyperlink{mii__fdt_8c_aef02f0ea62fbd16977060f2c8bb62419}{00141}} \mbox{\hyperlink{mii__fdt_8c_aef02f0ea62fbd16977060f2c8bb62419}{mii\_fdt\_contype\_from\_name}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *name)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00142}00142 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00143}00143         u\_int i;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00144}00144 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00145}00145         \textcolor{keywordflow}{for} (i = 0; i < nitems(\mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}); ++i) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00146}00146                 \textcolor{keywordflow}{if} (strcmp(name, \mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}[i].name) == 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00147}00147                         \textcolor{keywordflow}{return} (\mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}[i].type);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00148}00148         \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00149}00149         \textcolor{keywordflow}{return} (\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a776514561342e4653ad6f8a713cf63c9}{MII\_CONTYPE\_UNKNOWN}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00150}00150 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00151}00151 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00152}00152 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00153}\mbox{\hyperlink{mii__fdt_8c_ae72c738e4782335c0415117a5979dcdd}{00153}} \mbox{\hyperlink{mii__fdt_8c_ae72c738e4782335c0415117a5979dcdd}{mii\_fdt\_contype\_to\_name}}(\mbox{\hyperlink{miivar_8h_a37fa9ed450b982dc7d87f2197e4a7667}{mii\_contype\_t}} contype)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00154}00154 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00155}00155         u\_int i;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00156}00156 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00157}00157         \textcolor{keywordflow}{for} (i = 0; i < nitems(\mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}); ++i) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00158}00158                 \textcolor{keywordflow}{if} (contype == \mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}[i].type)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00159}00159                         \textcolor{keywordflow}{return} (\mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}[i].name);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00160}00160         \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00161}00161         \textcolor{keywordflow}{return} (\mbox{\hyperlink{mii__fdt_8c_acfef0f914d4f39b40064af0cfa4e7d5b}{fdt\_contype\_names}}[0].name);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00162}00162 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00163}00163 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00164}00164 \mbox{\hyperlink{miivar_8h_a37fa9ed450b982dc7d87f2197e4a7667}{mii\_contype\_t}}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00165}\mbox{\hyperlink{mii__fdt_8c_abf0173db3cc1b2e59a21c0949800e074}{00165}} \mbox{\hyperlink{mii__fdt_8c_abf0173db3cc1b2e59a21c0949800e074}{mii\_fdt\_get\_contype}}(phandle\_t macnode)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00166}00166 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00167}00167         \textcolor{keywordtype}{char} \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}}[32];}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00168}00168 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00169}00169         \textcolor{keywordflow}{if} (OF\_getprop(macnode, \textcolor{stringliteral}{"{}phy-\/mode"{}}, \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}})) <= 0 \&\&}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00170}00170             OF\_getprop(macnode, \textcolor{stringliteral}{"{}phy-\/connection-\/type"{}}, \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}})) <= 0) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00171}00171                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{miivar_8h_a53aa0c12d3aea2138990dd18aee37994a776514561342e4653ad6f8a713cf63c9}{MII\_CONTYPE\_UNKNOWN}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00172}00172         \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00173}00173         \textcolor{keywordflow}{return} (\mbox{\hyperlink{mii__fdt_8c_aef02f0ea62fbd16977060f2c8bb62419}{mii\_fdt\_contype\_from\_name}}(\mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}}));}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00174}00174 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00175}00175 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00176}00176 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00177}\mbox{\hyperlink{mii__fdt_8c_a6a0631ee8605a43403d56237c5eeffef}{00177}} \mbox{\hyperlink{mii__fdt_8c_a6a0631ee8605a43403d56237c5eeffef}{mii\_fdt\_free\_config}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__fdt__phy__config}{mii\_fdt\_phy\_config}} *cfg)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00178}00178 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00179}00179 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00180}00180         free(cfg, M\_OFWPROP);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00181}00181 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00182}00182 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00183}00183 \mbox{\hyperlink{structmii__fdt__phy__config}{mii\_fdt\_phy\_config\_t}} *}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00184}\mbox{\hyperlink{mii__fdt_8c_a69c3ae4c7125341f611668875f9b55ea}{00184}} \mbox{\hyperlink{mii__fdt_8c_a69c3ae4c7125341f611668875f9b55ea}{mii\_fdt\_get\_config}}(device\_t phydev)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00185}00185 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00186}00186         \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__attach__args}{mii\_attach\_args}} *ma;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00187}00187         \mbox{\hyperlink{structmii__fdt__phy__config}{mii\_fdt\_phy\_config\_t}} *cfg;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00188}00188         device\_t \mbox{\hyperlink{miibus__if_8m_a4cbc1805319b363b9b338406a4b2a683}{miibus}}, macdev;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00189}00189         pcell\_t \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00190}00190 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00191}00191         ma = device\_get\_ivars(phydev);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00192}00192         \mbox{\hyperlink{miibus__if_8m_a4cbc1805319b363b9b338406a4b2a683}{miibus}} = device\_get\_parent(phydev);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00193}00193         macdev = device\_get\_parent(\mbox{\hyperlink{miibus__if_8m_a4cbc1805319b363b9b338406a4b2a683}{miibus}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00194}00194 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00195}00195         cfg = malloc(\textcolor{keyword}{sizeof}(*cfg), M\_OFWPROP, M\_ZERO | M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00196}00196 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00197}00197         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00198}00198 \textcolor{comment}{         * If we can't find our parent MAC's node, there's nothing more we can}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00199}00199 \textcolor{comment}{         * fill in; cfg is already full of zero/default values, return it.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00200}00200 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00201}00201         \textcolor{keywordflow}{if} ((cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a3fa23acfd5e4d8782147a1546994a8b0}{macnode}} = ofw\_bus\_get\_node(macdev)) == -\/1)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00202}00202                 \textcolor{keywordflow}{return} (cfg);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00204}00204         cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_aee3b7d57dfd516f54a430381455f2035}{con\_type}} = \mbox{\hyperlink{mii__fdt_8c_abf0173db3cc1b2e59a21c0949800e074}{mii\_fdt\_get\_contype}}(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a3fa23acfd5e4d8782147a1546994a8b0}{macnode}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00205}00205 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00206}00206         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00207}00207 \textcolor{comment}{         * If we can't find our own PHY node, there's nothing more we can fill}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00208}00208 \textcolor{comment}{         * in, just return what we've got.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00209}00209 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00210}00210         cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}} = \mbox{\hyperlink{mii__fdt_8c_a7a7821172bc865ab19af9ace694faed0}{mii\_fdt\_lookup\_phy}}(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a3fa23acfd5e4d8782147a1546994a8b0}{macnode}}, ma-\/>\mbox{\hyperlink{structmii__attach__args_a57e558179b97de1ab63686e7b1cf6ee0}{mii\_phyno}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00211}00211         \textcolor{keywordflow}{if} (cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}} == -\/1)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00212}00212                 \textcolor{keywordflow}{return} (cfg);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00213}00213 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00214}00214         \textcolor{keywordflow}{if} (OF\_getencprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}max-\/speed"{}}, \&\mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}})) > 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00215}00215                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a235b4be45a4fee02b5b0dbceaf494f14}{max\_speed}} = \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00216}00216 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00217}00217         \textcolor{keywordflow}{if} (ofw\_bus\_node\_is\_compatible(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00218}00218             \textcolor{stringliteral}{"{}ethernet-\/phy-\/ieee802.3-\/c45"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00219}00219                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a20984f61f3c5eb699ce49b135a2c0df5}{MIIF\_FDT\_COMPAT\_CLAUSE45}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00220}00220 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00221}00221         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}broken-\/turn-\/around"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00222}00222                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a4f73981dd00b0b66c0c58ba52bd8c08a}{MIIF\_FDT\_BROKEN\_TURNAROUND}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00223}00223         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}enet-\/phy-\/lane-\/swap"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00224}00224                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a06e3ae73e2c230b10c9c8dcc87111c92}{MIIF\_FDT\_LANE\_SWAP}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00225}00225         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}enet-\/phy-\/lane-\/no-\/swap"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00226}00226                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a4f1e3168913821af21a4f616cea91fba}{MIIF\_FDT\_NO\_LANE\_SWAP}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00227}00227         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}eee-\/broken-\/100tx"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00228}00228                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a581a548e3c59f7af9e994d882b33d722}{MIIF\_FDT\_EEE\_BROKEN\_100TX}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00229}00229         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}eee-\/broken-\/1000t"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00230}00230                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_ada48ddcffe204262eaf7c33cab7b7627}{MIIF\_FDT\_EEE\_BROKEN\_1000T}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00231}00231         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}eee-\/broken-\/10gt"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00232}00232                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_aa032e4c6ef0b180232b961a34a999a98}{MIIF\_FDT\_EEE\_BROKEN\_10GT}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00233}00233         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}eee-\/broken-\/1000kx"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00234}00234                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_aee0e1e352308b8731d971d5fa35b6a96}{MIIF\_FDT\_EEE\_BROKEN\_1000KX}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00235}00235         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}eee-\/broken-\/10gkx4"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00236}00236                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a456be143da896fbb2b4fa988e1cfc24b}{MIIF\_FDT\_EEE\_BROKEN\_10GKX4}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00237}00237         \textcolor{keywordflow}{if} (OF\_hasprop(cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_ae6cead8b778b49216d6cd193eed5ce72}{phynode}}, \textcolor{stringliteral}{"{}eee-\/broken-\/10gkr"{}}))}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00238}00238                 cfg-\/>\mbox{\hyperlink{structmii__fdt__phy__config_a04fc4917674cb3075e57dd8824d12cc0}{flags}} |= \mbox{\hyperlink{mii__fdt_8h_a963f3683a844e70b0ee8f1daaa43c7c5}{MIIF\_FDT\_EEE\_BROKEN\_10GKR}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00239}00239 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00240}00240         \textcolor{keywordflow}{return} (cfg);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00241}00241 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00242}00242 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00243}00243 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00244}\mbox{\hyperlink{mii__fdt_8c_a46c86564ef4b8b4677b037e64ea6051a}{00244}} \mbox{\hyperlink{mii__fdt_8c_a46c86564ef4b8b4677b037e64ea6051a}{miibus\_fdt\_probe}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00245}00245 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00246}00246         device\_t parent;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00247}00247 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00248}00248         parent = device\_get\_parent(dev);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00249}00249         \textcolor{keywordflow}{if} (ofw\_bus\_get\_node(parent) == -\/1)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00250}00250                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00251}00251 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00252}00252         device\_set\_desc(dev, \textcolor{stringliteral}{"{}OFW MII bus"{}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00253}00253         \textcolor{keywordflow}{return} (BUS\_PROBE\_DEFAULT);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00254}00254 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00255}00255 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00256}00256 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00257}\mbox{\hyperlink{mii__fdt_8c_afe7138f9f788ca0f8d8ec9740d0d2e3d}{00257}} \mbox{\hyperlink{mii__fdt_8c_afe7138f9f788ca0f8d8ec9740d0d2e3d}{miibus\_fdt\_attach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00258}00258 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00259}00259         \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__attach__args}{mii\_attach\_args}} *ma;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00260}00260         \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__data}{mii\_data}} *sc;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00261}00261         \textcolor{keywordtype}{int} i, error, nchildren;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00262}00262         device\_t parent, *children;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00263}00263         phandle\_t phy\_node;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00264}00264 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00265}00265         parent = device\_get\_parent(dev);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00266}00266         sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00267}00267 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00268}00268         error = device\_get\_children(dev, \&children, \&nchildren);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00269}00269         \textcolor{keywordflow}{if} (error != 0 || nchildren == 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00270}00270                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00271}00271 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00272}00272         \textcolor{keywordflow}{for} (i = 0; i < nchildren; i++) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00273}00273                 ma = device\_get\_ivars(children[i]);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00274}00274                 bzero(\&ma-\/>obd, \textcolor{keyword}{sizeof}(ma-\/>obd));}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00275}00275                 phy\_node = \mbox{\hyperlink{mii__fdt_8c_a7a7821172bc865ab19af9ace694faed0}{mii\_fdt\_lookup\_phy}}(ofw\_bus\_get\_node(parent),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00276}00276                     ma-\/>\mbox{\hyperlink{structmii__attach__args_a57e558179b97de1ab63686e7b1cf6ee0}{mii\_phyno}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00277}00277                 \textcolor{keywordflow}{if} (phy\_node == -\/1) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00278}00278                         device\_printf(dev,}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00279}00279                             \textcolor{stringliteral}{"{}Warning: failed to find OFW node for PHY\%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00280}00280                             ma-\/>\mbox{\hyperlink{structmii__attach__args_a57e558179b97de1ab63686e7b1cf6ee0}{mii\_phyno}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00281}00281                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00282}00282                 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00283}00283                 error = ofw\_bus\_gen\_setup\_devinfo(\&ma-\/>obd, phy\_node);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00284}00284                 \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00285}00285                         device\_printf(dev,}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00286}00286                             \textcolor{stringliteral}{"{}Warning: failed to setup OFW devinfo for PHY\%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00287}00287                             ma-\/>\mbox{\hyperlink{structmii__attach__args_a57e558179b97de1ab63686e7b1cf6ee0}{mii\_phyno}});}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00288}00288                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00289}00289                 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00290}00290                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00291}00291 \textcolor{comment}{                 * Setup interrupt resources.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00292}00292 \textcolor{comment}{                 * Only a handful of PHYs support those,}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00293}00293 \textcolor{comment}{                 * so it's fine if we fail here.}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00294}00294 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00295}00295                 resource\_list\_init(\&ma-\/>rl);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00296}00296                 (void)ofw\_bus\_intr\_to\_rl(children[i], phy\_node, \&ma-\/>rl, NULL);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00297}00297         \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00298}00298 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00299}00299         free(children, M\_TEMP);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00300}00300         \textcolor{keywordflow}{return} (\mbox{\hyperlink{miivar_8h_aadba372ccfe5d7d94a1273eaea985a6a}{miibus\_attach}}(dev));}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00301}00301 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00302}00302 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00303}00303 \textcolor{keyword}{static} \textcolor{keyword}{struct }resource\_list *}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00304}\mbox{\hyperlink{mii__fdt_8c_a0b1773182c504fb660cb058c79d3c0c6}{00304}} \mbox{\hyperlink{mii__fdt_8c_a0b1773182c504fb660cb058c79d3c0c6}{miibus\_fdt\_get\_resource\_list}}(device\_t bus, device\_t child)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00305}00305 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00306}00306         \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__attach__args}{mii\_attach\_args}} *ma;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00307}00307 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00308}00308         ma = device\_get\_ivars(child);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00309}00309 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00310}00310         \textcolor{keywordflow}{if} (ma-\/>obd.obd\_node == 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00311}00311                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00312}00312 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00313}00313         \textcolor{keywordflow}{return} (\&ma-\/>rl);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00314}00314 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00316}00316 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }ofw\_bus\_devinfo*}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00317}\mbox{\hyperlink{mii__fdt_8c_a27cd60f0993a7edaf1b7b1917ff930af}{00317}} \mbox{\hyperlink{mii__fdt_8c_a27cd60f0993a7edaf1b7b1917ff930af}{miibus\_fdt\_get\_devinfo}}(device\_t bus, device\_t child)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00318}00318 \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00319}00319         \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__attach__args}{mii\_attach\_args}} *ma;}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00320}00320 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00321}00321         ma = device\_get\_ivars(child);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00322}00322 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00323}00323         \textcolor{keywordflow}{if} (ma-\/>obd.obd\_node == 0)}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00324}00324                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00325}00325 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00326}00326         \textcolor{keywordflow}{return} (\&ma-\/>obd);}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00327}00327 \}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00328}00328 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00329}\mbox{\hyperlink{mii__fdt_8c_a4e026d0caf90c4fc0094660ba4d1bbd9}{00329}} \textcolor{keyword}{static} device\_method\_t \mbox{\hyperlink{mii__fdt_8c_a4e026d0caf90c4fc0094660ba4d1bbd9}{miibus\_fdt\_methods}}[] = \{}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00330}00330         DEVMETHOD(device\_probe,         \mbox{\hyperlink{mii__fdt_8c_a46c86564ef4b8b4677b037e64ea6051a}{miibus\_fdt\_probe}}),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00331}00331         DEVMETHOD(device\_attach,        \mbox{\hyperlink{mii__fdt_8c_afe7138f9f788ca0f8d8ec9740d0d2e3d}{miibus\_fdt\_attach}}),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00332}00332 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00333}00333         \textcolor{comment}{/* ofw\_bus interface */}}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00334}00334         DEVMETHOD(ofw\_bus\_get\_devinfo,  \mbox{\hyperlink{mii__fdt_8c_a27cd60f0993a7edaf1b7b1917ff930af}{miibus\_fdt\_get\_devinfo}}),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00335}00335         DEVMETHOD(ofw\_bus\_get\_compat,   ofw\_bus\_gen\_get\_compat),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00336}00336         DEVMETHOD(ofw\_bus\_get\_model,    ofw\_bus\_gen\_get\_model),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00337}00337         DEVMETHOD(ofw\_bus\_get\_name,     ofw\_bus\_gen\_get\_name),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00338}00338         DEVMETHOD(ofw\_bus\_get\_node,     ofw\_bus\_gen\_get\_node),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00339}00339         DEVMETHOD(ofw\_bus\_get\_type,     ofw\_bus\_gen\_get\_type),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00340}00340 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00341}00341         DEVMETHOD(bus\_setup\_intr,               bus\_generic\_setup\_intr),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00342}00342         DEVMETHOD(bus\_teardown\_intr,            bus\_generic\_teardown\_intr),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00343}00343         DEVMETHOD(bus\_release\_resource,         bus\_generic\_release\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00344}00344         DEVMETHOD(bus\_activate\_resource,        bus\_generic\_activate\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00345}00345         DEVMETHOD(bus\_deactivate\_resource,      bus\_generic\_deactivate\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00346}00346         DEVMETHOD(bus\_adjust\_resource,          bus\_generic\_adjust\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00347}00347         DEVMETHOD(bus\_alloc\_resource,           bus\_generic\_rl\_alloc\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00348}00348         DEVMETHOD(bus\_get\_resource,             bus\_generic\_rl\_get\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00349}00349         DEVMETHOD(bus\_set\_resource,             bus\_generic\_rl\_set\_resource),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00350}00350         DEVMETHOD(bus\_get\_resource\_list,        \mbox{\hyperlink{mii__fdt_8c_a0b1773182c504fb660cb058c79d3c0c6}{miibus\_fdt\_get\_resource\_list}}),}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00351}00351 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00352}00352         DEVMETHOD\_END}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00353}00353 \};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00354}00354 }
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00355}\mbox{\hyperlink{mii__fdt_8c_a05dd706be7ea0bfab2cba3ddfa08d0ca}{00355}} devclass\_t \mbox{\hyperlink{mii__fdt_8c_a05dd706be7ea0bfab2cba3ddfa08d0ca}{miibus\_fdt\_devclass}};}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00356}\mbox{\hyperlink{mii__fdt_8c_a1b129a33ef86ef3e5fe442d0c320b29a}{00356}} \mbox{\hyperlink{mii__fdt_8c_a1b129a33ef86ef3e5fe442d0c320b29a}{DEFINE\_CLASS\_1}}(\mbox{\hyperlink{miibus__if_8m_a4cbc1805319b363b9b338406a4b2a683}{miibus}}, miibus\_fdt\_driver, \mbox{\hyperlink{mii__fdt_8c_a4e026d0caf90c4fc0094660ba4d1bbd9}{miibus\_fdt\_methods}},}
\DoxyCodeLine{\Hypertarget{mii__fdt_8c_source_l00357}00357     \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__data}{mii\_data}}), miibus\_driver);}

\end{DoxyCode}
