1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>spi_setup</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="spi.html" title="Chapter 9. Serial Peripheral Interface (SPI)"><link rel="prev" href="API-spi-busnum-to-master.html" title="spi_busnum_to_master"><link rel="next" href="API-spi-async.html" title="spi_async"></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">spi_setup</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-spi-busnum-to-master.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Serial Peripheral Interface (SPI)</th><td width="20%" align="right"> <a accesskey="n" href="API-spi-async.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-spi-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>spi_setup — 2 setup SPI mode and clock rate 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">int <b class="fsfunc">spi_setup </b>(</code></td><td>struct spi_device * <var class="pdparam">spi</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1115140420"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>spi</code></em></span></dt><dd><p> 4 the device whose settings are being modified 5 </p></dd></dl></div></div><div class="refsect1"><a name="idp1115142044"></a><h2>Context</h2><p> 6 can sleep, and no requests are queued to the device 7</p></div><div class="refsect1"><a name="idp1115142700"></a><h2>Description</h2><p> 8 SPI protocol drivers may need to update the transfer mode if the 9 device doesn't work with its default. They may likewise need 10 to update clock rates or word sizes from initial values. This function 11 changes those settings, and must be called from a context that can sleep. 12 Except for SPI_CS_HIGH, which takes effect immediately, the changes take 13 effect the next time the device is selected and data is transferred to 14 or from it. When this function returns, the spi device is deselected. 15 </p><p> 16 17 Note that this call will fail if the protocol driver specifies an option 18 that the underlying controller or its driver does not support. For 19 example, not all hardware supports wire transfers using nine bit words, 20 LSB-first wire encoding, or active-high chipselects. 21</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-spi-busnum-to-master.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spi.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-spi-async.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">spi_busnum_to_master</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">spi_async</span></td></tr></table></div></body></html> 22