diff --git a/drivers/display/Kconfig.ssd16xx b/drivers/display/Kconfig.ssd16xx index ce6788687d..1149ff0369 100644 --- a/drivers/display/Kconfig.ssd16xx +++ b/drivers/display/Kconfig.ssd16xx @@ -10,6 +10,7 @@ config SSD16XX DT_HAS_SOLOMON_SSD1608_ENABLED || \ DT_HAS_SOLOMON_SSD1673_ENABLED || \ DT_HAS_SOLOMON_SSD1675A_ENABLED || \ + DT_HAS_SOLOMON_SSD1680_ENABLED || \ DT_HAS_SOLOMON_SSD1681_ENABLED select SPI help diff --git a/drivers/display/ssd16xx.c b/drivers/display/ssd16xx.c index 973347fc15..51d0fd9e31 100644 --- a/drivers/display/ssd16xx.c +++ b/drivers/display/ssd16xx.c @@ -990,6 +990,17 @@ static struct ssd16xx_quirks quirks_solomon_ssd1675a = { }; #endif +#if DT_HAS_COMPAT_STATUS_OKAY(solomon_ssd1680) +static const struct ssd16xx_quirks quirks_solomon_ssd1680 = { + .max_width = 296, + .max_height = 176, + .pp_width_bits = 8, + .pp_height_bits = 16, + .ctrl2_full = SSD16XX_GEN2_CTRL2_DISPLAY, + .ctrl2_partial = SSD16XX_GEN2_CTRL2_DISPLAY | SSD16XX_GEN2_CTRL2_MODE2, +}; +#endif + #if DT_HAS_COMPAT_STATUS_OKAY(solomon_ssd1681) static struct ssd16xx_quirks quirks_solomon_ssd1681 = { .max_width = 200, @@ -1087,5 +1098,7 @@ DT_FOREACH_STATUS_OKAY_VARGS(solomon_ssd1673, SSD16XX_DEFINE, &quirks_solomon_ssd1673); DT_FOREACH_STATUS_OKAY_VARGS(solomon_ssd1675a, SSD16XX_DEFINE, &quirks_solomon_ssd1675a); +DT_FOREACH_STATUS_OKAY_VARGS(solomon_ssd1680, SSD16XX_DEFINE, + &quirks_solomon_ssd1680); DT_FOREACH_STATUS_OKAY_VARGS(solomon_ssd1681, SSD16XX_DEFINE, &quirks_solomon_ssd1681); diff --git a/dts/bindings/display/solomon,ssd1680.yaml b/dts/bindings/display/solomon,ssd1680.yaml new file mode 100644 index 0000000000..f9de5ff2b2 --- /dev/null +++ b/dts/bindings/display/solomon,ssd1680.yaml @@ -0,0 +1,8 @@ +# Copyright (c) 2022 Andreas Sandberg +# SPDX-License-Identifier: Apache-2.0 + +description: Solomon Systech SSD1680 296x176 EPD display controller + +compatible: "solomon,ssd1680" + +include: solomon,ssd16xx-common.yaml