On 7/21/08, Timur Tabi timur@freescale.com wrote:
Jon Smirl wrote:
From soc/codecs/cs4270.c...
- Note that we don't use the hw_write function pointer of snd_soc_codec.
- That's because it's too clunky: the hw_write_t prototype does not match
- i2c_smbus_write_byte_data(), and it's just another layer of overhead.
*/
The prototype doesn't match because you are using i2c_smbus_write_byte_data() instead of i2c_master_send()/i2c_master_recv().
Should I be using i2c_master_send() instead? I remember reading somewhere that I should be using the i2c smbus functions if possible.
i2c_smbus... will work with either a smbus controller or an i2c controller. Inside the routine it decides which type of controller and then ends up calling i2c_master....
You're on an i2c bus, no need to the overhead.
You'd have to read the CS4270 datasheet in detail to see if can even be hooked up to an smbus controller. smbus is a subset of full i2c.
-- Timur Tabi Linux kernel developer at Freescale