# 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.

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