linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver
@ 2012-08-22  6:59 Nikolaus Voss
       [not found] ` <cover.1345618760.git.n.voss-+umVssTZoCsb1SvskN2V4Q@public.gmane.org>
  0 siblings, 1 reply; 23+ messages in thread
From: Nikolaus Voss @ 2012-08-22  6:59 UTC (permalink / raw)
  To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA
  Cc: nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg, balbi-l0cyMroinI0,
	h.feurstein-Re5JQEeQqe8AvxtiuMwx3w,
	rmallon-Re5JQEeQqe8AvxtiuMwx3w, adrian.yanes-uOixanVlb7U,
	ludovic.desroches-AIFe0yeh4nAAvxtiuMwx3w,
	carsten.behling-0M7HhAU3Y85FsXB23wyQUg

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] 23+ messages in thread
* [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver
@ 2012-08-29  7:28 Nikolaus Voss
  2012-08-29 12:06 ` ludovic.desroches
       [not found] ` <cover.1346225321.git.n.voss-+umVssTZoCsb1SvskN2V4Q@public.gmane.org>
  0 siblings, 2 replies; 23+ messages in thread
From: Nikolaus Voss @ 2012-08-29  7:28 UTC (permalink / raw)
  To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA
  Cc: nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg, balbi-l0cyMroinI0,
	h.feurstein-Re5JQEeQqe8AvxtiuMwx3w,
	rmallon-Re5JQEeQqe8AvxtiuMwx3w, adrian.yanes-uOixanVlb7U,
	ludovic.desroches-AIFe0yeh4nAAvxtiuMwx3w,
	carsten.behling-0M7HhAU3Y85FsXB23wyQUg

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] 23+ messages in thread

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

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-22  6:59 [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver Nikolaus Voss
     [not found] ` <cover.1345618760.git.n.voss-+umVssTZoCsb1SvskN2V4Q@public.gmane.org>
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
2012-08-27 10:16     ` ludovic.desroches
2012-08-27 10:40       ` Yanes Martinez Adrian
2012-08-27 12:04         ` ludovic.desroches
2012-08-27 12:45           ` Yanes Martinez Adrian
     [not found]             ` <BC0F374A1C27184AB96177CDFEC2F54225ECD36E-rZDk5e4OVTsRAxgRyUl6SBEi2Xg3O0b1@public.gmane.org>
2012-08-27 13:32               ` Voss, Nikolaus
2012-08-27 14:00                 ` ludovic.desroches
2012-08-27 14:29                   ` Voss, Nikolaus
2012-09-11  8:26                     ` Nicolas Ferre
     [not found]                       ` <504EF5BF.2090404-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2012-09-11 22:13                         ` Wolfram Sang
2012-08-30  7:35                 ` ludovic.desroches
2012-08-28 15:10     ` ludovic.desroches
2012-08-28 15:32       ` Voss, Nikolaus
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-08-27 10:24     ` ludovic.desroches
2012-08-27 13:22       ` Voss, Nikolaus
2012-08-27 13:27         ` ludovic.desroches
  -- strict thread matches above, loose matches on Subject: below --
2012-08-29  7:28 [PATCH v11 0/4] AT91: replace old i2c-at91.c TWI driver Nikolaus Voss
2012-08-29 12:06 ` ludovic.desroches
     [not found] ` <cover.1346225321.git.n.voss-+umVssTZoCsb1SvskN2V4Q@public.gmane.org>
2012-09-12  7:59   ` Nicolas Ferre

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).