aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap1
diff options
context:
space:
mode:
authorHirosh Dabui <hirosh.dabui@snom.com>2011-01-25 23:05:26 +0100
committerKevin Hilman <khilman@ti.com>2011-02-28 14:53:19 -0800
commitc284d9fa48e1ad17bda142cfbb683c29a3b005a6 (patch)
treecb5c859edc302e99a2fef7aa7b634eb9c8039d4d /arch/arm/mach-omap1
parentb3d1ffb2a5294c74fcf1579499115e1e33b8f487 (diff)
davinci: tnetv107x: fix register indexing for GPIOs numbers > 31
This patch fix a bug in the register indexing for GPIOs numbers > 31 to get the relevant hardware registers of tnetv107x to control the GPIOs. In the structure tnetv107x_gpio_regs: struct tnetv107x_gpio_regs { u32 idver; u32 data_in[3]; u32 data_out[3]; u32 direction[3]; u32 enable[3]; }; The GPIO hardware register addresses of tnetv107x are stored. The chip implements 3 registers of each entity to serve 96 GPIOs, each register provides a subset of 32 GPIOs. The driver provides these macros: gpio_reg_set_bit, gpio_reg_get_bit and gpio_reg_clear_bit. The bug implied the use of macros to access the relevant hardware register e.g. the driver code used the macro like this: 'gpio_reg_clear_bit(&reg->data_out, gpio)' But it has to be used like this: 'gpio_reg_clear_bit(reg->data_out, gpio)'. The different results are shown here: - &reg->data_out + 1 (it will add the full array size of data_out i.e. 12 bytes) - reg->data_out + 1 (it will increment only the size of data_out i.e. only 4 bytes) Acked-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Hirosh Dabui <hirosh.dabui@snom.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap1')
0 files changed, 0 insertions, 0 deletions