imx53 QSB添加模拟I2C

修改在文件/arch/arm/freescale/mach-mx5/mx53_loco.c


    A,在此文件中添加头文件 #include <linux/i2c-gpio.h>


    B,根据自己的板,选择没有使用的GPIO口:
      #define GPIO_I2C4_SDA_3_28  (2*32+28)
      #define GPIO_I2C4_SCL_3_21  (2*32+21)


   C,在mx53_loco_pads[]中添加这两个GPIO口的定义宏:
     MX53_PAD_EIM_D28__GPIO3_28,
     MX53_PAD_EIM_D21__GPIO3_21,
    
  D,添加如下代码:
    /*GPIO_I2C*/
   static struct platform_device mxc_gpio_i2c_device =
   { 
    .name = "i2c-gpio", //这里一定是i2c-gpio不能是别的
    .id = 3,
   };
  
   static struct i2c_gpio_platform_data mxc_gpio_i2c_data =
   { 
    .sda_pin = GPIO_I2C4_SDA_3_28,
    .scl_pin = GPIO_I2C4_SCL_3_21,
    .udelay = 5,
    .sda_is_open_drain = 0,    //如果没有效把0 设置为1试试
    .scl_is_open_drain = 0,    //同上
    .scl_is_output_only = 0,
   };
  static struct i2c_board_info mxc_i2c3_board_info[] __initdata = {
  
   /*{
   .type = "xxx",//设备驱动名
   .addr = 0x12, //地址
   ...
    },
    */
  
  };   
   
   E,在函数mxc_board_init中添加:和硬I2C一样的注册。
      mxc_register_device(&mxc_gpio_i2c_device, &mxc_gpio_i2c_data); 
      i2c_register_board_info(3, mxc_i2c2_board_info,
      ARRAY_SIZE(mxc_i2c3_board_info));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值