为MPC6050编写驱动程序i2c

为MPC6050编写驱动程序i2c,第1张

概述为MPC6050编写驱动程序i2c

我是C新手,我尝试写一个MPC6050加速计的驱动程序。 (AndroID 4.2.2的内核3.4)。 这是这个问题的下列。

这个页面和这个帮助我,但我不能使用驱动程序呢:

arch/arm/mach-sun7i/core.c:77:44: warning: 'sun7i_i2c_platform_data' defined but not used [-Wunused-variable] arch/arm/mach-sun7i/core.c:136:41: warning: 'sun7i_i2c_platform_device' defined but not used [-Wunused-variable]

我正在处理/ANDROID/lichee/linux-3.4/arch/arm/mach-sun7i/core.c文件。 (相当于board-machine.c)

我粘贴了每个结构基础的结构。 初始化函数是,我希望确定,像这样:

如何在RHEL 6 / linux上设置Oracle ODBC驱动程序

glGenFramebuffers或glGenFramebuffersEXT?

如何确定Ndis 6filter驱动程序中的802.11原始数据包是否具有FCS(4字节)?

rt2x00驱动程序(内核版本2.6.24)如何处理扫描请求

签署windows x64驱动程序在未启用testing模式的情况下工作

/* ACCELEROMETER*/ #include <linux/i2c-gpio.h> #include <linux/mpu.h> #include <linux/i2c.h> #include <mach/i2c.h> #include <mach/gpio.h> #define I2C_SDA TWI_LCR_SDA_EN #define I2C_SCL TWI_LCR_SCL_EN /* * /////////// from linux/i2c-gpio.h ////////// * struct i2c_gpio_platform_data { unsigned int sda_pin; unsigned int scl_pin; int udelay; int timeout; unsigned int sda_is_open_drain:1; unsigned int scl_is_open_drain:1; unsigned int scl_is_output_only:1; }; */ static struct i2c_gpio_platform_data sun7i_i2c_platform_data = { .sda_pin = I2C_SDA,// gpio number .scl_pin = I2C_SCL,.udelay = 5,// 100KHz .sda_is_open_drain = 0,.scl_is_open_drain = 0,.scl_is_output_only = 0 }; /* * /////////// from linux/mpu.h ////////// * struct mpu_platform_data { __u8 int_config; __u8 level_shifter; __s8 orIEntation[9]; enum secondary_slave_type sec_slave_type; enum ext_slave_ID sec_slave_ID; __u16 secondary_i2c_addr; __s8 secondary_orIEntation[9]; __u8 key[16]; enum secondary_slave_type aux_slave_type; enum ext_slave_ID aux_slave_ID; __u16 aux_i2c_addr; int (*power_on)(struct mpu_platform_data *); int (*power_off)(struct mpu_platform_data *); struct regulator *vdd_ana; struct regulator *vdd_i2c; }; */ static struct mpu_platform_data gyro_platform_data = { .int_config = 0x00,.level_shifter = 0,.orIEntation = { -1,1,-1 },.sec_slave_type = SECONDARY_SLAVE_TYPE_COMPASS,.sec_slave_ID = COMPASS_ID_AK8972,.secondary_i2c_addr = 0x0E }; /* * /////////// from i2c.h ////////// * * struct i2c_board_info { char type[I2C_name_SIZE]; unsigned short flags; unsigned short addr; voID *platform_data; struct dev_archdata *archdata; struct device_node *of_node; int irq; };*/ //for mpu6050 #define IRQ_GPIO SUN7I_IRQ_TWI0 #define TWI_STAT_REG (0x10) /* 28 interrupt types + 0xF8 normal type = 29 */ static struct i2c_board_info __initdata sun7i_i2c_platform_device[] = { { I2C_BOARD_INFO("mpu6050",0x68),.irq = (IRQ_GPIO + TWI_STAT_REG),.platform_data = &gyro_platform_data,},}; /* // ORIGINAL FROM THE README PAGE // static struct i2c_board_info __initdata single_chip_board_info[] = { { I2C_BOARD_INFO("mpu6050",// can be 0x34 .irq = (IH_GPIO_BASE + mpuIRQ_GPIO),}; */

现在,我的问题是使用和激活这些function。 我不明白这是什么意思:

static int __init omap4_panda_i2c_init(voID) { omap_register_i2c_bus(4,400,single_chip_board_info,ARRAY_SIZE(single_chip_board_info)); }

我无法在我的文件夹中find相当于register_i2c_bus 。

在文件末尾,我会这样称呼它:

static voID __init sun7i_init(voID) { pr_info("%s: entern",__func__); sw_pdev_init(); /* Register platform devices here!! */ + &sun7i_i2c_init(); + pr_info("sun7i_i2c_initn"); }

所以,我的问题是:如何使活动我的init函数,因为omap是一个非常不同的系统比较sun7i?

任何帮助应该是非常appeciate! 非常感谢。

编辑:有了这个文档编译不会失败。 新的dmesg是:

<3>[ 11.963914] inv-mpu-iio 1-0068: Unable to read axis_map_x <3>[ 11.969998] i2c i2c-1: inv_mpu_probe Failed -38 <4>[ 11.975080] inv-mpu-iio: probe of 1-0068 Failed with error -5 <7>[ 11.975436] i2c-core: driver [inv-mpu-iio] registered

如何在windows 7/8 / 8.1(尤其是64位)上使用未签名的驱动程序

如何安装com.MysqL.jdbc.Driver“无法find具有类名称的驱动程序:com.MysqL.jdbc.Driver”?

来自用户空间linux的IRQ处理

在VB.NET中获取CD驱动器号

ObRegisterCallbacks:MSDN文档/示例代码差异性

总结

以上是内存溢出为你收集整理的为MPC6050编写驱动程序i2c全部内容,希望文章能够帮你解决为MPC6050编写驱动程序i2c所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1280938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存