1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2011-01-13     weety      first version
9  */
10 
11 #include <rtthread.h>
12 #include <at91sam926x.h>
13 #include "led.h"
14 
15 #if 1
16 // GB9260 board
17 #define PIO_LED     AT91_PIOB
18 #define LED1        (1 << 25)   // LED_SYS
19 #define LED2        (0)
20 #define LED3        (1 << 23)   // LED_USR
21 #define LED_ALL     (LED1 | LED2 | LED3)
22 #else
23 #define PIO_LED     AT91_PIOC
24 #define LED1        (1 << 8)
25 #define LED2        (1 << 11)
26 #define LED3        (1 << 6)
27 #define LED_ALL     (LED1 | LED2 | LED3)
28 #endif
29 
led_init(void)30 void led_init(void)
31 {
32     at91_sys_write(PIO_LED+0x00, LED_ALL);
33     at91_sys_write(PIO_LED+0x10, LED_ALL);
34     at91_sys_write(PIO_LED+0x64, LED_ALL);
35     at91_sys_write(PIO_LED+0x30, LED_ALL);
36 }
37 
led_on(int num)38 void led_on(int num)
39 {
40     switch(num)
41     {
42         case 1:
43             at91_sys_write(PIO_LED+0x34, LED1);
44             break;
45         case 2:
46             at91_sys_write(PIO_LED+0x34, LED2);
47             break;
48         case 3:
49             at91_sys_write(PIO_LED+0x34, LED3);
50             break;
51         default:
52             break;
53     }
54 }
55 
led_off(int num)56 void led_off(int num)
57 {
58     switch(num)
59     {
60         case 1:
61             at91_sys_write(PIO_LED+0x30, LED1);
62             break;
63         case 2:
64             at91_sys_write(PIO_LED+0x30, LED2);
65             break;
66         case 3:
67             at91_sys_write(PIO_LED+0x30, LED3);
68             break;
69         default:
70             break;
71     }
72 }
73