/* ****************************************************************************** * @file driver_display.c * @author FreqChip Firmware Team * @version V1.0.0 * @date 2022 * @brief display abstract interfase. ****************************************************************************** * @attention * * Copyright (c) 2022 FreqChip. * All rights reserved. ****************************************************************************** */ #include #include "app_lvgl.h" #include "app_config.h" #include "driver_display.h" #ifdef DISPLAY_TYPE_GC9C01 #include "driver_gc9c01.h" #endif #ifdef DISPLAY_TYPE_JD9854 #include "driver_jd9854.h" #endif #ifdef DISPLAY_TYPE_SH8601A #include "driver_sh8601a.h" #endif #ifdef DISPLAY_TYPE_ICNA3310 #include "driver_icna3310.h" #endif #ifdef DISPLAY_TYPE_SH8601Z #include "driver_sh8601z.h" #endif #ifdef DISPLAY_TYPE_NV3047_RGB #include "driver_nv3047_rgb.h" #endif #ifdef DISPLAY_TYPE_ST7701_RGB #include "driver_st7701_rgb.h" #endif #ifdef DISPLAY_TYPE_NV3041A #include "driver_nv3041a.h" #endif void display_init(void) { #ifdef DISPLAY_TYPE_GC9C01 gc9c01_init(); #endif #ifdef DISPLAY_TYPE_JD9854 jd9854_init(); #endif #ifdef DISPLAY_TYPE_SH8601A sh8601a_init(); #endif #ifdef DISPLAY_TYPE_ICNA3310 icna3310_init(); #endif #ifdef DISPLAY_TYPE_SH8601Z sh8601z_init(); #endif #ifdef DISPLAY_TYPE_NV3047_RGB extern void* get_display_buffer1(void); extern void rgb_display_controller_init(void); rgb_display_controller_init(); rgb_display_init(get_display_buffer1()); #endif #ifdef DISPLAY_TYPE_ST7701_RGB extern void* get_display_buffer1(void); st7701_init(get_display_buffer1()); #endif #ifdef DISPLAY_TYPE_NV3041A nv3041a_init(); #endif } void display_set_window(uint16_t x_s, uint16_t x_e, uint16_t y_s, uint16_t y_e) { #ifdef DISPLAY_TYPE_GC9C01 gc9c01_set_window(x_s, x_e, y_s, y_e); #endif #ifdef DISPLAY_TYPE_JD9854 jd9854_set_window(x_s, x_e, y_s, y_e); #endif #ifdef DISPLAY_TYPE_SH8601A sh8601a_set_window(x_s, x_e, y_s, y_e); #endif #ifdef DISPLAY_TYPE_ICNA3310 icna3310_set_window(x_s, x_e, y_s, y_e); #endif #ifdef DISPLAY_TYPE_SH8601Z sh8601z_set_window(x_s, x_e, y_s, y_e); #endif #ifdef DISPLAY_TYPE_NV3041A nv3041a_set_window(x_s, x_e, y_s, y_e); #endif } void display_update(uint32_t pixel_count, uint8_t pixel_width, void *data) { #ifdef DISPLAY_TYPE_GC9C01 gc9c01_display(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_JD9854 jd9854_display(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_SH8601A sh8601a_display(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_ICNA3310 icna3310_display(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_SH8601Z sh8601z_display(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_NV3041A nv3041a_display(pixel_count, pixel_width, data); #endif } void display_update_dma(uint32_t pixel_count, uint8_t pixel_width, void *data) { #ifdef DISPLAY_TYPE_GC9C01 gc9c01_display_dma(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_JD9854 jd9854_display_dma(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_SH8601A sh8601a_display_dma(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_ICNA3310 icna3310_display_dma(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_SH8601Z sh8601z_display_dma(pixel_count, pixel_width, data); #endif #ifdef DISPLAY_TYPE_NV3047_RGB #endif #ifdef DISPLAY_TYPE_ST7701_RGB #endif #ifdef DISPLAY_TYPE_NV3041A nv3041a_display_dma(pixel_count, pixel_width, data); #endif } void display_power_off(void) { #ifdef DISPLAY_TYPE_SH8601Z sh8601z_power_off(); #endif } void display_power_on(void) { #ifdef DISPLAY_TYPE_SH8601Z sh8601z_power_on(); #endif } void display_update_dma_isr(void) { #ifdef DISPLAY_TYPE_GC9C01 gc9c01_display_dma_isr(); #endif #ifdef DISPLAY_TYPE_JD9854 jd9854_display_dma_isr(); #endif #ifdef DISPLAY_TYPE_SH8601A sh8601a_display_dma_isr(); #endif #ifdef DISPLAY_TYPE_ICNA3310 icna3310_display_dma_isr(); #endif #ifdef DISPLAY_TYPE_SH8601Z sh8601z_display_dma_isr(); #endif #ifdef DISPLAY_TYPE_ST7701_RGB st7701_rgb_display_dma_irq(); #endif #ifdef DISPLAY_TYPE_NV3041A nv3041a_display_dma_isr(); #endif }