Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1463841
| From | Jarkko Nikula <jarkko.nikula@linux.intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v3 2/3] i2c: designware: detect when dynamic tar update is possible |
| Date | 2016-08-16 16:10 +0200 |
| Message-ID | <s6Ne2-46v-7@gated-at.bofh.it> (permalink) |
| References | <s01F7-3X8-7@gated-at.bofh.it> <s01F7-3X8-15@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
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
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
Re: [PATCH v3 2/3] i2c: designware: detect when dynamic tar update is possible Jarkko Nikula <jarkko.nikula@linux.intel.com> - 2016-08-16 16:10 +0200
csiph-web