summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/SOURCES4
-rw-r--r--firmware/export/adc.h44
-rw-r--r--firmware/target/sh/adc-sh.c (renamed from firmware/drivers/adc.c)4
-rw-r--r--firmware/target/sh/archos/fm_v2/adc-target.h39
-rw-r--r--firmware/target/sh/archos/ondio/adc-target.h35
-rw-r--r--firmware/target/sh/archos/player/adc-target.h33
-rw-r--r--firmware/target/sh/archos/player/button-player.c8
-rw-r--r--firmware/target/sh/archos/recorder/adc-target.h39
8 files changed, 152 insertions, 54 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 43519ffb3c..86438d43be 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -93,7 +93,6 @@ drivers/lcd-remote-2bit-vi.c
93/* Misc. */ 93/* Misc. */
94drivers/led.c 94drivers/led.c
95#ifndef TARGET_TREE 95#ifndef TARGET_TREE
96drivers/adc.c
97drivers/power.c 96drivers/power.c
98#endif /* TARGET_TREE */ 97#endif /* TARGET_TREE */
99#ifndef SIMULATOR 98#ifndef SIMULATOR
@@ -232,6 +231,7 @@ drivers/arcotg_udc.c
232bitswap.S 231bitswap.S
233descramble.S 232descramble.S
234drivers/i2c.c 233drivers/i2c.c
234target/sh/adc-sh.c
235target/sh/crt0.S 235target/sh/crt0.S
236target/sh/memcpy-sh.S 236target/sh/memcpy-sh.S
237target/sh/memmove-sh.S 237target/sh/memmove-sh.S
@@ -328,7 +328,7 @@ target/sh/archos/player/usb-player.c
328target/sh/archos/ata-archos.c 328target/sh/archos/ata-archos.c
329target/sh/archos/ata-as-archos.S 329target/sh/archos/ata-as-archos.S
330target/sh/archos/lcd-archos-bitmap.c 330target/sh/archos/lcd-archos-bitmap.c
331target/sh/archos/lcd-as-archos-bitmap.S 331target/sh/archos/lcd-as-archos-bitmap.S
332target/sh/archos/recorder/button-recorder.c 332target/sh/archos/recorder/button-recorder.c
333target/sh/archos/recorder/usb-recorder.c 333target/sh/archos/recorder/usb-recorder.c
334#endif /* SIMULATOR */ 334#endif /* SIMULATOR */
diff --git a/firmware/export/adc.h b/firmware/export/adc.h
index d8e3b7078f..e10cce0d27 100644
--- a/firmware/export/adc.h
+++ b/firmware/export/adc.h
@@ -20,52 +20,8 @@
20#define _ADC_H_ 20#define _ADC_H_
21 21
22#include "config.h" 22#include "config.h"
23
24#ifdef TARGET_TREE
25#include "adc-target.h" 23#include "adc-target.h"
26 24
27#else
28
29#define NUM_ADC_CHANNELS 8
30
31#ifdef HAVE_ONDIO_ADC
32
33#define ADC_MMC_SWITCH 0 /* low values if MMC inserted */
34#define ADC_USB_POWER 1 /* USB, reads 0x000 when USB is inserted */
35#define ADC_BUTTON_OPTION 2 /* the option button, low value if pressed */
36#define ADC_BUTTON_ONOFF 3 /* the on/off button, high value if pressed */
37#define ADC_BUTTON_ROW1 4 /* Used for scanning the keys, different
38 voltages for different keys */
39#define ADC_USB_ACTIVE 5 /* USB bridge activity */
40#define ADC_UNREG_POWER 7 /* Battery voltage */
41
42#else
43/* normal JBR channel assignment */
44#define ADC_BATTERY 0 /* Battery voltage always reads 0x3FF due to
45 silly scaling */
46#ifdef HAVE_FMADC
47#define ADC_CHARGE_REGULATOR 0 /* Uh, we read the battery voltage? */
48#define ADC_USB_POWER 1 /* USB, reads 0x000 when USB is inserted */
49#define ADC_BUTTON_OFF 2 /* the off button, high value if pressed */
50#define ADC_BUTTON_ON 3 /* the on button, low value if pressed */
51#else
52#define ADC_CHARGE_REGULATOR 1 /* Regulator reference voltage, should read
53 about 0x1c0 when charging, else 0x3FF */
54#define ADC_USB_POWER 2 /* USB, reads 0x3FF when USB is inserted */
55#endif
56
57#define ADC_BUTTON_ROW1 4 /* Used for scanning the keys, different
58 voltages for different keys */
59#define ADC_BUTTON_ROW2 5 /* Used for scanning the keys, different
60 voltages for different keys */
61#define ADC_UNREG_POWER 6 /* Battery voltage with a better scaling */
62#define ADC_EXT_POWER 7 /* The external power voltage, 0v or 2.7v */
63
64#endif
65
66#define EXT_SCALE_FACTOR 14800
67#endif
68
69unsigned short adc_read(int channel); 25unsigned short adc_read(int channel);
70void adc_init(void); 26void adc_init(void);
71 27
diff --git a/firmware/drivers/adc.c b/firmware/target/sh/adc-sh.c
index f002be96b4..d36624f913 100644
--- a/firmware/drivers/adc.c
+++ b/firmware/target/sh/adc-sh.c
@@ -23,9 +23,7 @@
23#include "thread.h" 23#include "thread.h"
24#include "string.h" 24#include "string.h"
25#include "adc.h" 25#include "adc.h"
26#include "pcf50606.h"
27 26
28#if CONFIG_CPU == SH7034
29/************************************************************************** 27/**************************************************************************
30 ** The A/D conversion is done every tick, in three steps: 28 ** The A/D conversion is done every tick, in three steps:
31 ** 29 **
@@ -108,5 +106,3 @@ void adc_init(void)
108 106
109 sleep(2); /* Ensure valid readings when adc_init returns */ 107 sleep(2); /* Ensure valid readings when adc_init returns */
110} 108}
111
112#endif
diff --git a/firmware/target/sh/archos/fm_v2/adc-target.h b/firmware/target/sh/archos/fm_v2/adc-target.h
new file mode 100644
index 0000000000..e4f24c88ce
--- /dev/null
+++ b/firmware/target/sh/archos/fm_v2/adc-target.h
@@ -0,0 +1,39 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2002 by Linus Nielsen Feltzing
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19#ifndef _ADC_TARGET_H_
20#define _ADC_TARGET_H_
21
22#define NUM_ADC_CHANNELS 8
23
24#define ADC_BATTERY 0 /* Battery voltage always reads 0x3FF due to
25 silly scaling */
26#define ADC_CHARGE_REGULATOR 0 /* Uh, we read the battery voltage? */
27#define ADC_USB_POWER 1 /* USB, reads 0x000 when USB is inserted */
28#define ADC_BUTTON_OFF 2 /* the off button, high value if pressed */
29#define ADC_BUTTON_ON 3 /* the on button, low value if pressed */
30#define ADC_BUTTON_ROW1 4 /* Used for scanning the keys, different
31 voltages for different keys */
32#define ADC_BUTTON_ROW2 5 /* Used for scanning the keys, different
33 voltages for different keys */
34#define ADC_UNREG_POWER 6 /* Battery voltage with a better scaling */
35#define ADC_EXT_POWER 7 /* The external power voltage, 0v or 2.7v */
36
37#define EXT_SCALE_FACTOR 14800
38
39#endif /* _ADC_TARGET_H_ */
diff --git a/firmware/target/sh/archos/ondio/adc-target.h b/firmware/target/sh/archos/ondio/adc-target.h
new file mode 100644
index 0000000000..ee9ca4a7c8
--- /dev/null
+++ b/firmware/target/sh/archos/ondio/adc-target.h
@@ -0,0 +1,35 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2002 by Linus Nielsen Feltzing
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19#ifndef _ADC_TARGET_H_
20#define _ADC_TARGET_H_
21
22#define NUM_ADC_CHANNELS 8
23
24#define ADC_MMC_SWITCH 0 /* low values if MMC inserted */
25#define ADC_USB_POWER 1 /* USB, reads 0x000 when USB is inserted */
26#define ADC_BUTTON_OPTION 2 /* the option button, low value if pressed */
27#define ADC_BUTTON_ONOFF 3 /* the on/off button, high value if pressed */
28#define ADC_BUTTON_ROW1 4 /* Used for scanning the keys, different
29 voltages for different keys */
30#define ADC_USB_ACTIVE 5 /* USB bridge activity */
31#define ADC_UNREG_POWER 7 /* Battery voltage */
32
33#define EXT_SCALE_FACTOR 14800
34
35#endif /* _ADC_TARGET_H_ */
diff --git a/firmware/target/sh/archos/player/adc-target.h b/firmware/target/sh/archos/player/adc-target.h
new file mode 100644
index 0000000000..21969dbec7
--- /dev/null
+++ b/firmware/target/sh/archos/player/adc-target.h
@@ -0,0 +1,33 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2002 by Linus Nielsen Feltzing
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19#ifndef _ADC_TARGET_H_
20#define _ADC_TARGET_H_
21
22#define NUM_ADC_CHANNELS 8
23
24#define ADC_BUTTON_LEFT 0
25#define ADC_BUTTON_MENU 1
26#define ADC_BUTTON_RIGHT 2
27#define ADC_BUTTON_PLAY 3
28#define ADC_UNREG_POWER 6 /* Battery voltage with a better scaling */
29#define ADC_EXT_POWER 7 /* The external power voltage, 0v or 2.7v */
30
31#define EXT_SCALE_FACTOR 14800
32
33#endif /* _ADC_TARGET_H_ */
diff --git a/firmware/target/sh/archos/player/button-player.c b/firmware/target/sh/archos/player/button-player.c
index fbc940f7de..f979e76575 100644
--- a/firmware/target/sh/archos/player/button-player.c
+++ b/firmware/target/sh/archos/player/button-player.c
@@ -54,13 +54,13 @@ int button_read_device(void)
54 int data; 54 int data;
55 55
56 /* buttons are active low */ 56 /* buttons are active low */
57 if (adc_read(0) < 0x180) 57 if (adc_read(ADC_BUTTON_LEFT) < 0x180)
58 btn = BUTTON_LEFT; 58 btn = BUTTON_LEFT;
59 if (adc_read(1) < 0x180) 59 if (adc_read(ADC_BUTTON_MENU) < 0x180)
60 btn |= BUTTON_MENU; 60 btn |= BUTTON_MENU;
61 if (adc_read(2) < 0x180) 61 if (adc_read(ADC_BUTTON_RIGHT) < 0x180)
62 btn |= BUTTON_RIGHT; 62 btn |= BUTTON_RIGHT;
63 if (adc_read(3) < 0x180) 63 if (adc_read(ADC_BUTTON_PLAY) < 0x180)
64 btn |= BUTTON_PLAY; 64 btn |= BUTTON_PLAY;
65 65
66 /* check port A pins for ON and STOP */ 66 /* check port A pins for ON and STOP */
diff --git a/firmware/target/sh/archos/recorder/adc-target.h b/firmware/target/sh/archos/recorder/adc-target.h
new file mode 100644
index 0000000000..9d7230d2cb
--- /dev/null
+++ b/firmware/target/sh/archos/recorder/adc-target.h
@@ -0,0 +1,39 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2002 by Linus Nielsen Feltzing
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19#ifndef _ADC_TARGET_H_
20#define _ADC_TARGET_H_
21
22#define NUM_ADC_CHANNELS 8
23
24/* normal JBR channel assignment */
25#define ADC_BATTERY 0 /* Battery voltage always reads 0x3FF due to
26 silly scaling */
27#define ADC_CHARGE_REGULATOR 1 /* Regulator reference voltage, should read
28 about 0x1c0 when charging, else 0x3FF */
29#define ADC_USB_POWER 2 /* USB, reads 0x3FF when USB is inserted */
30#define ADC_BUTTON_ROW1 4 /* Used for scanning the keys, different
31 voltages for different keys */
32#define ADC_BUTTON_ROW2 5 /* Used for scanning the keys, different
33 voltages for different keys */
34#define ADC_UNREG_POWER 6 /* Battery voltage with a better scaling */
35#define ADC_EXT_POWER 7 /* The external power voltage, 0v or 2.7v */
36
37#define EXT_SCALE_FACTOR 14800
38
39#endif /* _ADC_TARGET_H_ */