drivers: mipi_dbi: introduce MIPI DBI driver class
Introduce MIPI DBI driver class. MIPI DBI devices encompass several
interface types. All interfaces have a data/command, reset, chip select,
and tearing effect signal
Beyond this, MIPI DBI operates in 3 modes:
Mode A- 16/8 data pins, one clock pin, one read/write pin. Similar to
Motorola type 6800 bus
Mode B- 16/8 data pins, one read/write pin. Similar to Intel 8080 bus
Mode C- 1 data output pin, 1 data input pin, one clock pin.
Implementable using SPI peripheral, or MIPI-DBI specific controller.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2023-10-28 06:33:48 +08:00
|
|
|
# Copyright 2023 NXP
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2023-10-28 06:42:32 +08:00
|
|
|
|
|
|
|
zephyr_sources_ifdef(CONFIG_MIPI_DBI_SPI mipi_dbi_spi.c)
|
2023-11-23 19:01:59 +08:00
|
|
|
zephyr_sources_ifdef(CONFIG_MIPI_DBI_SMARTBOND mipi_dbi_smartbond.c)
|
2024-03-14 06:02:09 +08:00
|
|
|
zephyr_sources_ifdef(CONFIG_MIPI_DBI_NXP_LCDIC mipi_dbi_nxp_lcdic.c)
|
2024-04-10 21:43:40 +08:00
|
|
|
zephyr_sources_ifdef(CONFIG_MIPI_DBI_NXP_FLEXIO_LCDIF mipi_dbi_nxp_flexio_lcdif.c)
|
2024-06-27 21:00:55 +08:00
|
|
|
zephyr_sources_ifdef(CONFIG_MIPI_DBI_STM32_FMC mipi_dbi_stm32_fmc.c)
|
2024-04-10 21:43:40 +08:00
|
|
|
# Data bus width is used by the SDK driver and processes it as a compile time option
|
|
|
|
if(CONFIG_MIPI_DBI_NXP_FLEXIO_LCDIF)
|
|
|
|
dt_chosen(flexio0_lcd PROPERTY "zephyr,display")
|
|
|
|
dt_prop(data_bus_width PATH "${flexio0_lcd}" PROPERTY "mipi-mode")
|
|
|
|
# Values for mipi-mode property are defined inside dt-bindings/mipi_dbi/mipi_dbi.h.
|
|
|
|
# We pass a define to the SDK driver if we are using 8-bit mode.
|
|
|
|
if((data_bus_width EQUAL 8) OR (data_bus_width EQUAL 5))
|
|
|
|
zephyr_compile_definitions(FLEXIO_MCULCD_DATA_BUS_WIDTH=8)
|
|
|
|
endif()
|
|
|
|
zephyr_compile_definitions(FLEXIO_MCULCD_LEGACY_GPIO_FUNC=0)
|
|
|
|
endif()
|