I'm trying to modify the kernel of Android (4.2) with this instructions:
http://kernel--tegra.android-source-browsing.googlecode.com/git-history/08f02f8bba6ec3613a3ca3d19e1a07f67739bdd4/drivers/staging/iio/imu/inv_mpu/README
*The goal is to add the MPU6050 driver *to the kernel.
All is done, except one thing:
> For the Panda Board, the board file can be found at
> arch/arm/mach-omap2/board-omap4panda.c.
In my folder tree, I have
arch/arm/mach-sun7i
But there's no board-sun7i.c file (or equivalent).
And I must to declare a secondary i2c adress for the new drivers work.
How can I do? (I'm new in C)
I have tried to modify device.c, with this following code:
/* ACCELEROMETER */
#include <linux/mpu.h>
static int __init sun7i_i2c_init(void)
{
i2c_bus_type(4, 400,
i2c_init_board,
ARRAY_SIZE(i2c_init_board));
}
static struct mpu_platform_data gyro_platform_data = {
.int_config = 0x00,
.level_shifter = 0,
.orientation = { -1, 0, 0,
0, 1, 0,
0, 0, -1 },
.sec_slave_type = SECONDARY_SLAVE_TYPE_COMPASS,
.sec_slave_id = COMPASS_ID_AK8963,
.secondary_i2c_addr = 0x0E
};
static struct mpu_platform_data gyro_platform_data = {
.int_config = 0x00,
.level_shifter = 0,
.orientation = { -1, 0, 0,
0, 1, 0,
0, 0, -1 },
.sec_slave_type = SECONDARY_SLAVE_TYPE_COMPASS,
.sec_slave_id = COMPASS_ID_AK8975,
.secondary_i2c_addr = 0x0E
};
static struct mpu_platform_data gyro_platform_data = {
.int_config = 0x00,
.level_shifter = 0,
.orientation = { -1, 0, 0,
0, 1, 0,
0, 0, -1 },
.sec_slave_type = SECONDARY_SLAVE_TYPE_ACCEL,
.sec_slave_id = ACCEL_ID_BMA250,
.secondary_i2c_addr = 0x18,
};
static struct i2c_board_info __initdata i2c_init_board[] = {
{
I2C_BOARD_INFO("mpu3050", 0x68),
.irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
.platform_data = &gyro_platform_data,
},
};
static struct i2c_board_info __initdata i2c_init_board[] = {
{
I2C_BOARD_INFO("itg3500", 0x68),
.irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
.platform_data = &gyro_platform_data,
},
};
//for MPU6050
static struct i2c_board_info __initdata i2c_init_board[] = {
{
I2C_BOARD_INFO("mpu6050", 0x68),
.irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
.platform_data = &gyro_platform_data,
},
};
//for MPU9150
static struct i2c_board_info __initdata i2c_init_board[] = {
{
I2C_BOARD_INFO("mpu9150", 0x68),
.irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
.platform_data = &gyro_platform_data,
},
};
/* END ACCELEROMETERS */
The problem is, that *i2c_init_board* is not define, I have looked in i2c.h
So, is it a good idea to try to modify device.c, or the modification must
done in another file ? which one ?
Thanks
--
You received this message because you are subscribed to the Google Groups
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.