]> git.friedersdorff.com Git - max/tmk_keyboard.git/blob - keyboard/kl27z_kbd/boards/ELF/board.c
Merge branch 'kl27z'
[max/tmk_keyboard.git] / keyboard / kl27z_kbd / boards / ELF / board.c
1 /*\r
2     ChibiOS - (C) 2015-2016 flabbergast <s3+flabbergast@sdfeu.org>\r
3 \r
4     Licensed under the Apache License, Version 2.0 (the "License");\r
5     you may not use this file except in compliance with the License.\r
6     You may obtain a copy of the License at\r
7 \r
8         http://www.apache.org/licenses/LICENSE-2.0\r
9 \r
10     Unless required by applicable law or agreed to in writing, software\r
11     distributed under the License is distributed on an "AS IS" BASIS,\r
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13     See the License for the specific language governing permissions and\r
14     limitations under the License.\r
15 */\r
16 \r
17 #include "ch.h"\r
18 #include "hal.h"\r
19 \r
20 #if HAL_USE_PAL || defined(__DOXYGEN__)\r
21 /**\r
22  * @brief   PAL setup.\r
23  * @details Digital I/O ports static configuration as defined in @p board.h.\r
24  *          This variable is used by the HAL when initializing the PAL driver.\r
25  */\r
26 const PALConfig pal_default_config =\r
27 {\r
28     .ports = {\r
29         {\r
30             /*\r
31              * PORTA setup.\r
32              *\r
33              * on pads: PTA1, PTA2, PTA5, PTA18, PTA19\r
34              *\r
35              * PTA0/3 SWD (default SWD, ALT_7: SWD, ALT_1: PTA0/3)\r
36              * PTA4 NMI button (default NMI_b, ALT_1: PTA4)\r
37              * PTA20 RESET button (default RESET, ALT_7: RESET, ALT_1: PTA20)\r
38              */\r
39             .port = IOPORT1,\r
40             .pads = {\r
41                 PAL_MODE_ALTERNATIVE_7,     PAL_MODE_INPUT_PULLUP,      PAL_MODE_OUTPUT_PUSHPULL,\r
42                 PAL_MODE_ALTERNATIVE_7,     PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,\r
43                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
44                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
45                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
46                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
47                 PAL_MODE_INPUT_ANALOG,      PAL_MODE_INPUT_ANALOG,      PAL_MODE_ALTERNATIVE_7,\r
48                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
49                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
50                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
51                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
52             },\r
53         },\r
54         {\r
55             /*\r
56              * PORTB setup.\r
57              *\r
58              * on pads: PTB0, PTB1\r
59              * LED: PTB18\r
60              */\r
61             .port = IOPORT2,\r
62             .pads = {\r
63                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,      PAL_MODE_UNCONNECTED,\r
64                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
65                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
66                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
67                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
68                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
69                 PAL_MODE_OUTPUT_PUSHPULL,   PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
70                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
71                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
72                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
73                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
74             },\r
75         },\r
76         {\r
77             /*\r
78              * PORTC setup.\r
79              *\r
80              * on pads: PTC1, PTC2, PTC3, PTC6, PTC7, PTC8, PTC9\r
81              */\r
82             .port = IOPORT3,\r
83             .pads = {\r
84                 PAL_MODE_UNCONNECTED,       PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,\r
85                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
86                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,\r
87                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
88                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
89                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
90                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
91                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
92                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
93                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
94                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
95             },\r
96         },\r
97         {\r
98             /*\r
99              * PORTD setup.\r
100              *\r
101              * on pads: PTD0 - PTD7\r
102              */\r
103             .port = IOPORT4,\r
104             .pads = {\r
105                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,\r
106                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,\r
107                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_OUTPUT_PUSHPULL,   PAL_MODE_UNCONNECTED,\r
108                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
109                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
110                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
111                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
112                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
113                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
114                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
115                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
116             },\r
117         },\r
118         {\r
119             /*\r
120              * PORTE setup.\r
121              *\r
122              * on pads: PTE0, PTE1, PTE24, PTE25, PTE29, PTE30\r
123              */\r
124             .port = IOPORT5,\r
125             .pads = {\r
126                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,      PAL_MODE_UNCONNECTED,\r
127                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
128                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
129                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
130                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
131                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
132                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_OUTPUT_PUSHPULL,\r
133                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,\r
134                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_INPUT_PULLUP,      PAL_MODE_UNCONNECTED,\r
135                 PAL_MODE_UNCONNECTED,       PAL_MODE_UNCONNECTED,       PAL_MODE_INPUT_PULLUP,\r
136                 PAL_MODE_INPUT_PULLUP,      PAL_MODE_UNCONNECTED,\r
137             },\r
138         },\r
139     },\r
140 };\r
141 #endif\r
142 \r
143 /**\r
144  * @brief   Early initialization code.\r
145  * @details This initialization must be performed just after stack setup\r
146  *          and before any other initialization.\r
147  */\r
148 void __early_init(void) {\r
149 \r
150   kl2x_clock_init();\r
151 }\r
152 \r
153 /**\r
154  * @brief   Board-specific initialization code.\r
155  * @todo    Add your board-specific code, if any.\r
156  */\r
157 void boardInit(void) {\r
158 }\r