# Kconfig - Microbit display driver configuration options

#
# Copyright (c) 2017 Jan Van Winkel <jan.van_winkel@dxplore.eu>
#
# SPDX-License-Identifier: Apache-2.0
#

config MICROBIT_DISPLAY
	bool "BBC micro:bit 5x5 LED Display support"
	depends on BOARD_BBC_MICROBIT
	depends on PRINTK
	depends on GPIO
	help
	  Enable this to be able to display images and text on the 5x5
	  LED matrix display on the BBC micro:bit.

if MICROBIT_DISPLAY

config MICROBIT_DISPLAY_STR_MAX
	int "Maximum length of strings that can be shown on the display"
	range 3 255
	default 40
	help
	  This value specifies the maximum length of strings that can
	  be displayed using the mb_display_string() and mb_display_print()
	  APIs.

endif # MICROBIT_DISPLAY
