diff options
author | Mark Arigo <markarigo@gmail.com> | 2009-08-01 17:51:00 +0000 |
---|---|---|
committer | Mark Arigo <markarigo@gmail.com> | 2009-08-01 17:51:00 +0000 |
commit | fc570147e66b91686aeffdf9896eb209027cf9ca (patch) | |
tree | b462ec064ef0a6e7c05dd5fd287448de0a17cfe0 /firmware/target/arm | |
parent | 4e7517dfb1946ad8e7cbc626db2252d04dee629b (diff) |
Philips SA9200: initialize i2c, i2s, and as3514 as the OF does. Fixes clicks/pops heard when reading the adc.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22101 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/i2c-pp.c | 7 | ||||
-rw-r--r-- | firmware/target/arm/i2s-pp.c | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/firmware/target/arm/i2c-pp.c b/firmware/target/arm/i2c-pp.c index 13c8cf0a1e..60497b04b9 100644 --- a/firmware/target/arm/i2c-pp.c +++ b/firmware/target/arm/i2c-pp.c @@ -299,6 +299,13 @@ void i2c_init(void) outl(0x1e, 0x600060a4); ascodec_write(AS3514_SUPERVISOR, 5); +#elif defined(PHILIPS_SA9200) + outl(0x0, 0x600060a4); + outl(inl(0x600060a4) | 0x20, 0x600060a4); + + outl(inl(0x7000c020) | 0x3, 0x7000c020); + outl(0x55, 0x7000c02c); + outl(0x54, 0x7000c030); #endif #endif diff --git a/firmware/target/arm/i2s-pp.c b/firmware/target/arm/i2s-pp.c index e4b9f8e1df..c9d66d53ae 100644 --- a/firmware/target/arm/i2s-pp.c +++ b/firmware/target/arm/i2s-pp.c @@ -63,9 +63,17 @@ void i2s_reset(void) #ifdef HAVE_AS3514 /* AS3514 can only operate as I2S Slave */ IISCONFIG |= IIS_MASTER; + /* Set I2S to 44.1kHz */ +#ifdef PHILIPS_SA9200 + /* values taken from the SA9200 OF */ + IISCLK = (IISCLK & ~0x1ff) | 31; + IISDIV = (IISDIV & ~0xc0000000) | (2 << 30); + IISDIV = (IISDIV & ~0x3f) | 16; +#else IISCLK = (IISCLK & ~0x1ff) | 33; IISDIV = 7; +#endif #endif /* HAVE_AS3514 */ IISCONFIG = ((IISCONFIG & ~IIS_FIFO_FORMAT_MASK) | IIS_FIFO_FORMAT_LE16_2); |