# ST7789V display driver configuration options

# Copyright (c) 2019 Marc Reilly <marc@cpdesign.com.au>
# SPDX-License-Identifier: Apache-2.0

menuconfig ST7789V
	bool "ST7789V display driver"
	depends on SPI
	help
	  Enable driver for ST7789V display driver.

if ST7789V

choice
	prompt "LCD"
	help
	  Specify the type of LCD connected to the ST7789V display controller.

config ST7789V_LCD_TL019FQV01
	bool "TDO TL019FQV01"

endchoice

choice
	prompt "Color pixel format"
	default ST7789V_RGB565
	help
	  Specify the color pixel format for the ST7789V display controller.

config ST7789V_RGB888
	bool "RGB888"

config ST7789V_RGB565
	bool "RGB565"

endchoice

if ST7789V_RGB565
config ST7789V_SWAP_PIXEL_LCD_ENDIANNESS
	bool "Swap pixel endianness at LCD"
	help
	  Pixel data bytes are swapped when being blitted to the LCD.
	  Note that this isn't just a swap of RGB <--> BGR, (if the endianness is
	  swapped then the 3 lowest bits of G are sent first/last).
	  You may want to enable this if you are using lvgl and your colors
	  don't look right.

config ST7789V_REVERSE_LCD_RGB_ORDER
	bool "Reverse draw order of controller ram to LCD"
	help
	  This reverses the order that the controller draws RGB to the LCD.

config ST7789V_REVERSE_X
	bool "Reverse X axis"
	help
	  Address pixels from right to left.

config ST7789V_REVERSE_Y
	bool "Reverse Y axis"
	help
	  Address pixels from bottom to top.

endif # ST7789V_RGB565

endif # ST7789V
