On Sat, Aug 06, 2005 at 03:01:31PM -0300, Aristeu Sergio Rozanski Filho wrote: > 8xx: port i2c-algo_8xx to 2.6 > > Based on Tom Rini's work > > compile tested
Would be good to test before submitting? :) > Signed-off-by: Aristeu Sergio Rozanski Filho <aris at cathedrallabs.org> > > Index: 2.6-8xx/drivers/i2c/algos/i2c-algo-8xx.c > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ 2.6-8xx/drivers/i2c/algos/i2c-algo-8xx.c 2005-08-05 17:16:08.000000000 > -0300 > @@ -0,0 +1,625 @@ > +/* > + * i2c-algo-8xx.c i2x driver algorithms for MPC8XX CPM > + * Copyright (c) 1999 Dan Malek (dmalek at jlc.net). > + * > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 2 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program; if not, write to the Free Software > + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. > + * > + * moved into proper i2c interface; separated out platform specific > + * parts into i2c-rpx.c > + * Brad Parker (brad at heeltoe.com) > + */ > + > +// XXX todo > +// timeout sleep? > + > +/* $Id: i2c-algo-8xx.c,v 1.7 2002/08/03 22:48:18 ac9410 Exp $ */ > + > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/delay.h> > +#include <linux/slab.h> > +#include <linux/version.h> > +#include <linux/init.h> > +#include <asm/uaccess.h> > +#include <linux/ioport.h> > +#include <linux/errno.h> > +#include <linux/sched.h> > + > +#include <asm/mpc8xx.h> > +#include <asm/commproc.h> > + > +#include <linux/i2c.h> > +#include <linux/i2c-algo-8xx.h> > + > +#define CPM_MAX_READ 513 > +/* Try uncomment this if you have an older CPU(earlier than rev D4) */ > +/* #define I2C_CHIP_ERRATA */ > + > +static char *module_name = "i2c_algo_8xx"; > +#define DEBUGP(level, x, y...) do { \ > + if (cpm_debug >= level) \ > + printk(KERN_DEBUG "%s: " x, \ > + module_name, ## y); \ > + } while(0) > + > +static wait_queue_head_t iic_wait; > +static ushort r_tbase, r_rbase; > + > +int cpm_scan = 0; > +int cpm_debug = 0; > + > +static void > +cpm_iic_interrupt(void *dev_id, struct pt_regs *regs) > + { > + volatile i2c8xx_t *i2c = (i2c8xx_t *)dev_id; You got an extra space everywhere other than the initial TAB?