<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-AU>Hi,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>I am developing the LTIB linux kernel
2.6.34 for &nbsp;Phythec board phy3250,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>At this stage I am integrating the libertas
module over the SPI interface.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>I added the code below to the board file
phy3250 in order to add a second SPI interface over SSP1, and connect it to the
Libertas wifi module.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>It seems to get to the stage where it probe
the driver, and tries to access the device.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>When I measure the voltage on the lines I
can see activity onle on the chip select line.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>Please look at the dmesg results below, and
I will appreciate any suggestion.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>Thanks,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>Amit<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#define&nbsp; INCLUDE_SPI_WIFI<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; #define SPI1_CS_GPIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPC32XX_GPIO(LPC32XX_GPO_P3_GRP,
3) <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#define CONFIG_LIBERTAS_SPI_MODULE<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; #include
&lt;linux/spi/libertas_spi.h&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static int lpc32xx_libertas_setup(struct
spi_device *spi)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; if
(gpio_request(LIBERTAS_INT_GPIO, &quot;WiFi Int&quot;))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(KERN_ERR
&quot;Error requesting WiFi Int gpio %u&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LIBERTAS_INT_GPIO);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (gpio_direction_input(LIBERTAS_INT_GPIO))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(KERN_ERR
&quot;Error setting WiFi Int gpio %u input&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LIBERTAS_INT_GPIO);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; spi-&gt;bits_per_word = 16;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; spi_setup(spi);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp; return 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static int&nbsp;
lpc32xx_libertas_teardown(struct spi_device *spi)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; return 0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>struct libertas_spi_platform_data
libertas_spi_platform_data_info = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.use_dummy_writes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.setup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= lpc32xx_libertas_setup,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.teardown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= lpc32xx_libertas_teardown,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#ifdef INCLUDE_SPI_WIFI<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>///AH: WiFi SPI2
Start//////////////////////////////////////////////////////<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>/*<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;* AMBA SSP (SPI1)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static void phy3250_spi1_cs_set(u32
control)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp; printk(KERN_INFO
&quot;spi1_cs_set gpio %u, control %u &quot;,SPI1_CS_GPIO, control);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gpio_set_value(SPI1_CS_GPIO,
(int) control);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static struct pl022_config_chip
spi1_chip_info = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .lbm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
LOOPBACK_DISABLED,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .com_mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
INTERRUPT_TRANSFER,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .iface&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_INTERFACE_MOTOROLA_SPI,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .hierarchy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_MASTER,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .slave_tx_disable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .endian_tx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_TX_LSB,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .endian_rx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_RX_LSB,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .data_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_DATA_BITS_16, //AH: SSP_DATA_BITS_8,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .rx_lev_trig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_RX_4_OR_MORE_ELEM,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .tx_lev_trig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_TX_4_OR_MORE_EMPTY_LOC,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .clk_phase&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_CLK_FIRST_EDGE,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .clk_pol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_CLK_POL_IDLE_LOW,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ctrl_len&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_BITS_8,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .wait_state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_MWIRE_WAIT_ZERO,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .duplex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
SSP_MICROWIRE_CHANNEL_FULL_DUPLEX,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .cs_control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
phy3250_spi1_cs_set,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static struct pl022_ssp_controller
lpc32xx_ssp1_data = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bus_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .num_chipselect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .enable_dma&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static struct amba_device
lpc32xx_ssp1_device = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .coherent_dma_mask&nbsp;&nbsp; =
~0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .init_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&quot;dev:ssp1&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .platform_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&amp;lpc32xx_ssp1_data,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .res&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
LPC32XX_SSP1_BASE,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
(LPC32XX_SSP1_BASE + SZ_4K - 1),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
IORESOURCE_MEM,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .dma_mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
~0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .irq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{IRQ_LPC32XX_SSP1, NO_IRQ},<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>///AH: WiFi SPI2
End//////////////////////////////////////////////////////<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif // INCLUDE_SPI_WIFI<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>/* AT25 driver registration */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static int __init
phy3250_spi_board_register(void)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static
struct spi_board_info info[] = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#if defined(CONFIG_LIBERTAS_SPI_MODULE)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .modalias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= &quot;libertas_spi&quot;,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .max_speed_hz&nbsp;&nbsp;&nbsp;&nbsp;
= 5000000, //&nbsp; 33000000,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bus_num&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= 1,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .irq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= IRQ_LPC32XX_GPIO_00, //IRQ_LPC32XX_SSP1, <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .chip_select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= 0,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .platform_data&nbsp;&nbsp;&nbsp;
= &amp;libertas_spi_platform_data_info,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .controller_data&nbsp;
= &amp;spi1_chip_info,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= SPI_MODE_0, //SPI_MODE_3,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static struct amba_device *amba_devs[]
__initdata = {<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;lpc32xx_clcd_device,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;lpc32xx_ssp0_device,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#if defined(INCLUDE_SPI_WIFI)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;lpc32xx_ssp1_device,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#if defined(CONFIG_MMC_ARMMMCI)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;lpc32xx_mmc_device,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>static void __init phy3250_board_init(void)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>{<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u32
tmp;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
i;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lpc32xx_gpio_init();<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .
<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .
<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#if defined(INCLUDE_SPI_WIFI)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>/* Register GPIOs used on this board */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(gpio_request(SPI1_CS_GPIO, &quot;spi1 cs&quot;))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(KERN_ERR
&quot;Error requesting gpio %u&quot;, SPI1_CS_GPIO);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
if (gpio_direction_output(SPI1_CS_GPIO, 1))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printk(KERN_ERR
&quot;Error setting gpio %u to output&quot;,SPI1_CS_GPIO);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#if defined (INCLUDE_SPI_WIFI)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#ifdef CONFIG_SPI_PL022<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp
= __raw_readl(LPC32XX_CLKPWR_SSP_CLK_CTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __raw_writel((tmp
| LPC32XX_CLKPWR_SSPCTRL_SSPCLK1_EN),<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPC32XX_CLKPWR_SSP_CLK_CTRL);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>#endif<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>dmesg:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>spi_register_driver: libertas_spi<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>bus: 'spi': add driver libertas_spi<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>bus: 'spi': driver_probe_device: matched
device spi1.0 with driver libertas_spi<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>bus: 'spi': really_probe: probing driver
libertas_spi with device spi1.0<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas_spi: if_spi_probe<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas_spi spi1.0: using user supplied
controller_data settings<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas_spi spi1.0: 9 &lt;= n &lt;= 16
bits per word<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas_spi spi1.0: DMA mode NOT set in
controller state<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas_spi spi1.0: setup mode 0, 16
bits/w, 5000000 Hz max --&gt; 0<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: flush<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>spi1_cs_set gpio 82, control 0 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: (null),
rxend: 00000002, tx: c3c19d76, txend: c3c19d78<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: (null),
rxend: 00000002, tx: c3c19d78, txend: c3c19d78<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: flush<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: (null),
rxend: 00000002, tx: c3c19da6, txend: c3c19da8<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: (null),
rxend: 00000002, tx: c3c19da8, txend: c3c19da8<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>spi1_cs_set gpio 82, control 1 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: flush<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>spi1_cs_set gpio 82, control 0 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: (null),
rxend: 00000002, tx: c3c19d76, txend: c3c19d78<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: (null),
rxend: 00000002, tx: c3c19d78, txend: c3c19d78<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: flush<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx: c3c19da6,
rxend: c3c19da8, tx: (null), txend: 00000002<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>ssp-pl022 dev:ssp1: readwriter, rx:
c3c19da6, rxend: c3c19da8, tx: 00000002, txend: 00000002<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>spi1_cs_set gpio 82, control 1 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas: Can't read bus mode register.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>libertas_spi: probe of spi1.0 failed with
error -5<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU>device class 'usbmon': registering<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>