AT91CAP9 support : MACB changes
[oweals/u-boot.git] / board / at91cap9adk / led.c
1 /*
2  * (C) Copyright 2007-2008
3  * Stelian Pop <stelian.pop <at> leadtechdesign.com>
4  * Lead Tech Design <www.leadtechdesign.com>
5  *
6  * See file CREDITS for list of people who contributed to this
7  * project.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 2 of
12  * the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22  * MA 02111-1307 USA
23  */
24
25 #include <common.h>
26 #include <asm/arch/AT91CAP9.h>
27
28 #define RED_LED         AT91C_PIO_PC29  /* this is the power led */
29 #define GREEN_LED       AT91C_PIO_PA10  /* this is the user1 led */
30 #define YELLOW_LED      AT91C_PIO_PA11  /* this is the user1 led */
31
32 void red_LED_on(void)
33 {
34         AT91C_BASE_PIOC->PIO_SODR = RED_LED;
35 }
36
37 void red_LED_off(void)
38 {
39         AT91C_BASE_PIOC->PIO_CODR = RED_LED;
40 }
41
42 void green_LED_on(void)
43 {
44         AT91C_BASE_PIOA->PIO_CODR = GREEN_LED;
45 }
46
47 void green_LED_off(void)
48 {
49         AT91C_BASE_PIOA->PIO_SODR = GREEN_LED;
50 }
51
52 void yellow_LED_on(void)
53 {
54         AT91C_BASE_PIOA->PIO_CODR = YELLOW_LED;
55 }
56
57 void yellow_LED_off(void)
58 {
59         AT91C_BASE_PIOA->PIO_SODR = YELLOW_LED;
60 }
61
62 void coloured_LED_init(void)
63 {
64         /* Enable clock */
65         AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOABCD;
66
67         /* Disable peripherals on LEDs */
68         AT91C_BASE_PIOA->PIO_PER = GREEN_LED | YELLOW_LED;
69         /* Enable pins as outputs */
70         AT91C_BASE_PIOA->PIO_OER = GREEN_LED | YELLOW_LED;
71         /* Turn all LEDs OFF */
72         AT91C_BASE_PIOA->PIO_SODR = GREEN_LED | YELLOW_LED;
73
74         /* Disable peripherals on LEDs */
75         AT91C_BASE_PIOC->PIO_PER = RED_LED;
76         /* Enable pins as outputs */
77         AT91C_BASE_PIOC->PIO_OER = RED_LED;
78         /* Turn all LEDs OFF */
79         AT91C_BASE_PIOC->PIO_CODR = RED_LED;
80 }