/*
*
* Copyright (c) 2021 Darryl deHaan
* SPDX-License-Identifier: MIT
*
*/

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

#include <dt-bindings/zmk/matrix_transform.h>

/ {
	model = "corneish_zen_v2";
	compatible = "corneish_zen_v2";

	chosen {
		zephyr,code-partition = &code_partition;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zmk,kscan = &kscan0;
		zmk,display = &epd;
		zmk,battery = &vbatt;
		zephyr,console = &cdc_acm_uart;
	};

	default_transform: keymap_transform_0 {
		compatible = "zmk,matrix-transform";
		columns = <12>;
		rows = <4>;

			// | SW1  | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  | SW1  |
			// | SW7  | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  | SW7  |
			// | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 |
			//                      | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |
					map = <
			RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
			RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
			RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
									RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)
		>;
	};

	five_column_transform: keymap_transform_1 {
		compatible = "zmk,matrix-transform";
		columns = <10>;
		rows = <4>;

			// | SW2  | SW3  | SW4  | SW5  | SW6  |   | SW6  | SW5  | SW4  | SW3  | SW2  |
			// | SW8  | SW9  | SW10 | SW11 | SW12 |   | SW12 | SW11 | SW10 | SW9  | SW8  |
			// | SW14 | SW15 | SW16 | SW17 | SW18 |   | SW18 | SW17 | SW16 | SW15 | SW14 |
			//               | SW19 | SW20 | SW21 |   | SW21 | SW20 | SW19 |
					map = <
			RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)  RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10)
			RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)  RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10)
			RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)  RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10)
							RC(3,3) RC(3,4) RC(3,5)  RC(3,6) RC(3,7) RC(3,8)
		>;
	};

};


&adc {
	status = "okay";
};

&gpiote {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&usbd {
	status = "okay";
	cdc_acm_uart: cdc_acm_uart {
		compatible = "zephyr,cdc-acm-uart";
		label = "CDC_ACM_0";
	};
};

&flash0 {
	/*
	 * For more information, see:
	 * http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
	 */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		sd_partition: partition@0 {
			label = "softdevice";
			reg = <0x00000000 0x00026000>;
		};
		code_partition: partition@26000 {
			label = "code_partition";
			reg = <0x00026000 0x000c6000>;
		};

		/*
		 * The flash starting at 0x000ec000 and ending at
		 * 0x000f3fff is reserved for use by the application.
		 */

		/*
		 * Storage partition will be used by FCB/LittleFS/NVS
		 * if enabled.
		 */
		storage_partition: partition@ec000 {
			label = "storage";
			reg = <0x000ec000 0x00008000>;
		};

		boot_partition: partition@f4000 {
			label = "adafruit_boot";
			reg = <0x000f4000 0x0000c000>;
		};
	};
};