Changes

Jump to: navigation, search
/* I2C GPIO extender binding and usage */
2. Make sure that the appropriate I2C bus is enabled in BIOS settings: <br>
Chipset -> South Cluster Configuration -> LPSS Configuration LPSS I2C #[1-8] Support is set to ACPI mode or PCI mode Set LPSS I2C #[1-8] Speed is set to Standard Mode of Fast Mode
<br>'''NOTE:''' It’s strongly recommended that All all buses are enabled in the range of 1-7
3.Find the GPIO extender on an I2C bus:
'''Note:''' PCA9335 chip should be found at address 0x27, whereas XRA1201 chip at 0x4e
 4. Bind the above found device to driver (superuser privileges are necessary)
echo pca9535 $busaddr >/sys/bus/i2c/devices/i2c-${busnum}/new_device
and Then check the kernel debug messages for a line like thatthe following:
i2c i2c-7: new_device: Instantiated device pca9535 at 0x27
5. To find the appropriate GPIO , issue the command:
ls /sys/bus/i2c/drivers/pca953x/
and Then look the output for a line like this:
7-0027
and And then issue the command:
ls /sys/class/gpio/gpiochip*/device -l
and Afterwards, look at the output for a line like thisthe following:
/sys/class/gpio/gpiochip251/device -> ../../../7-0027
The bus number and address have has to be the same in the both cases (7 and 27 in the example). Hence, the gpiochip251 is the to be sought; the individual GPIO line number are from 251 to 251+15
  6. The found GPIO found may be operated over sysfs interface in the following way:
issue the commands:
export n=251 # desired GPIO number
cat /sys/class/gpio/gpio$n/value # read the input value
echo 1 > /sys/class/gpio/gpio$n/value # write a value for output
 
1,586
edits