altos/telelco-v3: Create initial flash loader setup
[fw/altos] / src / telelco-v3.0 / flash-loader / ao_pins.h
1 /*
2  * Copyright © 2018 Bdale Garbee <bdale@gag.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17  */
18
19 #ifndef _AO_PINS_H_
20 #define _AO_PINS_H_
21
22 /* 16MHz crystal */
23
24 #define AO_HSE          1
25 #define AO_HSE_BYPASS   0
26
27 #define AO_SYSCLK       72000000
28 #define AO_HCLK         72000000
29 #define AO_APB1CLK      36000000
30 #define AO_APB2CLK      72000000
31 #define AO_ADCCLK       12000000
32
33 /* PLLMUL is 9, PLLXTPRE (pre divider) is 2, so the
34  * overall PLLCLK is 16 * 9/2 = 72MHz (used as SYSCLK)
35  *
36  * HCLK is SYSCLK / 1 (HPRE_DIV) = 72MHz (72MHz max)
37  * USB is PLLCLK / 1.5 (USBPRE)= 48MHz (must be 48MHz)
38  * APB2 is HCLK / 1 (PPRE2_DIV) = 72MHz (72MHz max)
39  * APB1 is HCLK / 2 (PPRE1_DIV) = 36MHz (36MHz max)
40  * ADC is APB2 / 6 (ADCPRE) = 12MHz (14MHz max)
41  */
42
43 #define AO_RCC_CFGR_USBPRE      STM_RCC_CFGR_USBPRE_1_5
44 #define AO_RCC_CFGR_PLLMUL      STM_RCC_CFGR_PLLMUL_9
45 #define AO_RCC_CFGR_PLLXTPRE    STM_RCC_CFGR_PLLXTPRE_2
46 #define AO_RCC_CFGR_PPRE2_DIV   STM_RCC_CFGR_PPRE2_DIV_1
47 #define AO_RCC_CFGR_PPRE1_DIV   STM_RCC_CFGR_PPRE1_DIV_2
48 #define AO_RCC_CFGR_HPRE_DIV    STM_RCC_CFGR_HPRE_DIV_1
49 #define AO_RCC_CFGR_ADCPRE      STM_RCC_CFGR_ADCPRE_6
50
51 #include <ao_flash_stm_pins.h>
52
53 /* Companion port cs_companion0 PC10 */
54
55 #define AO_BOOT_PIN             1
56 #define AO_BOOT_APPLICATION_GPIO        stm_gpioc
57 #define AO_BOOT_APPLICATION_PIN         10
58 #define AO_BOOT_APPLICATION_VALUE       1
59 #define AO_BOOT_APPLICATION_MODE        AO_EXTI_MODE_PULL_UP
60
61 #define HAS_USB_PULLUP  1
62 #define AO_USB_PULLUP_PORT      (&stm_gpioa)
63 #define AO_USB_PULLUP_PIN       9
64
65 #endif /* _AO_PINS_H_ */