<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;feed=atom&amp;action=history</id>
		<title>BeagleBoard/SPI/Patch-2.6.32 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;action=history"/>
		<updated>2013-06-20T08:31:34Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.22alpha</generator>

	<entry>
		<id>http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;diff=28855&amp;oldid=prev</id>
		<title>Bgamari: moved BeagleBoard/SPIPatch-2.6.32 to BeagleBoard/SPI/Patch-2.6.32</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;diff=28855&amp;oldid=prev"/>
				<updated>2010-12-13T20:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/BeagleBoard/SPIPatch-2.6.32&quot; class=&quot;mw-redirect&quot; title=&quot;BeagleBoard/SPIPatch-2.6.32&quot;&gt;BeagleBoard/SPIPatch-2.6.32&lt;/a&gt; to &lt;a href=&quot;/BeagleBoard/SPI/Patch-2.6.32&quot; title=&quot;BeagleBoard/SPI/Patch-2.6.32&quot;&gt;BeagleBoard/SPI/Patch-2.6.32&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:23, 13 December 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bgamari</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;diff=20979&amp;oldid=prev</id>
		<title>Peter Huewe at 04:07, 14 May 2010</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;diff=20979&amp;oldid=prev"/>
				<updated>2010-05-14T04:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 04:07, 14 May 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 224:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 224:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:BeagleBoard]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Peter Huewe</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;diff=18474&amp;oldid=prev</id>
		<title>Bgamari: Created page with '&lt;pre&gt; diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 231cb4e..b23c5a5 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +…'</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=BeagleBoard/SPI/Patch-2.6.32&amp;diff=18474&amp;oldid=prev"/>
				<updated>2010-03-15T23:20:07Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 231cb4e..b23c5a5 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c&lt;br /&gt;
index 231cb4e..b23c5a5 100644&lt;br /&gt;
--- a/arch/arm/mach-omap2/board-omap3beagle.c&lt;br /&gt;
+++ b/arch/arm/mach-omap2/board-omap3beagle.c&lt;br /&gt;
@@ -12,6 +12,10 @@&lt;br /&gt;
  * published by the Free Software Foundation.&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
+//#define BEAGLE_GPIO_SPI&lt;br /&gt;
+&lt;br /&gt;
+&lt;br /&gt;
+&lt;br /&gt;
 #include &amp;lt;linux/kernel.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/init.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/platform_device.h&amp;gt;&lt;br /&gt;
@@ -28,6 +32,7 @@&lt;br /&gt;
 #include &amp;lt;linux/mtd/partitions.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/mtd/nand.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
