zephyr/drivers/display/Kconfig.ssd16xx

18 lines
490 B
Plaintext
Raw Permalink Normal View History

# SSD16XX display controller configuration options
# Copyright (c) 2018 Phytec Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0
config SSD16XX
bool "SSD16XX compatible display controller driver"
default y
drivers: ssd16xx: Use device-specific compatibles The SSD16xx driver currently provides basic support for most chips in the Solomon Systech SSD16xx range of e-paper drivers. We currently use the SSD1608, SSD1673, SSD1675A, and SSD1681 in various boards supported by Zephyr. The main user-facing difference between the various SSD16xx chips is the resolution they support (sources & gates), but there are other differences as well. For example: * 8 or 16 bits used to represent x coordinates * 8 or 16 bits used to represent y coordinates * Differences in refresh configuration (SSD16XX_CMD_UPDATE_CTRL2) * Differences in LUT sizes The driver currently assumes that the user specifies the number of bits used to describe coordinates. However, as we add support for more chips, more of the differences will become apparent and need workaround. Comparing data sheets from different chips in the SSD16xx range suggests that there are (at least) two different generations present. These differ in the size of the LUTs they expect and the way they handle partial refresh. This impacts register layout where SSD16XX_CMD_UPDATE_CTRL2 uses bit 3 selects "mode 2" whereas older devices uses this for a mode referred to as "initial". In order to add support for partial refresh in newer devices, we need to be able to distinguish between the different generations of the chip. It might be possible to add a DT property to indicate the revision, but that seems like a bit of an anti-pattern and it would be hard for users to specify the correct chip generation. This change introduces chip-specific compatible strings instead of the generic SSD16xx. There is unfortunately clear pattern that can be used to distinguish different generations, so the full chip name must be specified. A benefit of this is that we don't need to specify the width of the fields describing coordinates in device trees. Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2022-07-16 18:11:46 +08:00
depends on \
DT_HAS_SOLOMON_SSD1608_ENABLED || \
DT_HAS_SOLOMON_SSD1673_ENABLED || \
DT_HAS_SOLOMON_SSD1675A_ENABLED || \
DT_HAS_SOLOMON_SSD1680_ENABLED || \
drivers: ssd16xx: Use device-specific compatibles The SSD16xx driver currently provides basic support for most chips in the Solomon Systech SSD16xx range of e-paper drivers. We currently use the SSD1608, SSD1673, SSD1675A, and SSD1681 in various boards supported by Zephyr. The main user-facing difference between the various SSD16xx chips is the resolution they support (sources & gates), but there are other differences as well. For example: * 8 or 16 bits used to represent x coordinates * 8 or 16 bits used to represent y coordinates * Differences in refresh configuration (SSD16XX_CMD_UPDATE_CTRL2) * Differences in LUT sizes The driver currently assumes that the user specifies the number of bits used to describe coordinates. However, as we add support for more chips, more of the differences will become apparent and need workaround. Comparing data sheets from different chips in the SSD16xx range suggests that there are (at least) two different generations present. These differ in the size of the LUTs they expect and the way they handle partial refresh. This impacts register layout where SSD16XX_CMD_UPDATE_CTRL2 uses bit 3 selects "mode 2" whereas older devices uses this for a mode referred to as "initial". In order to add support for partial refresh in newer devices, we need to be able to distinguish between the different generations of the chip. It might be possible to add a DT property to indicate the revision, but that seems like a bit of an anti-pattern and it would be hard for users to specify the correct chip generation. This change introduces chip-specific compatible strings instead of the generic SSD16xx. There is unfortunately clear pattern that can be used to distinguish different generations, so the full chip name must be specified. A benefit of this is that we don't need to specify the width of the fields describing coordinates in device trees. Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2022-07-16 18:11:46 +08:00
DT_HAS_SOLOMON_SSD1681_ENABLED
select MIPI_DBI
help
Enable driver for SSD16XX compatible controller.