6048a3dd23
This change introduces a driver for the HTC PLD chip found on some smartphones, such as the HTC Wizard and HTC Herald. It works through the I2C bus and acts as a GPIO extender. Specifically: * it can have several sub-devices, each with its own I2C address * Each sub-device provides 8 output and 8 input pins * The chip attaches to one GPIO to signal when any of the input GPIOs change -- at which point all chips must be scanned for changes This driver implements the GPIOs throught the kernel's GPIO and IRQ framework. This allows any GPIO-servicing drivers to operate on htcpld pins, such as the gpio-keys and gpio-leds drivers. Signed-off-by: Cory Maccarrone <darkstar6262@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
24 lines
578 B
C
24 lines
578 B
C
#ifndef __LINUX_HTCPLD_H
|
|
#define __LINUX_HTCPLD_H
|
|
|
|
struct htcpld_chip_platform_data {
|
|
unsigned int addr;
|
|
unsigned int reset;
|
|
unsigned int num_gpios;
|
|
unsigned int gpio_out_base;
|
|
unsigned int gpio_in_base;
|
|
unsigned int irq_base;
|
|
unsigned int num_irqs;
|
|
};
|
|
|
|
struct htcpld_core_platform_data {
|
|
unsigned int int_reset_gpio_hi;
|
|
unsigned int int_reset_gpio_lo;
|
|
unsigned int i2c_adapter_id;
|
|
|
|
struct htcpld_chip_platform_data *chip;
|
|
unsigned int num_chip;
|
|
};
|
|
|
|
#endif /* __LINUX_HTCPLD_H */
|
|
|