pbio/platform/prime_hub: Enable SPI for flash.
@@ -671,6 +671,30 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) {
gpio_init.Alternate = GPIO_AF5_SPI1;
HAL_GPIO_Init(GPIOA, &gpio_init);
}
+ if (hspi->Instance == SPI2) {
+ // External flash
+ GPIO_InitTypeDef gpio_init;
+
+ // /CS, active low
+ gpio_init.Pin = GPIO_PIN_12;
+ gpio_init.Mode = GPIO_MODE_OUTPUT_PP;
+ gpio_init.Pull = GPIO_NOPULL;
+ gpio_init.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(GPIOB, &gpio_init);
+ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
+
+ // SPI2_SCK
+ gpio_init.Pin = GPIO_PIN_13;
+ gpio_init.Mode = GPIO_MODE_AF_PP;
+ gpio_init.Pull = GPIO_NOPULL;
+ gpio_init.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ gpio_init.Alternate = GPIO_AF5_SPI2;
+ HAL_GPIO_Init(GPIOB, &gpio_init);
+
+ // SPI2_MISO | SPI2_MOSI
+ gpio_init.Pin = GPIO_PIN_2 | GPIO_PIN_3;
+ HAL_GPIO_Init(GPIOC, &gpio_init);
+ }
}
void SPI1_IRQHandler(void) {
@@ -808,7 +832,7 @@ void SystemInit(void) {
RCC->APB1ENR |= RCC_APB1ENR_USART2EN | RCC_APB1ENR_UART4EN | RCC_APB1ENR_UART5EN |
RCC_APB1ENR_UART7EN | RCC_APB1ENR_UART8EN | RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN |
RCC_APB1ENR_TIM4EN | RCC_APB1ENR_TIM5EN | RCC_APB1ENR_TIM6EN | RCC_APB1ENR_TIM12EN |
- RCC_APB1ENR_I2C2EN | RCC_APB1ENR_DACEN;
+ RCC_APB1ENR_I2C2EN | RCC_APB1ENR_DACEN | RCC_APB1ENR_SPI2EN;
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN | RCC_APB2ENR_TIM8EN | RCC_APB2ENR_UART9EN |
RCC_APB2ENR_UART10EN | RCC_APB2ENR_ADC1EN | RCC_APB2ENR_SPI1EN | RCC_APB2ENR_SYSCFGEN;
RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
