~ubuntu-branches/ubuntu/maverick/uboot-imx/maverick

« back to all changes in this revision

Viewing changes to board/omap3/zoom2/led.c

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-01-20 15:41:26 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100120154126-7bha1jeyjegu7xm5
Tags: 2009.08+really2009.01-0ubuntu1
* revert to the 2009.01 upstream version, 2009.08 has still to 
  many work in progress items in the freescale patchset (MMC and NIC
  dont work at all)
* add the latest patchset from freescale for 2009.01
* add 1002_enable_hush_shell_and_ext2.patch to enable hush shell and ext2 
* add 1003_fix_board_revision_numbers to make sure babbage 2.5 boards have 
  revision 51120 and babbage 3.0 boards have revision 51130 properly set in 
  their cpuinfo

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 2009 Wind River Systems, Inc.
3
 
 * Tom Rix <Tom.Rix@windriver.com>
4
 
 *
5
 
 * This program is free software; you can redistribute it and/or
6
 
 * modify it under the terms of the GNU General Public License as
7
 
 * published by the Free Software Foundation; either version 2 of
8
 
 * the License, or (at your option) any later version.
9
 
 *
10
 
 * This program is distributed in the hope that it will be useful,
11
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 * GNU General Public License for more details.
14
 
 *
15
 
 * You should have received a copy of the GNU General Public License
16
 
 * along with this program; if not, write to the Free Software
17
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18
 
 * MA 02111-1307 USA
19
 
 */
20
 
#include <common.h>
21
 
#include <status_led.h>
22
 
#include <asm/arch/cpu.h>
23
 
#include <asm/io.h>
24
 
#include <asm/arch/sys_proto.h>
25
 
#include <asm/arch/gpio.h>
26
 
 
27
 
static unsigned int saved_state[2] = {STATUS_LED_OFF, STATUS_LED_OFF};
28
 
 
29
 
/*
30
 
 * GPIO LEDs
31
 
 * 173 red
32
 
 * 154 blue
33
 
 * 61  blue2
34
 
 */
35
 
#define ZOOM2_LED_RED   173
36
 
#define ZOOM2_LED_BLUE  154
37
 
#define ZOOM2_LED_BLUE2 61
38
 
 
39
 
void red_LED_off (void)
40
 
{
41
 
        /* red */
42
 
        if (!omap_request_gpio(ZOOM2_LED_RED)) {
43
 
                omap_set_gpio_direction(ZOOM2_LED_RED, 0);
44
 
                omap_set_gpio_dataout(ZOOM2_LED_RED, 0);
45
 
        }
46
 
        saved_state[STATUS_LED_RED] = STATUS_LED_OFF;
47
 
}
48
 
 
49
 
void blue_LED_off (void)
50
 
{
51
 
        /* blue */
52
 
        if (!omap_request_gpio(ZOOM2_LED_BLUE)) {
53
 
                omap_set_gpio_direction(ZOOM2_LED_BLUE, 0);
54
 
                omap_set_gpio_dataout(ZOOM2_LED_BLUE, 0);
55
 
        }
56
 
 
57
 
        /* blue 2 */
58
 
        if (!omap_request_gpio(ZOOM2_LED_BLUE2)) {
59
 
                omap_set_gpio_direction(ZOOM2_LED_BLUE2, 0);
60
 
                omap_set_gpio_dataout(ZOOM2_LED_BLUE2, 0);
61
 
        }
62
 
        saved_state[STATUS_LED_BLUE] = STATUS_LED_OFF;
63
 
}
64
 
 
65
 
void red_LED_on (void)
66
 
{
67
 
        blue_LED_off ();
68
 
 
69
 
        /* red */
70
 
        if (!omap_request_gpio(ZOOM2_LED_RED)) {
71
 
                omap_set_gpio_direction(ZOOM2_LED_RED, 0);
72
 
                omap_set_gpio_dataout(ZOOM2_LED_RED, 1);
73
 
        }
74
 
        saved_state[STATUS_LED_RED] = STATUS_LED_ON;
75
 
}
76
 
 
77
 
void blue_LED_on (void)
78
 
{
79
 
        red_LED_off ();
80
 
 
81
 
        /* blue */
82
 
        if (!omap_request_gpio(ZOOM2_LED_BLUE)) {
83
 
                omap_set_gpio_direction(ZOOM2_LED_BLUE, 0);
84
 
                omap_set_gpio_dataout(ZOOM2_LED_BLUE, 1);
85
 
        }
86
 
 
87
 
        /* blue 2 */
88
 
        if (!omap_request_gpio(ZOOM2_LED_BLUE2)) {
89
 
                omap_set_gpio_direction(ZOOM2_LED_BLUE2, 0);
90
 
                omap_set_gpio_dataout(ZOOM2_LED_BLUE2, 1);
91
 
        }
92
 
 
93
 
        saved_state[STATUS_LED_BLUE] = STATUS_LED_ON;
94
 
}
95
 
 
96
 
void __led_init (led_id_t mask, int state)
97
 
{
98
 
        __led_set (mask, state);
99
 
}
100
 
 
101
 
void __led_toggle (led_id_t mask)
102
 
{
103
 
        if (STATUS_LED_BLUE == mask) {
104
 
                if (STATUS_LED_ON == saved_state[STATUS_LED_BLUE])
105
 
                        blue_LED_off ();
106
 
                else
107
 
                        blue_LED_on ();
108
 
        } else if (STATUS_LED_RED == mask) {
109
 
                if (STATUS_LED_ON == saved_state[STATUS_LED_RED])
110
 
                        red_LED_off ();
111
 
                else
112
 
                        red_LED_on ();
113
 
        }
114
 
}
115
 
 
116
 
void __led_set (led_id_t mask, int state)
117
 
{
118
 
        if (STATUS_LED_BLUE == mask) {
119
 
                if (STATUS_LED_ON == state)
120
 
                        blue_LED_on ();
121
 
                else
122
 
                        blue_LED_off ();
123
 
        } else if (STATUS_LED_RED == mask) {
124
 
                if (STATUS_LED_ON == state)
125
 
                        red_LED_on ();
126
 
                else
127
 
                        red_LED_off ();
128
 
        }
129
 
}