From 5f655c93f931236c173700f54e4b329bf709e7cc Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Thu, 13 Jul 2006 07:40:30 +0000 Subject: Patch #5639 by Ulrich Pegelow, inits the M5636 USBOTG chip on the X5 to reduce the battery consumption. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10208 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/coldfire/iaudio/x5/m5636-target.h | 37 +++++++++++++++++ firmware/target/coldfire/iaudio/x5/m5636-x5.c | 50 +++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100755 firmware/target/coldfire/iaudio/x5/m5636-target.h create mode 100755 firmware/target/coldfire/iaudio/x5/m5636-x5.c (limited to 'firmware/target') diff --git a/firmware/target/coldfire/iaudio/x5/m5636-target.h b/firmware/target/coldfire/iaudio/x5/m5636-target.h new file mode 100755 index 0000000000..51cb933c07 --- /dev/null +++ b/firmware/target/coldfire/iaudio/x5/m5636-target.h @@ -0,0 +1,37 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 Ulrich Pegelow + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#ifndef M5636_TARGET_H +#define M5636_TARGET_H + +#define M5636_BASE 0xf0004000L /* Rockbox: 0xf0004000; OF: 0x20004000 */ + +/* We are currently lacking a datasheet for the M5636. No mnemonics available. + The registers are named according to their respective hexadecimal offsets. +*/ + +#define M5636_4064 (*(volatile unsigned short *)(M5636_BASE + 0x64L)) +#define M5636_4068 (*(volatile unsigned short *)(M5636_BASE + 0x68L)) +#define M5636_4078 (*(volatile unsigned short *)(M5636_BASE + 0x78L)) + +extern void m5636_device_init(void); + +/* for debugging purposes only */ +extern void m5636_dump_regs(void); + +#endif diff --git a/firmware/target/coldfire/iaudio/x5/m5636-x5.c b/firmware/target/coldfire/iaudio/x5/m5636-x5.c new file mode 100755 index 0000000000..d30ff360d6 --- /dev/null +++ b/firmware/target/coldfire/iaudio/x5/m5636-x5.c @@ -0,0 +1,50 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 Ulrich Pegelow + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "config.h" +#include "system.h" +#include "logf.h" +#include "m5636-target.h" + +void m5636_device_init(void) +{ + and_l(~0x00004000, &GPIO_INT_EN); /* probably redundant: disable + interrupt; just in case ... */ + and_l(~0x00000004, &GPIO1_OUT); /* probably redundant: set GPIO34 low */ + or_l( 0x00000004, &GPIO1_ENABLE); /* GPIO34 enable (see above) */ + or_l( 0x00000004, &GPIO1_FUNCTION); /* GPIO34 function (see above) */ +} + +/* for debugging purposes only */ +void m5636_dump_regs(void) +{ + unsigned short *address; + + for (address = (unsigned short *)M5636_BASE; + address < (unsigned short *)(M5636_BASE + 0x100); + address++) + { + logf("m5636 A:%08x D:%04x", address, (unsigned)*address); + } + + logf("GPIO_INT_EN %08x", GPIO_INT_EN); + logf("GPIO1_OUT %08x", GPIO1_OUT); + logf("GPIO1_ENABLE %08x", GPIO1_ENABLE); + logf("GPIO1_FUNCTION %08x", GPIO1_FUNCTION); +} -- cgit v1.2.3