Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-19 Thread Ray Jui
On 1/19/2015 11:28 AM, Russell King - ARM Linux wrote: > On Sat, Jan 17, 2015 at 04:30:33PM -0800, Ray Jui wrote: >> >> >> On 1/17/2015 2:40 PM, Russell King - ARM Linux wrote: >>> On Sat, Jan 17, 2015 at 01:26:41PM -0800, Ray Jui wrote: time_left = wait_for_completion_timeout(&iproc_i2c-

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-19 Thread Russell King - ARM Linux
On Sat, Jan 17, 2015 at 04:30:33PM -0800, Ray Jui wrote: > > > On 1/17/2015 2:40 PM, Russell King - ARM Linux wrote: > > On Sat, Jan 17, 2015 at 01:26:41PM -0800, Ray Jui wrote: > >>time_left = wait_for_completion_timeout(&iproc_i2c->done, time_left); > >> > >>/* disable all interrupts */

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Ray Jui
On 1/17/2015 2:40 PM, Russell King - ARM Linux wrote: > On Sat, Jan 17, 2015 at 01:26:41PM -0800, Ray Jui wrote: >> time_left = wait_for_completion_timeout(&iproc_i2c->done, time_left); >> >> /* disable all interrupts */ >> writel(0, iproc_i2c->base + IE_OFFSET); >> >> if (!ti

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Russell King - ARM Linux
On Sat, Jan 17, 2015 at 01:26:41PM -0800, Ray Jui wrote: > time_left = wait_for_completion_timeout(&iproc_i2c->done, time_left); > > /* disable all interrupts */ > writel(0, iproc_i2c->base + IE_OFFSET); > > if (!time_left && !atomic_read(&iproc_i2c->transfer_is_successful

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Ray Jui
On 1/17/2015 1:10 PM, Uwe Kleine-König wrote: > Hello, > > On Sat, Jan 17, 2015 at 12:51:50PM -0800, Ray Jui wrote: >> On 1/17/2015 12:18 PM, Uwe Kleine-König wrote: >>> Hello, >>> >>> On Sat, Jan 17, 2015 at 11:58:33AM -0800, Ray Jui wrote: On 1/17/2015 8:01 AM, Uwe Kleine-König wrote: >>>

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Uwe Kleine-König
Hello, On Sat, Jan 17, 2015 at 12:51:50PM -0800, Ray Jui wrote: > On 1/17/2015 12:18 PM, Uwe Kleine-König wrote: > > Hello, > > > > On Sat, Jan 17, 2015 at 11:58:33AM -0800, Ray Jui wrote: > >> On 1/17/2015 8:01 AM, Uwe Kleine-König wrote: > >>> On Fri, Jan 16, 2015 at 02:09:28PM -0800, Ray Jui w

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Ray Jui
On 1/17/2015 12:18 PM, Uwe Kleine-König wrote: > Hello, > > On Sat, Jan 17, 2015 at 11:58:33AM -0800, Ray Jui wrote: >> On 1/17/2015 8:01 AM, Uwe Kleine-König wrote: >>> On Fri, Jan 16, 2015 at 02:09:28PM -0800, Ray Jui wrote: On 1/15/2015 12:41 AM, Uwe Kleine-König wrote: > On Wed, Jan

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Uwe Kleine-König
Hello, On Sat, Jan 17, 2015 at 11:58:33AM -0800, Ray Jui wrote: > On 1/17/2015 8:01 AM, Uwe Kleine-König wrote: > > On Fri, Jan 16, 2015 at 02:09:28PM -0800, Ray Jui wrote: > >> On 1/15/2015 12:41 AM, Uwe Kleine-König wrote: > >>> On Wed, Jan 14, 2015 at 02:23:32PM -0800, Ray Jui wrote: > +

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Ray Jui
On 1/17/2015 8:01 AM, Uwe Kleine-König wrote: > Hello, > > On Fri, Jan 16, 2015 at 02:09:28PM -0800, Ray Jui wrote: >> On 1/15/2015 12:41 AM, Uwe Kleine-König wrote: >>> On Wed, Jan 14, 2015 at 02:23:32PM -0800, Ray Jui wrote: + */ + val = 1 << M_CMD_START_BUSY_SHIFT; + if (ms

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-17 Thread Uwe Kleine-König
Hello, On Fri, Jan 16, 2015 at 02:09:28PM -0800, Ray Jui wrote: > On 1/15/2015 12:41 AM, Uwe Kleine-König wrote: > > On Wed, Jan 14, 2015 at 02:23:32PM -0800, Ray Jui wrote: > >> + */ > >> + val = 1 << M_CMD_START_BUSY_SHIFT; > >> + if (msg->flags & I2C_M_RD) { > >> + val |= (M_CMD_PR

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-16 Thread Ray Jui
On 1/15/2015 4:07 AM, Wolfram Sang wrote: >>> +static int bcm_iproc_i2c_remove(struct platform_device *pdev) >>> +{ >>> + struct bcm_iproc_i2c_dev *iproc_i2c = platform_get_drvdata(pdev); >>> + >>> + i2c_del_adapter(&iproc_i2c->adapter); >> You need to free the irq before i2c_del_adapter. >

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-16 Thread Ray Jui
On 1/15/2015 12:41 AM, Uwe Kleine-König wrote: > Hello, > > On Wed, Jan 14, 2015 at 02:23:32PM -0800, Ray Jui wrote: >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include > some of them are not ne

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-15 Thread Uwe Kleine-König
Hello, On Thu, Jan 15, 2015 at 01:07:05PM +0100, Wolfram Sang wrote: > > > + iproc_i2c->msg = msg; > > Can it happen that iproc_i2c->msg still holds an uncompleted message > > here or is this serialized by the core? Wolfram? Either here something > > We have per-adapter locks serializing transfer

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-15 Thread Wolfram Sang
> > + iproc_i2c->msg = msg; > Can it happen that iproc_i2c->msg still holds an uncompleted message > here or is this serialized by the core? Wolfram? Either here something We have per-adapter locks serializing transfers, if you mean that? > > +static int bcm_iproc_i2c_cfg_speed(struct bcm_ipro

Re: [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-15 Thread Uwe Kleine-König
Hello, On Wed, Jan 14, 2015 at 02:23:32PM -0800, Ray Jui wrote: > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include some of them are not needed. I tested on amd64 and efm32 and could drop linux/device.h, lin

[PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver

2015-01-14 Thread Ray Jui
Add initial support to the Broadcom iProc I2C controller found in the iProc family of SoCs. The iProc I2C controller has separate internal TX and RX FIFOs, each has a size of 64 bytes. The iProc I2C controller supports two bus speeds including standard mode (100kHz) and fast mode (400kHz) Signed-