[i2c] [patch 2.6.27-rc4] i2c-davinci: behave with i2cdetect
Kevin Hilman
khilman at deeprootsystems.com
Thu Aug 28 18:59:21 CEST 2008
David Brownell <david-b at pacbell.net> writes:
> From: David Brownell <dbrownell at users.sourceforge.net>
>
> Make i2c-davinci cope properly with "i2cdetect": don't spew
> syslog spam on perfectly normal behaviors, or respond to any
> address other than the one reserved for the SMBus host.
>
> Signed-off-by: David Brownell <dbrownell at users.sourceforge.net>
Thanks, pushing today.
Kevin
> drivers/i2c/busses/i2c-davinci.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> --- a/drivers/i2c/busses/i2c-davinci.c
> +++ b/drivers/i2c/busses/i2c-davinci.c
> @@ -188,6 +188,11 @@ static int i2c_davinci_init(struct davin
> davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKH_REG, clkh);
> davinci_i2c_write_reg(dev, DAVINCI_I2C_CLKL_REG, clkl);
>
> + /* Respond at reserved "SMBus Host" slave address" (and zero);
> + * we seem to have no option to not respond...
> + */
> + davinci_i2c_write_reg(dev, DAVINCI_I2C_OAR_REG, 0x08);
> +
> dev_dbg(dev->dev, "input_clock = %d, CLK = %d\n", input_clock, clk);
> dev_dbg(dev->dev, "PSC = %d\n",
> davinci_i2c_read_reg(dev, DAVINCI_I2C_PSC_REG));
> @@ -400,7 +405,7 @@ static void terminate_write(struct davin
> davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
>
> if (!dev->terminate)
> - dev_err(dev->dev, "TDR IRQ while no data to send\n");
> + dev_dbg(dev->dev, "TDR IRQ while no data to send\n");
> }
>
> /*
> @@ -494,9 +499,14 @@ static irqreturn_t i2c_davinci_isr(int t
> break;
>
> case DAVINCI_I2C_IVR_AAS:
> - dev_warn(dev->dev, "Address as slave interrupt\n");
> - }/* switch */
> - }/* while */
> + dev_dbg(dev->dev, "Address as slave interrupt\n");
> + break;
> +
> + default:
> + dev_warn(dev->dev, "Unrecognized irq stat %d\n", stat);
> + break;
> + }
> + }
>
> return count ? IRQ_HANDLED : IRQ_NONE;
> }
More information about the i2c
mailing list