Hi Lindsey, On Tue, 28 Jul 2009 16:38:24 -0400, Lindsey Ings -X (ingsl - Yoh Services LLC at Cisco) wrote: > > Since I can't use the DTS I'm now trying to instantiate the mux through > other means. I put the code below in > ".../arch/powerpc/platforms/44x/myBoard.c". Is this the intended > instantiation? I have 2 i2c busses on my SOC and I have 2 muxes (with 4 > ports each) on the second SOC bus. Therefore, I'd want the first mux to > have busses 2,3,4,5 and the second mux to have 6,7,8,9: > > static struct pca954x_platform_mode pca954x_modes_mux0[] = { > { > .adap_id = 2, > }, > { > .adap_id = 3, > }, > { > .adap_id = 4, > }, > { > .adap_id = 5, > }, > }; > > static struct pca954x_platform_mode pca954x_modes_mux1[] = { > { > .adap_id = 6, > }, > { > .adap_id = 7, > }, > { > .adap_id = 8, > }, > { > .adap_id = 9, > }, > }; > > static struct pca954x_platform_data pca9544_data_mux0 = { > .modes = pca954x_modes_mux0, > .num_modes = ARRAY_SIZE(pca954x_modes_mux0), > }; > > static struct pca954x_platform_data pca9544_data_mux1 = { > .modes = pca954x_modes_mux1, > .num_modes = ARRAY_SIZE(pca954x_modes_mux1), > }; > > static struct i2c_board_info __initdata i2c_bus1_devices[] = { > { > /* I2C mux */ > I2C_BOARD_INFO("pca9544", 0x70), > .platform_data = &pca9544_data_mux0, > }, > { > /* I2C mux */ > I2C_BOARD_INFO("pca9544", 0x71), > .platform_data = &pca9544_data_mux1, > }, > }; I don't know the pca954x driver (not yet in mainline), Rodolfo would be a better reviewer, but the above at least looks reasonable to me. I am a little surprised that you are able to force the adapters IDs for the segments behind the muxes though, if you do not declare any device on them, i2c-core will not reserve the IDs for static numbering. > static int __init board_i2c_init(void) > { > /* Register board i2c devices */ > i2c_register_board_info(0, i2c_bus1_devices, This, OTOH, looks wrong. If the muxes are on your second SOC I2C bus, the bus number would be 1, not 0. > ARRAY_SIZE(i2c_bus1_devices)); > > return 0; > } > arch_initcall(board_i2c_init); -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html