diff --git a/src/omv/boards/OPENMV2/omv_boardconfig.h b/src/omv/boards/OPENMV2/omv_boardconfig.h index 36ff04ac2..ae7f9833c 100644 --- a/src/omv/boards/OPENMV2/omv_boardconfig.h +++ b/src/omv/boards/OPENMV2/omv_boardconfig.h @@ -231,4 +231,43 @@ #define SOFT_I2C_SPIN_DELAY 16 +// SPI LCD Interface +#define OMV_SPI_LCD_CONTROLLER (&spi_obj[1]) +#define OMV_SPI_LCD_CONTROLLER_INSTANCE (SPI2) + +#define OMV_SPI_LCD_MOSI_PIN (GPIO_PIN_15) +#define OMV_SPI_LCD_MOSI_PORT (GPIOB) +#define OMV_SPI_LCD_MOSI_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_SCLK_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_SCLK_PORT (GPIOB) +#define OMV_SPI_LCD_SCLK_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_RST_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_RST_PORT (GPIOD) +#define OMV_SPI_LCD_RST_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RST_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_RS_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_RS_PORT (GPIOD) +#define OMV_SPI_LCD_RS_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RS_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_CS_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_CS_PORT (GPIOB) +#define OMV_SPI_LCD_CS_HIGH() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_CS_LOW() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_PIN (GPIO_PIN_5) +#define OMV_SPI_LCD_BL_PORT (GPIOA) +#define OMV_SPI_LCD_BL_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_DAC (DAC) +#define OMV_SPI_LCD_BL_DAC_CHANNEL (DAC_CHANNEL_2) +#define OMV_SPI_LCD_BL_DAC_CLK_ENABLE() __HAL_RCC_DAC_CLK_ENABLE() +#define OMV_SPI_LCD_BL_DAC_CLK_DISABLE() __HAL_RCC_DAC_CLK_DISABLE() +#define OMV_SPI_LCD_BL_DAC_FORCE_RESET() __HAL_RCC_DAC_FORCE_RESET() +#define OMV_SPI_LCD_BL_DAC_RELEASE_RESET() __HAL_RCC_DAC_RELEASE_RESET() + #endif //__OMV_BOARDCONFIG_H__ diff --git a/src/omv/boards/OPENMV3/omv_boardconfig.h b/src/omv/boards/OPENMV3/omv_boardconfig.h index c36fba784..27fa92f4f 100644 --- a/src/omv/boards/OPENMV3/omv_boardconfig.h +++ b/src/omv/boards/OPENMV3/omv_boardconfig.h @@ -232,4 +232,43 @@ #define SOFT_I2C_SPIN_DELAY 24 +// SPI LCD Interface +#define OMV_SPI_LCD_CONTROLLER (&spi_obj[1]) +#define OMV_SPI_LCD_CONTROLLER_INSTANCE (SPI2) + +#define OMV_SPI_LCD_MOSI_PIN (GPIO_PIN_15) +#define OMV_SPI_LCD_MOSI_PORT (GPIOB) +#define OMV_SPI_LCD_MOSI_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_SCLK_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_SCLK_PORT (GPIOB) +#define OMV_SPI_LCD_SCLK_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_RST_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_RST_PORT (GPIOD) +#define OMV_SPI_LCD_RST_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RST_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_RS_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_RS_PORT (GPIOD) +#define OMV_SPI_LCD_RS_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RS_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_CS_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_CS_PORT (GPIOB) +#define OMV_SPI_LCD_CS_HIGH() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_CS_LOW() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_PIN (GPIO_PIN_5) +#define OMV_SPI_LCD_BL_PORT (GPIOA) +#define OMV_SPI_LCD_BL_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_DAC (DAC) +#define OMV_SPI_LCD_BL_DAC_CHANNEL (DAC_CHANNEL_2) +#define OMV_SPI_LCD_BL_DAC_CLK_ENABLE() __HAL_RCC_DAC_CLK_ENABLE() +#define OMV_SPI_LCD_BL_DAC_CLK_DISABLE() __HAL_RCC_DAC_CLK_DISABLE() +#define OMV_SPI_LCD_BL_DAC_FORCE_RESET() __HAL_RCC_DAC_FORCE_RESET() +#define OMV_SPI_LCD_BL_DAC_RELEASE_RESET() __HAL_RCC_DAC_RELEASE_RESET() + #endif //__OMV_BOARDCONFIG_H__ diff --git a/src/omv/boards/OPENMV4/omv_boardconfig.h b/src/omv/boards/OPENMV4/omv_boardconfig.h index c8d3f42b0..1cbba83fb 100644 --- a/src/omv/boards/OPENMV4/omv_boardconfig.h +++ b/src/omv/boards/OPENMV4/omv_boardconfig.h @@ -344,4 +344,43 @@ #define IMU_SPI_MOSI_PORT (GPIOB) #define IMU_SPI_SSEL_PORT (GPIOA) +// SPI LCD Interface +#define OMV_SPI_LCD_CONTROLLER (&spi_obj[1]) +#define OMV_SPI_LCD_CONTROLLER_INSTANCE (SPI2) + +#define OMV_SPI_LCD_MOSI_PIN (GPIO_PIN_15) +#define OMV_SPI_LCD_MOSI_PORT (GPIOB) +#define OMV_SPI_LCD_MOSI_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_SCLK_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_SCLK_PORT (GPIOB) +#define OMV_SPI_LCD_SCLK_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_RST_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_RST_PORT (GPIOD) +#define OMV_SPI_LCD_RST_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RST_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_RS_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_RS_PORT (GPIOD) +#define OMV_SPI_LCD_RS_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RS_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_CS_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_CS_PORT (GPIOB) +#define OMV_SPI_LCD_CS_HIGH() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_CS_LOW() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_PIN (GPIO_PIN_5) +#define OMV_SPI_LCD_BL_PORT (GPIOA) +#define OMV_SPI_LCD_BL_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_DAC (DAC1) +#define OMV_SPI_LCD_BL_DAC_CHANNEL (DAC_CHANNEL_2) +#define OMV_SPI_LCD_BL_DAC_CLK_ENABLE() __HAL_RCC_DAC12_CLK_ENABLE() +#define OMV_SPI_LCD_BL_DAC_CLK_DISABLE() __HAL_RCC_DAC12_CLK_DISABLE() +#define OMV_SPI_LCD_BL_DAC_FORCE_RESET() __HAL_RCC_DAC12_FORCE_RESET() +#define OMV_SPI_LCD_BL_DAC_RELEASE_RESET() __HAL_RCC_DAC12_RELEASE_RESET() + #endif //__OMV_BOARDCONFIG_H__ diff --git a/src/omv/boards/OPENMV4P/omv_boardconfig.h b/src/omv/boards/OPENMV4P/omv_boardconfig.h index 92c04474c..db814fcce 100644 --- a/src/omv/boards/OPENMV4P/omv_boardconfig.h +++ b/src/omv/boards/OPENMV4P/omv_boardconfig.h @@ -383,6 +383,45 @@ #define QSPIF_D2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE() #define QSPIF_D3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE() +// SPI LCD Interface +#define OMV_SPI_LCD_CONTROLLER (&spi_obj[1]) +#define OMV_SPI_LCD_CONTROLLER_INSTANCE (SPI2) + +#define OMV_SPI_LCD_MOSI_PIN (GPIO_PIN_15) +#define OMV_SPI_LCD_MOSI_PORT (GPIOB) +#define OMV_SPI_LCD_MOSI_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_SCLK_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_SCLK_PORT (GPIOB) +#define OMV_SPI_LCD_SCLK_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_RST_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_RST_PORT (GPIOD) +#define OMV_SPI_LCD_RST_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RST_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_RS_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_RS_PORT (GPIOD) +#define OMV_SPI_LCD_RS_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RS_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_CS_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_CS_PORT (GPIOB) +#define OMV_SPI_LCD_CS_HIGH() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_CS_LOW() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_PIN (GPIO_PIN_5) +#define OMV_SPI_LCD_BL_PORT (GPIOA) +#define OMV_SPI_LCD_BL_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_DAC (DAC1) +#define OMV_SPI_LCD_BL_DAC_CHANNEL (DAC_CHANNEL_2) +#define OMV_SPI_LCD_BL_DAC_CLK_ENABLE() __HAL_RCC_DAC12_CLK_ENABLE() +#define OMV_SPI_LCD_BL_DAC_CLK_DISABLE() __HAL_RCC_DAC12_CLK_DISABLE() +#define OMV_SPI_LCD_BL_DAC_FORCE_RESET() __HAL_RCC_DAC12_FORCE_RESET() +#define OMV_SPI_LCD_BL_DAC_RELEASE_RESET() __HAL_RCC_DAC12_RELEASE_RESET() + // Enable additional GPIO banks for DRAM... #define OMV_ENABLE_GPIO_BANK_F #define OMV_ENABLE_GPIO_BANK_G diff --git a/src/omv/boards/OPENMVPURETHERMAL/omv_boardconfig.h b/src/omv/boards/OPENMVPURETHERMAL/omv_boardconfig.h index 9600bb8e9..093828a66 100644 --- a/src/omv/boards/OPENMVPURETHERMAL/omv_boardconfig.h +++ b/src/omv/boards/OPENMVPURETHERMAL/omv_boardconfig.h @@ -397,6 +397,12 @@ #define QSPIF_D3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOF_CLK_ENABLE() // LCD Interface +#define OMV_LCD_CONTROLLER (LTDC) +#define OMV_LCD_CLK_ENABLE() __HAL_RCC_LTDC_CLK_ENABLE() +#define OMV_LCD_CLK_DISABLE() __HAL_RCC_LTDC_CLK_DISABLE() +#define OMV_LCD_FORCE_RESET() __HAL_RCC_LTDC_FORCE_RESET() +#define OMV_LCD_RELEASE_RESET() __HAL_RCC_LTDC_RELEASE_RESET() + #define OMV_LCD_R0_PIN (GPIO_PIN_13) #define OMV_LCD_R1_PIN (GPIO_PIN_2) #define OMV_LCD_R2_PIN (GPIO_PIN_1) @@ -415,14 +421,14 @@ #define OMV_LCD_R6_PORT (GPIOJ) #define OMV_LCD_R7_PORT (GPIOJ) -#define OMV_LCD_R0_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R1_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R2_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R3_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R4_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R5_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R6_ALT (GPIO_AF14_LCD) -#define OMV_LCD_R7_ALT (GPIO_AF9_LCD) +#define OMV_LCD_R0_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R1_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R2_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R3_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R4_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R5_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R6_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_R7_ALT (GPIO_AF9_LTDC) #define OMV_LCD_G0_PIN (GPIO_PIN_7) #define OMV_LCD_G1_PIN (GPIO_PIN_8) @@ -442,14 +448,14 @@ #define OMV_LCD_G6_PORT (GPIOI) #define OMV_LCD_G7_PORT (GPIOD) -#define OMV_LCD_G0_ALT (GPIO_AF14_LCD) -#define OMV_LCD_G1_ALT (GPIO_AF14_LCD) -#define OMV_LCD_G2_ALT (GPIO_AF14_LCD) -#define OMV_LCD_G3_ALT (GPIO_AF9_LCD) -#define OMV_LCD_G4_ALT (GPIO_AF14_LCD) -#define OMV_LCD_G5_ALT (GPIO_AF14_LCD) -#define OMV_LCD_G6_ALT (GPIO_AF9_LCD) -#define OMV_LCD_G7_ALT (GPIO_AF14_LCD) +#define OMV_LCD_G0_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_G1_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_G2_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_G3_ALT (GPIO_AF9_LTDC) +#define OMV_LCD_G4_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_G5_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_G6_ALT (GPIO_AF9_LTDC) +#define OMV_LCD_G7_ALT (GPIO_AF14_LTDC) #define OMV_LCD_B0_PIN (GPIO_PIN_14) #define OMV_LCD_B1_PIN (GPIO_PIN_12) @@ -469,38 +475,89 @@ #define OMV_LCD_B6_PORT (GPIOK) #define OMV_LCD_B7_PORT (GPIOK) -#define OMV_LCD_B0_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B1_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B2_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B3_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B4_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B5_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B6_ALT (GPIO_AF14_LCD) -#define OMV_LCD_B7_ALT (GPIO_AF14_LCD) +#define OMV_LCD_B0_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B1_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B2_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B3_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B4_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B5_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B6_ALT (GPIO_AF14_LTDC) +#define OMV_LCD_B7_ALT (GPIO_AF14_LTDC) #define OMV_LCD_CLK_PIN (GPIO_PIN_14) #define OMV_LCD_CLK_PORT (GPIOI) -#define OMV_LCD_CLK_ALT (GPIO_AF14_LCD) +#define OMV_LCD_CLK_ALT (GPIO_AF14_LTDC) #define OMV_LCD_DE_PIN (GPIO_PIN_7) #define OMV_LCD_DE_PORT (GPIOK) -#define OMV_LCD_DE_ALT (GPIO_AF14_LCD) +#define OMV_LCD_DE_ALT (GPIO_AF14_LTDC) #define OMV_LCD_HSYNC_PIN (GPIO_PIN_12) #define OMV_LCD_HSYNC_PORT (GPIOI) -#define OMV_LCD_HSYNC_ALT (GPIO_AF14_LCD) +#define OMV_LCD_HSYNC_ALT (GPIO_AF14_LTDC) #define OMV_LCD_VSYNC_PIN (GPIO_PIN_13) #define OMV_LCD_VSYNC_PORT (GPIOI) -#define OMV_LCD_VSYNC_ALT (GPIO_AF14_LCD) +#define OMV_LCD_VSYNC_ALT (GPIO_AF14_LTDC) #define OMV_LCD_DISP_PIN (GPIO_PIN_9) #define OMV_LCD_DISP_PORT (GPIOG) +#define OMV_LCD_DISP_ON() HAL_GPIO_WritePin(OMV_LCD_DISP_PORT, OMV_LCD_DISP_PIN, GPIO_PIN_SET) +#define OMV_LCD_DISP_OFF() HAL_GPIO_WritePin(OMV_LCD_DISP_PORT, OMV_LCD_DISP_PIN, GPIO_PIN_RESET) #define OMV_LCD_BL_PIN (GPIO_PIN_0) #define OMV_LCD_BL_PORT (GPIOB) #define OMV_LCD_BL_ALT (GPIO_AF2_TIM3) #define OMV_LCD_BL_FREQ (100000) +#define OMV_LCD_BL_ON() HAL_GPIO_WritePin(OMV_LCD_BL_PORT, OMV_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_LCD_BL_PORT, OMV_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_LCD_BL_TIM (TIM3) +#define OMV_LCD_BL_TIM_CHANNEL (TIM_CHANNEL_2) +#define OMV_LCD_BL_TIM_CLK_ENABLE() __HAL_RCC_TIM3_CLK_ENABLE() +#define OMV_LCD_BL_TIM_CLK_DISABLE() __HAL_RCC_TIM3_CLK_DISABLE() +#define OMV_LCD_BL_TIM_FORCE_RESET() __HAL_RCC_TIM3_FORCE_RESET() +#define OMV_LCD_BL_TIM_RELEASE_RESET() __HAL_RCC_TIM3_RELEASE_RESET() +#define OMV_LCD_BL_TIM_PCLK_FREQ() HAL_RCC_GetPCLK1Freq() + +// SPI LCD Interface +#define OMV_SPI_LCD_CONTROLLER (&spi_obj[1]) +#define OMV_SPI_LCD_CONTROLLER_INSTANCE (SPI2) + +#define OMV_SPI_LCD_MOSI_PIN (GPIO_PIN_15) +#define OMV_SPI_LCD_MOSI_PORT (GPIOB) +#define OMV_SPI_LCD_MOSI_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_SCLK_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_SCLK_PORT (GPIOB) +#define OMV_SPI_LCD_SCLK_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_RST_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_RST_PORT (GPIOD) +#define OMV_SPI_LCD_RST_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RST_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_RS_PIN (GPIO_PIN_13) +#define OMV_SPI_LCD_RS_PORT (GPIOD) +#define OMV_SPI_LCD_RS_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RS_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_CS_PIN (GPIO_PIN_12) +#define OMV_SPI_LCD_CS_PORT (GPIOB) +#define OMV_SPI_LCD_CS_HIGH() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_CS_LOW() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_PIN (GPIO_PIN_5) +#define OMV_SPI_LCD_BL_PORT (GPIOA) +#define OMV_SPI_LCD_BL_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_DAC (DAC1) +#define OMV_SPI_LCD_BL_DAC_CHANNEL (DAC_CHANNEL_2) +#define OMV_SPI_LCD_BL_DAC_CLK_ENABLE() __HAL_RCC_DAC12_CLK_ENABLE() +#define OMV_SPI_LCD_BL_DAC_CLK_DISABLE() __HAL_RCC_DAC12_CLK_DISABLE() +#define OMV_SPI_LCD_BL_DAC_FORCE_RESET() __HAL_RCC_DAC12_FORCE_RESET() +#define OMV_SPI_LCD_BL_DAC_RELEASE_RESET() __HAL_RCC_DAC12_RELEASE_RESET() // Touch Screen I/O #define OMV_TOUCH_RESET_PIN (GPIO_PIN_9) diff --git a/src/omv/boards/PORTENTA/omv_boardconfig.h b/src/omv/boards/PORTENTA/omv_boardconfig.h index 373b29b23..415d37390 100644 --- a/src/omv/boards/PORTENTA/omv_boardconfig.h +++ b/src/omv/boards/PORTENTA/omv_boardconfig.h @@ -316,10 +316,64 @@ // #define AUDIO_SAI_CLK_DISABLE() __HAL_RCC_SAI1_CLK_DISABLE() // #define AUDIO_SAI_DMA_CLK_ENABLE() __HAL_RCC_DMA2_CLK_ENABLE() +// LCD Interface +#define OMV_LCD_CONTROLLER (LTDC) +#define OMV_LCD_CLK_ENABLE() __HAL_RCC_LTDC_CLK_ENABLE() +#define OMV_LCD_CLK_DISABLE() __HAL_RCC_LTDC_CLK_DISABLE() +#define OMV_LCD_FORCE_RESET() __HAL_RCC_LTDC_FORCE_RESET() +#define OMV_LCD_RELEASE_RESET() __HAL_RCC_LTDC_RELEASE_RESET() + +// DSI Interface +#define OMV_DSI_CONTROLLER (DSI) +#define OMV_DSI_CLK_ENABLE() __HAL_RCC_DSI_CLK_ENABLE() +#define OMV_DSI_CLK_DISABLE() __HAL_RCC_DSI_CLK_DISABLE() +#define OMV_DSI_FORCE_RESET() __HAL_RCC_DSI_FORCE_RESET() +#define OMV_DSI_RELEASE_RESET() __HAL_RCC_DSI_RELEASE_RESET() + +// SPI LCD Interface +#define OMV_SPI_LCD_CONTROLLER (&spi_obj[1]) +#define OMV_SPI_LCD_CONTROLLER_INSTANCE (SPI2) + +#define OMV_SPI_LCD_MOSI_PIN (GPIO_PIN_3) +#define OMV_SPI_LCD_MOSI_PORT (GPIOC) +#define OMV_SPI_LCD_MOSI_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_SCLK_PIN (GPIO_PIN_1) +#define OMV_SPI_LCD_SCLK_PORT (GPIOI) +#define OMV_SPI_LCD_SCLK_ALT (GPIO_AF5_SPI2) + +#define OMV_SPI_LCD_RST_PIN (GPIO_PIN_15) +#define OMV_SPI_LCD_RST_PORT (GPIOH) +#define OMV_SPI_LCD_RST_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RST_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RST_PORT, OMV_SPI_LCD_RST_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_RS_PIN (GPIO_PIN_1) +#define OMV_SPI_LCD_RS_PORT (GPIOK) +#define OMV_SPI_LCD_RS_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_RS_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_RS_PORT, OMV_SPI_LCD_RS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_CS_PIN (GPIO_PIN_8) +#define OMV_SPI_LCD_CS_PORT (GPIOI) +#define OMV_SPI_LCD_CS_HIGH() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_CS_LOW() HAL_GPIO_WritePin(OMV_SPI_LCD_CS_PORT, OMV_SPI_LCD_CS_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_PIN (GPIO_PIN_4) +#define OMV_SPI_LCD_BL_PORT (GPIOA) +#define OMV_SPI_LCD_BL_ON() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_SET) +#define OMV_SPI_LCD_BL_OFF() HAL_GPIO_WritePin(OMV_SPI_LCD_BL_PORT, OMV_SPI_LCD_BL_PIN, GPIO_PIN_RESET) + +#define OMV_SPI_LCD_BL_DAC (DAC1) +#define OMV_SPI_LCD_BL_DAC_CHANNEL (DAC_CHANNEL_1) +#define OMV_SPI_LCD_BL_DAC_CLK_ENABLE() __HAL_RCC_DAC12_CLK_ENABLE() +#define OMV_SPI_LCD_BL_DAC_CLK_DISABLE() __HAL_RCC_DAC12_CLK_DISABLE() +#define OMV_SPI_LCD_BL_DAC_FORCE_RESET() __HAL_RCC_DAC12_FORCE_RESET() +#define OMV_SPI_LCD_BL_DAC_RELEASE_RESET() __HAL_RCC_DAC12_RELEASE_RESET() + // Enable additional GPIO banks for DRAM... #define OMV_ENABLE_GPIO_BANK_F #define OMV_ENABLE_GPIO_BANK_G #define OMV_ENABLE_GPIO_BANK_H #define OMV_ENABLE_GPIO_BANK_I #define OMV_ENABLE_GPIO_BANK_J + #endif //__OMV_BOARDCONFIG_H__