summaryrefslogtreecommitdiff
path: root/firmware/target/sh
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-04-11 20:44:32 +0000
committerJens Arnold <amiconn@rockbox.org>2007-04-11 20:44:32 +0000
commitfad79dc6364e1e0d42216f4636a4fc504a594307 (patch)
tree37e17308c021f63c69f63fa8658c572d879dcce2 /firmware/target/sh
parentdfa9f440349d7532423373b2bac5993ee5e958a9 (diff)
downloadrockbox-fad79dc6364e1e0d42216f4636a4fc504a594307.tar.gz
rockbox-fad79dc6364e1e0d42216f4636a4fc504a594307.zip
Moved archos USB handling to target tree. Minor simplification for coldfire (only one usb-target.h).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13110 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/sh')
-rw-r--r--firmware/target/sh/archos/fm_v2/usb-fm_v2.c46
-rw-r--r--firmware/target/sh/archos/ondio/usb-ondio.c58
-rw-r--r--firmware/target/sh/archos/player/usb-player.c41
-rw-r--r--firmware/target/sh/archos/recorder/usb-recorder.c46
-rw-r--r--firmware/target/sh/usb-target.h24
5 files changed, 215 insertions, 0 deletions
diff --git a/firmware/target/sh/archos/fm_v2/usb-fm_v2.c b/firmware/target/sh/archos/fm_v2/usb-fm_v2.c
new file mode 100644
index 0000000000..2b4632e4f7
--- /dev/null
+++ b/firmware/target/sh/archos/fm_v2/usb-fm_v2.c
@@ -0,0 +1,46 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2007 by Jens Arnold
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#include "config.h"
20#include <stdbool.h>
21#include "adc.h"
22#include "cpu.h"
23#include "hwcompat.h"
24#include "system.h"
25
26bool usb_detect(void)
27{
28 return (adc_read(ADC_USB_POWER) <= 512) ? true : false;
29}
30
31void usb_enable(bool on)
32{
33 if(read_hw_mask() & USB_ACTIVE_HIGH)
34 on = !on;
35
36 if(on)
37 and_b(~0x04, &PADRH); /* enable USB */
38 else
39 or_b(0x04, &PADRH);
40}
41
42void usb_init_device(void)
43{
44 usb_enable(false);
45 or_b(0x04, &PAIORH);
46}
diff --git a/firmware/target/sh/archos/ondio/usb-ondio.c b/firmware/target/sh/archos/ondio/usb-ondio.c
new file mode 100644
index 0000000000..7c09bf3877
--- /dev/null
+++ b/firmware/target/sh/archos/ondio/usb-ondio.c
@@ -0,0 +1,58 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2007 by Jens Arnold
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#include "config.h"
20#include <stdbool.h>
21#include "adc.h"
22#include "ata_mmc.h"
23#include "cpu.h"
24#include "hwcompat.h"
25#include "system.h"
26
27bool usb_detect(void)
28{
29 return (adc_read(ADC_USB_POWER) <= 512) ? true : false;
30}
31
32void usb_enable(bool on)
33{
34 if (on)
35 {
36 mmc_enable_int_flash_clock(!mmc_detect());
37
38 if (!(read_hw_mask() & MMC_CLOCK_POLARITY))
39 and_b(~0x20, &PBDRH); /* old circuit needs SCK1 = low while on USB */
40 or_b(0x20, &PADRL); /* enable USB */
41 and_b(~0x08, &PADRL); /* assert card detect */
42 }
43 else
44 {
45 if (!(read_hw_mask() & MMC_CLOCK_POLARITY))
46 or_b(0x20, &PBDRH); /* reset SCK1 = high for old circuit */
47 and_b(~0x20, &PADRL); /* disable USB */
48 or_b(0x08, &PADRL); /* deassert card detect */
49 }
50}
51
52void usb_init_device(void)
53{
54 PACR2 &= ~0x04C0; /* use PA3 (card detect) and PA5 (USB enabled) as GPIO */
55 and_b(~0x20, &PADRL); /* disable USB */
56 or_b(0x08, &PADRL); /* deassert card detect */
57 or_b(0x28, &PAIORL); /* output for USB enable and card detect */
58}
diff --git a/firmware/target/sh/archos/player/usb-player.c b/firmware/target/sh/archos/player/usb-player.c
new file mode 100644
index 0000000000..c10e222f0a
--- /dev/null
+++ b/firmware/target/sh/archos/player/usb-player.c
@@ -0,0 +1,41 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2007 by Jens Arnold
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#include "config.h"
20#include <stdbool.h>
21#include "cpu.h"
22#include "system.h"
23
24bool usb_detect(void)
25{
26 return (PADR & 0x8000) ? false : true;
27}
28
29void usb_enable(bool on)
30{
31 if(on)
32 and_b(~0x04, &PADRH);
33 else
34 or_b(0x04, &PADRH);
35}
36
37void usb_init_device(void)
38{
39 or_b(0x04, &PADRH);
40 or_b(0x04, &PAIORH);
41}
diff --git a/firmware/target/sh/archos/recorder/usb-recorder.c b/firmware/target/sh/archos/recorder/usb-recorder.c
new file mode 100644
index 0000000000..2934b32a3c
--- /dev/null
+++ b/firmware/target/sh/archos/recorder/usb-recorder.c
@@ -0,0 +1,46 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2007 by Jens Arnold
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#include "config.h"
20#include <stdbool.h>
21#include "adc.h"
22#include "cpu.h"
23#include "hwcompat.h"
24#include "system.h"
25
26bool usb_detect(void)
27{
28 return (adc_read(ADC_USB_POWER) > 500) ? true : false;
29}
30
31void usb_enable(bool on)
32{
33 if(read_hw_mask() & USB_ACTIVE_HIGH)
34 on = !on;
35
36 if(on)
37 and_b(~0x04, &PADRH); /* enable USB */
38 else
39 or_b(0x04, &PADRH);
40}
41
42void usb_init_device(void)
43{
44 usb_enable(false);
45 or_b(0x04, &PAIORH);
46}
diff --git a/firmware/target/sh/usb-target.h b/firmware/target/sh/usb-target.h
new file mode 100644
index 0000000000..65fa31fb85
--- /dev/null
+++ b/firmware/target/sh/usb-target.h
@@ -0,0 +1,24 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2007 by Jens Arnold
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 USB_TARGET_H
20#define USB_TARGET_H
21
22bool usb_init_device(void);
23
24#endif