Support STM32 Primer2
[gnuk/neug.git] / boards / CQ_STARM / board.h
1 /*
2     ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
3
4     This file is part of ChibiOS/RT.
5
6     ChibiOS/RT is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 3 of the License, or
9     (at your option) any later version.
10
11     ChibiOS/RT is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19                                       ---
20
21     A special exception to the GPL can be applied should you wish to distribute
22     a combined work that includes ChibiOS/RT, without being obliged to provide
23     the source code for any proprietary components. See the file exception.txt
24     for full details of how and when the exception can be applied.
25 */
26
27 #ifndef _BOARD_H_
28 #define _BOARD_H_
29
30 /*
31  * Setup for the CQ STARM board.
32  */
33 #undef  SET_USB_CONDITION               /* No functionality to disconnect USB */
34 #define SET_LED_CONDITION(on) on        /* To emit light, call palSetPad */
35 #define GPIO_LED        GPIOC_LED
36 #define IOPORT_LED      GPIOC
37
38 /*
39  * Board identifier.
40  */
41 #define BOARD_CQ_STARM
42 #define BOARD_NAME "CQ STARM"
43
44 /*
45  * Board frequencies.
46  */
47 #define STM32_LSECLK            32768
48 #define STM32_HSECLK            8000000
49
50 /*
51  * MCU type, this macro is used by both the ST library and the ChibiOS/RT
52  * native STM32 HAL.
53  */
54 #define STM32F10X_MD
55
56 /*
57  * IO pins assignments.
58  */
59 #define GPIOC_LED               6
60
61 /*
62  * I/O ports initial setup, this configuration is established soon after reset
63  * in the initialization code.
64  *
65  * The digits have the following meaning:
66  *   0 - Analog input.
67  *   1 - Push Pull output 10MHz.
68  *   2 - Push Pull output 2MHz.
69  *   3 - Push Pull output 50MHz.
70  *   4 - Digital input.
71  *   5 - Open Drain output 10MHz.
72  *   6 - Open Drain output 2MHz.
73  *   7 - Open Drain output 50MHz.
74  *   8 - Digital input with PullUp or PullDown resistor depending on ODR.
75  *   9 - Alternate Push Pull output 10MHz.
76  *   A - Alternate Push Pull output 2MHz.
77  *   B - Alternate Push Pull output 50MHz.
78  *   C - Reserved.
79  *   D - Alternate Open Drain output 10MHz.
80  *   E - Alternate Open Drain output 2MHz.
81  *   F - Alternate Open Drain output 50MHz.
82  * Please refer to the STM32 Reference Manual for details.
83  */
84
85 /*
86  * Port A setup.
87  * Everything input with pull-up except:
88  * PA4  - Normal input      (ADC_IN4 : VoutX of LIS344ALH).
89  * PA5  - Alternate output  (MMC SPI1 SCK).
90  * PA6  - Normal input      (MMC SPI1 MISO).
91  * PA7  - Alternate output  (MMC SPI1 MOSI).
92  * PA11 - (USBDM)
93  * PA12 - (USBDP)
94  */
95 #define VAL_GPIOACRL            0xB4B48888      /*  PA7...PA0 */
96 #define VAL_GPIOACRH            0x88888888      /* PA15...PA8 */
97 #define VAL_GPIOAODR            0xFFFFFFFF
98
99 /*
100  * Port B setup.
101  * Everything input with pull-up except:
102  * PB13 - Alternate output  (MMC SPI2 SCK).
103  * PB14 - Normal input      (MMC SPI2 MISO).
104  * PB15 - Alternate output  (MMC SPI2 MOSI).
105  */
106 #define VAL_GPIOBCRL            0x88888888      /*  PB7...PB0 */
107 #define VAL_GPIOBCRH            0xB4B88888      /* PB15...PB8 */
108 #define VAL_GPIOBODR            0xFFFFFFFF
109
110 /*
111  * Port C setup.
112  * PC0  - Push Pull output 50MHz.
113  * PC1  - Push Pull output 50MHz.
114  * Everything input with pull-up except:
115  * PC4  - Normal input      (ADC_IN14 : VoutY of LIS344ALH).
116  * PC5  - Normal input      (ADC_IN15 : VoutZ of LIS344ALH).
117  * PC6  - Push Pull output (LED).
118  * (PC9  - SDCard CD)
119  * (PC12 - SDCard CS)
120  * PC14 - Normal input (XTAL).
121  * PC15 - Normal input (XTAL).
122  */
123 #define VAL_GPIOCCRL            0x83448833      /*  PC7...PC0 */
124 #define VAL_GPIOCCRH            0x44888888      /* PC15...PC8 */
125 #define VAL_GPIOCODR            0xFFFFFFFF
126
127 /*
128  * Port D setup.
129  * Everything input with pull-up except:
130  * (PD9 - USB_DC)
131  */
132 #define VAL_GPIODCRL            0x88888888      /*  PD7...PD0 */
133 #define VAL_GPIODCRH            0x88888888      /* PD15...PD8 */
134 #define VAL_GPIODODR            0xFFFFFFFF
135
136 /*
137  * Port E setup.
138  * Everything input with pull-up except:
139  */
140 #define VAL_GPIOECRL            0x88888888      /*  PE7...PE0 */
141 #define VAL_GPIOECRH            0x88888888      /* PE15...PE8 */
142 #define VAL_GPIOEODR            0xFFFFFFFF
143
144 #if !defined(_FROM_ASM_)
145 #ifdef __cplusplus
146 extern "C" {
147 #endif
148   void boardInit(void);
149 #ifdef __cplusplus
150 }
151 #endif
152 #endif /* _FROM_ASM_ */
153
154 #endif /* _BOARD_H_ */