linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver
@ 2012-08-29  7:28 Nikolaus Voss
  2011-11-08 10:49 ` [PATCH v11 1/4] drivers/i2c/busses/i2c-at91.c: remove old polling driver Nikolaus Voss
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Nikolaus Voss @ 2012-08-29  7:28 UTC (permalink / raw)
  To: linux-arm-kernel, linux-kernel, linux-i2c
  Cc: nicolas.ferre, ben-linux, balbi, h.feurstein, rmallon,
	adrian.yanes, ludovic.desroches, carsten.behling

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.

Changes since v11:
- corrected wrong id_entry on sam9261 twi gpio pdev

Nikolaus Voss (4):
  drivers/i2c/busses/i2c-at91.c: remove old polling 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/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/at91sam9261_devices.c   |    9 +
 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/at91sam9x5.c            |    3 +
 arch/arm/mach-at91/include/mach/at91_twi.h |   68 ----
 drivers/i2c/busses/Kconfig                 |   11 +-
 drivers/i2c/busses/i2c-at91.c              |  591 ++++++++++++++++++----------
 13 files changed, 418 insertions(+), 287 deletions(-)
 delete mode 100644 arch/arm/mach-at91/include/mach/at91_twi.h

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 7+ messages in thread
* [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver
@ 2012-08-22  6:59 Nikolaus Voss
  2011-11-08 11:11 ` [PATCH v11 4/4] G45 TWI: remove open drain setting for twi function gpios Nikolaus Voss
  0 siblings, 1 reply; 7+ messages in thread
From: Nikolaus Voss @ 2012-08-22  6:59 UTC (permalink / raw)
  To: linux-arm-kernel, linux-kernel, linux-i2c
  Cc: nicolas.ferre, ben-linux, balbi, h.feurstein, rmallon,
	adrian.yanes, ludovic.desroches, carsten.behling

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.

Changes since v10:
 - fix for flags persistency suggested and tested by Carsten Behling
 - clk_lookup.dev_id entries for at91sam9x5
 - calc_twi_clock fix for sam9261 by Ludovic Desroches

Nikolaus Voss (4):
  drivers/i2c/busses/i2c-at91.c: remove old polling 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/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/at91sam9261_devices.c   |    9 +
 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/at91sam9x5.c            |    3 +
 arch/arm/mach-at91/include/mach/at91_twi.h |   68 ----
 drivers/i2c/busses/Kconfig                 |   11 +-
 drivers/i2c/busses/i2c-at91.c              |  591 ++++++++++++++++++----------
 13 files changed, 418 insertions(+), 287 deletions(-)
 delete mode 100644 arch/arm/mach-at91/include/mach/at91_twi.h

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-09-12  7:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-29  7:28 [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver Nikolaus Voss
2011-11-08 10:49 ` [PATCH v11 1/4] drivers/i2c/busses/i2c-at91.c: remove old polling driver Nikolaus Voss
2011-11-08 10:49 ` [PATCH v11 3/4] drivers/i2c/busses/i2c-at91.c: add new driver Nikolaus Voss
2011-11-08 11:09 ` [PATCH v11 2/4] Replace clk_lookup.con_id with clk_lookup.dev_id entries for twi clk Nikolaus Voss
2011-11-08 11:11 ` [PATCH v11 4/4] G45 TWI: remove open drain setting for twi function gpios Nikolaus Voss
2012-09-12  7:59 ` [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver Nicolas Ferre
  -- strict thread matches above, loose matches on Subject: below --
2012-08-22  6:59 Nikolaus Voss
2011-11-08 11:11 ` [PATCH v11 4/4] G45 TWI: remove open drain setting for twi function gpios Nikolaus Voss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).