1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>i2c_new_device</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="up" href="i2c.html" title="Chapter&#160;10.&#160;I2C and SMBus Subsystem"><link rel="prev" href="API-i2c-unlock-adapter.html" title="i2c_unlock_adapter"><link rel="next" href="API-i2c-unregister-device.html" title="i2c_unregister_device"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">i2c_new_device</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-i2c-unlock-adapter.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;10.&#160;I<sup>2</sup>C and SMBus Subsystem</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-i2c-unregister-device.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-i2c-new-device"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>i2c_new_device &#8212; 
2     instantiate an i2c device
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">struct i2c_client * <b class="fsfunc">i2c_new_device </b>(</code></td><td>struct i2c_adapter * <var class="pdparam">adap</var>, </td></tr><tr><td>&#160;</td><td>struct i2c_board_info const * <var class="pdparam">info</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1115352172"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>adap</code></em></span></dt><dd><p>
4     the adapter managing the device
5    </p></dd><dt><span class="term"><em class="parameter"><code>info</code></em></span></dt><dd><p>
6     describes one I2C device; bus_num is ignored
7    </p></dd></dl></div></div><div class="refsect1"><a name="idp1115354844"></a><h2>Context</h2><p>
8   can sleep
9</p></div><div class="refsect1"><a name="idp1115355460"></a><h2>Description</h2><p>
10   Create an i2c device. Binding is handled through driver model
11   <code class="function">probe</code>/<code class="function">remove</code> methods.  A driver may be bound to this device when we
12   return from this function, or any later moment (e.g. maybe hotplugging will
13   load the driver module).  This call is not appropriate for use by mainboard
14   initialization logic, which usually runs during an <code class="function">arch_initcall</code> long
15   before any i2c_adapter could exist.
16   </p><p>
17
18   This returns the new i2c client, which may be saved for later use with
19   <code class="function">i2c_unregister_device</code>; or NULL to indicate an error.
20</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-i2c-unlock-adapter.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="i2c.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-i2c-unregister-device.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">i2c_unlock_adapter</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">i2c_unregister_device</span></td></tr></table></div></body></html>
21