Skip to contentSkip to conversation

PCA954x I2C switch/multiplexer

DISCUSSION ROASCIO Paolo 3 participants 4 messages Feb 23, 2008 – Feb 29, 2008 3 messages not in the archive I2C subsystem host drivers

lore
Share & tools
lore
#0 lore raw

Hello, i'm new in this list, then please excuse me for my bad english...

I read the Frank's message dated jan 31 2008 about a patch for the PCA954x i2c mux family support.

I patched my kernel (2.6.22) without problems, bu when i load the module i2c_pca954x, nothing happens....

If i turn on all the kernel i2c debug related options, in dmesg i can see something like:

[pca9540] registered,

but, when i launch sensors-detect, i can't see any bus other than my i2c-amd-756.

I'm not a programmer, but reading the code, i can see that this module hasn't load parameters (the same result as modinfo), then, please Frank, can you explain me how to make the pca954x support start?

I'm a GIGABYTE GA-7DPXDW owner, where a PCA9540 "shares" two LM-90 on the sam i2c bus (one for each cpu), then i will be happy to test your patch if right pointed.

Thanks.

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw

The driver I submitted implements the "new style" driver model. These driver's don't probe the bus automatically. Instead, devices must be instantiated by calling i2c_register_board_info() for each multiplexer device. Please note that this driver implements a special syntax for the type field: e.g. .type = "pxa9544,5" tells the driver to create 4 virtual i2c buses with ids 5, 6, 7 and 8. You would i2c_register_board_info() your PXA9544 multiplexer with the root i2c bus and your bus segment devices with those virtual i2c buses.

Regards,
-Frank

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): A42C17A8FF150C4DB98BFD6497D1D000081DF898-SepvG4MK2K7XgKAwtTS8dDuQPtp/[email protected]

#4 lore raw

Hi Frank,

Quoted 8 lines · Frank

The driver I submitted implements the "new style" driver model. These driver's don't probe the bus automatically. Instead, devices must be instantiated by calling i2c_register_board_info() for each multiplexer device. Please note that this driver implements a special syntax for the type field: e.g. .type = "pxa9544,5" tells the driver to create 4 virtual i2c buses with ids 5, 6, 7 and 8. You would i2c_register_board_info() your PXA9544 multiplexer with the root i2c bus and your bus segment devices with those virtual i2c buses.

Please don't abuse the type field, instead define a custom structure and pass it to the driver as platform data. This will give you much more flexibility as well.

Signature · 6 lines
Jean Delvare

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): [email protected]

#6 lore raw

Il Monday 25 February 2008 09:02:37 hai scritto:

Quoted 12 lines

Hi Frank,

Quoted 8 lines · Frank

The driver I submitted implements the "new style" driver model. These driver's don't probe the bus automatically. Instead, devices must be instantiated by calling i2c_register_board_info() for each multiplexer device. Please note that this driver implements a special syntax for the type field: e.g. .type = "pxa9544,5" tells the driver to create 4 virtual i2c buses with ids 5, 6, 7 and 8. You would i2c_register_board_info() your PXA9544 multiplexer with the root i2c bus and your bus segment devices with those virtual i2c buses.

Quoted 3 lines

Please don't abuse the type field, instead define a custom structure and pass it to the driver as platform data. This will give you much more flexibility as well.

Hello, thanks for your answers

Well, i googled this days to learn something about the i2c_register_board_info() and the platform data structures. This requires a good knowledge of programming as i haven't :(

I understood that pca9540 (in my case) definitions have to be hardcoded somewhere (the only thread i found about this regards a SIP device registration on arm platform), but, where? and these needs to be coded as a "C" struct (the "type" field is part of this struct?)?

Well, i think i'm not enough skinned to manage this driver, peraph a whish:
will be implemented something like a modprobe option to make this driver more user friendly?

Please feel free to point me to adequate documentation about the platform data structure, in the meanwhile i continue googling...

Roascio paolo

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c