Ejemplo n.º 1
0
static int __init omap4_i2c_init(void)
{
	int i2c_bus_devices = 0;

	omap_i2c_hwspinlock_init(1, 0, &mapphone_i2c_1_bus_pdata);
	omap_i2c_hwspinlock_init(2, 1, &mapphone_i2c_2_bus_pdata);
	omap_i2c_hwspinlock_init(3, 2, &mapphone_i2c_3_bus_pdata);
	omap_i2c_hwspinlock_init(4, 3, &mapphone_i2c_4_bus_pdata);

	omap_register_i2c_bus_board_data(1, &mapphone_i2c_1_bus_pdata);
	omap_register_i2c_bus_board_data(2, &mapphone_i2c_2_bus_pdata);
	omap_register_i2c_bus_board_data(3, &mapphone_i2c_3_bus_pdata);
	omap_register_i2c_bus_board_data(4, &mapphone_i2c_4_bus_pdata);

	/* Populate I2C bus 1 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			1, mapphone_i2c_bus1_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_1_boardinfo,
			ARRAY_SIZE(mapphone_i2c_1_boardinfo));
	omap_register_i2c_bus(1, 400,
			mapphone_i2c_bus1_board_info, i2c_bus_devices);

	/* Populate I2C bus 2 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			2, mapphone_i2c_bus2_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_2_boardinfo,
			ARRAY_SIZE(mapphone_i2c_2_boardinfo));
	omap_register_i2c_bus(2, 400,
			mapphone_i2c_bus2_board_info, i2c_bus_devices);

	/* Populate I2C bus 3 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			3, mapphone_i2c_bus3_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_3_boardinfo,
			ARRAY_SIZE(mapphone_i2c_3_boardinfo));
	omap_register_i2c_bus(3, 400,
			mapphone_i2c_bus3_board_info, i2c_bus_devices);

	/* Populate I2C bus 4 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			4, mapphone_i2c_bus4_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_4_boardinfo,
			ARRAY_SIZE(mapphone_i2c_4_boardinfo));
	omap_register_i2c_bus(4, 400,
			mapphone_i2c_bus4_board_info, i2c_bus_devices);

	/*
	 * This will allow unused regulator to be shutdown. This flag
	 * should be set in the board file. Before regulators are registered.
	 */
	regulator_has_full_constraints();

	return 0;
}
Ejemplo n.º 2
0
static int __init mapphone_i2c_init(void)
{
	int i2c_bus_devices = 0;

	initialize_device_specific_data();

	/* Populate I2C bus 1 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			1, mapphone_i2c_bus1_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_bus1_master_board_info,
			ARRAY_SIZE(mapphone_i2c_bus1_master_board_info));
	if (i2c_bus_devices != 0)
		omap_register_i2c_bus(
			1, 400,
			mapphone_i2c_bus1_board_info, i2c_bus_devices);

	/* Populate I2C bus 2 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			2, mapphone_i2c_bus2_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_bus2_master_board_info,
			ARRAY_SIZE(mapphone_i2c_bus2_master_board_info));
	if (i2c_bus_devices != 0)
		omap_register_i2c_bus(
			2, 400,
			mapphone_i2c_bus2_board_info, i2c_bus_devices);

	/* Populate I2C bus 3 devices */
	i2c_bus_devices = initialize_i2c_bus_info(
			3, mapphone_i2c_bus3_board_info,
			I2C_BUS_MAX_DEVICES,
			mapphone_i2c_bus3_master_board_info,
			ARRAY_SIZE(mapphone_i2c_bus3_master_board_info));
	if (i2c_bus_devices != 0)
		omap_register_i2c_bus(
			3, 400,
			mapphone_i2c_bus3_board_info, i2c_bus_devices);

	return 0;
}