1 /*
2  * Copyright (c) 2012 Travis Geiselbrecht
3  *
4  * Use of this source code is governed by a MIT-style
5  * license that can be found in the LICENSE file or at
6  * https://opensource.org/licenses/MIT
7  */
8 #include <lk/err.h>
9 #include <lk/debug.h>
10 #include <lk/trace.h>
11 #include <target.h>
12 #include <lk/compiler.h>
13 #include <dev/gpio.h>
14 #include <stm32f2xx_usart.h>
15 #include <stm32f2xx_rcc.h>
16 #include <stm32f2xx_gpio.h>
17 //#include <stm32f10x_flash.h>
18 //#include <stm32f10x_dbgmcu.h>
19 #include <platform/stm32.h>
20 #include <platform/gpio.h>
21 #include <target/gpioconfig.h>
22 
target_early_init(void)23 void target_early_init(void) {
24     /* configure the usart3 pins */
25     gpio_config(GPIO_USART3_TX, GPIO_STM32_AF | GPIO_STM32_AFn(GPIO_AF_USART3) | GPIO_PULLUP);
26     gpio_config(GPIO_USART3_RX, GPIO_STM32_AF | GPIO_STM32_AFn(GPIO_AF_USART3) | GPIO_PULLUP);
27 
28     stm32_debug_early_init();
29 
30     /* configure some status leds */
31     gpio_config(GPIO_LED0, GPIO_OUTPUT);
32     gpio_config(GPIO_LED1, GPIO_OUTPUT);
33     gpio_config(GPIO_LED2, GPIO_OUTPUT);
34     gpio_config(GPIO_LED3, GPIO_OUTPUT);
35 
36     stm3220g_set_led_bits(1);
37 }
38 
target_init(void)39 void target_init(void) {
40     TRACE_ENTRY;
41 
42     stm32_debug_init();
43 
44     TRACE_EXIT;
45 }
46 
target_set_debug_led(unsigned int led,bool on)47 void target_set_debug_led(unsigned int led, bool on) {
48     switch (led) {
49         case 0:
50             gpio_set(GPIO_LED0, on);
51             break;
52         case 1:
53             gpio_set(GPIO_LED1, on);
54             break;
55         case 2:
56             gpio_set(GPIO_LED2, on);
57             break;
58         case 3:
59             gpio_set(GPIO_LED3, on);
60             break;
61     }
62 }
63 
stm3220g_set_led_bits(unsigned int nr)64 void stm3220g_set_led_bits(unsigned int nr) {
65     gpio_set(GPIO_LED0, nr & 1);
66     gpio_set(GPIO_LED1, nr & 2);
67     gpio_set(GPIO_LED2, nr & 4);
68     gpio_set(GPIO_LED3, nr & 8);
69 }
70