From: Nikolaus Voss <n.voss@weinmann.de> To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org Cc: nicolas.ferre@atmel.com, ben-linux@fluff.org, balbi@ti.com, <h.feurstein@gmail.com>, <rmallon@gmail.com> Subject: [PATCH v9 0/4] AT91: replace broken TWI driver i2c-at91.c Date: Mon, 19 Mar 2012 16:07:10 +0100 [thread overview] Message-ID: <cover.1322479017a.git.n.voss@weinmann.de> (raw) The old driver has two main deficencies: i) No repeated start (Sr) condiction is possible, this makes it unusable e.g. for most SMBus transfers. ii) I/O was done with polling/busy waiting what caused over-/underruns even at light system loads and clock speeds. The new driver overcomes these deficencies and in addition allows for more than one TWI interface. A remaining limitation is the fact, that only one repeated start is possible (two concatenated messages). This limitation is imposed by the hardware. However, this should not be a problem as all common i2c-client communication does not rely on more than one repeated start. Signed-off-by: Nikolaus Voss <n.voss@weinmann.de> Reviewed-by: Felipe Balbi <balbi@ti.com> Tested-by: Hubert Feurstein <h.feurstein@gmail.com> v9: i) merge i2c-at91.c patches to single patch ii) rewrite cwgr reg after timeout to reenable the right twi clock v8: i) remove local include ii) remove cpu_is_rm9200() and put twi hw bug info in platform_device iii) use readl/writel_relaxed instead of __raw_readl/writel v7: i) fix bug if internal address > 1 byte ii) send stop when len == 1 (both reported by Carsten Behling) v6: support for I2C_SMBUS_BLOCK_DATA transfers. Better use of clk_(un)prepare(). More sensible transfer timeout. v5: Another round of review comments from Ryan Mallon, Felipe Balbi and Russell King: convert twi clk to use .dev_id, cleanups v4: Integrated more review comments from Ryan Mallon and Felipe Balbi: Moved register include file to local include, code cleanups v3: Integrated review comments from Ryan Mallon and Felipe Balbi v2: Fixed whitespace issue Nikolaus Voss (4): drivers/i2c/busses/i2c-at91.c: remove broken driver Replace clk_lookup.con_id with clk_lookup.dev_id entries for twi clk drivers/i2c/busses/i2c-at91.c: add new driver G45 TWI: remove open drain setting for twi function gpios arch/arm/mach-at91/at91cap9.c | 1 + arch/arm/mach-at91/at91rm9200.c | 1 + arch/arm/mach-at91/at91rm9200_devices.c | 9 + arch/arm/mach-at91/at91sam9260.c | 1 + arch/arm/mach-at91/at91sam9261.c | 1 + arch/arm/mach-at91/at91sam9263.c | 1 + arch/arm/mach-at91/at91sam9g45.c | 2 + arch/arm/mach-at91/at91sam9g45_devices.c | 6 - arch/arm/mach-at91/at91sam9rl.c | 2 + arch/arm/mach-at91/include/mach/at91_twi.h | 68 ---- drivers/i2c/busses/Kconfig | 11 +- drivers/i2c/busses/i2c-at91.c | 561 +++++++++++++++++----------- 12 files changed, 373 insertions(+), 291 deletions(-) delete mode 100644 arch/arm/mach-at91/include/mach/at91_twi.h -- 1.7.5.4
WARNING: multiple messages have this Message-ID (diff)
From: Nikolaus Voss <n.voss-+umVssTZoCsb1SvskN2V4Q@public.gmane.org> To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org, ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, balbi-l0cyMroinI0@public.gmane.org, h.feurstein-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, rmallon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Subject: [PATCH v9 0/4] AT91: replace broken TWI driver i2c-at91.c Date: Mon, 19 Mar 2012 16:07:10 +0100 [thread overview] Message-ID: <cover.1322479017a.git.n.voss@weinmann.de> (raw) The old driver has two main deficencies: i) No repeated start (Sr) condiction is possible, this makes it unusable e.g. for most SMBus transfers. ii) I/O was done with polling/busy waiting what caused over-/underruns even at light system loads and clock speeds. The new driver overcomes these deficencies and in addition allows for more than one TWI interface. A remaining limitation is the fact, that only one repeated start is possible (two concatenated messages). This limitation is imposed by the hardware. However, this should not be a problem as all common i2c-client communication does not rely on more than one repeated start. Signed-off-by: Nikolaus Voss <n.voss-+umVssTZoCsb1SvskN2V4Q@public.gmane.org> Reviewed-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org> Tested-by: Hubert Feurstein <h.feurstein-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> v9: i) merge i2c-at91.c patches to single patch ii) rewrite cwgr reg after timeout to reenable the right twi clock v8: i) remove local include ii) remove cpu_is_rm9200() and put twi hw bug info in platform_device iii) use readl/writel_relaxed instead of __raw_readl/writel v7: i) fix bug if internal address > 1 byte ii) send stop when len == 1 (both reported by Carsten Behling) v6: support for I2C_SMBUS_BLOCK_DATA transfers. Better use of clk_(un)prepare(). More sensible transfer timeout. v5: Another round of review comments from Ryan Mallon, Felipe Balbi and Russell King: convert twi clk to use .dev_id, cleanups v4: Integrated more review comments from Ryan Mallon and Felipe Balbi: Moved register include file to local include, code cleanups v3: Integrated review comments from Ryan Mallon and Felipe Balbi v2: Fixed whitespace issue Nikolaus Voss (4): drivers/i2c/busses/i2c-at91.c: remove broken driver Replace clk_lookup.con_id with clk_lookup.dev_id entries for twi clk drivers/i2c/busses/i2c-at91.c: add new driver G45 TWI: remove open drain setting for twi function gpios arch/arm/mach-at91/at91cap9.c | 1 + arch/arm/mach-at91/at91rm9200.c | 1 + arch/arm/mach-at91/at91rm9200_devices.c | 9 + arch/arm/mach-at91/at91sam9260.c | 1 + arch/arm/mach-at91/at91sam9261.c | 1 + arch/arm/mach-at91/at91sam9263.c | 1 + arch/arm/mach-at91/at91sam9g45.c | 2 + arch/arm/mach-at91/at91sam9g45_devices.c | 6 - arch/arm/mach-at91/at91sam9rl.c | 2 + arch/arm/mach-at91/include/mach/at91_twi.h | 68 ---- drivers/i2c/busses/Kconfig | 11 +- drivers/i2c/busses/i2c-at91.c | 561 +++++++++++++++++----------- 12 files changed, 373 insertions(+), 291 deletions(-) delete mode 100644 arch/arm/mach-at91/include/mach/at91_twi.h -- 1.7.5.4
next reply other threads:[~2012-03-19 15:46 UTC|newest] Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-03-19 15:07 Nikolaus Voss [this message] 2012-03-19 15:07 ` [PATCH v9 0/4] AT91: replace broken TWI driver i2c-at91.c Nikolaus Voss 2011-11-08 10:49 ` [PATCH v9 1/4] drivers/i2c/busses/i2c-at91.c: remove broken driver Nikolaus Voss 2011-11-08 10:49 ` Nikolaus Voss 2011-11-08 10:49 ` [PATCH v9 3/4] drivers/i2c/busses/i2c-at91.c: add new driver Nikolaus Voss 2011-11-08 10:49 ` Nikolaus Voss 2012-04-13 10:17 ` Hubert Feurstein 2012-04-13 10:17 ` Hubert Feurstein 2012-04-13 10:17 ` Hubert Feurstein 2012-04-13 10:39 ` Felipe Balbi 2012-04-13 10:39 ` Felipe Balbi 2012-04-13 10:39 ` Felipe Balbi 2012-04-13 11:44 ` [PATCH] i2c-at91: fix data-loss issue Hubert Feurstein 2012-04-13 11:44 ` Hubert Feurstein 2012-04-13 11:44 ` Hubert Feurstein 2012-04-13 22:06 ` Ryan Mallon 2012-04-13 22:06 ` Ryan Mallon 2012-04-13 22:06 ` Ryan Mallon 2012-04-16 7:30 ` Voss, Nikolaus 2012-04-16 7:30 ` Voss, Nikolaus 2012-04-16 7:30 ` Voss, Nikolaus 2012-04-16 9:27 ` Hubert Feurstein 2012-04-16 9:27 ` Hubert Feurstein 2012-04-16 9:27 ` Hubert Feurstein 2012-04-18 14:39 ` Wolfram Sang 2012-04-18 14:39 ` Wolfram Sang 2012-04-18 14:39 ` Wolfram Sang 2012-04-21 19:33 ` Adrian Yanes 2012-04-23 5:39 ` Voss, Nikolaus 2012-04-23 5:39 ` Voss, Nikolaus 2012-04-23 5:39 ` Voss, Nikolaus 2012-04-23 6:24 ` Adrian Yanes 2012-04-23 6:24 ` Adrian Yanes 2012-04-23 6:24 ` Adrian Yanes 2012-04-25 5:26 ` Adrian Yanes 2011-11-08 11:09 ` [PATCH v9 2/4] Replace clk_lookup.con_id with clk_lookup.dev_id entries for twi clk Nikolaus Voss 2011-11-08 11:09 ` Nikolaus Voss 2011-11-08 11:11 ` [PATCH v9 4/4] G45 TWI: remove open drain setting for twi function gpios Nikolaus Voss 2011-11-08 11:11 ` Nikolaus Voss
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1322479017a.git.n.voss@weinmann.de \ --to=n.voss@weinmann.de \ --cc=balbi@ti.com \ --cc=ben-linux@fluff.org \ --cc=h.feurstein@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-i2c@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=nicolas.ferre@atmel.com \ --cc=rmallon@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.