]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/clueboard_60/boards/GENERIC_STM32_F303XC/board.c
Clueboard 60% support (#1746)
[qmk_firmware.git] / keyboards / clueboard_60 / boards / GENERIC_STM32_F303XC / board.c
1 /*
2     ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8         http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15 */
16
17 #include "hal.h"
18
19 #if HAL_USE_PAL || defined(__DOXYGEN__)
20 /**
21  * @brief   PAL setup.
22  * @details Digital I/O ports static configuration as defined in @p board.h.
23  *          This variable is used by the HAL when initializing the PAL driver.
24  */
25 const PALConfig pal_default_config = {
26 #if STM32_HAS_GPIOA
27   {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
28    VAL_GPIOA_ODR,   VAL_GPIOA_AFRL,   VAL_GPIOA_AFRH},
29 #endif
30 #if STM32_HAS_GPIOB
31   {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
32    VAL_GPIOB_ODR,   VAL_GPIOB_AFRL,   VAL_GPIOB_AFRH},
33 #endif
34 #if STM32_HAS_GPIOC
35   {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
36    VAL_GPIOC_ODR,   VAL_GPIOC_AFRL,   VAL_GPIOC_AFRH},
37 #endif
38 #if STM32_HAS_GPIOD
39   {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
40    VAL_GPIOD_ODR,   VAL_GPIOD_AFRL,   VAL_GPIOD_AFRH},
41 #endif
42 #if STM32_HAS_GPIOE
43   {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
44    VAL_GPIOE_ODR,   VAL_GPIOE_AFRL,   VAL_GPIOE_AFRH},
45 #endif
46 #if STM32_HAS_GPIOF
47   {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
48    VAL_GPIOF_ODR,   VAL_GPIOF_AFRL,   VAL_GPIOF_AFRH},
49 #endif
50 #if STM32_HAS_GPIOG
51   {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
52    VAL_GPIOG_ODR,   VAL_GPIOG_AFRL,   VAL_GPIOG_AFRH},
53 #endif
54 #if STM32_HAS_GPIOH
55   {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
56    VAL_GPIOH_ODR,   VAL_GPIOH_AFRL,   VAL_GPIOH_AFRH},
57 #endif
58 #if STM32_HAS_GPIOI
59   {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
60    VAL_GPIOI_ODR,   VAL_GPIOI_AFRL,   VAL_GPIOI_AFRH}
61 #endif
62 };
63 #endif
64
65 /**
66  * @brief   Early initialization code.
67  * @details This initialization must be performed just after stack setup
68  *          and before any other initialization.
69  */
70 void __early_init(void) {
71
72   stm32_clock_init();
73 }
74
75 #if HAL_USE_SDC || defined(__DOXYGEN__)
76 /**
77  * @brief   SDC card detection.
78  */
79 bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
80
81   (void)sdcp;
82   /* TODO: Fill the implementation.*/
83   return true;
84 }
85
86 /**
87  * @brief   SDC card write protection detection.
88  */
89 bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
90
91   (void)sdcp;
92   /* TODO: Fill the implementation.*/
93   return false;
94 }
95 #endif /* HAL_USE_SDC */
96
97 #if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
98 /**
99  * @brief   MMC_SPI card detection.
100  */
101 bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
102
103   (void)mmcp;
104   /* TODO: Fill the implementation.*/
105   return true;
106 }
107
108 /**
109  * @brief   MMC_SPI card write protection detection.
110  */
111 bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
112
113   (void)mmcp;
114   /* TODO: Fill the implementation.*/
115   return false;
116 }
117 #endif
118
119 /**
120  * @brief   Board-specific initialization code.
121  * @todo    Add your board-specific code, if any.
122  */
123 void boardInit(void) {
124 }