summaryrefslogtreecommitdiff
path: root/keyboards/frobiac/blackbowl/config.h
diff options
context:
space:
mode:
authorfrobiac <frobiac@gmail.com>2023-03-10 08:05:20 +0100
committerGitHub <noreply@github.com>2023-03-09 23:05:20 -0800
commit313fc4cb8f4e41c921112d0b105b82ad5d8a653e (patch)
tree9d13787460b6fc9391517f4ccd35be8e873fc28a /keyboards/frobiac/blackbowl/config.h
parent62a8f412093c582a51a27e0fa1d7ad8596433cb9 (diff)
[Keyboard] frobiac custom boards and layout (#19883)
Diffstat (limited to 'keyboards/frobiac/blackbowl/config.h')
-rw-r--r--keyboards/frobiac/blackbowl/config.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/keyboards/frobiac/blackbowl/config.h b/keyboards/frobiac/blackbowl/config.h
new file mode 100644
index 0000000000..cb13e69423
--- /dev/null
+++ b/keyboards/frobiac/blackbowl/config.h
@@ -0,0 +1,56 @@
+// Copyright 2012 Jun Wako <wakojun@gmail.com>
+// Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
+// Copyright 2017 Erin Call <hello@erincall.com>
+// Copyright 2023 @frobiac
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 4
+#define EXPANDER_COL_REGISTER GPIOA
+#define EXPANDER_ROW_REGISTER GPIOB
+
+#ifdef PS2_MOUSE_ENABLE
+# define PS2_MOUSE_USE_REMOTE_MODE
+# define PS2_MOUSE_INIT_DELAY 1000
+#endif
+
+// clang-format off
+#ifdef PS2_DRIVER_USART
+
+# define PS2_CLOCK_PIN D5
+# define PS2_DATA_PIN D2
+
+ /* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
+ /* set DDR of CLOCK as input to be slave */
+ #define PS2_USART_INIT() do { \
+ PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \
+ PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \
+ UCSR1C = ((1 << UMSEL10) | \
+ (3 << UPM10) | \
+ (0 << USBS1) | \
+ (3 << UCSZ10) | \
+ (0 << UCPOL1)); \
+ UCSR1A = 0; \
+ UBRR1H = 0; \
+ UBRR1L = 0; \
+ } while (0)
+ #define PS2_USART_RX_INT_ON() do { \
+ UCSR1B = ((1 << RXCIE1) | \
+ (1 << RXEN1)); \
+ } while (0)
+ #define PS2_USART_RX_POLL_ON() do { \
+ UCSR1B = (1 << RXEN1); \
+ } while (0)
+ #define PS2_USART_OFF() do { \
+ UCSR1C = 0; \
+ UCSR1B &= ~((1 << RXEN1) | \
+ (1 << TXEN1)); \
+ } while (0)
+ #define PS2_USART_RX_READY (UCSR1A & (1<<RXC1))
+ #define PS2_USART_RX_DATA UDR1
+ #define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
+ #define PS2_USART_RX_VECT USART1_RX_vect
+#endif
+