+#include &amp;lt;linux/spi/spi.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/regulator/machine.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/i2c/twl.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
@@ -372,6 +377,159 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {&lt;br /&gt;
 	&amp;amp;keys_gpio,&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
+#ifndef BEAGLE_GPIO_SPI&lt;br /&gt;
+&lt;br /&gt;
+static void __init omap3_beagle_config_mcspi3_mux(void)&lt;br /&gt;
+{&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;sdmmc2_clk.mcspi3_clk&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;sdmmc2_dat3.mcspi3_cs0&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;sdmmc2_dat2.mcspi3_cs1&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;sdmmc2_cmd.mcspi3_simo&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;sdmmc2_dat0.mcspi3_somi&amp;quot;, OMAP_PIN_INPUT_PULLUP);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
+static void __init omap3_beagle_config_mcspi4_mux(void)&lt;br /&gt;
+{&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;mcbsp1_clkr.mcspi4_clk&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;mcbsp1_fsx.mcspi4_cs0&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;mcbsp1_dx.mcspi4_simo&amp;quot;, OMAP_PIN_OUTPUT);&lt;br /&gt;
+	omap_mux_init_signal(&amp;quot;mcbsp1_dr.mcspi4_somi&amp;quot;, OMAP_PIN_INPUT_PULLUP);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
+static struct spi_board_info beagle_mcspi_board_info[] = {&lt;br /&gt;
+	// spi 3.0&lt;br /&gt;
+	{&lt;br /&gt;
+		.modalias	= &amp;quot;spidev&amp;quot;,&lt;br /&gt;
+		.max_speed_hz	= 48000000, //48 Mbps&lt;br /&gt;
+		.bus_num	= 3,&lt;br /&gt;
+		.chip_select	= 0,	&lt;br /&gt;
+		.mode = SPI_MODE_1,&lt;br /&gt;
+	},&lt;br /&gt;
+&lt;br /&gt;
+	// spi 3.1&lt;br /&gt;
+	{&lt;br /&gt;
+		.modalias	= &amp;quot;spidev&amp;quot;,&lt;br /&gt;
+		.max_speed_hz	= 48000000, //48 Mbps&lt;br /&gt;
+		.bus_num	= 3,&lt;br /&gt;
+		.chip_select	= 1,	&lt;br /&gt;
+		.mode = SPI_MODE_1,&lt;br /&gt;
+	},&lt;br /&gt;
+&lt;br /&gt;
+	// spi 4.0&lt;br /&gt;
+	{&lt;br /&gt;
+		.modalias	= &amp;quot;spidev&amp;quot;,&lt;br /&gt;
+		.max_speed_hz	= 48000000, //48 Mbps&lt;br /&gt;
+		.bus_num	= 4,&lt;br /&gt;
+		.chip_select	= 0,	&lt;br /&gt;
+		.mode = SPI_MODE_1,&lt;br /&gt;
+	},&lt;br /&gt;
+};&lt;br /&gt;
+&lt;br /&gt;
+#else /* BEAGLE_GPIO_SPI */&lt;br /&gt;
+#include &amp;lt;linux/spi/spi_gpio.h&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
+#define SPI3_CLK 130&lt;br /&gt;
+#define SPI3_SOMI 132&lt;br /&gt;
+#define SPI3_SIMO 131&lt;br /&gt;
+#define SPI3_CS0 135&lt;br /&gt;
+#define SPI3_CS1 134&lt;br /&gt;
+&lt;br /&gt;
+#define SPI4_CLK 156&lt;br /&gt;
+#define SPI4_SOMI 159&lt;br /&gt;
+#define SPI4_SIMO 158&lt;br /&gt;
+#define SPI4_CS0 161&lt;br /&gt;
+&lt;br /&gt;
+#define GPIO_SPI_PIN(pin, dir, name)  \&lt;br /&gt;
+	omap_mux_init_gpio(pin, OMAP_PIN_##dir); \&lt;br /&gt;
+	gpio_request(pin, name); \&lt;br /&gt;
+	gpio_export(pin, true);&lt;br /&gt;
+&lt;br /&gt;
+static void __init omap3_beagle_config_gpio_spi3_mux(void)&lt;br /&gt;
+{&lt;br /&gt;
+	GPIO_SPI_PIN(SPI3_CLK, OUTPUT, &amp;quot;spi3_clk&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI3_SIMO, OUTPUT, &amp;quot;spi3_simo&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI3_SOMI, INPUT, &amp;quot;spi3_somi&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI3_CS0, OUTPUT, &amp;quot;spi3_cs0&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI3_CS1, OUTPUT, &amp;quot;spi3_cs1&amp;quot;);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
+static void __init omap3_beagle_config_gpio_spi4_mux(void)&lt;br /&gt;
+{&lt;br /&gt;
+	GPIO_SPI_PIN(SPI4_CLK, OUTPUT, &amp;quot;spi4_clk&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI4_SIMO, OUTPUT, &amp;quot;spi4_simo&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI4_SOMI, INPUT, &amp;quot;spi4_somi&amp;quot;);&lt;br /&gt;
+	GPIO_SPI_PIN(SPI4_CS0, OUTPUT, &amp;quot;spi4_cs0&amp;quot;);&lt;br /&gt;
+}&lt;br /&gt;
+&lt;br /&gt;
+static struct spi_gpio_platform_data beagle_gpio_spi_platform_data[] = {&lt;br /&gt;
+	// spi 3&lt;br /&gt;
+	{&lt;br /&gt;
+		.sck = SPI3_CLK,&lt;br /&gt;
+		.miso = SPI3_SOMI,&lt;br /&gt;
+		.mosi = SPI3_SIMO,&lt;br /&gt;
+		.num_chipselect = 2,&lt;br /&gt;
+	},&lt;br /&gt;
+&lt;br /&gt;
+	// spi 4&lt;br /&gt;
+	{&lt;br /&gt;
+		.sck = SPI4_CLK,&lt;br /&gt;
+		.miso = SPI4_SOMI,&lt;br /&gt;
+		.mosi = SPI4_SIMO,&lt;br /&gt;
+		.num_chipselect = 1,&lt;br /&gt;
+	},&lt;br /&gt;
+};&lt;br /&gt;
+&lt;br /&gt;
+static struct platform_device beagle_gpio_spi_platform_device[] = {&lt;br /&gt;
+	// spi .&lt;br /&gt;
+	{&lt;br /&gt;
+		.name		= &amp;quot;spi_gpio&amp;quot;,&lt;br /&gt;
+		.id		= 3,&lt;br /&gt;
+		.dev		= {&lt;br /&gt;
+			.platform_data = &amp;amp;beagle_gpio_spi_platform_data[0],&lt;br /&gt;
+		},&lt;br /&gt;
+	},&lt;br /&gt;
+&lt;br /&gt;
+	// spi 4&lt;br /&gt;
+	{&lt;br /&gt;
+		.name		= &amp;quot;spi_gpio&amp;quot;,&lt;br /&gt;
+		.id		= 4,&lt;br /&gt;
+		.dev		= {&lt;br /&gt;
+			.platform_data = &amp;amp;beagle_gpio_spi_platform_data[1],&lt;br /&gt;
+		},&lt;br /&gt;
+	},&lt;br /&gt;
+};&lt;br /&gt;
+&lt;br /&gt;
+static struct spi_board_info beagle_gpio_spi_board_info[] = {&lt;br /&gt;
+	// spi 3.0&lt;br /&gt;
+	{&lt;br /&gt;
+		.modalias	= &amp;quot;spidev&amp;quot;,&lt;br /&gt;
+		.max_speed_hz	= 48000000, //48 Mbps&lt;br /&gt;
+		.bus_num	= 3,&lt;br /&gt;
+		.mode = SPI_MODE_1,&lt;br /&gt;
+		.controller_data = (void *) SPI3_CS0,&lt;br /&gt;
+	},&lt;br /&gt;
+&lt;br /&gt;
+	// spi 3.1&lt;br /&gt;
+	{&lt;br /&gt;
+		.modalias	= &amp;quot;spidev&amp;quot;,&lt;br /&gt;
+		.max_speed_hz	= 48000000, //48 Mbps&lt;br /&gt;
+		.bus_num	= 3,&lt;br /&gt;
+		.mode = SPI_MODE_1,&lt;br /&gt;
+		.controller_data = (void *) SPI3_CS1,&lt;br /&gt;
+	},&lt;br /&gt;
+&lt;br /&gt;
+	// spi 4.0&lt;br /&gt;
+	{&lt;br /&gt;
+		.modalias	= &amp;quot;spidev&amp;quot;,&lt;br /&gt;
+		.max_speed_hz	= 48000000, //48 Mbps&lt;br /&gt;
+		.bus_num	= 4,&lt;br /&gt;
+		.mode = SPI_MODE_1,&lt;br /&gt;
+		.controller_data = (void *) SPI4_CS0,&lt;br /&gt;
+	},&lt;br /&gt;
+};&lt;br /&gt;
+&lt;br /&gt;
+#endif /* BEAGLE_GPIO_SPI */&lt;br /&gt;
+&lt;br /&gt;
 static void __init omap3beagle_flash_init(void)&lt;br /&gt;
 {&lt;br /&gt;
 	u8 cs = 0;&lt;br /&gt;
@@ -432,12 +590,30 @@ static struct omap_board_mux board_mux[] __initdata = {&lt;br /&gt;
 &lt;br /&gt;
 static void __init omap3_beagle_init(void)&lt;br /&gt;
 {&lt;br /&gt;
+	int i;&lt;br /&gt;
+&lt;br /&gt;
 	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);&lt;br /&gt;
 	omap3_beagle_i2c_init();&lt;br /&gt;
 	platform_add_devices(omap3_beagle_devices,&lt;br /&gt;
 			ARRAY_SIZE(omap3_beagle_devices));&lt;br /&gt;
 	omap_serial_init();&lt;br /&gt;
 &lt;br /&gt;
+#ifndef BEAGLE_GPIO_SPI&lt;br /&gt;
+	printk(KERN_ERR &amp;quot;Using McSPI for SPI\n&amp;quot;);&lt;br /&gt;
+	omap3_beagle_config_mcspi3_mux();&lt;br /&gt;
+	omap3_beagle_config_mcspi4_mux();&lt;br /&gt;
+	spi_register_board_info(beagle_mcspi_board_info,&lt;br /&gt;
+			ARRAY_SIZE(beagle_mcspi_board_info));&lt;br /&gt;
+#else&lt;br /&gt;
+	printk(KERN_ERR &amp;quot;Using GPIO for SPI\n&amp;quot;);&lt;br /&gt;
+	omap3_beagle_config_gpio_spi3_mux();&lt;br /&gt;
+	omap3_beagle_config_gpio_spi4_mux();&lt;br /&gt;
+	for (i=0; i&amp;lt;3; i++)&lt;br /&gt;
+		platform_device_register(&amp;amp;beagle_gpio_spi_platform_device[i]);&lt;br /&gt;
+	spi_register_board_info(beagle_gpio_spi_board_info,&lt;br /&gt;
+			ARRAY_SIZE(beagle_gpio_spi_board_info));&lt;br /&gt;
+#endif&lt;br /&gt;
+&lt;br /&gt;
 	omap_mux_init_gpio(170, OMAP_PIN_INPUT);&lt;br /&gt;
 	gpio_request(170, &amp;quot;DVI_nPD&amp;quot;);&lt;br /&gt;
 	/* REVISIT leave DVI powered down until it's needed ... */&lt;br /&gt;
@@ -458,6 +634,7 @@ static void __init omap3_beagle_map_io(void)&lt;br /&gt;
 	omap2_map_common_io();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
+&lt;br /&gt;
 MACHINE_START(OMAP3_BEAGLE, &amp;quot;OMAP3 Beagle Board&amp;quot;)&lt;br /&gt;
 	/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */&lt;br /&gt;
 	.phys_io	= 0x48000000,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bgamari</name></author>	</entry>

	</feed>