Linux GPIO Driver Development / Customization

Closed - This job posting has been filled and work has been completed.
Fixed Price
Deliver by - July 13, 2014


Looking for development of a simple loadable kernel module for the Linux 3.10 kernel that will initialize an external interface board consisting of two i2c 16-bit gpio expander modules (tca6416 equivalent).

The hardware used for this project already has existing drivers than can be utilized. As such, this project should be fairly simple and consist primarily of glue logic to tie things together.

The following are details on the hardware / software:
- There are three i2c adapters on the mainboard. This driver will only talk to devices on the last i2c adapter (i2c-2)
- The two IO expander (tca6416) chips have i2c addresses 0x20 and 0x21
- Upon loading, the module will register the two IO expander chips with the GPIO class. All 16 lines of the first tca6416 (0x20) will be configured as outputs only. All 16 lines of the second tca6416 (0x21) will be configured as inputs only.
- On the first tca6416, lines 0 through 4 are connected as GPIO outputs. The remaining lines 5 through 15 are connected to LEDs and should be registered with the LED class.

This platform is an embedded ARM device with a kernel and root file system built using the OpenWrt toolchain. Due to the relative simplicity of this project, access to the hardware platform itself may not be needed. However, if requested, remote SSH access will be available.

Please feel free to offer suggestions and/or bid higher/lower based on such recommendations.