pin-cir: support Sony protocol
[gnuk/gnuk.git] / boards / STBEE_MINI / 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 #include "config.h"
31 /*
32  * Setup for the STBee Mini board.
33  */
34
35 /*
36  * Board identifier.
37  */
38 #define BOARD_STBEE_MINI
39 #define BOARD_NAME "STBee Mini"
40 #define CPU_WITH_NO_GPIOE       1
41
42 /*
43  * Board frequencies.
44  */
45 #define STM32_LSECLK            32768
46 #define STM32_HSECLK            12000000
47
48 /*
49  * MCU type, this macro is used by both the ST library and the ChibiOS/RT
50  * native STM32 HAL.
51  */
52 #define STM32F10X_MD
53
54 /*
55  * IO pins assignments.
56  */
57 #define GPIOA_LED1              13
58 #define GPIOA_USB_ENABLE        14
59 #define GPIOA_LED2              15
60
61 #define GPIOC_BUTTON            13
62
63 /*
64  * I/O ports initial setup, this configuration is established soon after reset
65  * in the initialization code.
66  *
67  * The digits have the following meaning:
68  *   0 - Analog input.
69  *   1 - Push Pull output 10MHz.
70  *   2 - Push Pull output 2MHz.
71  *   3 - Push Pull output 50MHz.
72  *   4 - Digital input.
73  *   5 - Open Drain output 10MHz.
74  *   6 - Open Drain output 2MHz.
75  *   7 - Open Drain output 50MHz.
76  *   8 - Digital input with PullUp or PullDown resistor depending on ODR.
77  *   9 - Alternate Push Pull output 10MHz.
78  *   A - Alternate Push Pull output 2MHz.
79  *   B - Alternate Push Pull output 50MHz.
80  *   C - Reserved.
81  *   D - Alternate Open Drain output 10MHz.
82  *   E - Alternate Open Drain output 2MHz.
83  *   F - Alternate Open Drain output 50MHz.
84  * Please refer to the STM32 Reference Manual for details.
85  */
86
87 #if defined(PINPAD_SUPPORT)
88 /*
89  * Port A setup.
90  * PA6  - (TIM3_CH1) input with pull-up
91  * PA7  - (TIM3_CH2) input with pull-down
92  * PA11 - input with pull-up (USBDM)
93  * PA12 - input with pull-up (USBDP)
94  * Everything input with pull-up except:
95  * PA13 - Open Drain output (LED1 0:ON 1:OFF)
96  * PA14 - Push pull output  (USB ENABLE 0:DISABLE 1:ENABLE)
97  * PA15 - Open Drain output (LED2 0:ON 1:OFF)
98  */
99 #define VAL_GPIOACRL            0x88888888      /*  PA7...PA0 */
100 #define VAL_GPIOACRH            0x63688888      /* PA15...PA8 */
101 #define VAL_GPIOAODR            0xFFFFFF7F
102
103 /* Port B setup. */
104 #define GPIOB_CIR               0
105 #define GPIOB_BUTTON            2
106 #define GPIOB_ROT_A             3
107 #define GPIOB_ROT_B             4
108
109 #define GPIOB_7SEG_DP           15
110 #define GPIOB_7SEG_A            14
111 #define GPIOB_7SEG_B            13
112 #define GPIOB_7SEG_C            12
113 #define GPIOB_7SEG_D            11
114 #define GPIOB_7SEG_E            10
115 #define GPIOB_7SEG_F            9
116 #define GPIOB_7SEG_G            8
117
118 #define VAL_GPIOBCRL            0x88888888      /*  PB7...PB0 */
119 #define VAL_GPIOBCRH            0x66666666      /* PB15...PB8 */
120 #define VAL_GPIOBODR            0xFFFFFFFF
121 #else
122 /*
123  * Port A setup.
124  * PA11 - input with pull-up (USBDM)
125  * PA12 - input with pull-up (USBDP)
126  * Everything input with pull-up except:
127  * PA13 - Open Drain output (LED1 0:ON 1:OFF)
128  * PA14 - Push pull output  (USB ENABLE 0:DISABLE 1:ENABLE)
129  * PA15 - Open Drain output (LED2 0:ON 1:OFF)
130  */
131 #define VAL_GPIOACRL            0x88888888      /*  PA7...PA0 */
132 #define VAL_GPIOACRH            0x63688888      /* PA15...PA8 */
133 #define VAL_GPIOAODR            0xFFFFFFFF
134
135 /* Port B setup. */
136 /* Everything input with pull-up */
137 #define VAL_GPIOBCRL            0x88888888      /*  PB7...PB0 */
138 #define VAL_GPIOBCRH            0x88888888      /* PB15...PB8 */
139 #define VAL_GPIOBODR            0xFFFFFFFF
140 #endif
141
142 /*
143  * Port C setup.
144  * Everything input with pull-up except:
145  * PC13 - Normal input.
146  * PC14 - Normal input.
147  * PC15 - Normal input.
148  */
149 #define VAL_GPIOCCRL            0x88888888      /*  PC7...PC0 */
150 #define VAL_GPIOCCRH            0x44488888      /* PC15...PC8 */
151 #define VAL_GPIOCODR            0xFFFFFFFF
152
153 /*
154  * Port D setup.
155  * Everything input with pull-up except:
156  * PD0  - Normal input (XTAL).
157  * PD1  - Normal input (XTAL).
158  */
159 #define VAL_GPIODCRL            0x88888844      /*  PD7...PD0 */
160 #define VAL_GPIODCRH            0x88888888      /* PD15...PD8 */
161 #define VAL_GPIODODR            0xFFFFFFFF
162
163 #endif /* _BOARD_H_ */