\hypertarget{iic_8c}{}\doxysection{dev/iicbus/iic.c File Reference}
\label{iic_8c}\index{dev/iicbus/iic.c@{dev/iicbus/iic.c}}
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/bus.\+h$>$}\newline
{\ttfamily \#include $<$sys/conf.\+h$>$}\newline
{\ttfamily \#include $<$sys/fcntl.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/module.\+h$>$}\newline
{\ttfamily \#include $<$sys/sx.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/uio.\+h$>$}\newline
{\ttfamily \#include $<$sys/errno.\+h$>$}\newline
{\ttfamily \#include $<$dev/iicbus/iiconf.\+h$>$}\newline
{\ttfamily \#include $<$dev/iicbus/iicbus.\+h$>$}\newline
{\ttfamily \#include $<$dev/iicbus/iic.\+h$>$}\newline
{\ttfamily \#include \char`\"{}iicbus\+\_\+if.\+h\char`\"{}}\newline
Include dependency graph for iic.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d2/d81/iic_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structiic__softc}{iic\+\_\+softc}}
\item 
struct \mbox{\hyperlink{structiic__cdevpriv}{iic\+\_\+cdevpriv}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{iic_8c_ab6b01cda625d3e5cc82328a16cf8eea5}{IIC\+\_\+\+LOCK}}(cdp)~sx\+\_\+xlock(\&(cdp)-\/$>$lock)
\item 
\#define \mbox{\hyperlink{iic_8c_aade0a763ef20a6a4373328dfa96c81a9}{IIC\+\_\+\+UNLOCK}}(cdp)~sx\+\_\+xunlock(\&(cdp)-\/$>$lock)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{iic_8c_ae708ae3bf13bd9bfc2e726c2371dca1a}{MALLOC\+\_\+\+DEFINE}} (M\+\_\+\+IIC, \char`\"{}iic\char`\"{}, \char`\"{}I2C device \mbox{\hyperlink{iicbus__if_8m_a6e403b0b99d92815932772ee66801114}{data}}\char`\"{})
\item 
static int \mbox{\hyperlink{iic_8c_a7b4885021d2351aa901181e40b648e85}{iic\+\_\+probe}} (device\+\_\+t)
\item 
static int \mbox{\hyperlink{iic_8c_a1f7920aa661cef5daa1a9ff01d3e065a}{iic\+\_\+attach}} (device\+\_\+t)
\item 
static int \mbox{\hyperlink{iic_8c_ac851872047ce1293f81435af8a5eafb0}{iic\+\_\+detach}} (device\+\_\+t)
\item 
static void \mbox{\hyperlink{iic_8c_a8e714a0a9206d7ee39bd09e1252a751d}{iic\+\_\+identify}} (driver\+\_\+t $\ast$driver, device\+\_\+t parent)
\item 
static void \mbox{\hyperlink{iic_8c_ad7c97dc2d8581200b93ea63606d387dc}{iicdtor}} (void $\ast$\mbox{\hyperlink{iicbus__if_8m_a6e403b0b99d92815932772ee66801114}{data}})
\item 
static int \mbox{\hyperlink{iic_8c_af46c266649450fcb1cd50397cae4e1cd}{iicuio\+\_\+move}} (struct \mbox{\hyperlink{structiic__cdevpriv}{iic\+\_\+cdevpriv}} $\ast$priv, struct uio $\ast$uio, int \mbox{\hyperlink{iicbus__if_8m_a72e27dee31b1c4c6a504fbed29542d97}{last}})
\item 
static int \mbox{\hyperlink{iic_8c_a151dd38b6036ff1dc98e18f107cc0d45}{iicuio}} (struct cdev $\ast$\mbox{\hyperlink{ofw__iicbus__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, struct uio $\ast$uio, int ioflag)
\item 
static int \mbox{\hyperlink{iic_8c_aba48d863aaca82ff2860babaa87555f7}{iicrdwr}} (struct \mbox{\hyperlink{structiic__cdevpriv}{iic\+\_\+cdevpriv}} $\ast$priv, struct \mbox{\hyperlink{structiic__rdwr__data}{iic\+\_\+rdwr\+\_\+data}} $\ast$d, int flags)
\item 
static int \mbox{\hyperlink{iic_8c_a50d536160f344ea5dd69c5b69e679234}{iicopen}} (struct cdev $\ast$\mbox{\hyperlink{ofw__iicbus__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, int flags, int fmt, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{iic_8c_a81d9d98bf978e0ace13fdc9b5b2c9d55}{iicioctl}} (struct cdev $\ast$\mbox{\hyperlink{ofw__iicbus__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, u\+\_\+long cmd, caddr\+\_\+t \mbox{\hyperlink{iicbus__if_8m_a6e403b0b99d92815932772ee66801114}{data}}, int flags, struct thread $\ast$td)
\item 
\mbox{\hyperlink{iic_8c_ab05ba35222ceb149e52d24821694f223}{DRIVER\+\_\+\+MODULE}} (iic, \mbox{\hyperlink{iicbus__if_8m_afd15d4bd47ec99f6813f2a3020b6d9d1}{iicbus}}, \mbox{\hyperlink{iic_8c_a705ef76e01c5bcdb3205829738cc5dce}{iic\+\_\+driver}}, \mbox{\hyperlink{iic_8c_a4a472186432cbddfd739ffc3fc80a11b}{iic\+\_\+devclass}}, 0, 0)
\item 
\mbox{\hyperlink{iic_8c_a0beac0a6e7334c4e6f02c014ce8073f1}{MODULE\+\_\+\+DEPEND}} (iic, \mbox{\hyperlink{iicbus__if_8m_afd15d4bd47ec99f6813f2a3020b6d9d1}{iicbus}}, \mbox{\hyperlink{iiconf_8h_a150729e790db5233652c5d271a21e9ae}{IICBUS\+\_\+\+MINVER}}, \mbox{\hyperlink{iiconf_8h_ab63a14a5cf385d7abfbfdd29039c6ac6}{IICBUS\+\_\+\+PREFVER}}, \mbox{\hyperlink{iiconf_8h_a790df8278809d5647b499611c0443e47}{IICBUS\+\_\+\+MAXVER}})
\item 
\mbox{\hyperlink{iic_8c_adcea07d4be84135da5da5bcb63bde086}{MODULE\+\_\+\+VERSION}} (iic, 1)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static devclass\+\_\+t \mbox{\hyperlink{iic_8c_a4a472186432cbddfd739ffc3fc80a11b}{iic\+\_\+devclass}}
\item 
static device\+\_\+method\+\_\+t \mbox{\hyperlink{iic_8c_ad4eb3c710825a952b3f2b3d4619d84a0}{iic\+\_\+methods}} \mbox{[}$\,$\mbox{]}
\item 
static driver\+\_\+t \mbox{\hyperlink{iic_8c_a705ef76e01c5bcdb3205829738cc5dce}{iic\+\_\+driver}}
\item 
static d\+\_\+open\+\_\+t \mbox{\hyperlink{iic_8c_acdd51b2ea4f26380b8132b748be2c44e}{iicopen}}
\item 
static d\+\_\+ioctl\+\_\+t \mbox{\hyperlink{iic_8c_adea79df42a128c3d5b737091b45b4c05}{iicioctl}}
\item 
static struct cdevsw \mbox{\hyperlink{iic_8c_a4e29766d13643d27f6c225e59e5eaf5b}{iic\+\_\+cdevsw}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{iic_8c_ab6b01cda625d3e5cc82328a16cf8eea5}\label{iic_8c_ab6b01cda625d3e5cc82328a16cf8eea5}} 
\index{iic.c@{iic.c}!IIC\_LOCK@{IIC\_LOCK}}
\index{IIC\_LOCK@{IIC\_LOCK}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{IIC\_LOCK}{IIC\_LOCK}}
{\footnotesize\ttfamily \#define IIC\+\_\+\+LOCK(\begin{DoxyParamCaption}\item[{}]{cdp }\end{DoxyParamCaption})~sx\+\_\+xlock(\&(cdp)-\/$>$lock)}



Definition at line \mbox{\hyperlink{iic_8c_source_l00063}{63}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

\mbox{\Hypertarget{iic_8c_aade0a763ef20a6a4373328dfa96c81a9}\label{iic_8c_aade0a763ef20a6a4373328dfa96c81a9}} 
\index{iic.c@{iic.c}!IIC\_UNLOCK@{IIC\_UNLOCK}}
\index{IIC\_UNLOCK@{IIC\_UNLOCK}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{IIC\_UNLOCK}{IIC\_UNLOCK}}
{\footnotesize\ttfamily \#define IIC\+\_\+\+UNLOCK(\begin{DoxyParamCaption}\item[{}]{cdp }\end{DoxyParamCaption})~sx\+\_\+xunlock(\&(cdp)-\/$>$lock)}



Definition at line \mbox{\hyperlink{iic_8c_source_l00064}{64}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{iic_8c_ab05ba35222ceb149e52d24821694f223}\label{iic_8c_ab05ba35222ceb149e52d24821694f223}} 
\index{iic.c@{iic.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{iic}]{,  }\item[{\mbox{\hyperlink{iicbus__if_8m_afd15d4bd47ec99f6813f2a3020b6d9d1}{iicbus}}}]{,  }\item[{\mbox{\hyperlink{iic_8c_a705ef76e01c5bcdb3205829738cc5dce}{iic\+\_\+driver}}}]{,  }\item[{\mbox{\hyperlink{iic_8c_a4a472186432cbddfd739ffc3fc80a11b}{iic\+\_\+devclass}}}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{iic_8c_a1f7920aa661cef5daa1a9ff01d3e065a}\label{iic_8c_a1f7920aa661cef5daa1a9ff01d3e065a}} 
\index{iic.c@{iic.c}!iic\_attach@{iic\_attach}}
\index{iic\_attach@{iic\_attach}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_attach()}{iic\_attach()}}
{\footnotesize\ttfamily static int iic\+\_\+attach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00130}{130}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{ofw__iicbus__if_8m_source_l00038}{dev}}, \mbox{\hyperlink{iic_8c_source_l00101}{iic\+\_\+cdevsw}}, \mbox{\hyperlink{iic_8c_source_l00051}{iic\+\_\+softc\+::sc\+\_\+dev}}, and \mbox{\hyperlink{iic_8c_source_l00052}{iic\+\_\+softc\+::sc\+\_\+devnode}}.

\mbox{\Hypertarget{iic_8c_ac851872047ce1293f81435af8a5eafb0}\label{iic_8c_ac851872047ce1293f81435af8a5eafb0}} 
\index{iic.c@{iic.c}!iic\_detach@{iic\_detach}}
\index{iic\_detach@{iic\_detach}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_detach()}{iic\_detach()}}
{\footnotesize\ttfamily static int iic\+\_\+detach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00149}{149}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{ofw__iicbus__if_8m_source_l00038}{dev}}, and \mbox{\hyperlink{iic_8c_source_l00052}{iic\+\_\+softc\+::sc\+\_\+devnode}}.

\mbox{\Hypertarget{iic_8c_a8e714a0a9206d7ee39bd09e1252a751d}\label{iic_8c_a8e714a0a9206d7ee39bd09e1252a751d}} 
\index{iic.c@{iic.c}!iic\_identify@{iic\_identify}}
\index{iic\_identify@{iic\_identify}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_identify()}{iic\_identify()}}
{\footnotesize\ttfamily static void iic\+\_\+identify (\begin{DoxyParamCaption}\item[{driver\+\_\+t $\ast$}]{driver,  }\item[{device\+\_\+t}]{parent }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00111}{111}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

\mbox{\Hypertarget{iic_8c_a7b4885021d2351aa901181e40b648e85}\label{iic_8c_a7b4885021d2351aa901181e40b648e85}} 
\index{iic.c@{iic.c}!iic\_probe@{iic\_probe}}
\index{iic\_probe@{iic\_probe}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_probe()}{iic\_probe()}}
{\footnotesize\ttfamily static int iic\+\_\+probe (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00119}{119}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{ofw__iicbus__if_8m_source_l00038}{dev}}.

\mbox{\Hypertarget{iic_8c_ad7c97dc2d8581200b93ea63606d387dc}\label{iic_8c_ad7c97dc2d8581200b93ea63606d387dc}} 
\index{iic.c@{iic.c}!iicdtor@{iicdtor}}
\index{iicdtor@{iicdtor}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicdtor()}{iicdtor()}}
{\footnotesize\ttfamily static void iicdtor (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00180}{180}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{iicbb__if_8m_source_l00061}{data}}, \mbox{\hyperlink{iiconf_8h_source_l00080}{IIC\+\_\+\+UNKNOWN}}, \mbox{\hyperlink{iiconf_8c_source_l00206}{iicbus\+\_\+release\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8h_source_l00135}{iicbus\+\_\+reset}}, \mbox{\hyperlink{iiconf_8c_source_l00298}{iicbus\+\_\+stop()}}, \mbox{\hyperlink{iic_8c_source_l00056}{iic\+\_\+cdevpriv\+::lock}}, \mbox{\hyperlink{iic_8c_source_l00057}{iic\+\_\+cdevpriv\+::sc}}, \mbox{\hyperlink{iic_8c_source_l00051}{iic\+\_\+softc\+::sc\+\_\+dev}}, and \mbox{\hyperlink{iic_8c_source_l00058}{iic\+\_\+cdevpriv\+::started}}.



Referenced by \mbox{\hyperlink{iic_8c_source_l00162}{iicopen()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=272pt]{d3/da6/iic_8c_ad7c97dc2d8581200b93ea63606d387dc_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=215pt]{d3/da6/iic_8c_ad7c97dc2d8581200b93ea63606d387dc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{iic_8c_a81d9d98bf978e0ace13fdc9b5b2c9d55}\label{iic_8c_a81d9d98bf978e0ace13fdc9b5b2c9d55}} 
\index{iic.c@{iic.c}!iicioctl@{iicioctl}}
\index{iicioctl@{iicioctl}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicioctl()}{iicioctl()}}
{\footnotesize\ttfamily static int iicioctl (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{u\+\_\+long}]{cmd,  }\item[{caddr\+\_\+t}]{data,  }\item[{int}]{flags,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00360}{360}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{iic_8c_source_l00059}{iic\+\_\+cdevpriv\+::addr}}, \mbox{\hyperlink{iic_8h_source_l00053}{iiccmd\+::buf}}, \mbox{\hyperlink{iic_8h_source_l00051}{iiccmd\+::count}}, \mbox{\hyperlink{iicbb__if_8m_source_l00061}{data}}, \mbox{\hyperlink{iic_8h_source_l00068}{I2\+CRDWR}}, \mbox{\hyperlink{iic_8h_source_l00067}{I2\+CREAD}}, \mbox{\hyperlink{iic_8h_source_l00069}{I2\+CRPTSTART}}, \mbox{\hyperlink{iic_8h_source_l00065}{I2\+CRSTCARD}}, \mbox{\hyperlink{iic_8h_source_l00070}{I2\+CSADDR}}, \mbox{\hyperlink{iic_8h_source_l00063}{I2\+CSTART}}, \mbox{\hyperlink{iic_8h_source_l00064}{I2\+CSTOP}}, \mbox{\hyperlink{iic_8h_source_l00066}{I2\+CWRITE}}, \mbox{\hyperlink{iiconf_8h_source_l00044}{IIC\+\_\+\+DONTWAIT}}, \mbox{\hyperlink{iiconf_8h_source_l00116}{IIC\+\_\+\+ENOADDR}}, \mbox{\hyperlink{iiconf_8h_source_l00047}{IIC\+\_\+\+INTR}}, \mbox{\hyperlink{iic_8c_source_l00063}{IIC\+\_\+\+LOCK}}, \mbox{\hyperlink{iiconf_8h_source_l00080}{IIC\+\_\+\+UNKNOWN}}, \mbox{\hyperlink{iic_8c_source_l00064}{IIC\+\_\+\+UNLOCK}}, \mbox{\hyperlink{iiconf_8h_source_l00046}{IIC\+\_\+\+WAIT}}, \mbox{\hyperlink{iiconf_8c_source_l00206}{iicbus\+\_\+release\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8c_source_l00276}{iicbus\+\_\+repeated\+\_\+start()}}, \mbox{\hyperlink{iiconf_8c_source_l00138}{iicbus\+\_\+request\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8h_source_l00135}{iicbus\+\_\+reset}}, \mbox{\hyperlink{iiconf_8c_source_l00254}{iicbus\+\_\+start()}}, \mbox{\hyperlink{iiconf_8c_source_l00298}{iicbus\+\_\+stop()}}, \mbox{\hyperlink{iic_8c_source_l00293}{iicrdwr()}}, \mbox{\hyperlink{iic_8c_source_l00202}{iicuio\+\_\+move()}}, \mbox{\hyperlink{iic_8h_source_l00052}{iiccmd\+::last}}, \mbox{\hyperlink{iic_8c_source_l00057}{iic\+\_\+cdevpriv\+::sc}}, \mbox{\hyperlink{iic_8c_source_l00051}{iic\+\_\+softc\+::sc\+\_\+dev}}, \mbox{\hyperlink{iic_8h_source_l00050}{iiccmd\+::slave}}, and \mbox{\hyperlink{iic_8c_source_l00058}{iic\+\_\+cdevpriv\+::started}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/da6/iic_8c_a81d9d98bf978e0ace13fdc9b5b2c9d55_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{iic_8c_a50d536160f344ea5dd69c5b69e679234}\label{iic_8c_a50d536160f344ea5dd69c5b69e679234}} 
\index{iic.c@{iic.c}!iicopen@{iicopen}}
\index{iicopen@{iicopen}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicopen()}{iicopen()}}
{\footnotesize\ttfamily static int iicopen (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{flags,  }\item[{int}]{fmt,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00162}{162}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{ofw__iicbus__if_8m_source_l00038}{dev}}, \mbox{\hyperlink{iic_8c_source_l00180}{iicdtor()}}, \mbox{\hyperlink{iic_8c_source_l00056}{iic\+\_\+cdevpriv\+::lock}}, and \mbox{\hyperlink{iic_8c_source_l00057}{iic\+\_\+cdevpriv\+::sc}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/da6/iic_8c_a50d536160f344ea5dd69c5b69e679234_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{iic_8c_aba48d863aaca82ff2860babaa87555f7}\label{iic_8c_aba48d863aaca82ff2860babaa87555f7}} 
\index{iic.c@{iic.c}!iicrdwr@{iicrdwr}}
\index{iicrdwr@{iicrdwr}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicrdwr()}{iicrdwr()}}
{\footnotesize\ttfamily static int iicrdwr (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structiic__cdevpriv}{iic\+\_\+cdevpriv}} $\ast$}]{priv,  }\item[{struct \mbox{\hyperlink{structiic__rdwr__data}{iic\+\_\+rdwr\+\_\+data}} $\ast$}]{d,  }\item[{int}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00293}{293}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{iic_8h_source_l00046}{iic\+\_\+msg\+::buf}}, \mbox{\hyperlink{iicbus__if_8m_source_l00055}{buf}}, \mbox{\hyperlink{iic_8h_source_l00040}{iic\+\_\+msg\+::flags}}, \mbox{\hyperlink{iiconf_8h_source_l00044}{IIC\+\_\+\+DONTWAIT}}, \mbox{\hyperlink{iiconf_8h_source_l00047}{IIC\+\_\+\+INTR}}, \mbox{\hyperlink{iic_8h_source_l00042}{IIC\+\_\+\+M\+\_\+\+RD}}, \mbox{\hyperlink{iic_8h_source_l00061}{IIC\+\_\+\+RDRW\+\_\+\+MAX\+\_\+\+MSGS}}, \mbox{\hyperlink{iiconf_8h_source_l00046}{IIC\+\_\+\+WAIT}}, \mbox{\hyperlink{iiconf_8c_source_l00206}{iicbus\+\_\+release\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8c_source_l00138}{iicbus\+\_\+request\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8c_source_l00442}{iicbus\+\_\+transfer()}}, \mbox{\hyperlink{iic_8h_source_l00045}{iic\+\_\+msg\+::len}}, \mbox{\hyperlink{iic_8h_source_l00057}{iic\+\_\+rdwr\+\_\+data\+::msgs}}, \mbox{\hyperlink{iic_8h_source_l00058}{iic\+\_\+rdwr\+\_\+data\+::nmsgs}}, \mbox{\hyperlink{iic_8c_source_l00057}{iic\+\_\+cdevpriv\+::sc}}, and \mbox{\hyperlink{iic_8c_source_l00051}{iic\+\_\+softc\+::sc\+\_\+dev}}.



Referenced by \mbox{\hyperlink{iic_8c_source_l00360}{iicioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/da6/iic_8c_aba48d863aaca82ff2860babaa87555f7_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=215pt]{d3/da6/iic_8c_aba48d863aaca82ff2860babaa87555f7_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{iic_8c_a151dd38b6036ff1dc98e18f107cc0d45}\label{iic_8c_a151dd38b6036ff1dc98e18f107cc0d45}} 
\index{iic.c@{iic.c}!iicuio@{iicuio}}
\index{iicuio@{iicuio}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicuio()}{iicuio()}}
{\footnotesize\ttfamily static int iicuio (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{ioflag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00243}{243}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{iic_8c_source_l00059}{iic\+\_\+cdevpriv\+::addr}}, \mbox{\hyperlink{iicbb__if_8m_source_l00116}{addr}}, \mbox{\hyperlink{iiconf_8h_source_l00044}{IIC\+\_\+\+DONTWAIT}}, \mbox{\hyperlink{iiconf_8h_source_l00047}{IIC\+\_\+\+INTR}}, \mbox{\hyperlink{iiconf_8h_source_l00085}{IIC\+\_\+\+LAST\+\_\+\+READ}}, \mbox{\hyperlink{iic_8c_source_l00063}{IIC\+\_\+\+LOCK}}, \mbox{\hyperlink{iic_8c_source_l00064}{IIC\+\_\+\+UNLOCK}}, \mbox{\hyperlink{iiconf_8h_source_l00046}{IIC\+\_\+\+WAIT}}, \mbox{\hyperlink{iiconf_8c_source_l00206}{iicbus\+\_\+release\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8c_source_l00138}{iicbus\+\_\+request\+\_\+bus()}}, \mbox{\hyperlink{iiconf_8c_source_l00254}{iicbus\+\_\+start()}}, \mbox{\hyperlink{iiconf_8c_source_l00298}{iicbus\+\_\+stop()}}, \mbox{\hyperlink{iic_8c_source_l00202}{iicuio\+\_\+move()}}, \mbox{\hyperlink{iiconf_8h_source_l00039}{LSB}}, \mbox{\hyperlink{iic_8c_source_l00057}{iic\+\_\+cdevpriv\+::sc}}, \mbox{\hyperlink{iic_8c_source_l00051}{iic\+\_\+softc\+::sc\+\_\+dev}}, and \mbox{\hyperlink{iic_8c_source_l00058}{iic\+\_\+cdevpriv\+::started}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/da6/iic_8c_a151dd38b6036ff1dc98e18f107cc0d45_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{iic_8c_af46c266649450fcb1cd50397cae4e1cd}\label{iic_8c_af46c266649450fcb1cd50397cae4e1cd}} 
\index{iic.c@{iic.c}!iicuio\_move@{iicuio\_move}}
\index{iicuio\_move@{iicuio\_move}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicuio\_move()}{iicuio\_move()}}
{\footnotesize\ttfamily static int iicuio\+\_\+move (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structiic__cdevpriv}{iic\+\_\+cdevpriv}} $\ast$}]{priv,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{last }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00202}{202}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



References \mbox{\hyperlink{iiconf_8c_source_l00339}{iicbus\+\_\+read()}}, \mbox{\hyperlink{iiconf_8c_source_l00321}{iicbus\+\_\+write()}}, \mbox{\hyperlink{iicbus__if_8m_source_l00104}{last}}, \mbox{\hyperlink{iic_8c_source_l00057}{iic\+\_\+cdevpriv\+::sc}}, and \mbox{\hyperlink{iic_8c_source_l00051}{iic\+\_\+softc\+::sc\+\_\+dev}}.



Referenced by \mbox{\hyperlink{iic_8c_source_l00360}{iicioctl()}}, and \mbox{\hyperlink{iic_8c_source_l00243}{iicuio()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=267pt]{d3/da6/iic_8c_af46c266649450fcb1cd50397cae4e1cd_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=241pt]{d3/da6/iic_8c_af46c266649450fcb1cd50397cae4e1cd_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{iic_8c_ae708ae3bf13bd9bfc2e726c2371dca1a}\label{iic_8c_ae708ae3bf13bd9bfc2e726c2371dca1a}} 
\index{iic.c@{iic.c}!MALLOC\_DEFINE@{MALLOC\_DEFINE}}
\index{MALLOC\_DEFINE@{MALLOC\_DEFINE}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{MALLOC\_DEFINE()}{MALLOC\_DEFINE()}}
{\footnotesize\ttfamily static MALLOC\+\_\+\+DEFINE (\begin{DoxyParamCaption}\item[{M\+\_\+\+IIC}]{,  }\item[{\char`\"{}iic\char`\"{}}]{,  }\item[{\char`\"{}I2C device \mbox{\hyperlink{iicbus__if_8m_a6e403b0b99d92815932772ee66801114}{data}}\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{iic_8c_a0beac0a6e7334c4e6f02c014ce8073f1}\label{iic_8c_a0beac0a6e7334c4e6f02c014ce8073f1}} 
\index{iic.c@{iic.c}!MODULE\_DEPEND@{MODULE\_DEPEND}}
\index{MODULE\_DEPEND@{MODULE\_DEPEND}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_DEPEND()}{MODULE\_DEPEND()}}
{\footnotesize\ttfamily MODULE\+\_\+\+DEPEND (\begin{DoxyParamCaption}\item[{iic}]{,  }\item[{\mbox{\hyperlink{iicbus__if_8m_afd15d4bd47ec99f6813f2a3020b6d9d1}{iicbus}}}]{,  }\item[{\mbox{\hyperlink{iiconf_8h_a150729e790db5233652c5d271a21e9ae}{IICBUS\+\_\+\+MINVER}}}]{,  }\item[{\mbox{\hyperlink{iiconf_8h_ab63a14a5cf385d7abfbfdd29039c6ac6}{IICBUS\+\_\+\+PREFVER}}}]{,  }\item[{\mbox{\hyperlink{iiconf_8h_a790df8278809d5647b499611c0443e47}{IICBUS\+\_\+\+MAXVER}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{iic_8c_adcea07d4be84135da5da5bcb63bde086}\label{iic_8c_adcea07d4be84135da5da5bcb63bde086}} 
\index{iic.c@{iic.c}!MODULE\_VERSION@{MODULE\_VERSION}}
\index{MODULE\_VERSION@{MODULE\_VERSION}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_VERSION()}{MODULE\_VERSION()}}
{\footnotesize\ttfamily MODULE\+\_\+\+VERSION (\begin{DoxyParamCaption}\item[{iic}]{,  }\item[{1}]{ }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{iic_8c_a4e29766d13643d27f6c225e59e5eaf5b}\label{iic_8c_a4e29766d13643d27f6c225e59e5eaf5b}} 
\index{iic.c@{iic.c}!iic\_cdevsw@{iic\_cdevsw}}
\index{iic\_cdevsw@{iic\_cdevsw}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_cdevsw}{iic\_cdevsw}}
{\footnotesize\ttfamily struct cdevsw iic\+\_\+cdevsw\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .d\_version =    D\_VERSION,}
\DoxyCodeLine{        .d\_open =       \mbox{\hyperlink{iic_8c_acdd51b2ea4f26380b8132b748be2c44e}{iicopen}},}
\DoxyCodeLine{        .d\_read =       \mbox{\hyperlink{iic_8c_a151dd38b6036ff1dc98e18f107cc0d45}{iicuio}},}
\DoxyCodeLine{        .d\_write =      \mbox{\hyperlink{iic_8c_a151dd38b6036ff1dc98e18f107cc0d45}{iicuio}},}
\DoxyCodeLine{        .d\_ioctl =      \mbox{\hyperlink{iic_8c_adea79df42a128c3d5b737091b45b4c05}{iicioctl}},}
\DoxyCodeLine{        .d\_name =       \textcolor{stringliteral}{"{}iic"{}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{iic_8c_source_l00101}{101}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.



Referenced by \mbox{\hyperlink{iic_8c_source_l00130}{iic\+\_\+attach()}}.

\mbox{\Hypertarget{iic_8c_a4a472186432cbddfd739ffc3fc80a11b}\label{iic_8c_a4a472186432cbddfd739ffc3fc80a11b}} 
\index{iic.c@{iic.c}!iic\_devclass@{iic\_devclass}}
\index{iic\_devclass@{iic\_devclass}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_devclass}{iic\_devclass}}
{\footnotesize\ttfamily devclass\+\_\+t iic\+\_\+devclass\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00077}{77}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

\mbox{\Hypertarget{iic_8c_a705ef76e01c5bcdb3205829738cc5dce}\label{iic_8c_a705ef76e01c5bcdb3205829738cc5dce}} 
\index{iic.c@{iic.c}!iic\_driver@{iic\_driver}}
\index{iic\_driver@{iic\_driver}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_driver}{iic\_driver}}
{\footnotesize\ttfamily driver\+\_\+t iic\+\_\+driver\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}iic"{}},}
\DoxyCodeLine{        \mbox{\hyperlink{iic_8c_ad4eb3c710825a952b3f2b3d4619d84a0}{iic\_methods}},}
\DoxyCodeLine{        \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structiic__softc}{iic\_softc}}),}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{iic_8c_source_l00092}{92}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

\mbox{\Hypertarget{iic_8c_ad4eb3c710825a952b3f2b3d4619d84a0}\label{iic_8c_ad4eb3c710825a952b3f2b3d4619d84a0}} 
\index{iic.c@{iic.c}!iic\_methods@{iic\_methods}}
\index{iic\_methods@{iic\_methods}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iic\_methods}{iic\_methods}}
{\footnotesize\ttfamily device\+\_\+method\+\_\+t iic\+\_\+methods\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        }
\DoxyCodeLine{        DEVMETHOD(device\_identify,      \mbox{\hyperlink{iic_8c_a8e714a0a9206d7ee39bd09e1252a751d}{iic\_identify}}),}
\DoxyCodeLine{        DEVMETHOD(device\_probe,         \mbox{\hyperlink{iic_8c_a7b4885021d2351aa901181e40b648e85}{iic\_probe}}),}
\DoxyCodeLine{        DEVMETHOD(device\_attach,        \mbox{\hyperlink{iic_8c_a1f7920aa661cef5daa1a9ff01d3e065a}{iic\_attach}}),}
\DoxyCodeLine{        DEVMETHOD(device\_detach,        \mbox{\hyperlink{iic_8c_ac851872047ce1293f81435af8a5eafb0}{iic\_detach}}),}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        DEVMETHOD(\mbox{\hyperlink{iiconf_8c_a318f823baea604989af470b26eebb2a3}{iicbus\_intr}},               \mbox{\hyperlink{iicbus_8c_abefd111d94a39c0fa6c2ddc18b419e5c}{iicbus\_generic\_intr}}),}
\DoxyCodeLine{}
\DoxyCodeLine{        \{ 0, 0 \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{iic_8c_source_l00079}{79}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

\mbox{\Hypertarget{iic_8c_adea79df42a128c3d5b737091b45b4c05}\label{iic_8c_adea79df42a128c3d5b737091b45b4c05}} 
\index{iic.c@{iic.c}!iicioctl@{iicioctl}}
\index{iicioctl@{iicioctl}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicioctl}{iicioctl}}
{\footnotesize\ttfamily d\+\_\+ioctl\+\_\+t iicioctl\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00099}{99}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

\mbox{\Hypertarget{iic_8c_acdd51b2ea4f26380b8132b748be2c44e}\label{iic_8c_acdd51b2ea4f26380b8132b748be2c44e}} 
\index{iic.c@{iic.c}!iicopen@{iicopen}}
\index{iicopen@{iicopen}!iic.c@{iic.c}}
\doxysubsubsection{\texorpdfstring{iicopen}{iicopen}}
{\footnotesize\ttfamily d\+\_\+open\+\_\+t iicopen\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{iic_8c_source_l00098}{98}} of file \mbox{\hyperlink{iic_8c_source}{iic.\+c}}.

