From f6bbd4d2c5554b93351977933cea396db9456689 Mon Sep 17 00:00:00 2001
From: Ramiro Bou <2000719+Polsaker@users.noreply.github.com>
Date: Sat, 3 Jun 2023 17:38:09 -0300
Subject: [PATCH] [Keyboard] Add Churrosoft Deck-8 (#21119)

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: jack <0x6a73@protonmail.com>
---
 keyboards/churrosoft/deck8/info.json          | 44 +++++++++++
 .../churrosoft/deck8/keymaps/default/keymap.c | 25 +++++++
 .../churrosoft/deck8/keymaps/via/keymap.c     | 24 ++++++
 .../churrosoft/deck8/keymaps/via/rules.mk     |  1 +
 keyboards/churrosoft/deck8/noleds/readme.md   | 27 +++++++
 keyboards/churrosoft/deck8/noleds/rules.mk    |  1 +
 keyboards/churrosoft/deck8/rgb/config.h       | 74 +++++++++++++++++++
 keyboards/churrosoft/deck8/rgb/info.json      | 27 +++++++
 keyboards/churrosoft/deck8/rgb/readme.md      | 27 +++++++
 keyboards/churrosoft/deck8/rgb/rules.mk       |  1 +
 10 files changed, 251 insertions(+)
 create mode 100644 keyboards/churrosoft/deck8/info.json
 create mode 100644 keyboards/churrosoft/deck8/keymaps/default/keymap.c
 create mode 100644 keyboards/churrosoft/deck8/keymaps/via/keymap.c
 create mode 100644 keyboards/churrosoft/deck8/keymaps/via/rules.mk
 create mode 100644 keyboards/churrosoft/deck8/noleds/readme.md
 create mode 100644 keyboards/churrosoft/deck8/noleds/rules.mk
 create mode 100644 keyboards/churrosoft/deck8/rgb/config.h
 create mode 100644 keyboards/churrosoft/deck8/rgb/info.json
 create mode 100644 keyboards/churrosoft/deck8/rgb/readme.md
 create mode 100644 keyboards/churrosoft/deck8/rgb/rules.mk

diff --git a/keyboards/churrosoft/deck8/info.json b/keyboards/churrosoft/deck8/info.json
new file mode 100644
index 0000000000..5dcf05fa24
--- /dev/null
+++ b/keyboards/churrosoft/deck8/info.json
@@ -0,0 +1,44 @@
+{
+  "keyboard_name": "Deck-8",
+  "manufacturer": "Churrosoft",
+  "url": "https://churrosoft.ar/deck",
+  "maintainer": "Polsaker",
+  "usb": {
+    "vid": "0xCBBC",
+    "pid": "0xC100",
+    "device_version": "1.0.0"
+  },
+  "build": {
+    "lto": true
+  },
+  "features": {
+    "bootmagic": true,
+    "console": false,
+    "extrakey": true,
+    "mousekey": true,
+    "nkro": true
+
+  },
+  "processor": "RP2040",
+  "bootloader": "rp2040",
+  "matrix_pins": {
+    "direct": [
+      ["GP15", "GP18", "GP22", "GP24"],
+      ["GP13", "GP11", "GP0", "GP2"]
+    ]
+  },
+  "layouts": {
+    "LAYOUT": {
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]},
+        {"x":1, "y":0, "matrix": [0, 1]},
+        {"x":2, "y":0, "matrix": [0, 2]},
+        {"x":3, "y":0, "matrix": [0, 3]},
+        {"x":0, "y":1, "matrix": [1, 0]},
+        {"x":1, "y":1, "matrix": [1, 1]},
+        {"x":2, "y":1, "matrix": [1, 2]},
+        {"x":3, "y":1, "matrix": [1, 3]}
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/keyboards/churrosoft/deck8/keymaps/default/keymap.c b/keyboards/churrosoft/deck8/keymaps/default/keymap.c
new file mode 100644
index 0000000000..cc1bcea109
--- /dev/null
+++ b/keyboards/churrosoft/deck8/keymaps/default/keymap.c
@@ -0,0 +1,25 @@
+/* Copyright 2023 Churrosoft
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D),
+        MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H)
+        )
+};
\ No newline at end of file
diff --git a/keyboards/churrosoft/deck8/keymaps/via/keymap.c b/keyboards/churrosoft/deck8/keymaps/via/keymap.c
new file mode 100644
index 0000000000..2a1b10d442
--- /dev/null
+++ b/keyboards/churrosoft/deck8/keymaps/via/keymap.c
@@ -0,0 +1,24 @@
+/* Copyright 2023 Churrosoft
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D),
+        MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H)
+        )
+};
\ No newline at end of file
diff --git a/keyboards/churrosoft/deck8/keymaps/via/rules.mk b/keyboards/churrosoft/deck8/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/churrosoft/deck8/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/churrosoft/deck8/noleds/readme.md b/keyboards/churrosoft/deck8/noleds/readme.md
new file mode 100644
index 0000000000..c4e8d70c81
--- /dev/null
+++ b/keyboards/churrosoft/deck8/noleds/readme.md
@@ -0,0 +1,27 @@
+# Churrosoft Deck-8 (No LEDs version)
+
+![ChurroDeck-8](https://i.imgur.com/NNmq8hzh.png)
+
+A small 8-key macropad
+
+* Keyboard Maintainer: [Polsaker](https://github.com/Polsaker)
+* Hardware Supported: ChurroDeck PCV rev. 1b, 1c and 1d
+* Hardware Availability: [churrosoft.ar](https://churrosoft.ar/deck)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make churrosoft/deck8/noleds:default
+
+Flashing example for this keyboard:
+
+    make churrosoft/deck8/noleds:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard
+* **Physical reset button**: Short the `JP1` jumper in the back side of the PCB.
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
\ No newline at end of file
diff --git a/keyboards/churrosoft/deck8/noleds/rules.mk b/keyboards/churrosoft/deck8/noleds/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/churrosoft/deck8/noleds/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/churrosoft/deck8/rgb/config.h b/keyboards/churrosoft/deck8/rgb/config.h
new file mode 100644
index 0000000000..2454c42fba
--- /dev/null
+++ b/keyboards/churrosoft/deck8/rgb/config.h
@@ -0,0 +1,74 @@
+/* Copyright 2023 Churrosoft
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define RGB_MATRIX_LED_COUNT 8
+#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
+#define RGB_MATRIX_DEFAULT_HUE 152
+#define RGB_MATRIX_DEFAULT_SAT 232
+#define RGB_MATRIX_DEFAULT_VAL 180
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
+
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_MATRIX_KEYPRESSES
+
+#define ENABLE_RGB_MATRIX_SOLID_COLOR
+#define ENABLE_RGB_MATRIX_ALPHAS_MODS
+#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_SAT
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#define ENABLE_RGB_MATRIX_RAINDROPS
+#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+#define ENABLE_RGB_MATRIX_HUE_BREATHING
+#define ENABLE_RGB_MATRIX_HUE_PENDULUM
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+#define ENABLE_RGB_MATRIX_PIXEL_RAIN
+#define ENABLE_RGB_MATRIX_PIXEL_FLOW
+#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
+#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#define ENABLE_RGB_MATRIX_SPLASH
+#define ENABLE_RGB_MATRIX_MULTISPLASH
+#define ENABLE_RGB_MATRIX_SOLID_SPLASH
+#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
diff --git a/keyboards/churrosoft/deck8/rgb/info.json b/keyboards/churrosoft/deck8/rgb/info.json
new file mode 100644
index 0000000000..43f273be58
--- /dev/null
+++ b/keyboards/churrosoft/deck8/rgb/info.json
@@ -0,0 +1,27 @@
+{
+  "keyboard_name": "Deck-8 RGB",
+  "usb": {
+    "pid": "0xC101"
+  },
+  "ws2812": {
+    "pin": "GP17",
+    "driver": "vendor"
+  },
+  "features": {
+    "rgb_matrix": true
+  },
+  "rgb_matrix": {
+    "driver": "WS2812",
+    "max_brightness": 200,
+    "layout": [
+      {"flags": 4, "matrix": [0, 0], "x":  45, "y": 21},
+      {"flags": 4, "matrix": [0, 1], "x":  90, "y": 21},
+      {"flags": 4, "matrix": [0, 2], "x": 135, "y": 21},
+      {"flags": 4, "matrix": [0, 3], "x": 180, "y": 21},
+      {"flags": 4, "matrix": [1, 0], "x":  45, "y": 42},
+      {"flags": 4, "matrix": [1, 1], "x":  90, "y": 42},
+      {"flags": 4, "matrix": [1, 2], "x": 135, "y": 42},
+      {"flags": 4, "matrix": [1, 3], "x": 180, "y": 42}
+    ]
+  }
+}
\ No newline at end of file
diff --git a/keyboards/churrosoft/deck8/rgb/readme.md b/keyboards/churrosoft/deck8/rgb/readme.md
new file mode 100644
index 0000000000..87fe400c24
--- /dev/null
+++ b/keyboards/churrosoft/deck8/rgb/readme.md
@@ -0,0 +1,27 @@
+# Churrosoft Deck-8 (RGB Version)
+
+![ChurroDeck-8](https://i.imgur.com/NNmq8hzh.png)
+
+A small 8-key macropad with RGB
+
+* Keyboard Maintainer: [Polsaker](https://github.com/Polsaker)
+* Hardware Supported: ChurroDeck PCV rev. 1b, 1c and 1d
+* Hardware Availability: [churrosoft.ar](https://churrosoft.ar/deck)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make churrosoft/deck8/rgb:default
+
+Flashing example for this keyboard:
+
+    make churrosoft/deck8/rgb:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard
+* **Physical reset button**: Short the `JP1` jumper in the back side of the PCB.
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
\ No newline at end of file
diff --git a/keyboards/churrosoft/deck8/rgb/rules.mk b/keyboards/churrosoft/deck8/rgb/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/churrosoft/deck8/rgb/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank