shields: Add a GDEW042T2 with fast partial refresh

Add GoodDisplay GDEW042T2 with fast partial refresh. Based on
configuration from GoodDisplay's Arduino example.

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
This commit is contained in:
Andreas Sandberg 2022-07-17 22:02:38 +01:00 committed by Carles Cufí
commit fd62b9fc7d
4 changed files with 99 additions and 2 deletions

View file

@ -5,7 +5,7 @@
# SPDX-License-Identifier: Apache-2.0
#
if SHIELD_WAVESHARE_EPAPER_GDEH029A1 || SHIELD_WAVESHARE_EPAPER_GDEH0213B1 || SHIELD_WAVESHARE_EPAPER_GDEH0213B72 || SHIELD_WAVESHARE_EPAPER_GDEW075T7 || SHIELD_WAVESHARE_EPAPER_GDEH0154A07 || SHIELD_WAVESHARE_EPAPER_GDEW042T2
if SHIELD_WAVESHARE_EPAPER_GDEH029A1 || SHIELD_WAVESHARE_EPAPER_GDEH0213B1 || SHIELD_WAVESHARE_EPAPER_GDEH0213B72 || SHIELD_WAVESHARE_EPAPER_GDEW075T7 || SHIELD_WAVESHARE_EPAPER_GDEH0154A07 || SHIELD_WAVESHARE_EPAPER_GDEW042T2 || SHIELD_WAVESHARE_EPAPER_GDEW042T2_P
if DISPLAY

View file

@ -18,3 +18,6 @@ config SHIELD_WAVESHARE_EPAPER_GDEH0154A07
config SHIELD_WAVESHARE_EPAPER_GDEW042T2
def_bool $(shields_list_contains,waveshare_epaper_gdew042t2)
config SHIELD_WAVESHARE_EPAPER_GDEW042T2_P
def_bool $(shields_list_contains,waveshare_epaper_gdew042t2-p)

View file

@ -63,7 +63,7 @@ Current supported displays
| GDEH0154D67 | | ssd16xx | |
+--------------+-----------------+--------------+------------------------------+
| Good Display | WFT0420CZ15 | UC8176 / | waveshare_epaper_gdew042t2 |
| GDEW042T2 | | gd7965 | |
| GDEW042T2 | | gd7965 | waveshare_epaper_gdew042t2-p |
+--------------+-----------------+--------------+------------------------------+

View file

@ -0,0 +1,94 @@
/*
* Copyright (c) 2022 Andreas Sandberg
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "waveshare_epaper_common.dtsi"
/ {
chosen {
zephyr,display = &uc8176;
};
};
&arduino_spi {
/*
* GoodDisplay GDEW042T2 with fast partial refresh. Based on
* configuration from GoodDisplay's Arduino example.
*/
uc8176: uc8176@0 {
compatible = "gooddisplay,gdew042t2", "ultrachip,uc8176";
spi-max-frequency = <4000000>;
reg = <0>;
width = <400>;
height = <300>;
dc-gpios = <&arduino_header 15 GPIO_ACTIVE_LOW>; /* D9 */
reset-gpios = <&arduino_header 14 GPIO_ACTIVE_LOW>; /* D8 */
busy-gpios = <&arduino_header 13 GPIO_ACTIVE_LOW>; /* D7 */
softstart = [ 17 17 17 ];
full {
cdi = <0x07>;
};
partial {
pwr = [ 03 02 2b 2b ];
cdi = <0x07>;
pll = <0x3c>;
vdcs = <0x08>;
lutc = [
00 01 0E 00 00 01
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00
];
lutww = [
00 01 0E 00 00 01
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
];
lutkw = [
20 01 0E 00 00 01
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
];
lutwk = [
10 01 0E 00 00 01
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
];
lutkk = [
00 01 0E 00 00 01
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
];
};
};
};