diff options
author | Bossen WU <bossen.wu@stmicro.corp-partner.google.com> | 2021-05-20 18:36:51 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-20 03:50:07 +0000 |
commit | 4ce3683f04cdca8339d8dda171bd0e3620cc38e5 (patch) | |
tree | 26b5b85bf7a10283646b84c7b3f41d06360a99c5 /baseboard/kukui | |
parent | 43d48363f12aed7635cc079bb7038985c6156a5a (diff) | |
download | chrome-ec-4ce3683f04cdca8339d8dda171bd0e3620cc38e5.tar.gz |
munna: munna board with STM32L431 ec
munna board initialization.
BRANCH=main
BUG=b:188117811
TEST=make BOARD=munna; make buidall
Signed-off-by: Bossen WU <bossen.wu@stmicro.corp-partner.google.com>
Change-Id: I7de980f61d00f1b050924812265b7068d937a112
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2909958
Reviewed-by: Shou-Chieh Hsu <shouchieh@chromium.org>
Diffstat (limited to 'baseboard/kukui')
-rw-r--r-- | baseboard/kukui/baseboard.c | 22 | ||||
-rw-r--r-- | baseboard/kukui/baseboard.h | 10 | ||||
-rw-r--r-- | baseboard/kukui/emmc.c | 9 |
3 files changed, 38 insertions, 3 deletions
diff --git a/baseboard/kukui/baseboard.c b/baseboard/kukui/baseboard.c index 9eef6c2ef4..f17b3a4e82 100644 --- a/baseboard/kukui/baseboard.c +++ b/baseboard/kukui/baseboard.c @@ -7,6 +7,7 @@ #include "adc_chip.h" #include "charger.h" #include "chipset.h" +#include "dma.h" #include "gpio.h" #include "hooks.h" #include "keyboard_scan.h" @@ -55,6 +56,25 @@ void board_config_pre_init(void) */ STM32_DMA_CSELR(STM32_DMAC_CH4) = (8 << 12) | (8 << 16) | (3 << 20) | (3 << 24); + +#elif defined(VARIANT_KUKUI_EC_STM32L431) +#ifdef CONFIG_DMA + dma_init(); +#endif + /* + * Remap USART1 and SPI2 DMA: + * + * DMA2_CH=DMA1_CH+8 + * + * Ch6 (DMA2): USART1_TX / Ch7: USART1_RX (0010) + * Ch4 (DMA1): SPI2_RX / Ch5: SPI2_TX (0010) + * + * (*((volatile unsigned long *)(0x400200A8UL))) = 0x00011000; + * (*((volatile unsigned long *)(0x400204A8UL))) = 0x00200000; + */ + + STM32_DMA_CSELR(STM32_DMAC_CH4) = (1 << 12) | (1 << 16); + STM32_DMA_CSELR(STM32_DMAC_CH14) = (2 << 20) | (2 << 24); #endif } @@ -144,7 +164,7 @@ int board_get_version(void) static void baseboard_spi_init(void) { -#ifdef VARIANT_KUKUI_EC_STM32F098 +#if defined(VARIANT_KUKUI_EC_STM32F098) || defined(VARIANT_KUKUI_EC_STM32L431) /* Set SPI PA15,PB3/4/5/13/14/15 pins to high speed */ STM32_GPIO_OSPEEDR(GPIO_A) |= 0xc0000000; STM32_GPIO_OSPEEDR(GPIO_B) |= 0xfc000fc0; diff --git a/baseboard/kukui/baseboard.h b/baseboard/kukui/baseboard.h index bf4a205393..90a3e3dd05 100644 --- a/baseboard/kukui/baseboard.h +++ b/baseboard/kukui/baseboard.h @@ -99,13 +99,14 @@ * IT81202 based boards are variant of jacuzzi and I/O expander isn't required * on them. */ -#ifdef VARIANT_KUKUI_EC_STM32F098 +#if defined(VARIANT_KUKUI_EC_STM32F098) || defined(VARIANT_KUKUI_EC_STM32L431) #define CONFIG_IO_EXPANDER #define CONFIG_IO_EXPANDER_IT8801 #define CONFIG_IO_EXPANDER_PORT_COUNT 1 #define CONFIG_KEYBOARD_NOT_RAW #define CONFIG_KEYBOARD_BOARD_CONFIG #endif + #define CONFIG_KEYBOARD_COL2_INVERTED #define CONFIG_GMR_TABLET_MODE @@ -258,14 +259,19 @@ * Variant EC defines. Pick one: * VARIANT_KUKUI_EC_STM32F098 * VARIANT_KUKUI_EC_IT81202 + * VARIANT_KUKUI_EC_STM32L431 */ -#if defined(VARIANT_KUKUI_EC_STM32F098) +#if defined(VARIANT_KUKUI_EC_STM32F098) || defined(VARIANT_KUKUI_EC_STM32L431) /* Timer selection */ #define TIM_CLOCK32 2 #define TIM_WATCHDOG 7 /* 48 MHz SYSCLK clock frequency */ +#ifdef VARIANT_KUKUI_EC_STM32L431 +#define CPU_CLOCK 80000000 +#else #define CPU_CLOCK 48000000 +#endif #undef CONFIG_HIBERNATE #define CONFIG_SPI_CONTROLLER diff --git a/baseboard/kukui/emmc.c b/baseboard/kukui/emmc.c index 4735f4aea8..68953d8923 100644 --- a/baseboard/kukui/emmc.c +++ b/baseboard/kukui/emmc.c @@ -198,12 +198,21 @@ static void emmc_init_spi(void) /* Enable clocks to SPI module */ STM32_RCC_APB2ENR |= STM32_RCC_PB2_SPI1; #elif EMMC_SPI_PORT == 2 +#ifdef CHIP_FAMILY_STM32L4 + /* Reset SPI */ + STM32_RCC_APB1RSTR1 |= STM32_RCC_PB1_SPI2; + STM32_RCC_APB1RSTR1 &= ~STM32_RCC_PB1_SPI2; + + /* Enable clocks to SPI module */ + STM32_RCC_APB1ENR1 |= STM32_RCC_PB1_SPI2; +#else /* Reset SPI */ STM32_RCC_APB1RSTR |= STM32_RCC_PB1_SPI2; STM32_RCC_APB1RSTR &= ~STM32_RCC_PB1_SPI2; /* Enable clocks to SPI module */ STM32_RCC_APB1ENR |= STM32_RCC_PB1_SPI2; +#endif #else #error "Please define EMMC_SPI_PORT in board.h." #endif |