/*
 * Copyright (c) 2018-2019 PHYTEC Messtechnik GmbH
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi>
#include "reel_board.dtsi"

/ {
	model = "reel board v2";
	compatible = "phytec,reel_board_v2", "nordic,nrf52840-qiaa",
		     "nordic,nrf52840";

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-mcumgr = &uart0;
		zephyr,bt-mon-uart = &uart0;
		zephyr,bt-c2h-uart = &uart0;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
	};
};

&spi1 {
	compatible = "nordic,nrf-spi";
	status = "okay";
	sck-pin = <19>;
	mosi-pin = <20>;
	miso-pin = <21>;
	cs-gpios = <&gpio0 17 0>;

	ssd16xxfb@0 {
		compatible = "solomon,ssd16xxfb", "gooddisplay,gdeh0213b72";
		label = "SSD16XX";
		spi-max-frequency = <4000000>;
		reg = <0>;
		width = <250>;
		height = <120>;
		pp-width-bits = <8>;
		pp-height-bits = <16>;
		reset-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
		dc-gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
		busy-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
		gdv = [15];
		sdv = [41 a8 32];
		vcom = <0x26>;
		border-waveform = <0x03>;
		lut-initial = [
			/*
			 * Waveform Composition
			 *
			 * There are 7 Voltage Source (VS) Level groups
			 * n = {0,1,2...6}, each group contains
			 * 4 phases x = {A,B,C,D}.
			 * 2 bits represent the voltage in a phase:
			 * 00 – VSS, 01 – VSH1, 10 – VSL, 11 - VSH2
			 *
			 * For example 0x80 represents sequence VSL-VSS-VSS-VSS,
			 */
			80 60 40 00 00 00 00 /* LUT0: BB: VS 0..6 */
			10 60 20 00 00 00 00 /* LUT1: BW: VS 0..6 */
			80 60 40 00 00 00 00 /* LUT2: WB: VS 0..6 */
			10 60 20 00 00 00 00 /* LUT3: WW: VS 0..6 */
			00 00 00 00 00 00 00 /* LUT4: VCOM: VS 0..6 */
			/*
			 * TPnx determines the length of each phase,
			 * and RPn repeat count of a sequence.
			 * TPnA, TPnB, TPnC, TPnD, RPn
			 *
			 * For example TP0A=3, TP0B=3, and RP0=2:
			 * VS sequence                    : VSL-VSS-VSS-VSS
			 * number of Gate Pulses (length) :  3   3   0   0
			 * repeat count                   :        2
			 */
			03 03 00 00 02 /* TP0A TP0B TP0C TP0D RP0 */
			09 09 00 00 02 /* TP1A TP1B TP1C TP1D RP1 */
			03 03 00 00 02 /* TP2A TP2B TP2C TP2D RP2 */
			00 00 00 00 00 /* TP3A TP3B TP3C TP3D RP3 */
			00 00 00 00 00 /* TP4A TP4B TP4C TP4D RP4 */
			00 00 00 00 00 /* TP5A TP5B TP5C TP5D RP5 */
			00 00 00 00 00 /* TP6A TP6B TP6C TP6D RP6 */
		];

		lut-default = [
			00 00 00 00 00 00 00 /* LUT0: BB: VS0..6 */
			80 00 00 00 00 00 00 /* LUT1: BW: VS0..6 */
			40 00 00 00 00 00 00 /* LUT2: WB: VS0..6 */
			80 00 00 00 00 00 00 /* LUT3: WW: VS0..6 */
			00 00 00 00 00 00 00 /* LUT4: VCOM: VS0..6 */
			0A 00 00 00 04 /* TP0A TP0B TP0C TP0D RP0 */
			00 00 00 00 00 /* TP1A TP1B TP1C TP1D RP1 */
			00 00 00 00 00 /* TP2A TP2B TP2C TP2D RP2 */
			00 00 00 00 00 /* TP3A TP3B TP3C TP3D RP3 */
			00 00 00 00 00 /* TP4A TP4B TP4C TP4D RP4 */
			00 00 00 00 00 /* TP5A TP5B TP5C TP5D RP5 */
			00 00 00 00 00 /* TP6A TP6B TP6C TP6D RP6 */
		];
	};
};
