mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
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 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)
|
||||
{
|
||||
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;
|
||||
|
||||
list_for_each_entry(p, &clocks, node) {
|
||||
if ((p->dev_id && !dev_id) || (p->con_id && !con_id))
|
||||
continue;
|
||||
match = 0;
|
||||
if (p->dev_id)
|
||||
match += 2 * (strcmp(p->dev_id, dev_id) == 0);
|
||||
if (p->con_id)
|
||||
match += 1 * (strcmp(p->con_id, con_id) == 0);
|
||||
if (p->dev_id) {
|
||||
if (!dev_id || strcmp(p->dev_id, dev_id))
|
||||
continue;
|
||||
match += 2;
|
||||
}
|
||||
if (p->con_id) {
|
||||
if (!con_id || strcmp(p->con_id, con_id))
|
||||
continue;
|
||||
match += 1;
|
||||
}
|
||||
if (match == 0)
|
||||
continue;
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
|
||||
static struct musb_hdrc_eps_bits musb_eps[] = {
|
||||
|
@ -37,16 +37,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/gpio-switch.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
|
||||
static int h2_keymap[] = {
|
||||
KEY(0, 0, KEY_LEFT),
|
||||
@ -292,41 +290,6 @@ static struct platform_device h2_lcd_device = {
|
||||
.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 = {
|
||||
&h2_nor_device,
|
||||
&h2_nand_device,
|
||||
@ -334,7 +297,6 @@ static struct platform_device *h2_devices[] __initdata = {
|
||||
&h2_irda_device,
|
||||
&h2_kp_device,
|
||||
&h2_lcd_device,
|
||||
&h2_mcbsp1_device,
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
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)
|
||||
{
|
||||
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
|
||||
|
@ -49,8 +49,6 @@
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
|
||||
#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 = {
|
||||
&nor_device,
|
||||
&nand_device,
|
||||
@ -430,7 +393,6 @@ static struct platform_device *devices[] __initdata = {
|
||||
&h3_irda_device,
|
||||
&h3_kp_device,
|
||||
&h3_lcd_device,
|
||||
&h3_mcbsp1_device,
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
static int nand_dev_ready(struct omap_nand_platform_data *data)
|
||||
|
@ -37,8 +37,6 @@
|
||||
#include <mach/usb.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
#include <mach/mmc.h>
|
||||
|
||||
static int innovator_keymap[] = {
|
||||
@ -115,42 +113,6 @@ static struct platform_device innovator_flash_device = {
|
||||
.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[] = {
|
||||
[0] = {
|
||||
.start = INT_KEYBOARD,
|
||||
@ -227,7 +189,6 @@ static struct platform_device innovator1510_spi_device = {
|
||||
static struct platform_device *innovator1510_devices[] __initdata = {
|
||||
&innovator_flash_device,
|
||||
&innovator1510_smc91x_device,
|
||||
&innovator_mcbsp1_device,
|
||||
&innovator_kp_device,
|
||||
&innovator1510_lcd_device,
|
||||
&innovator1510_spi_device,
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/dsp_common.h>
|
||||
#include <mach/aic23.h>
|
||||
#include <mach/omapfb.h>
|
||||
#include <mach/lcd_mipid.h>
|
||||
#include <mach/mmc.h>
|
||||
@ -261,6 +260,13 @@ static DEFINE_MUTEX(audio_pwr_lock);
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
@ -51,8 +51,6 @@
|
||||
#include <mach/mux.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
|
||||
static struct mtd_partition osk_partitions[] = {
|
||||
/* bootloader (U-Boot, etc) in first sector */
|
||||
@ -141,47 +139,10 @@ static struct platform_device osk5912_cf_device = {
|
||||
.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 = {
|
||||
&osk5912_flash_device,
|
||||
&osk5912_smc91x_device,
|
||||
&osk5912_cf_device,
|
||||
&osk5912_mcbsp1_device,
|
||||
};
|
||||
|
||||
static struct gpio_led tps_leds[] = {
|
||||
@ -259,8 +220,10 @@ static struct i2c_board_info __initdata osk_i2c_board_info[] = {
|
||||
.platform_data = &tps_board,
|
||||
|
||||
},
|
||||
{
|
||||
I2C_BOARD_INFO("tlv320aic23", 0x1B),
|
||||
},
|
||||
/* TODO when driver support is ready:
|
||||
* - aic23 audio chip at 0x1a
|
||||
* - optionally on Mistral, ov9640 camera sensor at 0x30
|
||||
*/
|
||||
};
|
||||
|
@ -42,8 +42,6 @@
|
||||
#include <mach/irda.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
|
||||
static void __init omap_palmte_init_irq(void)
|
||||
{
|
||||
@ -195,15 +193,6 @@ static struct omap_usb_config palmte_usb_config __initdata = {
|
||||
.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 = {
|
||||
.ctrl_name = "internal",
|
||||
};
|
||||
@ -212,24 +201,6 @@ static struct omap_uart_config palmte_uart_config __initdata = {
|
||||
.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
|
||||
/*
|
||||
* Values measured in 10 minute intervals averaged over 10 samples.
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/led.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
@ -40,7 +39,6 @@
|
||||
#include <mach/irda.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
@ -122,44 +120,6 @@ static struct platform_device palmtt_flash_device = {
|
||||
.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[] = {
|
||||
[0] = {
|
||||
.start = INT_KEYBOARD,
|
||||
@ -257,7 +217,6 @@ static struct platform_device palmtt_led_device = {
|
||||
|
||||
static struct platform_device *palmtt_devices[] __initdata = {
|
||||
&palmtt_flash_device,
|
||||
&palmtt_mcbsp1_device,
|
||||
&palmtt_kp_device,
|
||||
&palmtt_lcd_device,
|
||||
&palmtt_irda_device,
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
@ -179,41 +178,6 @@ static struct platform_device palmz71_spi_device = {
|
||||
.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 = {
|
||||
.default_intensity = 0xa0,
|
||||
};
|
||||
@ -229,7 +193,6 @@ static struct platform_device palmz71_backlight_device = {
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&palmz71_rom_device,
|
||||
&palmz71_kp_device,
|
||||
&palmz71_mcbsp1_device,
|
||||
&palmz71_lcd_device,
|
||||
&palmz71_irda_device,
|
||||
&palmz71_spi_device,
|
||||
|
@ -34,13 +34,12 @@
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
#include <mach/keypad.h>
|
||||
|
||||
/* Write to I2C device */
|
||||
@ -254,35 +253,6 @@ static struct platform_device sx1_irda_device = {
|
||||
.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 -------------------------*/
|
||||
|
||||
static struct mtd_partition sx1_partitions[] = {
|
||||
@ -394,7 +364,6 @@ static struct platform_device *sx1_devices[] __initdata = {
|
||||
&sx1_flash_device,
|
||||
&sx1_kp_device,
|
||||
&sx1_lcd_device,
|
||||
&sx1_mcbsp1_device,
|
||||
&sx1_irda_device,
|
||||
};
|
||||
/*-----------------------------------------*/
|
||||
@ -423,9 +392,9 @@ static void __init omap_sx1_init(void)
|
||||
|
||||
/* turn on USB power */
|
||||
/* sx1_setusbpower(1); cant do it here because i2c is not ready */
|
||||
omap_request_gpio(1); /* A_IRDA_OFF */
|
||||
omap_request_gpio(11); /* A_SWITCH */
|
||||
omap_request_gpio(15); /* A_USB_ON */
|
||||
gpio_request(1, "A_IRDA_OFF");
|
||||
gpio_request(11, "A_SWITCH");
|
||||
gpio_request(15, "A_USB_ON");
|
||||
gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */
|
||||
gpio_direction_output(11, 0); /*A_SWITCH = 0 */
|
||||
gpio_direction_output(15, 0); /*A_USB_ON = 0 */
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/serial_reg.h>
|
||||
#include <linux/irq.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/mux.h>
|
||||
|
@ -22,8 +22,6 @@
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/onenand.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/err.h>
|
||||
@ -282,65 +280,16 @@ static void __init apollon_led_init(void)
|
||||
{
|
||||
/* LED0 - AA10 */
|
||||
omap_cfg_reg(AA10_242X_GPIO13);
|
||||
omap_request_gpio(LED0_GPIO13);
|
||||
omap_set_gpio_direction(LED0_GPIO13, 0);
|
||||
omap_set_gpio_dataout(LED0_GPIO13, 0);
|
||||
gpio_request(LED0_GPIO13, "LED0");
|
||||
gpio_direction_output(LED0_GPIO13, 0);
|
||||
/* LED1 - AA6 */
|
||||
omap_cfg_reg(AA6_242X_GPIO14);
|
||||
omap_request_gpio(LED1_GPIO14);
|
||||
omap_set_gpio_direction(LED1_GPIO14, 0);
|
||||
omap_set_gpio_dataout(LED1_GPIO14, 0);
|
||||
gpio_request(LED1_GPIO14, "LED1");
|
||||
gpio_direction_output(LED1_GPIO14, 0);
|
||||
/* LED2 - AA4 */
|
||||
omap_cfg_reg(AA4_242X_GPIO15);
|
||||
omap_request_gpio(LED2_GPIO15);
|
||||
omap_set_gpio_direction(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;
|
||||
gpio_request(LED2_GPIO15, "LED2");
|
||||
gpio_direction_output(LED2_GPIO15, 0);
|
||||
}
|
||||
|
||||
static void __init apollon_usb_init(void)
|
||||
@ -357,7 +306,6 @@ static void __init omap_apollon_init(void)
|
||||
u32 v;
|
||||
|
||||
apollon_led_init();
|
||||
apollon_sw_init();
|
||||
apollon_flash_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);
|
||||
|
||||
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",
|
||||
eth_gpio);
|
||||
return;
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
|
||||
#include <linux/i2c/twl4030.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -120,6 +122,9 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
unsigned gpio, unsigned ngpio)
|
||||
{
|
||||
/* 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
|
||||
* 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_serial_init();
|
||||
|
||||
omap_cfg_reg(AH8_34XX_GPIO29);
|
||||
mmc[0].gpio_cd = gpio + 0;
|
||||
twl4030_mmc_init(mmc);
|
||||
|
||||
omap_cfg_reg(J25_34XX_GPIO170);
|
||||
gpio_request(170, "DVI_nPD");
|
||||
/* REVISIT leave DVI powered down until it's needed ... */
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/irqs.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));
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
unsigned long addr = virt, end = virt + (size & ~SZ_1M);
|
||||
unsigned long addr = virt, end = virt + (size & ~(SZ_1M - 1));
|
||||
pgd_t *pgd;
|
||||
|
||||
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);
|
||||
#ifndef CONFIG_SMP
|
||||
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
|
||||
* 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) {
|
||||
if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
|
||||
if (tmp->flags & VM_ARM_SECTION_MAPPING) {
|
||||
*p = tmp->next;
|
||||
unmap_area_sections((unsigned long)tmp->addr,
|
||||
tmp->size);
|
||||
kfree(tmp);
|
||||
section_mapping = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -364,7 +358,6 @@ void __iounmap(volatile void __iomem *io_addr)
|
||||
write_unlock(&vmlist_lock);
|
||||
#endif
|
||||
|
||||
if (!section_mapping)
|
||||
vunmap(addr);
|
||||
vunmap(addr);
|
||||
}
|
||||
EXPORT_SYMBOL(__iounmap);
|
||||
|
@ -278,14 +278,11 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
|
||||
u32 val;
|
||||
|
||||
val = dma_read(CCR(lch));
|
||||
val &= ~(3 << 19);
|
||||
if (dma_trigger > 63)
|
||||
val |= 1 << 20;
|
||||
if (dma_trigger > 31)
|
||||
val |= 1 << 19;
|
||||
|
||||
val &= ~(0x1f);
|
||||
val |= (dma_trigger & 0x1f);
|
||||
/* DMA_SYNCHRO_CONTROL_UPPER depends on the channel number */
|
||||
val &= ~((3 << 19) | 0x1f);
|
||||
val |= (dma_trigger & ~0x1f) << 14;
|
||||
val |= dma_trigger & 0x1f;
|
||||
|
||||
if (sync_mode & OMAP_DMA_SYNC_FRAME)
|
||||
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 */
|
||||
|
||||
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)
|
||||
|| irqstat & IRQ_TYPE_SENSE_MASK)) {
|
||||
char *trigger = NULL;
|
||||
@ -1818,6 +1820,7 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
|
||||
(bank->suspend_wakeup & mask)
|
||||
? " wakeup" : "");
|
||||
}
|
||||
#endif
|
||||
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 */
|
||||
#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_slot_cover_handler(void *arg, int state);
|
||||
|
||||
#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 <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)
|
||||
{
|
||||
return __gpio_get_value(gpio);
|
||||
|
@ -87,6 +87,10 @@
|
||||
#define OMAP_MCBSP_REG_XCERG 0x3A
|
||||
#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_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1)
|
||||
|
||||
@ -231,11 +235,16 @@
|
||||
#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
|
||||
|
||||
/*********************** 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 XDMAEN 0x0008
|
||||
#define XDISABLE 0x0001
|
||||
|
||||
/********************** McBSP RCCR bit definitions *************************/
|
||||
#define RFULL_CYCLE 0x0800
|
||||
#define RDMAEN 0x0008
|
||||
#define RDISABLE 0x0001
|
||||
|
||||
@ -267,6 +276,8 @@ struct omap_mcbsp_reg_cfg {
|
||||
u16 rcerh;
|
||||
u16 xcerg;
|
||||
u16 xcerh;
|
||||
u16 xccr;
|
||||
u16 rccr;
|
||||
};
|
||||
|
||||
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, MCR1, config->mcr1);
|
||||
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);
|
||||
|
||||
|
@ -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
|
||||
|
||||
static struct resource udc_resources[] = {
|
||||
@ -466,7 +457,6 @@ static struct platform_device udc_device = {
|
||||
.name = "omap_udc",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.release = usb_release,
|
||||
.dma_mask = &udc_dmamask,
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
@ -497,7 +487,6 @@ static struct platform_device ohci_device = {
|
||||
.name = "ohci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.release = usb_release,
|
||||
.dma_mask = &ohci_dmamask,
|
||||
.coherent_dma_mask = 0xffffffff,
|
||||
},
|
||||
@ -524,9 +513,6 @@ static struct resource otg_resources[] = {
|
||||
static struct platform_device otg_device = {
|
||||
.name = "omap_otg",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.release = usb_release,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(otg_resources),
|
||||
.resource = otg_resources,
|
||||
};
|
||||
|
@ -102,7 +102,7 @@ static int __init omap_rng_probe(struct platform_device *pdev)
|
||||
return -EBUSY;
|
||||
|
||||
if (cpu_is_omap24xx()) {
|
||||
rng_ick = clk_get(NULL, "rng_ick");
|
||||
rng_ick = clk_get(&pdev->dev, "rng_ick");
|
||||
if (IS_ERR(rng_ick)) {
|
||||
dev_err(&pdev->dev, "Could not get rng_ick\n");
|
||||
ret = PTR_ERR(rng_ick);
|
||||
|
@ -76,6 +76,16 @@ config MMC_OMAP
|
||||
|
||||
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
|
||||
tristate "Winbond W83L51xD SD/MMC Card Interface support"
|
||||
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_AU1X) += au1xmmc.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_ATMELMCI) += atmel-mci.o
|
||||
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
||||
|
1242
drivers/mmc/host/omap_hsmmc.c
Normal file
1242
drivers/mmc/host/omap_hsmmc.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -20,7 +20,7 @@
|
||||
#include <linux/irq.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <asm/dma.h>
|
||||
#include <mach/dma.h>
|
||||
|
||||
#include <mach/regs-sdi.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 ((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 "
|
||||
"OneNAND\n", c->gpio_irq);
|
||||
goto err_iounmap;
|
||||
@ -726,7 +726,7 @@ err_release_dma:
|
||||
free_irq(gpio_to_irq(c->gpio_irq), c);
|
||||
err_release_gpio:
|
||||
if (c->gpio_irq)
|
||||
omap_free_gpio(c->gpio_irq);
|
||||
gpio_free(c->gpio_irq);
|
||||
err_iounmap:
|
||||
iounmap(c->onenand.base);
|
||||
err_release_mem_region:
|
||||
@ -761,7 +761,7 @@ static int __devexit omap2_onenand_remove(struct platform_device *pdev)
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
if (c->gpio_irq) {
|
||||
free_irq(gpio_to_irq(c->gpio_irq), c);
|
||||
omap_free_gpio(c->gpio_irq);
|
||||
gpio_free(c->gpio_irq);
|
||||
}
|
||||
iounmap(c->onenand.base);
|
||||
release_mem_region(c->phys_base, ONENAND_IO_SIZE);
|
||||
|
@ -208,9 +208,9 @@ am79c961_init_for_open(struct net_device *dev)
|
||||
/*
|
||||
* 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);
|
||||
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, 6, 0x0081); /* Collision LED */
|
||||
@ -332,10 +332,10 @@ am79c961_close(struct net_device *dev)
|
||||
netif_stop_queue(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, CSR3, CSR3_MASKALL);
|
||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
||||
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||
|
||||
free_irq (dev->irq, dev);
|
||||
|
||||
@ -391,7 +391,7 @@ static void am79c961_setmulticastlist (struct net_device *dev)
|
||||
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;
|
||||
|
||||
@ -405,9 +405,9 @@ static void am79c961_setmulticastlist (struct net_device *dev)
|
||||
* Spin waiting for chip to report suspend mode
|
||||
*/
|
||||
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();
|
||||
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);
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(priv->chip_lock, flags);
|
||||
spin_unlock_irqrestore(&priv->chip_lock, flags);
|
||||
}
|
||||
|
||||
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);
|
||||
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);
|
||||
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,
|
||||
|
@ -315,14 +315,14 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
|
||||
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))
|
||||
return PTR_ERR(usb_host_ck);
|
||||
|
||||
if (!cpu_is_omap15xx())
|
||||
usb_dc_ck = clk_get(0, "usb_dc_ck");
|
||||
usb_dc_ck = clk_get(&pdev->dev, "usb_dc_ck");
|
||||
else
|
||||
usb_dc_ck = clk_get(0, "lb_ck");
|
||||
usb_dc_ck = clk_get(&pdev->dev, "lb_ck");
|
||||
|
||||
if (IS_ERR(usb_dc_ck)) {
|
||||
clk_put(usb_host_ck);
|
||||
|
@ -800,14 +800,14 @@ static int omap_lcdc_init(struct omapfb_device *fbdev, int ext_mode,
|
||||
/* FIXME:
|
||||
* 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)) {
|
||||
dev_err(fbdev->dev, "unable to access LCD clock\n");
|
||||
r = PTR_ERR(lcdc.lcd_ck);
|
||||
goto fail0;
|
||||
}
|
||||
|
||||
tc_ck = clk_get(NULL, "tc_ck");
|
||||
tc_ck = clk_get(fbdev->dev, "tc_ck");
|
||||
if (IS_ERR(tc_ck)) {
|
||||
dev_err(fbdev->dev, "unable to access TC clock\n");
|
||||
r = PTR_ERR(tc_ck);
|
||||
|
@ -187,10 +187,10 @@ config EP93XX_WATCHDOG
|
||||
|
||||
config OMAP_WATCHDOG
|
||||
tristate "OMAP Watchdog"
|
||||
depends on ARCH_OMAP16XX || ARCH_OMAP24XX
|
||||
depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX
|
||||
help
|
||||
Support for TI OMAP1610/OMAP1710/OMAP2420 watchdog. Say 'Y' here to
|
||||
enable the OMAP1610/OMAP1710 watchdog timer.
|
||||
Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog. Say 'Y'
|
||||
here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog timer.
|
||||
|
||||
config PNX4008_WATCHDOG
|
||||
tristate "PNX4008 Watchdog"
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/module.h>
|
||||
|
Loading…
Reference in New Issue
Block a user