Align existing pca9555 driver to better match mcp23018 API (#16277)
This commit is contained in:
		
							parent
							
								
									96afc7a03a
								
							
						
					
					
						commit
						1f67de2001
					
				
					 6 changed files with 113 additions and 62 deletions
				
			
		| 
						 | 
				
			
			@ -158,10 +158,12 @@ static void select_row(uint8_t row) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static uint16_t read_cols(void) {
 | 
			
		||||
  uint16_t state_1 = pca9555_readPins(IC2, PCA9555_PORT0);
 | 
			
		||||
  uint16_t state_2 = pca9555_readPins(IC2, PCA9555_PORT1);
 | 
			
		||||
  uint8_t state_1 = 0;
 | 
			
		||||
  uint8_t state_2 = 0;
 | 
			
		||||
  pca9555_readPins(IC2, PCA9555_PORT0, &state_1);
 | 
			
		||||
  pca9555_readPins(IC2, PCA9555_PORT1, &state_2);
 | 
			
		||||
 | 
			
		||||
  uint16_t state = ((state_1 & PORT0_COLS_MASK) << 3) | ((state_2 & PORT1_COLS_MASK));
 | 
			
		||||
  uint16_t state = (((uint16_t)state_1 & PORT0_COLS_MASK) << 3) | (((uint16_t)state_2 & PORT1_COLS_MASK));
 | 
			
		||||
 | 
			
		||||
  // A low pin indicates an active column
 | 
			
		||||
  return (~state) & COLS_MASK;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue