|  | @@ -0,0 +1,139 @@
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * Board support file for OMAP4430 based PandaBoard.
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Copyright (C) 2010 Texas Instruments
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Author: David Anders <x0132446@ti.com>
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Based on mach-omap2/board-4430sdp.c
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Based on mach-omap2/board-3430sdp.c
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * This program is free software; you can redistribute it and/or modify
 | 
	
		
			
				|  |  | + * it under the terms of the GNU General Public License version 2 as
 | 
	
		
			
				|  |  | + * published by the Free Software Foundation.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include <linux/kernel.h>
 | 
	
		
			
				|  |  | +#include <linux/init.h>
 | 
	
		
			
				|  |  | +#include <linux/platform_device.h>
 | 
	
		
			
				|  |  | +#include <linux/clk.h>
 | 
	
		
			
				|  |  | +#include <linux/io.h>
 | 
	
		
			
				|  |  | +#include <linux/leds.h>
 | 
	
		
			
				|  |  | +#include <linux/gpio.h>
 | 
	
		
			
				|  |  | +#include <linux/usb/otg.h>
 | 
	
		
			
				|  |  | +#include <linux/i2c/twl.h>
 | 
	
		
			
				|  |  | +#include <linux/mfd/twl6040.h>
 | 
	
		
			
				|  |  | +#include <linux/regulator/machine.h>
 | 
	
		
			
				|  |  | +#include <linux/regulator/fixed.h>
 | 
	
		
			
				|  |  | +#include <linux/ti_wilink_st.h>
 | 
	
		
			
				|  |  | +#include <linux/usb/musb.h>
 | 
	
		
			
				|  |  | +#include <linux/wl12xx.h>
 | 
	
		
			
				|  |  | +#include <linux/platform_data/omap-abe-twl6040.h>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include <asm/hardware/gic.h>
 | 
	
		
			
				|  |  | +#include <asm/mach-types.h>
 | 
	
		
			
				|  |  | +#include <asm/mach/arch.h>
 | 
	
		
			
				|  |  | +#include <asm/mach/map.h>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include "common.h"
 | 
	
		
			
				|  |  | +#include "soc.h"
 | 
	
		
			
				|  |  | +#include "mmc.h"
 | 
	
		
			
				|  |  | +#include "hsmmc.h"
 | 
	
		
			
				|  |  | +#include "control.h"
 | 
	
		
			
				|  |  | +#include "mux.h"
 | 
	
		
			
				|  |  | +#include "common-board-devices.h"
 | 
	
		
			
				|  |  | +#include "dss-common.h"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#define GPIO_HUB_POWER		1
 | 
	
		
			
				|  |  | +#define GPIO_HUB_NRESET		62
 | 
	
		
			
				|  |  | +#define GPIO_WIFI_PMENA		43
 | 
	
		
			
				|  |  | +#define GPIO_WIFI_IRQ		53
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* wl127x BT, FM, GPS connectivity chip */
 | 
	
		
			
				|  |  | +static struct ti_st_plat_data wilink_platform_data = {
 | 
	
		
			
				|  |  | +	.nshutdown_gpio	= 46,
 | 
	
		
			
				|  |  | +	.dev_name	= "/dev/ttyO1",
 | 
	
		
			
				|  |  | +	.flow_cntrl	= 1,
 | 
	
		
			
				|  |  | +	.baud_rate	= 3000000,
 | 
	
		
			
				|  |  | +	.chip_enable	= NULL,
 | 
	
		
			
				|  |  | +	.suspend	= NULL,
 | 
	
		
			
				|  |  | +	.resume		= NULL,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct platform_device wl1271_device = {
 | 
	
		
			
				|  |  | +	.name	= "kim",
 | 
	
		
			
				|  |  | +	.id	= -1,
 | 
	
		
			
				|  |  | +	.dev	= {
 | 
	
		
			
				|  |  | +		.platform_data	= &wilink_platform_data,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct gpio_led gpio_leds[] = {
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		.name			= "pandaboard::status1",
 | 
	
		
			
				|  |  | +		.default_trigger	= "heartbeat",
 | 
	
		
			
				|  |  | +		.gpio			= 7,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		.name			= "pandaboard::status2",
 | 
	
		
			
				|  |  | +		.default_trigger	= "mmc0",
 | 
	
		
			
				|  |  | +		.gpio			= 8,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct gpio_led_platform_data gpio_led_info = {
 | 
	
		
			
				|  |  | +	.leds		= gpio_leds,
 | 
	
		
			
				|  |  | +	.num_leds	= ARRAY_SIZE(gpio_leds),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct platform_device leds_gpio = {
 | 
	
		
			
				|  |  | +	.name	= "leds-gpio",
 | 
	
		
			
				|  |  | +	.id	= -1,
 | 
	
		
			
				|  |  | +	.dev	= {
 | 
	
		
			
				|  |  | +		.platform_data	= &gpio_led_info,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_abe_twl6040_data panda_abe_audio_data = {
 | 
	
		
			
				|  |  | +	/* Audio out */
 | 
	
		
			
				|  |  | +	.has_hs		= ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
 | 
	
		
			
				|  |  | +	/* HandsFree through expansion connector */
 | 
	
		
			
				|  |  | +	.has_hf		= ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
 | 
	
		
			
				|  |  | +	/* PandaBoard: FM TX, PandaBoardES: can be connected to audio out */
 | 
	
		
			
				|  |  | +	.has_aux	= ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
 | 
	
		
			
				|  |  | +	/* PandaBoard: FM RX, PandaBoardES: audio in */
 | 
	
		
			
				|  |  | +	.has_afm	= ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
 | 
	
		
			
				|  |  | +	/* No jack detection. */
 | 
	
		
			
				|  |  | +	.jack_detection	= 0,
 | 
	
		
			
				|  |  | +	/* MCLK input is 38.4MHz */
 | 
	
		
			
				|  |  | +	.mclk_freq	= 38400000,
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct platform_device panda_abe_audio = {
 | 
	
		
			
				|  |  | +	.name		= "omap-abe-twl6040",
 | 
	
		
			
				|  |  | +	.id		= -1,
 | 
	
		
			
				|  |  | +	.dev = {
 | 
	
		
			
				|  |  | +		.platform_data = &panda_abe_audio_data,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct platform_device panda_hdmi_audio_codec = {
 | 
	
		
			
				|  |  | +	.name	= "hdmi-audio-codec",
 | 
	
		
			
				|  |  | +	.id	= -1,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct platform_device btwilink_device = {
 | 
	
		
			
				|  |  | +	.name	= "btwilink",
 | 
	
		
			
				|  |  | +	.id	= -1,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct platform_device *panda_devices[] __initdata = {
 | 
	
		
			
				|  |  | +	&leds_gpio,
 | 
	
		
			
				|  |  | +	&wl1271_device,
 | 
	
		
			
				|  |  | +	&panda_abe_audio,
 | 
	
		
			
				|  |  | +	&panda_hdmi_audio_codec,
 | 
	
		
			
				|  |  | +	&btwilink_device,
 |