BeagleBoard/SPI/Patch-rcn-ee-2.6.38.2-d9 mcspi3 gpio144 gpio183

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index dd083ae..de62907 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -2,6 +2,8 @@ # +CFLAGS_mux.o += -DDEBUG + obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o \ common.o gpio.o dma.o wd_timer.o diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 10b33d7..b2ff61d 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c @@ -31,6 +31,7 @@ +#include  @@ -56,6 +57,8 @@ +#define DAMIANS_WATTEROTT_BOARD + /* * OMAP3 Beagle revision * Run time detection of Beagle revision is done by reading GPIO. @@ -351,18 +354,21 @@ static void __init beagle_display_init(void) + static struct omap2_hsmmc_info mmc[] = { { 		.mmc		= 1, .caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, .gpio_wp	= 29, }, +#ifndef DAMIANS_WATTEROTT_BOARD { 		.mmc		= 2, .caps		= MMC_CAP_4_BIT_DATA, .transceiver	= true, .ocr_mask	= 0x00100000,	/* 3.3V */ }, +#endif {}	/* Terminator */ }; @@ -604,7 +610,9 @@ static int __init omap3_beagle_i2c_init(void) } 	else { +#ifndef DAMIANS_WATTEROTT_BOARD omap_register_i2c_bus(2, 400, NULL, 0); +#endif } 	/* Bus 3 is attached to the DVI port where devices like the pico DLP * projector don't work reliably with 400kHz */ @@ -685,6 +693,50 @@ static struct platform_device *omap3_beagle_devices[] __initdata = { &keys_gpio, }; + +#ifdef DAMIANS_WATTEROTT_BOARD +		+static void __init omap3_beagle_config_mcspi3_mux(void) +{ +       // NOTE: Clock pins need to be in input mode +	omap_mux_init_signal("sdmmc2_clk.mcspi3_clk", OMAP_PIN_INPUT); +	omap_mux_init_signal("sdmmc2_dat3.mcspi3_cs0", OMAP_PIN_OUTPUT); +	omap_mux_init_signal("sdmmc2_dat2.mcspi3_cs1", OMAP_PIN_OUTPUT); +	omap_mux_init_signal("sdmmc2_cmd.mcspi3_simo", OMAP_PIN_OUTPUT); +	omap_mux_init_signal("sdmmc2_dat0.mcspi3_somi", OMAP_PIN_INPUT_PULLUP); +} + +static void __init omap3_beagle_config_damians_watterott_mux(void) +{ +	omap3_beagle_config_mcspi3_mux; + +	omap_mux_init_signal("uart2_cts.gpio_144", OMAP_PIN_OUTPUT ); +	omap_mux_init_signal("i2c2_sda.gpio_183", OMAP_PIN_OUTPUT ); +} + +static struct spi_board_info beagle_mcspi_board_info[] = { +	// spi 3.0 +	{ +		.modalias	= "spidev", +		.max_speed_hz	= 48000000, //48 Mbps +		.bus_num	= 3, +		.chip_select	= 0, +		.mode = SPI_MODE_1, +	}, + +	// spi 3.1 +	{ +		.modalias	= "spidev", +		.max_speed_hz	= 48000000, //48 Mbps +		.bus_num	= 3, +		.chip_select	= 1, +		.mode = SPI_MODE_1, +	}, + +}; + +#endif + static void __init omap3beagle_flash_init(void) { 	u8 cs = 0; @@ -814,6 +866,10 @@ static void __init omap3_beagle_init(void) omap_display_init(&beagle_dss_data); omap_serial_init; +	omap3_beagle_config_damians_watterott_mux; +	spi_register_board_info(beagle_mcspi_board_info, +			ARRAY_SIZE(beagle_mcspi_board_info)); + 	omap_mux_init_gpio(170, OMAP_PIN_INPUT); gpio_request(170, "DVI_nPD"); /* REVISIT leave DVI powered down until it's needed ... */
 * 1) Makefile for the linux kernel.
 * 1) Common support
 * 1) include 
 * 2) include 
 * 1) include 
 * 2) include 
 * 1) define NAND_BLOCK_SIZE		SZ_128K
 * 1) include "sdram-micron-mt46h32m32lf-6.h"