Hey,
So, I managed to get the display and touch screen working (I will assume it is not optimal and will keep thinking of a way to do it better).
I attached my board_STM32LTDC.h and gmouse_lld_FT6x06_board.h files (I tried doing pure I2C calls for the gmouse file, but there were some issues where it just kept thinking I am touching when I am not actually doing anything.
The board_STM32LTDC.h file I implemented does whatever inakto had with the BSP_LCD_InitEx, however, since you already had the (sync, back and front porch already implemented, I took that out and I made sure that your function _ltdc_init happens in the right order. The values for (static const ltdcConfig driverCfg) I took from the BSP_LCD settings.
gdisp_lld_STM32LTDC.c file:
I added inside static void _ltdc_init(void): (this was causing the shift in the display)
// Enable the LTDC clock
#if defined(STM32F469xx)
RCC->DCKCFGR = (RCC->DCKCFGR & ~RCC_DCKCFGR_PLLSAIDIVR);
gmouse_lld_FT6x06.c file:
I commented out the aquire_bus and release_bus calls (I didn't see a need for them even when using I2C):
I added breaks inside the [static bool_t read_xyz(GMouse* m, GMouseReading* pdr)] function for the GDISP_ROTATE_0 and the GDISP_ROTATE_90 case; The function was treating the GDISP_ROTATE_0 case as a GDISP_ROTATE_180 without the break and the touches were not registering correctly.
I attempted to get PNG images displayed and I am getting a GDISP_IMAGE_ERR_NOMEMORY error, I still need to look into it to figure things out, however, I am able to display BMP images nicely without any loss in the image quality (at least for my eyes)
Let me know if what I did in these files is correct or if you have any comments on how I can improve it.
Regards,
board_STM32LTDC.h
gmouse_lld_FT6x06_board.h
gmouse_lld_FT6x06.c
gdisp_lld_STM32LTDC.c