| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | Kernel driver i2c-parport | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Author: Jean Delvare <khali@linux-fr.org>  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This is a unified driver for several i2c-over-parallel-port adapters, | 
					
						
							|  |  |  | such as the ones made by Philips, Velleman or ELV. This driver is | 
					
						
							|  |  |  | meant as a replacement for the older, individual drivers: | 
					
						
							|  |  |  |  * i2c-philips-par | 
					
						
							|  |  |  |  * i2c-elv | 
					
						
							|  |  |  |  * i2c-velleman | 
					
						
							|  |  |  |  * video/i2c-parport (NOT the same as this one, dedicated to home brew | 
					
						
							|  |  |  |                       teletext adapters) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | It currently supports the following devices: | 
					
						
							| 
									
										
										
										
											2006-03-23 16:50:25 +01:00
										 |  |  |  * (type=0) Philips adapter | 
					
						
							|  |  |  |  * (type=1) home brew teletext adapter | 
					
						
							|  |  |  |  * (type=2) Velleman K8000 adapter | 
					
						
							|  |  |  |  * (type=3) ELV adapter | 
					
						
							|  |  |  |  * (type=4) Analog Devices ADM1032 evaluation board | 
					
						
							|  |  |  |  * (type=5) Analog Devices evaluation boards: ADM1025, ADM1030, ADM1031 | 
					
						
							|  |  |  |  * (type=6) Barco LPT->DVI (K5800236) adapter | 
					
						
							| 
									
										
										
										
											2007-02-13 22:09:02 +01:00
										 |  |  |  * (type=7) One For All JP1 parallel port adapter | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | These devices use different pinout configurations, so you have to tell | 
					
						
							|  |  |  | the driver what you have, using the type module parameter. There is no | 
					
						
							|  |  |  | way to autodetect the devices. Support for different pinout configurations | 
					
						
							|  |  |  | can be easily added when needed. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-23 16:50:25 +01:00
										 |  |  | Earlier kernels defaulted to type=0 (Philips).  But now, if the type | 
					
						
							|  |  |  | parameter is missing, the driver will simply fail to initialize. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-02 12:23:44 +01:00
										 |  |  | SMBus alert support is available on adapters which have this line properly | 
					
						
							|  |  |  | connected to the parallel port's interrupt pin. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Building your own adapter | 
					
						
							|  |  |  | ------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If you want to build you own i2c-over-parallel-port adapter, here is | 
					
						
							|  |  |  | a sample electronics schema (credits go to Sylvain Munaut): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Device                                                      PC | 
					
						
							|  |  |  | Side          ___________________Vdd (+)                    Side | 
					
						
							|  |  |  |                |    |         | | 
					
						
							|  |  |  |               ---  ---       --- | 
					
						
							|  |  |  |               | |  | |       | | | 
					
						
							|  |  |  |               |R|  |R|       |R| | 
					
						
							|  |  |  |               | |  | |       | | | 
					
						
							|  |  |  |               ---  ---       --- | 
					
						
							|  |  |  |                |    |         | | 
					
						
							|  |  |  |                |    |    /|   | | 
					
						
							|  |  |  | SCL  ----------x--------o |-----------x-------------------  pin 2 | 
					
						
							|  |  |  |                     |    \|   |       | | 
					
						
							|  |  |  |                     |         |       | | 
					
						
							|  |  |  |                     |   |\    |       | | 
					
						
							|  |  |  | SDA  ----------x----x---| o---x---------------------------  pin 13 | 
					
						
							|  |  |  |                |        |/            | | 
					
						
							|  |  |  |                |                      | | 
					
						
							|  |  |  |                |         /|           | | 
					
						
							|  |  |  |                ---------o |----------------x--------------  pin 3 | 
					
						
							|  |  |  |                          \|           |    | | 
					
						
							|  |  |  |                                       |    | | 
					
						
							|  |  |  |                                      ---  --- | 
					
						
							|  |  |  |                                      | |  | | | 
					
						
							|  |  |  |                                      |R|  |R| | 
					
						
							|  |  |  |                                      | |  | | | 
					
						
							|  |  |  |                                      ---  --- | 
					
						
							|  |  |  |                                       |    |  | 
					
						
							|  |  |  |                                      ###  ### | 
					
						
							|  |  |  |                                      GND  GND | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  | Remarks: | 
					
						
							|  |  |  |  - This is the exact pinout and electronics used on the Analog Devices | 
					
						
							|  |  |  |    evaluation boards. | 
					
						
							|  |  |  |                    /| | 
					
						
							|  |  |  |  - All inverters -o |- must be 74HC05, they must be open collector output. | 
					
						
							|  |  |  |                    \| | 
					
						
							|  |  |  |  - All resitors are 10k. | 
					
						
							|  |  |  |  - Pins 18-25 of the parallel port connected to GND. | 
					
						
							|  |  |  |  - Pins 4-9 (D2-D7) could be used as VDD is the driver drives them high. | 
					
						
							|  |  |  |    The ADM1032 evaluation board uses D4-D7. Beware that the amount of | 
					
						
							|  |  |  |    current you can draw from the parallel port is limited. Also note that | 
					
						
							|  |  |  |    all connected lines MUST BE driven at the same state, else you'll short | 
					
						
							|  |  |  |    circuit the output buffers! So plugging the I2C adapter after loading | 
					
						
							|  |  |  |    the i2c-parport module might be a good safety since data line state | 
					
						
							|  |  |  |    prior to init may be unknown.  | 
					
						
							|  |  |  |  - This is 5V! | 
					
						
							|  |  |  |  - Obviously you cannot read SCL (so it's not really standard-compliant). | 
					
						
							|  |  |  |    Pretty easy to add, just copy the SDA part and use another input pin. | 
					
						
							|  |  |  |    That would give (ELV compatible pinout): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Device                                                      PC | 
					
						
							|  |  |  | Side          ______________________________Vdd (+)         Side | 
					
						
							|  |  |  |                |    |            |    | | 
					
						
							|  |  |  |               ---  ---          ---  --- | 
					
						
							|  |  |  |               | |  | |          | |  | | | 
					
						
							|  |  |  |               |R|  |R|          |R|  |R| | 
					
						
							|  |  |  |               | |  | |          | |  | | | 
					
						
							|  |  |  |               ---  ---          ---  --- | 
					
						
							|  |  |  |                |    |            |    | | 
					
						
							|  |  |  |                |    |      |\    |    | | 
					
						
							|  |  |  | SCL  ----------x--------x--| o---x------------------------  pin 15 | 
					
						
							|  |  |  |                     |   |  |/         |  | 
					
						
							|  |  |  |                     |   |             | | 
					
						
							|  |  |  |                     |   |   /|        | | 
					
						
							|  |  |  |                     |   ---o |-------------x--------------  pin 2 | 
					
						
							|  |  |  |                     |       \|        |    | | 
					
						
							|  |  |  |                     |                 |    | | 
					
						
							|  |  |  |                     |                 |    | | 
					
						
							|  |  |  |                     |      |\         |    | | 
					
						
							|  |  |  | SDA  ---------------x---x--| o--------x-------------------  pin 10 | 
					
						
							|  |  |  |                         |  |/              | | 
					
						
							|  |  |  |                         |                  | | 
					
						
							|  |  |  |                         |   /|             | | 
					
						
							|  |  |  |                         ---o |------------------x---------  pin 3 | 
					
						
							|  |  |  |                             \|             |    | | 
					
						
							|  |  |  |                                            |    | | 
					
						
							|  |  |  |                                           ---  --- | 
					
						
							|  |  |  |                                           | |  | | | 
					
						
							|  |  |  |                                           |R|  |R| | 
					
						
							|  |  |  |                                           | |  | | | 
					
						
							|  |  |  |                                           ---  --- | 
					
						
							|  |  |  |                                            |    |  | 
					
						
							|  |  |  |                                           ###  ### | 
					
						
							|  |  |  |                                           GND  GND | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If possible, you should use the same pinout configuration as existing | 
					
						
							|  |  |  | adapters do, so you won't even have to change the code. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Similar (but different) drivers | 
					
						
							|  |  |  | ------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This driver is NOT the same as the i2c-pport driver found in the i2c | 
					
						
							|  |  |  | package. The i2c-pport driver makes use of modern parallel port features so | 
					
						
							|  |  |  | that you don't need additional electronics. It has other restrictions | 
					
						
							|  |  |  | however, and was not ported to Linux 2.6 (yet). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This driver is also NOT the same as the i2c-pcf-epp driver found in the | 
					
						
							|  |  |  | lm_sensors package. The i2c-pcf-epp driver doesn't use the parallel port as | 
					
						
							|  |  |  | an I2C bus directly. Instead, it uses it to control an external I2C bus | 
					
						
							|  |  |  | master. That driver was not ported to Linux 2.6 (yet) either. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Legacy documentation for Velleman adapter | 
					
						
							|  |  |  | ----------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Useful links: | 
					
						
							|  |  |  | Velleman                http://www.velleman.be/ | 
					
						
							|  |  |  | Velleman K8000 Howto    http://howto.htlw16.ac.at/k8000-howto.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The project has lead to new libs for the Velleman K8000 and K8005: | 
					
						
							|  |  |  |   LIBK8000 v1.99.1 and LIBK8005 v0.21 | 
					
						
							|  |  |  | With these libs, you can control the K8000 interface card and the K8005 | 
					
						
							|  |  |  | stepper motor card with the simple commands which are in the original | 
					
						
							|  |  |  | Velleman software, like SetIOchannel, ReadADchannel, SendStepCCWFull and | 
					
						
							|  |  |  | many more, using /dev/velleman. | 
					
						
							|  |  |  |   http://home.wanadoo.nl/hihihi/libk8000.htm | 
					
						
							|  |  |  |   http://home.wanadoo.nl/hihihi/libk8005.htm | 
					
						
							|  |  |  |   http://struyve.mine.nu:8080/index.php?block=k8000 | 
					
						
							|  |  |  |   http://sourceforge.net/projects/libk8005/ | 
					
						
							| 
									
										
										
										
											2007-02-13 22:09:02 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | One For All JP1 parallel port adapter | 
					
						
							|  |  |  | ------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The JP1 project revolves around a set of remote controls which expose | 
					
						
							|  |  |  | the I2C bus their internal configuration EEPROM lives on via a 6 pin | 
					
						
							|  |  |  | jumper in the battery compartment. More details can be found at: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | http://www.hifi-remote.com/jp1/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Details of the simple parallel port hardware can be found at: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | http://www.hifi-remote.com/jp1/hardware.shtml |