[RESEND] LM73 hwmon driver i2c auto-detection problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We are trying to use the hwmon framework to read the temperature values out of a LM73 device we have in our i2c bus on the OMAPL-138. It's current address is 0x49.
The actual behavior for the LM73 driver seems to be to try to autodetect if there are any other devices of that same type on the i2c bus by looking at the std addresses where it could find one:
0x48, 0x49, 0x4a, 0x4c, 0x4d, 0x4e

What happens is that we have a different device with completely different registers at @0x48 so when the autodetection method gets called it tries to read 2bytes out of the register 0x07 and this other device has only 1byte of data at that register, then the whole bus times out.

We have tried declaring the devices we have during our board setup statically, for instance:
static const struct i2c_board_info __initconst i2c_devices[] = {
{
I2C_BOARD_INFO("lm73", 0x49),
},
};

static __init void board_init(void) {
...
i2c_register_board_info(1/* i2c-0 above was registered i2c_davinci.1*/,
i2c_devices,
ARRAY_SIZE(i2c_devices));
...
}

But even when the driver gets instantiated at the proper address 0x49 the sensors_lm73_init gets called making the detect method to get called and testing an address that could be an LM73 but is not and hanging the bus.

Has anyone found some of the same problems? Is there any way to avoid completely the autodetection for the hwmon framework? Should the i2c implementation be able to handle this situation gracefully?

Cheers,

Robert

PS: The other device has a factory non-modifiable address at 0x48.
_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux