48 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | Kernel driver pca9539 | ||
|  | ===================== | ||
|  | 
 | ||
|  | Supported chips: | ||
|  |   * Philips PCA9539 | ||
|  |     Prefix: 'pca9539' | ||
|  |     Addresses scanned: 0x74 - 0x77 | ||
|  |     Datasheet: | ||
|  |         http://www.semiconductors.philips.com/acrobat/datasheets/PCA9539_2.pdf | ||
|  | 
 | ||
|  | Author: Ben Gardner <bgardner@wabtec.com> | ||
|  | 
 | ||
|  | 
 | ||
|  | Description | ||
|  | ----------- | ||
|  | 
 | ||
|  | The Philips PCA9539 is a 16 bit low power I/O device. | ||
|  | All 16 lines can be individually configured as an input or output. | ||
|  | The input sense can also be inverted. | ||
|  | The 16 lines are split between two bytes. | ||
|  | 
 | ||
|  | 
 | ||
|  | Sysfs entries | ||
|  | ------------- | ||
|  | 
 | ||
|  | Each is a byte that maps to the 8 I/O bits. | ||
|  | A '0' suffix is for bits 0-7, while '1' is for bits 8-15. | ||
|  | 
 | ||
|  | input[01]     - read the current value | ||
|  | output[01]    - sets the output value | ||
|  | direction[01] - direction of each bit: 1=input, 0=output | ||
|  | invert[01]    - toggle the input bit sense | ||
|  | 
 | ||
|  | input reads the actual state of the line and is always available. | ||
|  | The direction defaults to input for all channels. | ||
|  | 
 | ||
|  | 
 | ||
|  | General Remarks | ||
|  | --------------- | ||
|  | 
 | ||
|  | Note that each output, direction, and invert entry controls 8 lines. | ||
|  | You should use the read, modify, write sequence. | ||
|  | For example. to set output bit 0 of 1. | ||
|  |   val=$(cat output0) | ||
|  |   val=$(( $val | 1 )) | ||
|  |   echo $val > output0 | ||
|  | 
 |