summary refs log tree commit diff
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-11-21 23:30:23 +0900
committertmk <nobody@nowhere>2013-11-21 23:31:20 +0900
commitbeacd5872c525b4bad215d2b2a4ff9ec60518e2f (patch)
tree83e7382932a35a73c38398a64e72091a741cc5de
parent4e5bce22deeee879d063f8e4fa8fe7aa087bd57e (diff)
Support GH60 Rev.B PCB as well as Rev.A(issue #64)
- Port of col8 is PB0 in Rev.A while PB7 in Rev.B
-rw-r--r--keyboard/gh60/matrix.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/keyboard/gh60/matrix.c b/keyboard/gh60/matrix.c
index a2bd70e4b7..a61215152c 100644
--- a/keyboard/gh60/matrix.c
+++ b/keyboard/gh60/matrix.c
@@ -136,7 +136,8 @@ uint8_t matrix_key_count(void)
 
 /* Column pin configuration
  * col: 0   1   2   3   4   5   6   7   8   9   10  11  12  13
- * pin: F0  F1  E6  C7  C6  B6  D4  B1  B0  B5  B4  D7  D6  B3
+ * pin: F0  F1  E6  C7  C6  B6  D4  B1  B0  B5  B4  D7  D6  B3  (Rev.A)
+ * pin:                                 B7                      (Rev.B)
  */
 static void  init_cols(void)
 {
@@ -149,8 +150,8 @@ static void  init_cols(void)
     PORTD |=  (1<<7 | 1<<6 | 1<<4);
     DDRC  &= ~(1<<7 | 1<<6);
     PORTC |=  (1<<7 | 1<<6);
-    DDRB  &= ~(1<<6 | 1<< 5 | 1<<4 | 1<<3 | 1<<1 | 1<<0);
-    PORTB |=  (1<<6 | 1<< 5 | 1<<4 | 1<<3 | 1<<1 | 1<<0);
+    DDRB  &= ~(1<<7 | 1<<6 | 1<< 5 | 1<<4 | 1<<3 | 1<<1 | 1<<0);
+    PORTB |=  (1<<7 | 1<<6 | 1<< 5 | 1<<4 | 1<<3 | 1<<1 | 1<<0);
 }
 
 static matrix_row_t read_cols(void)
@@ -163,7 +164,7 @@ static matrix_row_t read_cols(void)
            (PINB&(1<<6) ? 0 : (1<<5)) |
            (PIND&(1<<4) ? 0 : (1<<6)) |
            (PINB&(1<<1) ? 0 : (1<<7)) |
-           (PINB&(1<<0) ? 0 : (1<<8)) |
+           ((PINB&(1<<0) && PINB&(1<<7)) ? 0 : (1<<8)) |     // Rev.A and B
            (PINB&(1<<5) ? 0 : (1<<9)) |
            (PINB&(1<<4) ? 0 : (1<<10)) |
            (PIND&(1<<7) ? 0 : (1<<11)) |