aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ep93xx/include
diff options
context:
space:
mode:
authorRyan Mallon <ryan@bluewatersys.com>2010-06-08 06:01:10 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-06-09 06:12:36 -0400
commited67ea82c0d9a163458dc6a69a7a3123db1a8b3b (patch)
tree6789785686ddf249ab813c296ade58b7b0443d33 /arch/arm/mach-ep93xx/include
parente40152ee1e1c7a63f4777791863215e3faa37a86 (diff)
EP93xx: Add i2s core support
Add core support for EP93xx i2s audio Signed-off-by: Ryan Mallon <ryan@bluewatersys.com> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'arch/arm/mach-ep93xx/include')
-rw-r--r--arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h10
-rw-r--r--arch/arm/mach-ep93xx/include/mach/platform.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
index 93e2ecc79ceb..3fbb095be6e9 100644
--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
+++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
@@ -93,6 +93,7 @@
93/* APB peripherals */ 93/* APB peripherals */
94#define EP93XX_TIMER_BASE EP93XX_APB_IOMEM(0x00010000) 94#define EP93XX_TIMER_BASE EP93XX_APB_IOMEM(0x00010000)
95 95
96#define EP93XX_I2S_PHYS_BASE EP93XX_APB_PHYS(0x00020000)
96#define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000) 97#define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000)
97 98
98#define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000) 99#define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000)
@@ -193,6 +194,15 @@
193#define EP93XX_SYSCON_CLKDIV_ESEL (1<<14) 194#define EP93XX_SYSCON_CLKDIV_ESEL (1<<14)
194#define EP93XX_SYSCON_CLKDIV_PSEL (1<<13) 195#define EP93XX_SYSCON_CLKDIV_PSEL (1<<13)
195#define EP93XX_SYSCON_CLKDIV_PDIV_SHIFT 8 196#define EP93XX_SYSCON_CLKDIV_PDIV_SHIFT 8
197#define EP93XX_SYSCON_I2SCLKDIV EP93XX_SYSCON_REG(0x8c)
198#define EP93XX_SYSCON_I2SCLKDIV_SENA (1<<31)
199#define EP93XX_SYSCON_I2SCLKDIV_ORIDE (1<<29)
200#define EP93XX_SYSCON_I2SCLKDIV_SPOL (1<<19)
201#define EP93XX_I2SCLKDIV_SDIV (1 << 16)
202#define EP93XX_I2SCLKDIV_LRDIV32 (0 << 17)
203#define EP93XX_I2SCLKDIV_LRDIV64 (1 << 17)
204#define EP93XX_I2SCLKDIV_LRDIV128 (2 << 17)
205#define EP93XX_I2SCLKDIV_LRDIV_MASK (3 << 17)
196#define EP93XX_SYSCON_KEYTCHCLKDIV EP93XX_SYSCON_REG(0x90) 206#define EP93XX_SYSCON_KEYTCHCLKDIV EP93XX_SYSCON_REG(0x90)
197#define EP93XX_SYSCON_KEYTCHCLKDIV_TSEN (1<<31) 207#define EP93XX_SYSCON_KEYTCHCLKDIV_TSEN (1<<31)
198#define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV (1<<16) 208#define EP93XX_SYSCON_KEYTCHCLKDIV_ADIV (1<<16)
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h
index c6dc14dbca18..0f2822d7ec8b 100644
--- a/arch/arm/mach-ep93xx/include/mach/platform.h
+++ b/arch/arm/mach-ep93xx/include/mach/platform.h
@@ -43,6 +43,9 @@ void ep93xx_pwm_release_gpio(struct platform_device *pdev);
43void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data); 43void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data);
44int ep93xx_keypad_acquire_gpio(struct platform_device *pdev); 44int ep93xx_keypad_acquire_gpio(struct platform_device *pdev);
45void ep93xx_keypad_release_gpio(struct platform_device *pdev); 45void ep93xx_keypad_release_gpio(struct platform_device *pdev);
46void ep93xx_register_i2s(void);
47int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config);
48void ep93xx_i2s_release(void);
46 49
47void ep93xx_init_devices(void); 50void ep93xx_init_devices(void);
48extern struct sys_timer ep93xx_timer; 51extern struct sys_timer ep93xx_timer;