]> git.donarmstrong.com Git - qmk_firmware.git/blob - quantum/config_common.h
02f11d979c579d436c928937b25443503b667427
[qmk_firmware.git] / quantum / config_common.h
1 #ifndef CONFIG_DEFINITIONS_H
2 #define CONFIG_DEFINITIONS_H
3
4 /* diode directions */
5 #define COL2ROW 0
6 #define ROW2COL 1
7 /* I/O pins */
8 #define B0 { .input_addr = 3, .bit = 0 }
9 #define B1 { .input_addr = 3, .bit = 1 }
10 #define B2 { .input_addr = 3, .bit = 2 }
11 #define B3 { .input_addr = 3, .bit = 3 }
12 #define B4 { .input_addr = 3, .bit = 4 }
13 #define B5 { .input_addr = 3, .bit = 5 }
14 #define B6 { .input_addr = 3, .bit = 6 }
15 #define B7 { .input_addr = 3, .bit = 7 }
16 #define C0 { .input_addr = 6, .bit = 0 }
17 #define C1 { .input_addr = 6, .bit = 1 }
18 #define C2 { .input_addr = 6, .bit = 2 }
19 #define C3 { .input_addr = 6, .bit = 3 }
20 #define C4 { .input_addr = 6, .bit = 4 }
21 #define C5 { .input_addr = 6, .bit = 5 }
22 #define C6 { .input_addr = 6, .bit = 6 }
23 #define C7 { .input_addr = 6, .bit = 7 }
24 #define D0 { .input_addr = 9, .bit = 0 }
25 #define D1 { .input_addr = 9, .bit = 1 }
26 #define D2 { .input_addr = 9, .bit = 2 }
27 #define D3 { .input_addr = 9, .bit = 3 }
28 #define D4 { .input_addr = 9, .bit = 4 }
29 #define D5 { .input_addr = 9, .bit = 5 }
30 #define D6 { .input_addr = 9, .bit = 6 }
31 #define D7 { .input_addr = 9, .bit = 7 }
32 #define E0 { .input_addr = 0xC, .bit = 0 }
33 #define E1 { .input_addr = 0xC, .bit = 1 }
34 #define E2 { .input_addr = 0xC, .bit = 2 }
35 #define E3 { .input_addr = 0xC, .bit = 3 }
36 #define E4 { .input_addr = 0xC, .bit = 4 }
37 #define E5 { .input_addr = 0xC, .bit = 5 }
38 #define E6 { .input_addr = 0xC, .bit = 6 }
39 #define E7 { .input_addr = 0xC, .bit = 7 }
40 #define F0 { .input_addr = 0xF, .bit = 0 }
41 #define F1 { .input_addr = 0xF, .bit = 1 }
42 #define F2 { .input_addr = 0xF, .bit = 2 }
43 #define F3 { .input_addr = 0xF, .bit = 3 }
44 #define F4 { .input_addr = 0xF, .bit = 4 }
45 #define F5 { .input_addr = 0xF, .bit = 5 }
46 #define F6 { .input_addr = 0xF, .bit = 6 }
47 #define F7 { .input_addr = 0xF, .bit = 7 }
48
49 /* USART configuration */
50 #ifdef BLUETOOTH_ENABLE
51 #   ifdef __AVR_ATmega32U4__
52 #      define SERIAL_UART_BAUD 9600
53 #      define SERIAL_UART_DATA UDR1
54 #      define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1)
55 #      define SERIAL_UART_RXD_VECT USART1_RX_vect
56 #      define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1))
57 #      define SERIAL_UART_INIT() do { \
58             /* baud rate */ \
59             UBRR1L = SERIAL_UART_UBRR; \
60             /* baud rate */ \
61             UBRR1H = SERIAL_UART_UBRR >> 8; \
62             /* enable TX */ \
63             UCSR1B = _BV(TXEN1); \
64             /* 8-bit data */ \
65             UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \
66             sei(); \
67         } while(0)
68 #   else
69 #       error "USART configuration is needed."
70 #endif
71
72 // I'm fairly sure these aren't needed, but oh well - Jack
73
74 /*
75  * PS/2 Interrupt configuration
76  */
77 #ifdef PS2_USE_INT
78 /* uses INT1 for clock line(ATMega32U4) */
79 #define PS2_CLOCK_PORT  PORTD
80 #define PS2_CLOCK_PIN   PIND
81 #define PS2_CLOCK_DDR   DDRD
82 #define PS2_CLOCK_BIT   1
83
84 #define PS2_DATA_PORT   PORTD
85 #define PS2_DATA_PIN    PIND
86 #define PS2_DATA_DDR    DDRD
87 #define PS2_DATA_BIT    0
88
89 #define PS2_INT_INIT()  do {    \
90     EICRA |= ((1<<ISC11) |      \
91               (0<<ISC10));      \
92 } while (0)
93 #define PS2_INT_ON()  do {      \
94     EIMSK |= (1<<INT1);         \
95 } while (0)
96 #define PS2_INT_OFF() do {      \
97     EIMSK &= ~(1<<INT1);        \
98 } while (0)
99 #define PS2_INT_VECT    INT1_vect
100 #endif
101
102 /*
103  * PS/2 Busywait configuration
104  */
105 #ifdef PS2_USE_BUSYWAIT
106 #define PS2_CLOCK_PORT  PORTD
107 #define PS2_CLOCK_PIN   PIND
108 #define PS2_CLOCK_DDR   DDRD
109 #define PS2_CLOCK_BIT   1
110
111 #define PS2_DATA_PORT   PORTD
112 #define PS2_DATA_PIN    PIND
113 #define PS2_DATA_DDR    DDRD
114 #define PS2_DATA_BIT    0
115 #endif
116
117 #endif
118
119 #endif