Subject: Re: Filling out smbus functions in i2c layer
To: Jared D. McNeill <jmcneill@invisible.ca>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: tech-kern
Date: 03/16/2006 21:26:49
Jared D. McNeill wrote:
> Hey folks --
>
> It looks like our i2c layer defines a few functions for talking the
> smbus protocol:
>
>   iic_smbus_write_byte(i2c_tag_t, i2c_addr_t, uint8_t, uint8_t, int)
>   iic_smbus_read_byte(i2c_tag_t, i2c_addr_t, uint8_t, uint8_t *, int)
>   iic_smbus_receive_byte(i2c_tag_t, i2c_addr_t, uint8_t *, int);
>
> I just dug up an old patch that fills in most of the missing functions:
>
>   iic_smbus_write_word(i2c_tag_t, i2c_addr_t, uint8_t, uint16_t, int);
>   iic_smbus_read_word(i2c_tag_t, i2c_addr_t, uint8_t, uint16_t *, int);
>   iic_smbus_send_byte(i2c_tag_t, i2c_addr_t, uint8_t, int);
>   iic_smbus_quick_read(i2c_tag_t, i2c_addr_t, int);
>   iic_smbus_quick_write(i2c_tag_t, i2c_addr_t, int);
>   iic_smbus_block_read(i2c_tag_t, i2c_addr_t, uint8_t, uint8_t *,
> size_t, int);
>   iic_smbus_block_write(i2c_tag_t, i2c_addr_t, uint8_t, uint8_t *,
> size_t, int);
>
> The patch lives here:
>   http://www.invisible.ca/~jmcneill/netbsd/i2c.patch
>
> Ok to commit?
>
> Cheers,
> Jared
>   
I thought that smbus was just the "unlicensed" version of i2c?  Do we
really need to have layers for both i2c and smbus?  Or am I just being
ignorant?

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191