| 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 |
| |