diff options
author | Bertrik Sikken <bertrik@sikken.nl> | 2009-06-28 17:43:04 +0000 |
---|---|---|
committer | Bertrik Sikken <bertrik@sikken.nl> | 2009-06-28 17:43:04 +0000 |
commit | 7df759c95107bc8e5f9a6ba17f77114fa9d80357 (patch) | |
tree | 476eba9a9add512991bd237e366c0704124d9c12 /firmware/target/arm/s5l8700 | |
parent | c3f9ab46dea336437b7fb6113a76d75fe1b0c119 (diff) | |
download | rockbox-7df759c95107bc8e5f9a6ba17f77114fa9d80357.tar.gz rockbox-7df759c95107bc8e5f9a6ba17f77114fa9d80357.zip |
Create an udacodec interface (similar to ascodec and wmcoded) and adapt/implement it for the iriver h1xx/h3xx and the meizus.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21546 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s5l8700')
-rw-r--r-- | firmware/target/arm/s5l8700/udacodec-meizu.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8700/udacodec-meizu.c b/firmware/target/arm/s5l8700/udacodec-meizu.c new file mode 100644 index 0000000000..89588367c4 --- /dev/null +++ b/firmware/target/arm/s5l8700/udacodec-meizu.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2009 by Bertrik Sikken | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #include "config.h" | ||
23 | #include "kernel.h" | ||
24 | #include "s5l8700.h" | ||
25 | #include "i2c-s5l8700.h" | ||
26 | #include "uda1380.h" | ||
27 | #include "udacodec.h" | ||
28 | |||
29 | void udacodec_reset(void) | ||
30 | { | ||
31 | /* Reset codec using GPIO P5.0 */ | ||
32 | PCON5 = (PCON5 & ~0xF) | 1; | ||
33 | PDAT5 |= (1 << 0); | ||
34 | sleep(HZ/100); | ||
35 | |||
36 | /* Set codec reset pin inactive */ | ||
37 | PDAT5 &= ~(1 << 0); | ||
38 | } | ||
39 | |||
40 | int udacodec_write(unsigned char reg, unsigned short value) | ||
41 | { | ||
42 | unsigned char data[2]; | ||
43 | |||
44 | data[0] = value >> 8; | ||
45 | data[1] = value & 0xFF; | ||
46 | |||
47 | return i2c_write(UDA1380_ADDR, reg, 2, data); | ||
48 | } | ||
49 | |||
50 | int udacodec_write2(unsigned char reg, | ||
51 | unsigned short value1, unsigned short value2) | ||
52 | { | ||
53 | unsigned char data[4]; | ||
54 | |||
55 | data[0] = value1 >> 8; | ||
56 | data[1] = value1 & 0xFF; | ||
57 | data[2] = value2 >> 8; | ||
58 | data[3] = value2 & 0xFF; | ||
59 | |||
60 | return i2c_write(UDA1380_ADDR, reg, 4, data); | ||
61 | } | ||
62 | |||