lkml.org 
[lkml]   [2016]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v3 2/3] i2c: designware: detect when dynamic tar update is possible
From
Date
Hi, + Wolfram

On 07/29/2016 01:03 AM, Lucas De Marchi wrote:
> This adapter can be synthesized with dynamic tar update enabled or disabled.
> When enabled it is not necessary to disable the adapter to change the slave
> address in some situations, which saves some time per transaction.
>
> There is no direct register to know if this feature is enabled but we can do it
> indirectly by writing to the 10BIT_ADDR field in IC_CON: this field is
> read only when dynamic tar update is enabled.
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
> drivers/i2c/busses/i2c-designware-core.c | 37 ++++++++++++++++++++++----------
> drivers/i2c/busses/i2c-designware-core.h | 1 +
> 2 files changed, 27 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
> index 2c61585..a8408db 100644
> --- a/drivers/i2c/busses/i2c-designware-core.c
> +++ b/drivers/i2c/busses/i2c-designware-core.c
> @@ -388,6 +388,20 @@ int i2c_dw_init(struct dw_i2c_dev *dev)
> /* configure the i2c master */
> dw_writel(dev, dev->master_cfg , DW_IC_CON);
>
> + /*
> + * Test if dynamic TAR update is enabled in this controller by writing to

Over 80 characters in this line.

> + */
> + reg = dw_readl(dev, DW_IC_CON);
> + dw_writel(dev, reg ^ DW_IC_CON_10BITADDR_MASTER, DW_IC_CON);
> +
> + if ((dw_readl(dev, DW_IC_CON) & DW_IC_CON_10BITADDR_MASTER) ==
> + (reg & DW_IC_CON_10BITADDR_MASTER)) {
> + dev->dynamic_tar_update_enabled = true;
> + dev_dbg(dev->dev, "Dynamic TAR update enabled");
> + }

Is this possible to move to i2c_dw_probe()? I guess the enabled status
doesn't change runtime?

--
Jarkko

\
 
 \ /
  Last update: 2016-09-17 09:57    [W:0.093 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site