Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: (22 commits) [ARM] fix section-based ioremap [NET] am79c961a: fix spin_lock usage [ARM] omap: usb: thou shalt not provide empty release functions [ARM] omap: watchdog: allow OMAP watchdog driver on OMAP34xx platforms [ARM] 5369/1: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, v3 [ARM] clkdev: fix clock matching [ARM] 5370/1: at91: fix rm9200 watchdog [ARM] 5368/1: arch/arm/mach-davinci/usb.c buildfix [ARM] 5365/1: s3cmci: Use new include path of dma.h [ARM] fix StrongARM-11x0 page copy implementation [ARM] omap: ensure OMAP drivers pass a struct device to clk_get() ARM: OMAP: Fix compile for h3 MMC ARM: OMAP: Remove unused platform devices, v3 ARM: OMAP: Fix ASoC by enabling writes to XCCR and RCCR McBSP registers, v3 ARM: OMAP: Fix OSK ASoC by registering I2C board info for tlvaic23 ARM: OMAP: remove duplicated #include's ARM: OMAP: Fix DMA CCR programming for request line > 63, v3 ARM: OMAP: Fix gpio.c compile on 15xx with CONFIG_DEBUGFS ARM: OMAP: Fix compile for beagle ARM: OMAP: Fix gpio by switching to generic gpio calls, v2 ...
This commit is contained in:
commit
5376071069
|
@ -24,6 +24,15 @@
|
||||||
static LIST_HEAD(clocks);
|
static LIST_HEAD(clocks);
|
||||||
static DEFINE_MUTEX(clocks_mutex);
|
static DEFINE_MUTEX(clocks_mutex);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Find the correct struct clk for the device and connection ID.
|
||||||
|
* We do slightly fuzzy matching here:
|
||||||
|
* An entry with a NULL ID is assumed to be a wildcard.
|
||||||
|
* If an entry has a device ID, it must match
|
||||||
|
* If an entry has a connection ID, it must match
|
||||||
|
* Then we take the most specific entry - with the following
|
||||||
|
* order of precidence: dev+con > dev only > con only.
|
||||||
|
*/
|
||||||
static struct clk *clk_find(const char *dev_id, const char *con_id)
|
static struct clk *clk_find(const char *dev_id, const char *con_id)
|
||||||
{
|
{
|
||||||
struct clk_lookup *p;
|
struct clk_lookup *p;
|
||||||
|
@ -31,13 +40,17 @@ static struct clk *clk_find(const char *dev_id, const char *con_id)
|
||||||
int match, best = 0;
|
int match, best = 0;
|
||||||
|
|
||||||
list_for_each_entry(p, &clocks, node) {
|
list_for_each_entry(p, &clocks, node) {
|
||||||
if ((p->dev_id && !dev_id) || (p->con_id && !con_id))
|
|
||||||
continue;
|
|
||||||
match = 0;
|
match = 0;
|
||||||
if (p->dev_id)
|
if (p->dev_id) {
|
||||||
match += 2 * (strcmp(p->dev_id, dev_id) == 0);
|
if (!dev_id || strcmp(p->dev_id, dev_id))
|
||||||
if (p->con_id)
|
continue;
|
||||||
match += 1 * (strcmp(p->con_id, con_id) == 0);
|
match += 2;
|
||||||
|
}
|
||||||
|
if (p->con_id) {
|
||||||
|
if (!con_id || strcmp(p->con_id, con_id))
|
||||||
|
continue;
|
||||||
|
match += 1;
|
||||||
|
}
|
||||||
if (match == 0)
|
if (match == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
|
#include <mach/irqs.h>
|
||||||
|
|
||||||
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
|
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
|
||||||
static struct musb_hdrc_eps_bits musb_eps[] = {
|
static struct musb_hdrc_eps_bits musb_eps[] = {
|
||||||
|
|
|
@ -37,16 +37,14 @@
|
||||||
#include <asm/mach/flash.h>
|
#include <asm/mach/flash.h>
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
|
|
||||||
#include <mach/gpio-switch.h>
|
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
|
#include <mach/dma.h>
|
||||||
#include <mach/tc.h>
|
#include <mach/tc.h>
|
||||||
#include <mach/nand.h>
|
#include <mach/nand.h>
|
||||||
#include <mach/irda.h>
|
#include <mach/irda.h>
|
||||||
#include <mach/usb.h>
|
#include <mach/usb.h>
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
|
|
||||||
static int h2_keymap[] = {
|
static int h2_keymap[] = {
|
||||||
KEY(0, 0, KEY_LEFT),
|
KEY(0, 0, KEY_LEFT),
|
||||||
|
@ -292,41 +290,6 @@ static struct platform_device h2_lcd_device = {
|
||||||
.id = -1,
|
.id = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp_regs = {
|
|
||||||
.spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
|
|
||||||
.spcr1 = RINTM(3) | RRST,
|
|
||||||
.rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
|
|
||||||
.rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
|
|
||||||
.xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.srgr1 = FWID(15),
|
|
||||||
.srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
|
|
||||||
|
|
||||||
.pcr0 = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
|
|
||||||
/*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config alsa_config = {
|
|
||||||
.name = "H2 TSC2101",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp_regs,
|
|
||||||
.codec_configure_dev = NULL, /* tsc2101_configure, */
|
|
||||||
.codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
|
|
||||||
.codec_clock_setup = NULL, /* tsc2101_clock_setup, */
|
|
||||||
.codec_clock_on = NULL, /* tsc2101_clock_on, */
|
|
||||||
.codec_clock_off = NULL, /* tsc2101_clock_off, */
|
|
||||||
.get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device h2_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device *h2_devices[] __initdata = {
|
static struct platform_device *h2_devices[] __initdata = {
|
||||||
&h2_nor_device,
|
&h2_nor_device,
|
||||||
&h2_nand_device,
|
&h2_nand_device,
|
||||||
|
@ -334,7 +297,6 @@ static struct platform_device *h2_devices[] __initdata = {
|
||||||
&h2_irda_device,
|
&h2_irda_device,
|
||||||
&h2_kp_device,
|
&h2_kp_device,
|
||||||
&h2_lcd_device,
|
&h2_lcd_device,
|
||||||
&h2_mcbsp1_device,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init h2_init_smc91x(void)
|
static void __init h2_init_smc91x(void)
|
||||||
|
@ -409,11 +371,6 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
|
||||||
|
|
||||||
#define H2_NAND_RB_GPIO_PIN 62
|
#define H2_NAND_RB_GPIO_PIN 62
|
||||||
|
|
||||||
static int h2_nand_dev_ready(struct omap_nand_platform_data *data)
|
|
||||||
{
|
|
||||||
return gpio_get_value(H2_NAND_RB_GPIO_PIN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __init h2_init(void)
|
static void __init h2_init(void)
|
||||||
{
|
{
|
||||||
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
|
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
|
||||||
|
|
|
@ -49,8 +49,6 @@
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
#include <mach/dma.h>
|
#include <mach/dma.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
|
|
||||||
#define H3_TS_GPIO 48
|
#define H3_TS_GPIO 48
|
||||||
|
|
||||||
|
@ -387,41 +385,6 @@ static struct spi_board_info h3_spi_board_info[] __initdata = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp_regs = {
|
|
||||||
.spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
|
|
||||||
.spcr1 = RINTM(3) | RRST,
|
|
||||||
.rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
|
|
||||||
.rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
|
|
||||||
.xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.srgr1 = FWID(15),
|
|
||||||
.srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
|
|
||||||
|
|
||||||
.pcr0 = CLKRM | SCLKME | FSXP | FSRP | CLKXP | CLKRP,
|
|
||||||
/*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config alsa_config = {
|
|
||||||
.name = "H3 TSC2101",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp_regs,
|
|
||||||
.codec_configure_dev = NULL, /* tsc2101_configure, */
|
|
||||||
.codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
|
|
||||||
.codec_clock_setup = NULL, /* tsc2101_clock_setup, */
|
|
||||||
.codec_clock_on = NULL, /* tsc2101_clock_on, */
|
|
||||||
.codec_clock_off = NULL, /* tsc2101_clock_off, */
|
|
||||||
.get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device h3_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&nor_device,
|
&nor_device,
|
||||||
&nand_device,
|
&nand_device,
|
||||||
|
@ -430,7 +393,6 @@ static struct platform_device *devices[] __initdata = {
|
||||||
&h3_irda_device,
|
&h3_irda_device,
|
||||||
&h3_kp_device,
|
&h3_kp_device,
|
||||||
&h3_lcd_device,
|
&h3_lcd_device,
|
||||||
&h3_mcbsp1_device,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct omap_usb_config h3_usb_config __initdata = {
|
static struct omap_usb_config h3_usb_config __initdata = {
|
||||||
|
@ -472,18 +434,6 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct omap_gpio_switch h3_gpio_switches[] __initdata = {
|
|
||||||
{
|
|
||||||
.name = "mmc_slot",
|
|
||||||
.gpio = OMAP_MPUIO(1),
|
|
||||||
.type = OMAP_GPIO_SWITCH_TYPE_COVER,
|
|
||||||
.debounce_rising = 100,
|
|
||||||
.debounce_falling = 0,
|
|
||||||
.notify = h3_mmc_slot_cover_handler,
|
|
||||||
.notify_data = NULL,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
#define H3_NAND_RB_GPIO_PIN 10
|
#define H3_NAND_RB_GPIO_PIN 10
|
||||||
|
|
||||||
static int nand_dev_ready(struct omap_nand_platform_data *data)
|
static int nand_dev_ready(struct omap_nand_platform_data *data)
|
||||||
|
|
|
@ -37,8 +37,6 @@
|
||||||
#include <mach/usb.h>
|
#include <mach/usb.h>
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
|
|
||||||
static int innovator_keymap[] = {
|
static int innovator_keymap[] = {
|
||||||
|
@ -115,42 +113,6 @@ static struct platform_device innovator_flash_device = {
|
||||||
.resource = &innovator_flash_resource,
|
.resource = &innovator_flash_resource,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_BITPERSAMPLE 16
|
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp_regs = {
|
|
||||||
.spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
|
|
||||||
.spcr1 = RINTM(3) | RRST,
|
|
||||||
.rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
|
|
||||||
.rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
|
|
||||||
.xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
|
|
||||||
.srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
|
|
||||||
/*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
|
|
||||||
.pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config alsa_config = {
|
|
||||||
.name = "OMAP Innovator AIC23",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp_regs,
|
|
||||||
.codec_configure_dev = NULL, /* aic23_configure, */
|
|
||||||
.codec_set_samplerate = NULL, /* aic23_set_samplerate, */
|
|
||||||
.codec_clock_setup = NULL, /* aic23_clock_setup, */
|
|
||||||
.codec_clock_on = NULL, /* aic23_clock_on, */
|
|
||||||
.codec_clock_off = NULL, /* aic23_clock_off, */
|
|
||||||
.get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device innovator_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct resource innovator_kp_resources[] = {
|
static struct resource innovator_kp_resources[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.start = INT_KEYBOARD,
|
.start = INT_KEYBOARD,
|
||||||
|
@ -227,7 +189,6 @@ static struct platform_device innovator1510_spi_device = {
|
||||||
static struct platform_device *innovator1510_devices[] __initdata = {
|
static struct platform_device *innovator1510_devices[] __initdata = {
|
||||||
&innovator_flash_device,
|
&innovator_flash_device,
|
||||||
&innovator1510_smc91x_device,
|
&innovator1510_smc91x_device,
|
||||||
&innovator_mcbsp1_device,
|
|
||||||
&innovator_kp_device,
|
&innovator_kp_device,
|
||||||
&innovator1510_lcd_device,
|
&innovator1510_lcd_device,
|
||||||
&innovator1510_spi_device,
|
&innovator1510_spi_device,
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/dsp_common.h>
|
#include <mach/dsp_common.h>
|
||||||
#include <mach/aic23.h>
|
|
||||||
#include <mach/omapfb.h>
|
#include <mach/omapfb.h>
|
||||||
#include <mach/lcd_mipid.h>
|
#include <mach/lcd_mipid.h>
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
|
@ -261,6 +260,13 @@ static DEFINE_MUTEX(audio_pwr_lock);
|
||||||
*/
|
*/
|
||||||
static int audio_pwr_state = -1;
|
static int audio_pwr_state = -1;
|
||||||
|
|
||||||
|
static inline void aic23_power_up(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
static inline void aic23_power_down(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* audio_pwr_up / down should be called under audio_pwr_lock
|
* audio_pwr_up / down should be called under audio_pwr_lock
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -51,8 +51,6 @@
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
#include <mach/tc.h>
|
#include <mach/tc.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
|
|
||||||
static struct mtd_partition osk_partitions[] = {
|
static struct mtd_partition osk_partitions[] = {
|
||||||
/* bootloader (U-Boot, etc) in first sector */
|
/* bootloader (U-Boot, etc) in first sector */
|
||||||
|
@ -141,47 +139,10 @@ static struct platform_device osk5912_cf_device = {
|
||||||
.resource = osk5912_cf_resources,
|
.resource = osk5912_cf_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_BITPERSAMPLE 16
|
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp_regs = {
|
|
||||||
.spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
|
|
||||||
.spcr1 = RINTM(3) | RRST,
|
|
||||||
.rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
|
|
||||||
.rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
|
|
||||||
.xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
|
|
||||||
.srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
|
|
||||||
/*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
|
|
||||||
.pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config alsa_config = {
|
|
||||||
.name = "OSK AIC23",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp_regs,
|
|
||||||
.codec_configure_dev = NULL, /* aic23_configure, */
|
|
||||||
.codec_set_samplerate = NULL, /* aic23_set_samplerate, */
|
|
||||||
.codec_clock_setup = NULL, /* aic23_clock_setup, */
|
|
||||||
.codec_clock_on = NULL, /* aic23_clock_on, */
|
|
||||||
.codec_clock_off = NULL, /* aic23_clock_off, */
|
|
||||||
.get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device osk5912_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device *osk5912_devices[] __initdata = {
|
static struct platform_device *osk5912_devices[] __initdata = {
|
||||||
&osk5912_flash_device,
|
&osk5912_flash_device,
|
||||||
&osk5912_smc91x_device,
|
&osk5912_smc91x_device,
|
||||||
&osk5912_cf_device,
|
&osk5912_cf_device,
|
||||||
&osk5912_mcbsp1_device,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct gpio_led tps_leds[] = {
|
static struct gpio_led tps_leds[] = {
|
||||||
|
@ -259,8 +220,10 @@ static struct i2c_board_info __initdata osk_i2c_board_info[] = {
|
||||||
.platform_data = &tps_board,
|
.platform_data = &tps_board,
|
||||||
|
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
I2C_BOARD_INFO("tlv320aic23", 0x1B),
|
||||||
|
},
|
||||||
/* TODO when driver support is ready:
|
/* TODO when driver support is ready:
|
||||||
* - aic23 audio chip at 0x1a
|
|
||||||
* - optionally on Mistral, ov9640 camera sensor at 0x30
|
* - optionally on Mistral, ov9640 camera sensor at 0x30
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,8 +42,6 @@
|
||||||
#include <mach/irda.h>
|
#include <mach/irda.h>
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
|
|
||||||
static void __init omap_palmte_init_irq(void)
|
static void __init omap_palmte_init_irq(void)
|
||||||
{
|
{
|
||||||
|
@ -195,15 +193,6 @@ static struct omap_usb_config palmte_usb_config __initdata = {
|
||||||
.pins[0] = 2,
|
.pins[0] = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct omap_mmc_config palmte_mmc_config __initdata = {
|
|
||||||
.mmc[0] = {
|
|
||||||
.enabled = 1,
|
|
||||||
.wp_pin = PALMTE_MMC_WP_GPIO,
|
|
||||||
.power_pin = PALMTE_MMC_POWER_GPIO,
|
|
||||||
.switch_pin = PALMTE_MMC_SWITCH_GPIO,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_lcd_config palmte_lcd_config __initdata = {
|
static struct omap_lcd_config palmte_lcd_config __initdata = {
|
||||||
.ctrl_name = "internal",
|
.ctrl_name = "internal",
|
||||||
};
|
};
|
||||||
|
@ -212,24 +201,6 @@ static struct omap_uart_config palmte_uart_config __initdata = {
|
||||||
.enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2),
|
.enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg palmte_mcbsp1_regs = {
|
|
||||||
.spcr2 = FRST | GRST | XRST | XINTM(3),
|
|
||||||
.xcr2 = XDATDLY(1) | XFIG,
|
|
||||||
.xcr1 = XWDLEN1(OMAP_MCBSP_WORD_32),
|
|
||||||
.pcr0 = SCLKME | FSXP | CLKXP,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config palmte_alsa_config = {
|
|
||||||
.name = "TSC2102 audio",
|
|
||||||
.mcbsp_regs_alsa = &palmte_mcbsp1_regs,
|
|
||||||
.codec_configure_dev = NULL, /* tsc2102_configure, */
|
|
||||||
.codec_set_samplerate = NULL, /* tsc2102_set_samplerate, */
|
|
||||||
.codec_clock_setup = NULL, /* tsc2102_clock_setup, */
|
|
||||||
.codec_clock_on = NULL, /* tsc2102_clock_on, */
|
|
||||||
.codec_clock_off = NULL, /* tsc2102_clock_off, */
|
|
||||||
.get_default_samplerate = NULL, /* tsc2102_get_default_samplerate, */
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef CONFIG_APM
|
#ifdef CONFIG_APM
|
||||||
/*
|
/*
|
||||||
* Values measured in 10 minute intervals averaged over 10 samples.
|
* Values measured in 10 minute intervals averaged over 10 samples.
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <asm/mach/flash.h>
|
#include <asm/mach/flash.h>
|
||||||
|
|
||||||
#include <mach/led.h>
|
#include <mach/led.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/gpio.h>
|
#include <mach/gpio.h>
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
#include <mach/usb.h>
|
#include <mach/usb.h>
|
||||||
|
@ -40,7 +39,6 @@
|
||||||
#include <mach/irda.h>
|
#include <mach/irda.h>
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
|
|
||||||
#include <linux/spi/spi.h>
|
#include <linux/spi/spi.h>
|
||||||
#include <linux/spi/ads7846.h>
|
#include <linux/spi/ads7846.h>
|
||||||
|
@ -122,44 +120,6 @@ static struct platform_device palmtt_flash_device = {
|
||||||
.resource = &palmtt_flash_resource,
|
.resource = &palmtt_flash_resource,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_BITPERSAMPLE 16
|
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp_regs = {
|
|
||||||
.spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
|
|
||||||
.spcr1 = RINTM(3) | RRST,
|
|
||||||
.rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
|
|
||||||
.rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
|
|
||||||
.xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
|
|
||||||
.srgr2 = GSYNC | CLKSP | FSGM |
|
|
||||||
FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
|
|
||||||
.pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config alsa_config = {
|
|
||||||
.name = "PalmTT AIC23",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp_regs,
|
|
||||||
.codec_configure_dev = NULL, /* aic23_configure, */
|
|
||||||
.codec_set_samplerate = NULL, /* aic23_set_samplerate, */
|
|
||||||
.codec_clock_setup = NULL, /* aic23_clock_setup, */
|
|
||||||
.codec_clock_on = NULL, /* aic23_clock_on, */
|
|
||||||
.codec_clock_off = NULL, /* aic23_clock_off, */
|
|
||||||
.get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device palmtt_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct resource palmtt_kp_resources[] = {
|
static struct resource palmtt_kp_resources[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.start = INT_KEYBOARD,
|
.start = INT_KEYBOARD,
|
||||||
|
@ -257,7 +217,6 @@ static struct platform_device palmtt_led_device = {
|
||||||
|
|
||||||
static struct platform_device *palmtt_devices[] __initdata = {
|
static struct platform_device *palmtt_devices[] __initdata = {
|
||||||
&palmtt_flash_device,
|
&palmtt_flash_device,
|
||||||
&palmtt_mcbsp1_device,
|
|
||||||
&palmtt_kp_device,
|
&palmtt_kp_device,
|
||||||
&palmtt_lcd_device,
|
&palmtt_lcd_device,
|
||||||
&palmtt_irda_device,
|
&palmtt_irda_device,
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
#include <asm/mach/flash.h>
|
#include <asm/mach/flash.h>
|
||||||
|
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/gpio.h>
|
#include <mach/gpio.h>
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
#include <mach/usb.h>
|
#include <mach/usb.h>
|
||||||
|
@ -179,41 +178,6 @@ static struct platform_device palmz71_spi_device = {
|
||||||
.id = -1,
|
.id = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_BITPERSAMPLE 16
|
|
||||||
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp_regs = {
|
|
||||||
.spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
|
|
||||||
.spcr1 = RINTM(3) | RRST,
|
|
||||||
.rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
|
|
||||||
.rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
|
|
||||||
XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
|
|
||||||
.xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
|
|
||||||
.srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
|
|
||||||
.srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
|
|
||||||
.pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config alsa_config = {
|
|
||||||
.name = "PalmZ71 AIC23",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp_regs,
|
|
||||||
.codec_configure_dev = NULL, /* aic23_configure */
|
|
||||||
.codec_set_samplerate = NULL, /* aic23_set_samplerate */
|
|
||||||
.codec_clock_setup = NULL, /* aic23_clock_setup */
|
|
||||||
.codec_clock_on = NULL, /* aic23_clock_on */
|
|
||||||
.codec_clock_off = NULL, /* aic23_clock_off */
|
|
||||||
.get_default_samplerate = NULL, /* aic23_get_default_samplerate */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device palmz71_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_backlight_config palmz71_backlight_config = {
|
static struct omap_backlight_config palmz71_backlight_config = {
|
||||||
.default_intensity = 0xa0,
|
.default_intensity = 0xa0,
|
||||||
};
|
};
|
||||||
|
@ -229,7 +193,6 @@ static struct platform_device palmz71_backlight_device = {
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&palmz71_rom_device,
|
&palmz71_rom_device,
|
||||||
&palmz71_kp_device,
|
&palmz71_kp_device,
|
||||||
&palmz71_mcbsp1_device,
|
|
||||||
&palmz71_lcd_device,
|
&palmz71_lcd_device,
|
||||||
&palmz71_irda_device,
|
&palmz71_irda_device,
|
||||||
&palmz71_spi_device,
|
&palmz71_spi_device,
|
||||||
|
|
|
@ -34,13 +34,12 @@
|
||||||
|
|
||||||
#include <mach/gpio.h>
|
#include <mach/gpio.h>
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
|
#include <mach/dma.h>
|
||||||
#include <mach/irda.h>
|
#include <mach/irda.h>
|
||||||
#include <mach/usb.h>
|
#include <mach/usb.h>
|
||||||
#include <mach/tc.h>
|
#include <mach/tc.h>
|
||||||
#include <mach/board.h>
|
#include <mach/board.h>
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/mcbsp.h>
|
|
||||||
#include <mach/omap-alsa.h>
|
|
||||||
#include <mach/keypad.h>
|
#include <mach/keypad.h>
|
||||||
|
|
||||||
/* Write to I2C device */
|
/* Write to I2C device */
|
||||||
|
@ -254,35 +253,6 @@ static struct platform_device sx1_irda_device = {
|
||||||
.resource = sx1_irda_resources,
|
.resource = sx1_irda_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*----------- McBSP & Sound -------------------------*/
|
|
||||||
|
|
||||||
/* Playback interface - McBSP1 */
|
|
||||||
static struct omap_mcbsp_reg_cfg mcbsp1_regs = {
|
|
||||||
.spcr2 = XINTM(3), /* SPCR2=30 */
|
|
||||||
.spcr1 = RINTM(3), /* SPCR1=30 */
|
|
||||||
.rcr2 = 0, /* RCR2 =00 */
|
|
||||||
.rcr1 = RFRLEN1(1) | RWDLEN1(OMAP_MCBSP_WORD_16), /* RCR1=140 */
|
|
||||||
.xcr2 = 0, /* XCR2 = 0 */
|
|
||||||
.xcr1 = XFRLEN1(1) | XWDLEN1(OMAP_MCBSP_WORD_16), /* XCR1 = 140 */
|
|
||||||
.srgr1 = FWID(15) | CLKGDV(12), /* SRGR1=0f0c */
|
|
||||||
.srgr2 = FSGM | FPER(31), /* SRGR2=101f */
|
|
||||||
.pcr0 = FSXM | FSRM | CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
|
|
||||||
/* PCR0 =0f0f */
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct omap_alsa_codec_config sx1_alsa_config = {
|
|
||||||
.name = "SX1 EGold",
|
|
||||||
.mcbsp_regs_alsa = &mcbsp1_regs,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device sx1_mcbsp1_device = {
|
|
||||||
.name = "omap_alsa_mcbsp",
|
|
||||||
.id = 1,
|
|
||||||
.dev = {
|
|
||||||
.platform_data = &sx1_alsa_config,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/*----------- MTD -------------------------*/
|
/*----------- MTD -------------------------*/
|
||||||
|
|
||||||
static struct mtd_partition sx1_partitions[] = {
|
static struct mtd_partition sx1_partitions[] = {
|
||||||
|
@ -394,7 +364,6 @@ static struct platform_device *sx1_devices[] __initdata = {
|
||||||
&sx1_flash_device,
|
&sx1_flash_device,
|
||||||
&sx1_kp_device,
|
&sx1_kp_device,
|
||||||
&sx1_lcd_device,
|
&sx1_lcd_device,
|
||||||
&sx1_mcbsp1_device,
|
|
||||||
&sx1_irda_device,
|
&sx1_irda_device,
|
||||||
};
|
};
|
||||||
/*-----------------------------------------*/
|
/*-----------------------------------------*/
|
||||||
|
@ -423,9 +392,9 @@ static void __init omap_sx1_init(void)
|
||||||
|
|
||||||
/* turn on USB power */
|
/* turn on USB power */
|
||||||
/* sx1_setusbpower(1); cant do it here because i2c is not ready */
|
/* sx1_setusbpower(1); cant do it here because i2c is not ready */
|
||||||
omap_request_gpio(1); /* A_IRDA_OFF */
|
gpio_request(1, "A_IRDA_OFF");
|
||||||
omap_request_gpio(11); /* A_SWITCH */
|
gpio_request(11, "A_SWITCH");
|
||||||
omap_request_gpio(15); /* A_USB_ON */
|
gpio_request(15, "A_USB_ON");
|
||||||
gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */
|
gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */
|
||||||
gpio_direction_output(11, 0); /*A_SWITCH = 0 */
|
gpio_direction_output(11, 0); /*A_SWITCH = 0 */
|
||||||
gpio_direction_output(15, 0); /*A_USB_ON = 0 */
|
gpio_direction_output(15, 0); /*A_USB_ON = 0 */
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/serial_8250.h>
|
#include <linux/serial_8250.h>
|
||||||
#include <linux/serial_reg.h>
|
#include <linux/serial_reg.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
|
#include <mach/irqs.h>
|
||||||
#include <mach/dma.h>
|
#include <mach/dma.h>
|
||||||
#include <mach/irqs.h>
|
#include <mach/irqs.h>
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
|
|
|
@ -22,8 +22,6 @@
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <linux/mtd/onenand.h>
|
#include <linux/mtd/onenand.h>
|
||||||
#include <linux/irq.h>
|
|
||||||
#include <linux/interrupt.h>
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/leds.h>
|
#include <linux/leds.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
@ -282,65 +280,16 @@ static void __init apollon_led_init(void)
|
||||||
{
|
{
|
||||||
/* LED0 - AA10 */
|
/* LED0 - AA10 */
|
||||||
omap_cfg_reg(AA10_242X_GPIO13);
|
omap_cfg_reg(AA10_242X_GPIO13);
|
||||||
omap_request_gpio(LED0_GPIO13);
|
gpio_request(LED0_GPIO13, "LED0");
|
||||||
omap_set_gpio_direction(LED0_GPIO13, 0);
|
gpio_direction_output(LED0_GPIO13, 0);
|
||||||
omap_set_gpio_dataout(LED0_GPIO13, 0);
|
|
||||||
/* LED1 - AA6 */
|
/* LED1 - AA6 */
|
||||||
omap_cfg_reg(AA6_242X_GPIO14);
|
omap_cfg_reg(AA6_242X_GPIO14);
|
||||||
omap_request_gpio(LED1_GPIO14);
|
gpio_request(LED1_GPIO14, "LED1");
|
||||||
omap_set_gpio_direction(LED1_GPIO14, 0);
|
gpio_direction_output(LED1_GPIO14, 0);
|
||||||
omap_set_gpio_dataout(LED1_GPIO14, 0);
|
|
||||||
/* LED2 - AA4 */
|
/* LED2 - AA4 */
|
||||||
omap_cfg_reg(AA4_242X_GPIO15);
|
omap_cfg_reg(AA4_242X_GPIO15);
|
||||||
omap_request_gpio(LED2_GPIO15);
|
gpio_request(LED2_GPIO15, "LED2");
|
||||||
omap_set_gpio_direction(LED2_GPIO15, 0);
|
gpio_direction_output(LED2_GPIO15, 0);
|
||||||
omap_set_gpio_dataout(LED2_GPIO15, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static irqreturn_t apollon_sw_interrupt(int irq, void *ignored)
|
|
||||||
{
|
|
||||||
static unsigned int led0, led1, led2;
|
|
||||||
|
|
||||||
if (irq == OMAP_GPIO_IRQ(SW_ENTER_GPIO16))
|
|
||||||
omap_set_gpio_dataout(LED0_GPIO13, led0 ^= 1);
|
|
||||||
else if (irq == OMAP_GPIO_IRQ(SW_UP_GPIO17))
|
|
||||||
omap_set_gpio_dataout(LED1_GPIO14, led1 ^= 1);
|
|
||||||
else if (irq == OMAP_GPIO_IRQ(SW_DOWN_GPIO58))
|
|
||||||
omap_set_gpio_dataout(LED2_GPIO15, led2 ^= 1);
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __init apollon_sw_init(void)
|
|
||||||
{
|
|
||||||
/* Enter SW - Y11 */
|
|
||||||
omap_cfg_reg(Y11_242X_GPIO16);
|
|
||||||
omap_request_gpio(SW_ENTER_GPIO16);
|
|
||||||
gpio_direction_input(SW_ENTER_GPIO16);
|
|
||||||
/* Up SW - AA12 */
|
|
||||||
omap_cfg_reg(AA12_242X_GPIO17);
|
|
||||||
omap_request_gpio(SW_UP_GPIO17);
|
|
||||||
gpio_direction_input(SW_UP_GPIO17);
|
|
||||||
/* Down SW - AA8 */
|
|
||||||
omap_cfg_reg(AA8_242X_GPIO58);
|
|
||||||
omap_request_gpio(SW_DOWN_GPIO58);
|
|
||||||
gpio_direction_input(SW_DOWN_GPIO58);
|
|
||||||
|
|
||||||
set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQ_TYPE_EDGE_RISING);
|
|
||||||
if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt,
|
|
||||||
IRQF_SHARED, "enter sw",
|
|
||||||
&apollon_sw_interrupt))
|
|
||||||
return;
|
|
||||||
set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQ_TYPE_EDGE_RISING);
|
|
||||||
if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt,
|
|
||||||
IRQF_SHARED, "up sw",
|
|
||||||
&apollon_sw_interrupt))
|
|
||||||
return;
|
|
||||||
set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQ_TYPE_EDGE_RISING);
|
|
||||||
if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt,
|
|
||||||
IRQF_SHARED, "down sw",
|
|
||||||
&apollon_sw_interrupt))
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init apollon_usb_init(void)
|
static void __init apollon_usb_init(void)
|
||||||
|
@ -357,7 +306,6 @@ static void __init omap_apollon_init(void)
|
||||||
u32 v;
|
u32 v;
|
||||||
|
|
||||||
apollon_led_init();
|
apollon_led_init();
|
||||||
apollon_sw_init();
|
|
||||||
apollon_flash_init();
|
apollon_flash_init();
|
||||||
apollon_usb_init();
|
apollon_usb_init();
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ static inline void __init ldp_init_smc911x(void)
|
||||||
|
|
||||||
ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
|
ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
|
||||||
|
|
||||||
if (omap_request_gpio(eth_gpio) < 0) {
|
if (gpio_request(eth_gpio, "smc911x irq") < 0) {
|
||||||
printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
|
printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
|
||||||
eth_gpio);
|
eth_gpio);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <linux/mtd/nand.h>
|
#include <linux/mtd/nand.h>
|
||||||
|
|
||||||
|
#include <linux/i2c/twl4030.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
@ -120,6 +122,9 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||||
unsigned gpio, unsigned ngpio)
|
unsigned gpio, unsigned ngpio)
|
||||||
{
|
{
|
||||||
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
||||||
|
omap_cfg_reg(AH8_34XX_GPIO29);
|
||||||
|
mmc[0].gpio_cd = gpio + 0;
|
||||||
|
twl4030_mmc_init(mmc);
|
||||||
|
|
||||||
/* REVISIT: need ehci-omap hooks for external VBUS
|
/* REVISIT: need ehci-omap hooks for external VBUS
|
||||||
* power switch and overcurrent detect
|
* power switch and overcurrent detect
|
||||||
|
@ -304,10 +309,6 @@ static void __init omap3_beagle_init(void)
|
||||||
omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
|
omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
|
||||||
omap_serial_init();
|
omap_serial_init();
|
||||||
|
|
||||||
omap_cfg_reg(AH8_34XX_GPIO29);
|
|
||||||
mmc[0].gpio_cd = gpio + 0;
|
|
||||||
twl4030_mmc_init(mmc);
|
|
||||||
|
|
||||||
omap_cfg_reg(J25_34XX_GPIO170);
|
omap_cfg_reg(J25_34XX_GPIO170);
|
||||||
gpio_request(170, "DVI_nPD");
|
gpio_request(170, "DVI_nPD");
|
||||||
/* REVISIT leave DVI powered down until it's needed ... */
|
/* REVISIT leave DVI powered down until it's needed ... */
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
|
#include <mach/irqs.h>
|
||||||
#include <mach/dma.h>
|
#include <mach/dma.h>
|
||||||
#include <mach/irqs.h>
|
#include <mach/irqs.h>
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
|
|
|
@ -68,7 +68,7 @@ mc_copy_user_page(void *from, void *to)
|
||||||
: "r" (from), "r" (to), "I" (PAGE_SIZE / 64));
|
: "r" (from), "r" (to), "I" (PAGE_SIZE / 64));
|
||||||
}
|
}
|
||||||
|
|
||||||
void v4_mc_copy_user_highpage(struct page *from, struct page *to,
|
void v4_mc_copy_user_highpage(struct page *to, struct page *from,
|
||||||
unsigned long vaddr)
|
unsigned long vaddr)
|
||||||
{
|
{
|
||||||
void *kto = kmap_atomic(to, KM_USER1);
|
void *kto = kmap_atomic(to, KM_USER1);
|
||||||
|
|
|
@ -138,7 +138,7 @@ void __check_kvm_seq(struct mm_struct *mm)
|
||||||
*/
|
*/
|
||||||
static void unmap_area_sections(unsigned long virt, unsigned long size)
|
static void unmap_area_sections(unsigned long virt, unsigned long size)
|
||||||
{
|
{
|
||||||
unsigned long addr = virt, end = virt + (size & ~SZ_1M);
|
unsigned long addr = virt, end = virt + (size & ~(SZ_1M - 1));
|
||||||
pgd_t *pgd;
|
pgd_t *pgd;
|
||||||
|
|
||||||
flush_cache_vunmap(addr, end);
|
flush_cache_vunmap(addr, end);
|
||||||
|
@ -337,10 +337,7 @@ void __iounmap(volatile void __iomem *io_addr)
|
||||||
void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
|
void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
|
||||||
#ifndef CONFIG_SMP
|
#ifndef CONFIG_SMP
|
||||||
struct vm_struct **p, *tmp;
|
struct vm_struct **p, *tmp;
|
||||||
#endif
|
|
||||||
unsigned int section_mapping = 0;
|
|
||||||
|
|
||||||
#ifndef CONFIG_SMP
|
|
||||||
/*
|
/*
|
||||||
* If this is a section based mapping we need to handle it
|
* If this is a section based mapping we need to handle it
|
||||||
* specially as the VM subsystem does not know how to handle
|
* specially as the VM subsystem does not know how to handle
|
||||||
|
@ -352,11 +349,8 @@ void __iounmap(volatile void __iomem *io_addr)
|
||||||
for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
|
for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
|
||||||
if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
|
if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
|
||||||
if (tmp->flags & VM_ARM_SECTION_MAPPING) {
|
if (tmp->flags & VM_ARM_SECTION_MAPPING) {
|
||||||
*p = tmp->next;
|
|
||||||
unmap_area_sections((unsigned long)tmp->addr,
|
unmap_area_sections((unsigned long)tmp->addr,
|
||||||
tmp->size);
|
tmp->size);
|
||||||
kfree(tmp);
|
|
||||||
section_mapping = 1;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -364,7 +358,6 @@ void __iounmap(volatile void __iomem *io_addr)
|
||||||
write_unlock(&vmlist_lock);
|
write_unlock(&vmlist_lock);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!section_mapping)
|
vunmap(addr);
|
||||||
vunmap(addr);
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__iounmap);
|
EXPORT_SYMBOL(__iounmap);
|
||||||
|
|
|
@ -278,14 +278,11 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
val = dma_read(CCR(lch));
|
val = dma_read(CCR(lch));
|
||||||
val &= ~(3 << 19);
|
|
||||||
if (dma_trigger > 63)
|
|
||||||
val |= 1 << 20;
|
|
||||||
if (dma_trigger > 31)
|
|
||||||
val |= 1 << 19;
|
|
||||||
|
|
||||||
val &= ~(0x1f);
|
/* DMA_SYNCHRO_CONTROL_UPPER depends on the channel number */
|
||||||
val |= (dma_trigger & 0x1f);
|
val &= ~((3 << 19) | 0x1f);
|
||||||
|
val |= (dma_trigger & ~0x1f) << 14;
|
||||||
|
val |= dma_trigger & 0x1f;
|
||||||
|
|
||||||
if (sync_mode & OMAP_DMA_SYNC_FRAME)
|
if (sync_mode & OMAP_DMA_SYNC_FRAME)
|
||||||
val |= 1 << 5;
|
val |= 1 << 5;
|
||||||
|
|
|
@ -1789,6 +1789,8 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
|
||||||
/* FIXME for at least omap2, show pullup/pulldown state */
|
/* FIXME for at least omap2, show pullup/pulldown state */
|
||||||
|
|
||||||
irqstat = irq_desc[irq].status;
|
irqstat = irq_desc[irq].status;
|
||||||
|
#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP24XX) || \
|
||||||
|
defined(CONFIG_ARCH_OMAP34XX)
|
||||||
if (is_in && ((bank->suspend_wakeup & mask)
|
if (is_in && ((bank->suspend_wakeup & mask)
|
||||||
|| irqstat & IRQ_TYPE_SENSE_MASK)) {
|
|| irqstat & IRQ_TYPE_SENSE_MASK)) {
|
||||||
char *trigger = NULL;
|
char *trigger = NULL;
|
||||||
|
@ -1818,6 +1820,7 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
|
||||||
(bank->suspend_wakeup & mask)
|
(bank->suspend_wakeup & mask)
|
||||||
? " wakeup" : "");
|
? " wakeup" : "");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
seq_printf(s, "\n");
|
seq_printf(s, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,116 +0,0 @@
|
||||||
/*
|
|
||||||
* arch/arm/plat-omap/include/mach/aic23.h
|
|
||||||
*
|
|
||||||
* Hardware definitions for TI TLV320AIC23 audio codec
|
|
||||||
*
|
|
||||||
* Copyright (C) 2002 RidgeRun, Inc.
|
|
||||||
* Author: Steve Johnson
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU General Public License as published by the
|
|
||||||
* Free Software Foundation; either version 2 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
||||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
|
||||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
||||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
|
||||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License along
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __ASM_ARCH_AIC23_H
|
|
||||||
#define __ASM_ARCH_AIC23_H
|
|
||||||
|
|
||||||
// Codec TLV320AIC23
|
|
||||||
#define LEFT_LINE_VOLUME_ADDR 0x00
|
|
||||||
#define RIGHT_LINE_VOLUME_ADDR 0x01
|
|
||||||
#define LEFT_CHANNEL_VOLUME_ADDR 0x02
|
|
||||||
#define RIGHT_CHANNEL_VOLUME_ADDR 0x03
|
|
||||||
#define ANALOG_AUDIO_CONTROL_ADDR 0x04
|
|
||||||
#define DIGITAL_AUDIO_CONTROL_ADDR 0x05
|
|
||||||
#define POWER_DOWN_CONTROL_ADDR 0x06
|
|
||||||
#define DIGITAL_AUDIO_FORMAT_ADDR 0x07
|
|
||||||
#define SAMPLE_RATE_CONTROL_ADDR 0x08
|
|
||||||
#define DIGITAL_INTERFACE_ACT_ADDR 0x09
|
|
||||||
#define RESET_CONTROL_ADDR 0x0F
|
|
||||||
|
|
||||||
// Left (right) line input volume control register
|
|
||||||
#define LRS_ENABLED 0x0100
|
|
||||||
#define LIM_MUTED 0x0080
|
|
||||||
#define LIV_DEFAULT 0x0017
|
|
||||||
#define LIV_MAX 0x001f
|
|
||||||
#define LIV_MIN 0x0000
|
|
||||||
|
|
||||||
// Left (right) channel headphone volume control register
|
|
||||||
#define LZC_ON 0x0080
|
|
||||||
#define LHV_DEFAULT 0x0079
|
|
||||||
#define LHV_MAX 0x007f
|
|
||||||
#define LHV_MIN 0x0000
|
|
||||||
|
|
||||||
// Analog audio path control register
|
|
||||||
#define STA_REG(x) ((x)<<6)
|
|
||||||
#define STE_ENABLED 0x0020
|
|
||||||
#define DAC_SELECTED 0x0010
|
|
||||||
#define BYPASS_ON 0x0008
|
|
||||||
#define INSEL_MIC 0x0004
|
|
||||||
#define MICM_MUTED 0x0002
|
|
||||||
#define MICB_20DB 0x0001
|
|
||||||
|
|
||||||
// Digital audio path control register
|
|
||||||
#define DACM_MUTE 0x0008
|
|
||||||
#define DEEMP_32K 0x0002
|
|
||||||
#define DEEMP_44K 0x0004
|
|
||||||
#define DEEMP_48K 0x0006
|
|
||||||
#define ADCHP_ON 0x0001
|
|
||||||
|
|
||||||
// Power control down register
|
|
||||||
#define DEVICE_POWER_OFF 0x0080
|
|
||||||
#define CLK_OFF 0x0040
|
|
||||||
#define OSC_OFF 0x0020
|
|
||||||
#define OUT_OFF 0x0010
|
|
||||||
#define DAC_OFF 0x0008
|
|
||||||
#define ADC_OFF 0x0004
|
|
||||||
#define MIC_OFF 0x0002
|
|
||||||
#define LINE_OFF 0x0001
|
|
||||||
|
|
||||||
// Digital audio interface register
|
|
||||||
#define MS_MASTER 0x0040
|
|
||||||
#define LRSWAP_ON 0x0020
|
|
||||||
#define LRP_ON 0x0010
|
|
||||||
#define IWL_16 0x0000
|
|
||||||
#define IWL_20 0x0004
|
|
||||||
#define IWL_24 0x0008
|
|
||||||
#define IWL_32 0x000C
|
|
||||||
#define FOR_I2S 0x0002
|
|
||||||
#define FOR_DSP 0x0003
|
|
||||||
|
|
||||||
// Sample rate control register
|
|
||||||
#define CLKOUT_HALF 0x0080
|
|
||||||
#define CLKIN_HALF 0x0040
|
|
||||||
#define BOSR_384fs 0x0002 // BOSR_272fs when in USB mode
|
|
||||||
#define USB_CLK_ON 0x0001
|
|
||||||
#define SR_MASK 0xf
|
|
||||||
#define CLKOUT_SHIFT 7
|
|
||||||
#define CLKIN_SHIFT 6
|
|
||||||
#define SR_SHIFT 2
|
|
||||||
#define BOSR_SHIFT 1
|
|
||||||
|
|
||||||
// Digital interface register
|
|
||||||
#define ACT_ON 0x0001
|
|
||||||
|
|
||||||
#define TLV320AIC23ID1 (0x1a) // cs low
|
|
||||||
#define TLV320AIC23ID2 (0x1b) // cs high
|
|
||||||
|
|
||||||
void aic23_power_up(void);
|
|
||||||
void aic23_power_down(void);
|
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_AIC23_H */
|
|
|
@ -30,7 +30,9 @@
|
||||||
/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
|
/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
|
||||||
#define OMAP1710_ETHR_START 0x04000300
|
#define OMAP1710_ETHR_START 0x04000300
|
||||||
|
|
||||||
|
#define H3_TPS_GPIO_BASE (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */)
|
||||||
|
# define H3_TPS_GPIO_MMC_PWR_EN (H3_TPS_GPIO_BASE + 4)
|
||||||
|
|
||||||
extern void h3_mmc_init(void);
|
extern void h3_mmc_init(void);
|
||||||
extern void h3_mmc_slot_cover_handler(void *arg, int state);
|
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_OMAP_H3_H */
|
#endif /* __ASM_ARCH_OMAP_H3_H */
|
||||||
|
|
|
@ -87,16 +87,6 @@ extern void omap_set_gpio_debounce_time(int gpio, int enable);
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <asm-generic/gpio.h>
|
#include <asm-generic/gpio.h>
|
||||||
|
|
||||||
static inline int omap_request_gpio(int gpio)
|
|
||||||
{
|
|
||||||
return gpio_request(gpio, "FIXME");
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void omap_free_gpio(int gpio)
|
|
||||||
{
|
|
||||||
gpio_free(gpio);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int gpio_get_value(unsigned gpio)
|
static inline int gpio_get_value(unsigned gpio)
|
||||||
{
|
{
|
||||||
return __gpio_get_value(gpio);
|
return __gpio_get_value(gpio);
|
||||||
|
|
|
@ -87,6 +87,10 @@
|
||||||
#define OMAP_MCBSP_REG_XCERG 0x3A
|
#define OMAP_MCBSP_REG_XCERG 0x3A
|
||||||
#define OMAP_MCBSP_REG_XCERH 0x3C
|
#define OMAP_MCBSP_REG_XCERH 0x3C
|
||||||
|
|
||||||
|
/* Dummy defines, these are not available on omap1 */
|
||||||
|
#define OMAP_MCBSP_REG_XCCR 0x00
|
||||||
|
#define OMAP_MCBSP_REG_RCCR 0x00
|
||||||
|
|
||||||
#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1)
|
#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1)
|
||||||
#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1)
|
#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1)
|
||||||
|
|
||||||
|
@ -231,11 +235,16 @@
|
||||||
#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
|
#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
|
||||||
|
|
||||||
/*********************** McBSP XCCR bit definitions *************************/
|
/*********************** McBSP XCCR bit definitions *************************/
|
||||||
|
#define EXTCLKGATE 0x8000
|
||||||
|
#define PPCONNECT 0x4000
|
||||||
|
#define DXENDLY(value) ((value)<<12) /* Bits 12:13 */
|
||||||
|
#define XFULL_CYCLE 0x0800
|
||||||
#define DILB 0x0020
|
#define DILB 0x0020
|
||||||
#define XDMAEN 0x0008
|
#define XDMAEN 0x0008
|
||||||
#define XDISABLE 0x0001
|
#define XDISABLE 0x0001
|
||||||
|
|
||||||
/********************** McBSP RCCR bit definitions *************************/
|
/********************** McBSP RCCR bit definitions *************************/
|
||||||
|
#define RFULL_CYCLE 0x0800
|
||||||
#define RDMAEN 0x0008
|
#define RDMAEN 0x0008
|
||||||
#define RDISABLE 0x0001
|
#define RDISABLE 0x0001
|
||||||
|
|
||||||
|
@ -267,6 +276,8 @@ struct omap_mcbsp_reg_cfg {
|
||||||
u16 rcerh;
|
u16 rcerh;
|
||||||
u16 xcerg;
|
u16 xcerg;
|
||||||
u16 xcerh;
|
u16 xcerh;
|
||||||
|
u16 xccr;
|
||||||
|
u16 rccr;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
@ -173,6 +173,10 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
|
||||||
OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
|
OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
|
||||||
OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
|
OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
|
||||||
OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
|
OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
|
||||||
|
if (cpu_is_omap2430() || cpu_is_omap34xx()) {
|
||||||
|
OMAP_MCBSP_WRITE(io_base, XCCR, config->xccr);
|
||||||
|
OMAP_MCBSP_WRITE(io_base, RCCR, config->rccr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(omap_mcbsp_config);
|
EXPORT_SYMBOL(omap_mcbsp_config);
|
||||||
|
|
||||||
|
|
|
@ -431,15 +431,6 @@ bad:
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#if defined(CONFIG_USB_GADGET_OMAP) || \
|
|
||||||
defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) || \
|
|
||||||
(defined(CONFIG_USB_OTG) && defined(CONFIG_ARCH_OMAP_OTG))
|
|
||||||
static void usb_release(struct device *dev)
|
|
||||||
{
|
|
||||||
/* normally not freed */
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_USB_GADGET_OMAP
|
#ifdef CONFIG_USB_GADGET_OMAP
|
||||||
|
|
||||||
static struct resource udc_resources[] = {
|
static struct resource udc_resources[] = {
|
||||||
|
@ -466,7 +457,6 @@ static struct platform_device udc_device = {
|
||||||
.name = "omap_udc",
|
.name = "omap_udc",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.dev = {
|
.dev = {
|
||||||
.release = usb_release,
|
|
||||||
.dma_mask = &udc_dmamask,
|
.dma_mask = &udc_dmamask,
|
||||||
.coherent_dma_mask = 0xffffffff,
|
.coherent_dma_mask = 0xffffffff,
|
||||||
},
|
},
|
||||||
|
@ -497,7 +487,6 @@ static struct platform_device ohci_device = {
|
||||||
.name = "ohci",
|
.name = "ohci",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.dev = {
|
.dev = {
|
||||||
.release = usb_release,
|
|
||||||
.dma_mask = &ohci_dmamask,
|
.dma_mask = &ohci_dmamask,
|
||||||
.coherent_dma_mask = 0xffffffff,
|
.coherent_dma_mask = 0xffffffff,
|
||||||
},
|
},
|
||||||
|
@ -524,9 +513,6 @@ static struct resource otg_resources[] = {
|
||||||
static struct platform_device otg_device = {
|
static struct platform_device otg_device = {
|
||||||
.name = "omap_otg",
|
.name = "omap_otg",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.dev = {
|
|
||||||
.release = usb_release,
|
|
||||||
},
|
|
||||||
.num_resources = ARRAY_SIZE(otg_resources),
|
.num_resources = ARRAY_SIZE(otg_resources),
|
||||||
.resource = otg_resources,
|
.resource = otg_resources,
|
||||||
};
|
};
|
||||||
|
|
|
@ -102,7 +102,7 @@ static int __init omap_rng_probe(struct platform_device *pdev)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
if (cpu_is_omap24xx()) {
|
if (cpu_is_omap24xx()) {
|
||||||
rng_ick = clk_get(NULL, "rng_ick");
|
rng_ick = clk_get(&pdev->dev, "rng_ick");
|
||||||
if (IS_ERR(rng_ick)) {
|
if (IS_ERR(rng_ick)) {
|
||||||
dev_err(&pdev->dev, "Could not get rng_ick\n");
|
dev_err(&pdev->dev, "Could not get rng_ick\n");
|
||||||
ret = PTR_ERR(rng_ick);
|
ret = PTR_ERR(rng_ick);
|
||||||
|
|
|
@ -76,6 +76,16 @@ config MMC_OMAP
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
|
config MMC_OMAP_HS
|
||||||
|
tristate "TI OMAP High Speed Multimedia Card Interface support"
|
||||||
|
depends on ARCH_OMAP2430 || ARCH_OMAP3
|
||||||
|
help
|
||||||
|
This selects the TI OMAP High Speed Multimedia card Interface.
|
||||||
|
If you have an OMAP2430 or OMAP3 board with a Multimedia Card slot,
|
||||||
|
say Y or M here.
|
||||||
|
|
||||||
|
If unsure, say N.
|
||||||
|
|
||||||
config MMC_WBSD
|
config MMC_WBSD
|
||||||
tristate "Winbond W83L51xD SD/MMC Card Interface support"
|
tristate "Winbond W83L51xD SD/MMC Card Interface support"
|
||||||
depends on ISA_DMA_API
|
depends on ISA_DMA_API
|
||||||
|
|
|
@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_RICOH_MMC) += ricoh_mmc.o
|
||||||
obj-$(CONFIG_MMC_WBSD) += wbsd.o
|
obj-$(CONFIG_MMC_WBSD) += wbsd.o
|
||||||
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
||||||
obj-$(CONFIG_MMC_OMAP) += omap.o
|
obj-$(CONFIG_MMC_OMAP) += omap.o
|
||||||
|
obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o
|
||||||
obj-$(CONFIG_MMC_AT91) += at91_mci.o
|
obj-$(CONFIG_MMC_AT91) += at91_mci.o
|
||||||
obj-$(CONFIG_MMC_ATMELMCI) += atmel-mci.o
|
obj-$(CONFIG_MMC_ATMELMCI) += atmel-mci.o
|
||||||
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -20,7 +20,7 @@
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
|
||||||
#include <asm/dma.h>
|
#include <mach/dma.h>
|
||||||
|
|
||||||
#include <mach/regs-sdi.h>
|
#include <mach/regs-sdi.h>
|
||||||
#include <mach/regs-gpio.h>
|
#include <mach/regs-gpio.h>
|
||||||
|
|
|
@ -629,7 +629,7 @@ static int __devinit omap2_onenand_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->gpio_irq) {
|
if (c->gpio_irq) {
|
||||||
if ((r = omap_request_gpio(c->gpio_irq)) < 0) {
|
if ((r = gpio_request(c->gpio_irq, "OneNAND irq")) < 0) {
|
||||||
dev_err(&pdev->dev, "Failed to request GPIO%d for "
|
dev_err(&pdev->dev, "Failed to request GPIO%d for "
|
||||||
"OneNAND\n", c->gpio_irq);
|
"OneNAND\n", c->gpio_irq);
|
||||||
goto err_iounmap;
|
goto err_iounmap;
|
||||||
|
@ -726,7 +726,7 @@ err_release_dma:
|
||||||
free_irq(gpio_to_irq(c->gpio_irq), c);
|
free_irq(gpio_to_irq(c->gpio_irq), c);
|
||||||
err_release_gpio:
|
err_release_gpio:
|
||||||
if (c->gpio_irq)
|
if (c->gpio_irq)
|
||||||
omap_free_gpio(c->gpio_irq);
|
gpio_free(c->gpio_irq);
|
||||||
err_iounmap:
|
err_iounmap:
|
||||||
iounmap(c->onenand.base);
|
iounmap(c->onenand.base);
|
||||||
err_release_mem_region:
|
err_release_mem_region:
|
||||||
|
@ -761,7 +761,7 @@ static int __devexit omap2_onenand_remove(struct platform_device *pdev)
|
||||||
platform_set_drvdata(pdev, NULL);
|
platform_set_drvdata(pdev, NULL);
|
||||||
if (c->gpio_irq) {
|
if (c->gpio_irq) {
|
||||||
free_irq(gpio_to_irq(c->gpio_irq), c);
|
free_irq(gpio_to_irq(c->gpio_irq), c);
|
||||||
omap_free_gpio(c->gpio_irq);
|
gpio_free(c->gpio_irq);
|
||||||
}
|
}
|
||||||
iounmap(c->onenand.base);
|
iounmap(c->onenand.base);
|
||||||
release_mem_region(c->phys_base, ONENAND_IO_SIZE);
|
release_mem_region(c->phys_base, ONENAND_IO_SIZE);
|
||||||
|
|
|
@ -208,9 +208,9 @@ am79c961_init_for_open(struct net_device *dev)
|
||||||
/*
|
/*
|
||||||
* Stop the chip.
|
* Stop the chip.
|
||||||
*/
|
*/
|
||||||
spin_lock_irqsave(priv->chip_lock, flags);
|
spin_lock_irqsave(&priv->chip_lock, flags);
|
||||||
write_rreg (dev->base_addr, CSR0, CSR0_BABL|CSR0_CERR|CSR0_MISS|CSR0_MERR|CSR0_TINT|CSR0_RINT|CSR0_STOP);
|
write_rreg (dev->base_addr, CSR0, CSR0_BABL|CSR0_CERR|CSR0_MISS|CSR0_MERR|CSR0_TINT|CSR0_RINT|CSR0_STOP);
|
||||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||||
|
|
||||||
write_ireg (dev->base_addr, 5, 0x00a0); /* Receive address LED */
|
write_ireg (dev->base_addr, 5, 0x00a0); /* Receive address LED */
|
||||||
write_ireg (dev->base_addr, 6, 0x0081); /* Collision LED */
|
write_ireg (dev->base_addr, 6, 0x0081); /* Collision LED */
|
||||||
|
@ -332,10 +332,10 @@ am79c961_close(struct net_device *dev)
|
||||||
netif_stop_queue(dev);
|
netif_stop_queue(dev);
|
||||||
netif_carrier_off(dev);
|
netif_carrier_off(dev);
|
||||||
|
|
||||||
spin_lock_irqsave(priv->chip_lock, flags);
|
spin_lock_irqsave(&priv->chip_lock, flags);
|
||||||
write_rreg (dev->base_addr, CSR0, CSR0_STOP);
|
write_rreg (dev->base_addr, CSR0, CSR0_STOP);
|
||||||
write_rreg (dev->base_addr, CSR3, CSR3_MASKALL);
|
write_rreg (dev->base_addr, CSR3, CSR3_MASKALL);
|
||||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||||
|
|
||||||
free_irq (dev->irq, dev);
|
free_irq (dev->irq, dev);
|
||||||
|
|
||||||
|
@ -391,7 +391,7 @@ static void am79c961_setmulticastlist (struct net_device *dev)
|
||||||
am79c961_mc_hash(dmi, multi_hash);
|
am79c961_mc_hash(dmi, multi_hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock_irqsave(priv->chip_lock, flags);
|
spin_lock_irqsave(&priv->chip_lock, flags);
|
||||||
|
|
||||||
stopped = read_rreg(dev->base_addr, CSR0) & CSR0_STOP;
|
stopped = read_rreg(dev->base_addr, CSR0) & CSR0_STOP;
|
||||||
|
|
||||||
|
@ -405,9 +405,9 @@ static void am79c961_setmulticastlist (struct net_device *dev)
|
||||||
* Spin waiting for chip to report suspend mode
|
* Spin waiting for chip to report suspend mode
|
||||||
*/
|
*/
|
||||||
while ((read_rreg(dev->base_addr, CTRL1) & CTRL1_SPND) == 0) {
|
while ((read_rreg(dev->base_addr, CTRL1) & CTRL1_SPND) == 0) {
|
||||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||||
nop();
|
nop();
|
||||||
spin_lock_irqsave(priv->chip_lock, flags);
|
spin_lock_irqsave(&priv->chip_lock, flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,7 +429,7 @@ static void am79c961_setmulticastlist (struct net_device *dev)
|
||||||
write_rreg(dev->base_addr, CTRL1, 0);
|
write_rreg(dev->base_addr, CTRL1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void am79c961_timeout(struct net_device *dev)
|
static void am79c961_timeout(struct net_device *dev)
|
||||||
|
@ -467,10 +467,10 @@ am79c961_sendpacket(struct sk_buff *skb, struct net_device *dev)
|
||||||
am_writeword (dev, hdraddr + 2, TMD_OWN|TMD_STP|TMD_ENP);
|
am_writeword (dev, hdraddr + 2, TMD_OWN|TMD_STP|TMD_ENP);
|
||||||
priv->txhead = head;
|
priv->txhead = head;
|
||||||
|
|
||||||
spin_lock_irqsave(priv->chip_lock, flags);
|
spin_lock_irqsave(&priv->chip_lock, flags);
|
||||||
write_rreg (dev->base_addr, CSR0, CSR0_TDMD|CSR0_IENA);
|
write_rreg (dev->base_addr, CSR0, CSR0_TDMD|CSR0_IENA);
|
||||||
dev->trans_start = jiffies;
|
dev->trans_start = jiffies;
|
||||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the next packet is owned by the ethernet device,
|
* If the next packet is owned by the ethernet device,
|
||||||
|
|
|
@ -315,14 +315,14 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
usb_host_ck = clk_get(0, "usb_hhc_ck");
|
usb_host_ck = clk_get(&pdev->dev, "usb_hhc_ck");
|
||||||
if (IS_ERR(usb_host_ck))
|
if (IS_ERR(usb_host_ck))
|
||||||
return PTR_ERR(usb_host_ck);
|
return PTR_ERR(usb_host_ck);
|
||||||
|
|
||||||
if (!cpu_is_omap15xx())
|
if (!cpu_is_omap15xx())
|
||||||
usb_dc_ck = clk_get(0, "usb_dc_ck");
|
usb_dc_ck = clk_get(&pdev->dev, "usb_dc_ck");
|
||||||
else
|
else
|
||||||
usb_dc_ck = clk_get(0, "lb_ck");
|
usb_dc_ck = clk_get(&pdev->dev, "lb_ck");
|
||||||
|
|
||||||
if (IS_ERR(usb_dc_ck)) {
|
if (IS_ERR(usb_dc_ck)) {
|
||||||
clk_put(usb_host_ck);
|
clk_put(usb_host_ck);
|
||||||
|
|
|
@ -800,14 +800,14 @@ static int omap_lcdc_init(struct omapfb_device *fbdev, int ext_mode,
|
||||||
/* FIXME:
|
/* FIXME:
|
||||||
* According to errata some platforms have a clock rate limitiation
|
* According to errata some platforms have a clock rate limitiation
|
||||||
*/
|
*/
|
||||||
lcdc.lcd_ck = clk_get(NULL, "lcd_ck");
|
lcdc.lcd_ck = clk_get(fbdev->dev, "lcd_ck");
|
||||||
if (IS_ERR(lcdc.lcd_ck)) {
|
if (IS_ERR(lcdc.lcd_ck)) {
|
||||||
dev_err(fbdev->dev, "unable to access LCD clock\n");
|
dev_err(fbdev->dev, "unable to access LCD clock\n");
|
||||||
r = PTR_ERR(lcdc.lcd_ck);
|
r = PTR_ERR(lcdc.lcd_ck);
|
||||||
goto fail0;
|
goto fail0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tc_ck = clk_get(NULL, "tc_ck");
|
tc_ck = clk_get(fbdev->dev, "tc_ck");
|
||||||
if (IS_ERR(tc_ck)) {
|
if (IS_ERR(tc_ck)) {
|
||||||
dev_err(fbdev->dev, "unable to access TC clock\n");
|
dev_err(fbdev->dev, "unable to access TC clock\n");
|
||||||
r = PTR_ERR(tc_ck);
|
r = PTR_ERR(tc_ck);
|
||||||
|
|
|
@ -187,10 +187,10 @@ config EP93XX_WATCHDOG
|
||||||
|
|
||||||
config OMAP_WATCHDOG
|
config OMAP_WATCHDOG
|
||||||
tristate "OMAP Watchdog"
|
tristate "OMAP Watchdog"
|
||||||
depends on ARCH_OMAP16XX || ARCH_OMAP24XX
|
depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX
|
||||||
help
|
help
|
||||||
Support for TI OMAP1610/OMAP1710/OMAP2420 watchdog. Say 'Y' here to
|
Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog. Say 'Y'
|
||||||
enable the OMAP1610/OMAP1710 watchdog timer.
|
here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog timer.
|
||||||
|
|
||||||
config PNX4008_WATCHDOG
|
config PNX4008_WATCHDOG
|
||||||
tristate "PNX4008 Watchdog"
|
tristate "PNX4008 Watchdog"
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/io.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/miscdevice.h>
|
#include <linux/miscdevice.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
Loading…
Reference in New Issue