/*
 * 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
			];
		};
	};
};
