| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | /* * 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,
 |