summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-sa1100/assabet.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-03-26 00:56:30 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-03-26 00:57:10 +0200
commit7256ecc2b7b91b4212ccc5511cb12254bdf806d0 (patch)
tree1a39b3de03cfc92c5b5dedfb01174d17b49df18a /arch/arm/mach-sa1100/assabet.c
parentMerge branch 'sa11x0-lcd' into sa11x0 (diff)
parentMFD: mcp-sa11x0/assabet: move assabet reset handling out of mcp-sa11x0.c (diff)
downloadlinux-7256ecc2b7b91b4212ccc5511cb12254bdf806d0.tar.xz
linux-7256ecc2b7b91b4212ccc5511cb12254bdf806d0.zip
Merge branch 'sa11x0-mcp' into sa11x0
Conflicts: arch/arm/mach-sa1100/assabet.c arch/arm/mach-sa1100/collie.c arch/arm/mach-sa1100/generic.c arch/arm/mach-sa1100/lart.c arch/arm/mach-sa1100/shannon.c
Diffstat (limited to 'arch/arm/mach-sa1100/assabet.c')
-rw-r--r--arch/arm/mach-sa1100/assabet.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c
index c3f5064df4bf..e708a93a7ddb 100644
--- a/arch/arm/mach-sa1100/assabet.c
+++ b/arch/arm/mach-sa1100/assabet.c
@@ -15,6 +15,7 @@
#include <linux/errno.h>
#include <linux/ioport.h>
#include <linux/serial_core.h>
+#include <linux/mfd/ucb1x00.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/delay.h>
@@ -71,6 +72,12 @@ void ASSABET_BCR_frob(unsigned int mask, unsigned int val)
EXPORT_SYMBOL(ASSABET_BCR_frob);
+static void assabet_ucb1x00_reset(enum ucb1x00_reset state)
+{
+ if (state == UCB_RST_PROBE)
+ ASSABET_BCR_set(ASSABET_BCR_CODEC_RST);
+}
+
/*
* Assabet flash support code.
@@ -167,9 +174,15 @@ static struct irda_platform_data assabet_irda_data = {
.set_speed = assabet_irda_set_speed,
};
+static struct ucb1x00_plat_data assabet_ucb1x00_data = {
+ .reset = assabet_ucb1x00_reset,
+ .gpio_base = -1,
+};
+
static struct mcp_plat_data assabet_mcp_data = {
.mccr0 = MCCR0_ADM,
.sclk_rate = 11981000,
+ .codec_pdata = &assabet_ucb1x00_data,
};
static void assabet_lcd_set_visual(u32 visual)
@@ -309,6 +322,8 @@ static void __init assabet_init(void)
PPDR |= PPC_TXD3 | PPC_TXD1;
PPSR |= PPC_TXD3 | PPC_TXD1;
+ sa11x0_ppc_configure_mcp();
+
if (machine_has_neponset()) {
/*
* Angel sets this, but other bootloaders may not.