summaryrefslogtreecommitdiff
path: root/app/boards/arm/nice60/nice60.dts
diff options
context:
space:
mode:
Diffstat (limited to 'app/boards/arm/nice60/nice60.dts')
-rw-r--r--app/boards/arm/nice60/nice60.dts172
1 files changed, 172 insertions, 0 deletions
diff --git a/app/boards/arm/nice60/nice60.dts b/app/boards/arm/nice60/nice60.dts
new file mode 100644
index 0000000..f50f94a
--- /dev/null
+++ b/app/boards/arm/nice60/nice60.dts
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2021 Nick Winans
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+/dts-v1/;
+#include <nordic/nrf52840_qiaa.dtsi>
+#include <dt-bindings/zmk/matrix_transform.h>
+
+/ {
+ model = "nice!60";
+ compatible = "nice,60";
+
+ chosen {
+ zephyr,code-partition = &code_partition;
+ zephyr,sram = &sram0;
+ zephyr,flash = &flash0;
+ zmk,kscan = &kscan0;
+ zmk,matrix_transform = &default_transform;
+ zmk,underglow = &led_strip;
+ };
+
+ default_transform: keymap_transform_0 {
+ compatible = "zmk,matrix-transform";
+ columns = <14>;
+ rows = <5>;
+ 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(0,12) RC(0,13)
+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(1,12) RC(1,13)
+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(2,13)
+RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,13)
+RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(4,9) RC(4,10) RC(4,11) RC(4,13)
+ >;
+ };
+
+ kscan0: kscan {
+ compatible = "zmk,kscan-gpio-matrix";
+ label = "KSCAN";
+
+ diode-direction = "col2row";
+ row-gpios
+ = <&gpio1 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio1 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio1 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ , <&gpio1 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+ ;
+ col-gpios
+ = <&gpio1 15 GPIO_ACTIVE_HIGH>
+ , <&gpio0 29 GPIO_ACTIVE_HIGH>
+ , <&gpio0 31 GPIO_ACTIVE_HIGH>
+ , <&gpio0 30 GPIO_ACTIVE_HIGH>
+ , <&gpio0 28 GPIO_ACTIVE_HIGH>
+ , <&gpio0 2 GPIO_ACTIVE_HIGH>
+ , <&gpio0 3 GPIO_ACTIVE_HIGH>
+ , <&gpio1 3 GPIO_ACTIVE_HIGH>
+ , <&gpio1 7 GPIO_ACTIVE_HIGH>
+ , <&gpio1 4 GPIO_ACTIVE_HIGH>
+ , <&gpio1 6 GPIO_ACTIVE_HIGH>
+ , <&gpio1 5 GPIO_ACTIVE_HIGH>
+ , <&gpio1 1 GPIO_ACTIVE_HIGH>
+ , <&gpio1 2 GPIO_ACTIVE_HIGH>
+ ;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ blue_led: led_0 {
+ gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
+ label = "Blue LED";
+ };
+ };
+
+ ext-power {
+ compatible = "zmk,ext-power-generic";
+ label = "EXT_POWER";
+ control-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+ };
+
+ vbatt {
+ compatible = "zmk,battery-voltage-divider";
+ label = "BATTERY";
+ io-channels = <&adc 2>;
+ output-ohms = <2000000>;
+ full-ohms = <(2000000 + 806000)>;
+ };
+};
+
+&adc {
+ status = "okay";
+};
+
+&gpiote {
+ status = "okay";
+};
+
+&gpio0 {
+ status = "okay";
+};
+
+&gpio1 {
+ status = "okay";
+};
+
+&spi0 {
+ compatible = "nordic,nrf-spim";
+ /* Cannot be used together with i2c0. */
+ status = "okay";
+ sck-pin = <12>;
+ mosi-pin = <27>;
+ miso-pin = <13>;
+
+ led_strip: ws2812@0 {
+ compatible = "worldsemi,ws2812-spi";
+ label = "WS2812";
+
+ /* SPI */
+ reg = <0>; /* ignored, but necessary for SPI bindings */
+ spi-max-frequency = <4000000>;
+
+ /* WS2812 */
+ chain-length = <12>; /* LED strip length */
+ spi-one-frame = <0x70>;
+ spi-zero-frame = <0x40>;
+ };
+};
+
+&usbd {
+ status = "okay";
+};
+
+&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 = "mbr";
+ reg = <0x00000000 0x00001000>;
+ };
+
+ code_partition: partition@1000 {
+ label = "code_partition";
+ reg = <0x00001000 0x000d3000>;
+ };
+
+ /*
+ * The flash starting at 0x000d4000 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@d4000 {
+ label = "storage";
+ reg = <0x000d4000 0x00020000>;
+ };
+
+ boot_partition: partition@f4000 {
+ label = "adafruit_boot";
+ reg = <0x000f4000 0x0000c000>;
+ };
+ };
+};