Subject: Re: New i2c framework
To: None <cgd@broadcom.com, eeh@netbsd.org>
From: None <eeh@netbsd.org>
List: tech-kern
Date: 02/19/2002 20:13:55
| At 19 Feb 2002 19:48:19 -0000, wrote:
| > | > A framework for smart SMBus controllers can be easily built on a more
| > | > general i2c framework.
| > |
| > | How do you figure? you need to expose the well-defined smbus commands
| > | all the way through the interface, or every back-end driver has to
| > | look at the commands that it sees, and try to recognize them as
| > | specific smbus commands.
| >
| > I'd have thought that was obvious. You create a SMBus interface which
| > SMBus devices call to generate a series i2c operations, then call
| > i2c_cmd() as often as required to process the i2c commands. SMOP.
|
| And how do smart controllers use that?
|
| they get called separately by that smbus interface? or they grok the
| results of 'i2c_cmd' and turn them back into smart commands?
They get called by the smbus interface.
| The point is, how do you do this without inventing a new set of
| interfaces and add a whole new set of code, for smbus controllers,
| when really it _is_ the same code that needs to be written.
It *IS NOT* the same code.
| the only difference is that on 'real i2c' there's a higher likelyhood
| of needing commands with a non-standard format, which _need_ to be
| bitbanged.
There is *_NO_ _STANDARD_ _I2C_ _FORMAT_*!!!!!
Pretending that there is a standard i2c format is merely going to
cause headaches for people who discover that the SMBus commands they
used to communicate to a i2c device, because they thought they were
shorthand i2c commands, simply don't work.
| in i2c devices (which may appear on smbus) which _can_ use the
| higher-level command formats, you _should_ use higher-level command
| formats, to make the drivers clearer and to make the code more easily
| shared between the busses (and higher-performance, when there's a
| smart controller).
This idea is soooo broken in soooo many ways I really don't want to go
there.
Eduardo