summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/as3525/as3525-codec.c130
-rw-r--r--firmware/target/arm/as3525/as3525-codec.h4
2 files changed, 67 insertions, 67 deletions
diff --git a/firmware/target/arm/as3525/as3525-codec.c b/firmware/target/arm/as3525/as3525-codec.c
index 1de2f49e1a..0bd49464fa 100644
--- a/firmware/target/arm/as3525/as3525-codec.c
+++ b/firmware/target/arm/as3525/as3525-codec.c
@@ -5,7 +5,7 @@
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
- * $Id: $
+ * $Id$
*
* Copyright (C) 2008 by Bertrik Sikken
*
@@ -40,93 +40,93 @@
#include "as3525-codec.h"
#include "as3525.h"
-#define AUDIO_I2C_ADDR 0x46
+#define AUDIO_I2C_ADDR 0x46
-#define I2C2_DATA *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x00))
-#define I2C2_SLAD0 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x04))
-#define I2C2_CNTRL *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x0C))
-#define I2C2_DACNT *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x10))
-#define I2C2_CPSR0 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x1C))
-#define I2C2_CPSR1 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x20))
+#define I2C2_DATA *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x00))
+#define I2C2_SLAD0 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x04))
+#define I2C2_CNTRL *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x0C))
+#define I2C2_DACNT *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x10))
+#define I2C2_CPSR0 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x1C))
+#define I2C2_CPSR1 *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x20))
#define I2C2_IMR *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x24))
-#define I2C2_RIS *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x28))
-#define I2C2_MIS *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x2C))
-#define I2C2_SR *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x30))
-#define I2C2_INT_CLR *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x40))
+#define I2C2_RIS *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x28))
+#define I2C2_MIS *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x2C))
+#define I2C2_SR *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x30))
+#define I2C2_INT_CLR *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x40))
#define I2C2_SADDR *((volatile unsigned int *)(I2C_AUDIO_BASE + 0x44))
-/* initialises the internal i2c bus and prepares for transfers to the codec */
-void as3525_codec_init(void)
-{
+/* initialises the internal i2c bus and prepares for transfers to the codec */
+void as3525_codec_init(void)
+{
/* reset device */
CCU_SRC = CCU_SRC_I2C_AUDIO_EN;
CCU_SRL = CCU_SRL_MAGIC_NUMBER;
- CCU_SRL = 0;
-
+ CCU_SRL = 0;
+
/* enable clock */
- CGU_PERI |= CGU_I2C_AUDIO_MASTER_CLOCK_ENABLE;
+ CGU_PERI |= CGU_I2C_AUDIO_MASTER_CLOCK_ENABLE;
/* prescaler for i2c clock */
I2C2_CPSR0 = 60; /* 24 MHz / 400 kHz */
I2C2_CPSR1 = 0; /* MSB */
/* set i2c slave address of codec part */
- I2C2_SLAD0 = AUDIO_I2C_ADDR << 1;
+ I2C2_SLAD0 = AUDIO_I2C_ADDR << 1;
I2C2_CNTRL = 0x51;
-}
-
-
-/* returns != 0 when busy */
-static int i2c_busy(void)
-{
- return (I2C2_SR & 1);
-}
-
-
-/* returns 0 on success, <0 otherwise */
-int as3525_codec_write(int index, int value)
-{
- if (index == 0x21) {
- /* prevent setting of the LREG_CP_not bit */
- value &= ~(1 << 5);
- }
-
- /* check if still busy */
+}
+
+
+/* returns != 0 when busy */
+static int i2c_busy(void)
+{
+ return (I2C2_SR & 1);
+}
+
+
+/* returns 0 on success, <0 otherwise */
+int as3525_codec_write(int index, int value)
+{
+ if (index == 0x21) {
+ /* prevent setting of the LREG_CP_not bit */
+ value &= ~(1 << 5);
+ }
+
+ /* check if still busy */
if (i2c_busy()) {
- return -1;
- }
-
- /* start transfer */
+ return -1;
+ }
+
+ /* start transfer */
I2C2_SADDR = index;
- I2C2_CNTRL &= ~(1 << 1);
- I2C2_DATA = value;
- I2C2_DACNT = 1;
-
- /* wait for transfer*/
- while (i2c_busy());
+ I2C2_CNTRL &= ~(1 << 1);
+ I2C2_DATA = value;
+ I2C2_DACNT = 1;
+
+ /* wait for transfer*/
+ while (i2c_busy());
+
+ return 0;
+}
- return 0;
-}
-
/* returns value read on success, <0 otherwise */
-int as3525_codec_read(int index)
+int as3525_codec_read(int index)
{
- /* check if still busy */
- if (i2c_busy()) {
- return -1;
- }
+ /* check if still busy */
+ if (i2c_busy()) {
+ return -1;
+ }
+
+ /* start transfer */
+ I2C2_SADDR = index;
+ I2C2_CNTRL |= (1 << 1);
+ I2C2_DACNT = 1;
- /* start transfer */
- I2C2_SADDR = index;
- I2C2_CNTRL |= (1 << 1);
- I2C2_DACNT = 1;
+ /* wait for transfer*/
+ while (i2c_busy());
- /* wait for transfer*/
- while (i2c_busy());
-
- return I2C2_DATA;
-}
+ return I2C2_DATA;
+}
diff --git a/firmware/target/arm/as3525/as3525-codec.h b/firmware/target/arm/as3525/as3525-codec.h
index 9d694554c6..ce6929e152 100644
--- a/firmware/target/arm/as3525/as3525-codec.h
+++ b/firmware/target/arm/as3525/as3525-codec.h
@@ -5,7 +5,7 @@
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
- * $Id: $
+ * $Id$
*
* Copyright (C) 2008 by Bertrik Sikken
*
@@ -22,6 +22,6 @@
void as3525_codec_init(void);
int as3525_codec_write(int index, int value);
-int as3525_codec_read(int index);
+int as3525_codec_read(int index);