53 #define d4dlcdhw_mqx_spi_ID 1
58 #if (D4D_MK_STR(D4D_LLD_LCD_HW) == d4dlcdhw_mqx_spi_ID)
67 #ifndef BSP_LCD_SPI_CHANNEL
68 #error Define BSP_LCD_SPI_CHANNEL in bsp.
71 #ifndef BSP_LCD_DC_MUX_GPIO
73 #define BSP_LCD_DC_MUX_GPIO 1
74 #warning Is not defined BSP_LCD_DC_MUX_GPIO, please check if it's OK default value 1!
76 #define BSP_LCD_DC_MUX_GPIO BSP_LCD_DC_FN
82 #define INIT_GPIO_FAILED 2
83 #define INIT_SPI_FAILED 3
84 #define INIT_SPI_SETTINGS_FAILED 4
88 #if D4D_COLOR_SYSTEM != D4D_COLOR_SYSTEM_RGB565
89 #error The eGUI low level driver "d4dlcdhw_mqx_spi" not supported selected type of D4D_COLOR_SYSTEM. To run this driver just select D4D_COLOR_SYSTEM_RGB565.
95 static unsigned char D4DLCDHW_Init_Mqx(
void);
96 static unsigned char D4DLCDHW_DeInit_Mqx(
void);
97 static void D4DLCDHW_SendDataWord_Mqx(
unsigned short value);
98 static void D4DLCDHW_SendCmdWord_Mqx(
unsigned short cmd);
99 static unsigned short D4DLCDHW_ReadDataWord_Mqx(
void);
100 static unsigned short D4DLCDHW_ReadComWord_Mqx(
void);
109 static FILE_PTR spi_fd;
111 static LWGPIO_STRUCT lcd_dc_pin;
113 #if defined BSP_LCD_RESET
114 static LWGPIO_STRUCT lcd_reset_pin;
117 #if defined BSP_LCD_BACKLIGHT
118 static LWGPIO_STRUCT lcd_backlight_pin;
127 D4DLCDHW_SendDataWord_Mqx,
128 D4DLCDHW_SendCmdWord_Mqx,
129 D4DLCDHW_ReadDataWord_Mqx,
130 D4DLCDHW_ReadComWord_Mqx,
132 D4DLCD_FlushBuffer_Mqx,
158 static unsigned char D4DLCDHW_Init_Mqx(
void)
161 unsigned char result = INIT_OK;
164 if (!lwgpio_init(&lcd_dc_pin, BSP_LCD_DC, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW))
166 printf(
"Initializing LCD_DC GPIO as output failed.\n");
170 lwgpio_set_functionality(&lcd_dc_pin, BSP_LCD_DC_MUX_GPIO);
172 #if defined BSP_LCD_RESET
174 if (!lwgpio_init(&lcd_reset_pin, BSP_LCD_RESET, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_HIGH))
176 printf(
"Initializing LCD_RESET GPIO as output failed.\n");
180 lwgpio_set_functionality(&lcd_reset_pin, BSP_LCD_RESET_MUX_GPIO);
183 #if defined BSP_LCD_BACKLIGHT
185 if (!lwgpio_init(&lcd_backlight_pin, BSP_LCD_BACKLIGHT, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW))
187 printf(
"Initializing LCD_BACKLIGHT GPIO as output failed.\n");
191 lwgpio_set_functionality(&lcd_backlight_pin, BSP_LCD_BACKLIGHT_MUX_GPIO);
195 spi_fd = fopen (BSP_LCD_SPI_CHANNEL,
NULL);
198 result = INIT_SPI_FAILED;
202 param = SPI_CLK_POL_PHA_MODE0;
203 if (SPI_OK != ioctl (spi_fd, IO_IOCTL_SPI_SET_MODE, ¶m))
205 result = INIT_SPI_SETTINGS_FAILED;
209 param = SPI_DEVICE_BIG_ENDIAN;
210 if (SPI_OK != ioctl (spi_fd, IO_IOCTL_SPI_SET_ENDIAN, ¶m))
212 result = INIT_SPI_SETTINGS_FAILED;
216 param = SPI_DEVICE_MASTER_MODE;
217 if (SPI_OK != ioctl (spi_fd, IO_IOCTL_SPI_SET_TRANSFER_MODE, ¶m))
219 result = INIT_SPI_SETTINGS_FAILED;
225 if (SPI_OK != ioctl (spi_fd, IO_IOCTL_SPI_SET_FRAMESIZE, ¶m))
227 result = INIT_SPI_SETTINGS_FAILED;
250 static unsigned char D4DLCDHW_DeInit_Mqx(
void)
266 static void D4DLCDHW_SendDataWord_Mqx(
unsigned short value)
269 unsigned short p_color = ((value & 0xFF00) >> 8) | (( value & 0xFF ) << 8) ;
270 (void)fwrite ( &p_color, 2, 1, spi_fd);
283 static void D4DLCDHW_SendCmdWord_Mqx(
unsigned short cmd)
286 lwgpio_set_value(&lcd_dc_pin, LWGPIO_VALUE_LOW);
288 D4DLCDHW_SendDataWord_Mqx( cmd );
291 lwgpio_set_value(&lcd_dc_pin, LWGPIO_VALUE_HIGH);
305 static unsigned short D4DLCDHW_ReadDataWord_Mqx(
void)
321 static unsigned short D4DLCDHW_ReadComWord_Mqx(
void)
340 #if defined BSP_LCD_RESET
344 lwgpio_set_value(&lcd_reset_pin, LWGPIO_VALUE_HIGH);
348 lwgpio_set_value(&lcd_reset_pin, LWGPIO_VALUE_LOW);
358 #if defined BSP_LCD_BACKLIGHT
362 lwgpio_set_value(&lcd_backlight_pin, LWGPIO_VALUE_HIGH);
366 lwgpio_set_value(&lcd_backlight_pin, LWGPIO_VALUE_LOW);
396 #endif //(D4D_MK_STR(D4D_LLD_LCD_HW) == d4dlcdhw_Mqx_ID)
D4D low level standard LCD Hardware interface API structure.
#define D4D_FALSE
This is definition of boolean operation value in eGUI - FALSE.
D4D Driver main header file.
D4DHW_PIN_STATE
D4D low level MCU pin state enumeration type.
D4DLCD_FLUSH_MODE
D4D low level eGUI flush screen types enumeration.
D4D Driver private header file.
D4DLCDHW_PINS
D4D low level MCU types definition for general LCD screen control signals.
#define NULL
Type definition of null pointer.
Set pin output register to logic 1.
LCD device backlight enable signal.
#define D4D_UNUSED(x)
Macro used just for notify compiler that the input parameter is not used.
Set pin output register to logic 0.
D4D driver - resistive touch screen driver function header file.