myriad.h (1161B)
1 // Copyright 2024 splitkb.com (support@splitkb.com) 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #pragma once 5 6 #include <stdint.h> 7 #include <stdbool.h> 8 #include "matrix.h" 9 10 typedef enum { UNINITIALIZED, NONE, INVALID, UNKNOWN, SKB_SWITCHES, SKB_ENCODER, SKB_JOYSTICK } myriad_card_t; 11 12 bool myriad_hook_matrix(matrix_row_t current_matrix[]); 13 uint8_t myriad_hook_encoder(uint8_t index, bool pad_b); 14 myriad_card_t detect_myriad(void); 15 16 //// Elora-specific pinout 17 18 // Control signals 19 #define MYRIAD_PRESENT GP3 20 #define MYRIAD_MCU_OVERRIDE GP2 21 22 // General I/O 23 #define MYRIAD_ADC1 GP26 24 #define MYRIAD_ADC2 GP27 25 #define MYRIAD_ADC1_CHANNEL 0 26 #define MYRIAD_ADC2_CHANNEL 1 27 #define MYRIAD_PWM1 GP23 28 #define MYRIAD_PWM2 GP24 29 #define MYRIAD_GPIO1 GP4 30 #define MYRIAD_GPIO2 GP5 31 #define MYRIAD_GPIO3 GP6 32 #define MYRIAD_GPIO4 GP8 33 34 // UART 35 #define MYRIAD_RX GP17 36 #define MYRIAD_TX GP16 37 #define MYRIAD_CTS GP18 38 #define MYRIAD_RTS GP19 39 40 // SPI 41 #define MYRIAD_MISO GP12 42 #define MYRIAD_MOSI GP11 43 #define MYRIAD_SCK GP10 44 #define MYRIAD_MODULE_CS GP9 45 #define MYRIAD_MATRIX_CS GP13 46 47 // I2C 48 #define MYRIAD_SDA GP0 49 #define MYRIAD_SCL GP1 50 51 // RGB 52 #define MYRIAD_RGB GP15