Add ATmega32u2 Support to HHKB (#17298)
This commit is contained in:
		
							parent
							
								
									a80943579c
								
							
						
					
					
						commit
						ac333016eb
					
				
					 3 changed files with 61 additions and 2 deletions
				
			
		
							
								
								
									
										5
									
								
								keyboards/hhkb/ansi/32u2/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								keyboards/hhkb/ansi/32u2/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = atmega32u2
 | 
			
		||||
 | 
			
		||||
CONSOLE_ENABLE = no   # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no   # Commands for debug and configuration
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +78,60 @@ static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#elif defined(__AVR_ATmega32U2__)
 | 
			
		||||
/*
 | 
			
		||||
 * For TMK HHKB alt controller(ATMega32U4)
 | 
			
		||||
 *
 | 
			
		||||
 * row:     PB0-2
 | 
			
		||||
 * col:     PB3-5,6
 | 
			
		||||
 * key:     PD3(pull-uped)
 | 
			
		||||
 * prev:    PB7
 | 
			
		||||
 * power:   PD4(L:off/H:on)
 | 
			
		||||
 * row-ext: PC6,7 for HHKB JP(active low)
 | 
			
		||||
 */
 | 
			
		||||
static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); }
 | 
			
		||||
static inline void KEY_UNABLE(void) { (PORTB |=  (1<<6)); }
 | 
			
		||||
static inline bool KEY_STATE(void) { return (PIND & (1<<3)); }
 | 
			
		||||
static inline void KEY_PREV_ON(void) { (PORTB |=  (1<<7)); }
 | 
			
		||||
static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); }
 | 
			
		||||
#ifdef HHKB_POWER_SAVING
 | 
			
		||||
static inline void KEY_POWER_ON(void) {
 | 
			
		||||
    DDRB = 0xFF; PORTB = 0x40;          // change pins output
 | 
			
		||||
    DDRD |= (1<<4); PORTD |= (1<<4);    // MOS FET switch on
 | 
			
		||||
    /* Without this wait you will miss or get false key events. */
 | 
			
		||||
    _delay_ms(5);                       // wait for powering up
 | 
			
		||||
}
 | 
			
		||||
static inline void KEY_POWER_OFF(void) {
 | 
			
		||||
    /* input with pull-up consumes less than without it when pin is open. */
 | 
			
		||||
    DDRB = 0x00; PORTB = 0xFF;          // change pins input with pull-up
 | 
			
		||||
    DDRD |= (1<<4); PORTD &= ~(1<<4);   // MOS FET switch off
 | 
			
		||||
}
 | 
			
		||||
static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); }
 | 
			
		||||
#else
 | 
			
		||||
static inline void KEY_POWER_ON(void) {}
 | 
			
		||||
static inline void KEY_POWER_OFF(void) {}
 | 
			
		||||
static inline bool KEY_POWER_STATE(void) { return true; }
 | 
			
		||||
#endif
 | 
			
		||||
static inline void KEY_INIT(void)
 | 
			
		||||
{
 | 
			
		||||
    /* row,col,prev: output */
 | 
			
		||||
    DDRB  = 0xFF;
 | 
			
		||||
    PORTB = 0x40;   // unable
 | 
			
		||||
    /* key: input with pull-up */
 | 
			
		||||
    DDRD  &= ~0x80;
 | 
			
		||||
    PORTD |=  0x80;
 | 
			
		||||
 | 
			
		||||
    KEY_UNABLE();
 | 
			
		||||
    KEY_PREV_OFF();
 | 
			
		||||
 | 
			
		||||
    KEY_POWER_OFF();
 | 
			
		||||
}
 | 
			
		||||
static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
 | 
			
		||||
{
 | 
			
		||||
    PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__AVR_AT90USB1286__)
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,9 +14,9 @@ CONSOLE_ENABLE = yes   # Console for debug
 | 
			
		|||
COMMAND_ENABLE = yes   # Commands for debug and configuration
 | 
			
		||||
CUSTOM_MATRIX = yes    # Custom matrix file for the HHKB
 | 
			
		||||
NKRO_ENABLE = no            # Enable N-Key Rollover
 | 
			
		||||
# BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
 | 
			
		||||
BACKLIGHT_ENABLE = no  # Enable keyboard backlight functionality
 | 
			
		||||
 | 
			
		||||
# HHKB_RN42_ENABLE = yes  # Enable support for hasu's BT alt controller -- code borrowed from tmk source tree.
 | 
			
		||||
HHKB_RN42_ENABLE = no  # Enable support for hasu's BT alt controller -- code borrowed from tmk source tree.
 | 
			
		||||
 | 
			
		||||
# Either uncomment the HHKB_RN42_ENABLE line above, or run make enabling the
 | 
			
		||||
# feature. Be sure to clean any existing build before trying to enable rn42
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue