From 7cb29732489f660c5ecd80f1edf2a30d6b5b1c28 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sun, 20 Mar 2022 19:10:47 +0100 Subject: [PATCH] gt911: enable clocks in driver --- radio/src/targets/horus/board.cpp | 4 +--- radio/src/targets/horus/hal.h | 5 ----- radio/src/targets/horus/tp_gt911.cpp | 23 +++++++++++++++++++---- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index e27fbb35b..afc2f8436 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -122,9 +122,7 @@ void boardInit() HAPTIC_RCC_AHB1Periph | INTMODULE_RCC_AHB1Periph | EXTMODULE_RCC_AHB1Periph | - SPORT_UPDATE_RCC_AHB1Periph | - TOUCH_INT_RCC_AHB1Periph | - TOUCH_RST_RCC_AHB1Periph, + SPORT_UPDATE_RCC_AHB1Periph, ENABLE); RCC_APB1PeriphClockCmd(ROTARY_ENCODER_RCC_APB1Periph | diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index b1dade5f3..d351973b4 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -696,11 +696,9 @@ #define TOUCH_I2C_BUS I2C_Bus_1 #define TOUCH_I2C_CLK_RATE 400000 - #define TOUCH_INT_RCC_AHB1Periph RCC_AHB1Periph_GPIOH #define TOUCH_INT_GPIO GPIOH #define TOUCH_INT_GPIO_PIN LL_GPIO_PIN_2 // PH.02 - #define TOUCH_RST_RCC_AHB1Periph RCC_AHB1Periph_GPIOF #define TOUCH_RST_GPIO GPIOF #if defined(PCBX12S) #define TOUCH_RST_GPIO_PIN LL_GPIO_PIN_7 // PF.7 @@ -718,9 +716,6 @@ #define TOUCH_INT_EXTI_SysCfgLine LL_SYSCFG_EXTI_LINE2 #define TOUCH_INT_EXTI_IRQn EXTI2_IRQn #define TOUCH_INT_EXTI_IRQHandler EXTI2_IRQHandler -#else - #define TOUCH_INT_RCC_AHB1Periph 0 - #define TOUCH_RST_RCC_AHB1Periph 0 #endif // First I2C Bus diff --git a/radio/src/targets/horus/tp_gt911.cpp b/radio/src/targets/horus/tp_gt911.cpp index f49a96d94..502a1b707 100644 --- a/radio/src/targets/horus/tp_gt911.cpp +++ b/radio/src/targets/horus/tp_gt911.cpp @@ -20,6 +20,7 @@ */ #include "stm32_hal_ll.h" +#include "stm32_hal.h" #include "stm32_i2c_driver.h" #include "hal.h" @@ -465,16 +466,32 @@ static void TOUCH_AF_ExtiConfig(void) NVIC_EnableIRQ(TOUCH_INT_EXTI_IRQn); } +static int gt911_enable_gpio_clock(GPIO_TypeDef *GPIOx) +{ + if (GPIOx == GPIOF) + __HAL_RCC_GPIOF_CLK_ENABLE(); + else if (GPIOx == GPIOH) + __HAL_RCC_GPIOH_CLK_ENABLE(); + else + return -1; + + return 0; +} + static void TOUCH_AF_GPIOConfig(void) { LL_GPIO_InitTypeDef gpioInit; LL_GPIO_StructInit(&gpioInit); - gpioInit.Pin = TOUCH_RST_GPIO_PIN; + gt911_enable_gpio_clock(TOUCH_RST_GPIO); + gt911_enable_gpio_clock(TOUCH_INT_GPIO); + gpioInit.Mode = LL_GPIO_MODE_OUTPUT; gpioInit.Speed = LL_GPIO_SPEED_FREQ_HIGH; gpioInit.OutputType = LL_GPIO_OUTPUT_PUSHPULL; gpioInit.Pull = LL_GPIO_PULL_NO; + + gpioInit.Pin = TOUCH_RST_GPIO_PIN; LL_GPIO_Init(TOUCH_RST_GPIO, &gpioInit); LL_GPIO_ResetOutputPin(TOUCH_RST_GPIO, TOUCH_RST_GPIO_PIN); @@ -498,14 +515,12 @@ void TOUCH_AF_INT_Change(void) void I2C_Init_Radio(void) { - TRACE("I2C B1 Init"); + TRACE("GT911 I2C Init"); if (stm32_i2c_init(TOUCH_I2C_BUS, TOUCH_I2C_CLK_RATE) < 0) { TRACE("GT911 ERROR: stm32_i2c_init failed"); return; } - - } bool I2C_GT911_WriteRegister(uint16_t reg, uint8_t *buf, uint8_t len)