summaryrefslogtreecommitdiff
path: root/firmware/target/coldfire/iaudio/m5/power-m5.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/coldfire/iaudio/m5/power-m5.c')
-rw-r--r--firmware/target/coldfire/iaudio/m5/power-m5.c89
1 files changed, 89 insertions, 0 deletions
diff --git a/firmware/target/coldfire/iaudio/m5/power-m5.c b/firmware/target/coldfire/iaudio/m5/power-m5.c
new file mode 100644
index 0000000000..c689488bfe
--- /dev/null
+++ b/firmware/target/coldfire/iaudio/m5/power-m5.c
@@ -0,0 +1,89 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2006 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#include "config.h"
20#include "cpu.h"
21#include <stdbool.h>
22#include "kernel.h"
23#include "system.h"
24#include "power.h"
25#include "pcf50606.h"
26#include "lcd-remote-target.h"
27
28#ifndef SIMULATOR
29
30void power_init(void)
31{
32 /* Charger detect */
33 and_l(~0x01000000, &GPIO1_ENABLE);
34 or_l(0x01000000, &GPIO1_FUNCTION);
35
36 pcf50606_init();
37}
38
39bool charger_inserted(void)
40{
41 return (GPIO1_READ & 0x01000000)?true:false;
42}
43
44void ide_power_enable(bool on)
45{
46 /* GPOOD3 */
47 int level = set_irq_level(HIGHEST_IRQ_LEVEL);
48 if(on)
49 pcf50606_write(0x3c, 0x07);
50 else
51 pcf50606_write(0x3c, 0x00);
52 set_irq_level(level);
53}
54
55bool ide_powered(void)
56{
57 return false;
58}
59
60void power_off(void)
61{
62 lcd_remote_poweroff();
63 set_irq_level(HIGHEST_IRQ_LEVEL);
64 and_l(~0x00000008, &GPIO_OUT); /* Set KEEPACT low */
65 asm("halt");
66}
67
68#else
69
70bool charger_inserted(void)
71{
72 return false;
73}
74
75void charger_enable(bool on)
76{
77 (void)on;
78}
79
80void power_off(void)
81{
82}
83
84void ide_power_enable(bool on)
85{
86 (void)on;
87}
88
89#endif /* SIMULATOR */