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 */ writel(0,

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-done,

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_PROTOCOL_BLK_RD

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 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 wrote: On

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 14, 2015 at

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: On Fri, Jan 16,

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)) { Why

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 (msg-flags I2C_M_RD) {

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 (!time_left

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 linux/device.h +#include linux/kernel.h +#include linux/module.h +#include linux/sched.h +#include linux/i2c.h +#include linux/interrupt.h +#include

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. One could also

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 transfers, if you

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 linux/device.h +#include linux/kernel.h +#include linux/module.h +#include linux/sched.h +#include linux/i2c.h +#include linux/interrupt.h +#include linux/platform_device.h +#include linux/clk.h +#include

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

[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)