Fix wrong setting of portconfig register. mask size is 2bits, so shift must be twice offset direction input value is 2
Signed-off-by: Jan Weitzel <[email protected]> --- Index: linux-2.6.28/drivers/gpio/max7301.c =================================================================== --- linux-2.6.28.orig/drivers/gpio/max7301.c +++ linux-2.6.28/drivers/gpio/max7301.c @@ -123,7 +123,7 @@ static int max7301_direction_input(struc /* Standard GPIO API doesn't support pull-ups, has to be extended. * Hard-coding no pollup for now. */ - *config = (*config & ~(3 << (offset & 3))) | (1 << (offset & 3)); + *config = (*config & ~(3 << (2*(offset & 3)))) | (2 << (2*(offset & 3))); ret = max7301_write(ts->spi, 0x08 + (offset >> 2), *config); @@ -157,7 +157,7 @@ static int max7301_direction_output(stru mutex_lock(&ts->lock); - *config = (*config & ~(3 << (offset & 3))) | (1 << (offset & 3)); + *config = (*config & ~(3 << (2*(offset & 3)))) | (1 << (2*(offset & 3))); ret = __max7301_set(ts, offset, value); ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ spi-devel-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/spi-devel-general
