WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-11-16 18:18:24

psst
会员
注册时间: 2019-01-22
累计积分: 62

v3s 怎么使用gpio模拟iic

请教各位高手。我想用drivers/i2c/busses/i2c-gpio.c 模拟iic,硬件iic口没有使用,io被占用了。要怎么玩?

menuconfig配置如下
  -*- I2C support                                                 
     Enable compatibility bits for old user-space               
  <*>   I2C device interface                                         
   <*>   I2C bus multiplexing support                               
              Multiplexer I2C Chip support  --->                       
   [**]   Autoselect pertinent helper modules                       
            I2C Hardware Bus support  --->     
      *** I2C system bus drivers (mostly embedded / system-on-chip)
  │ │    < > CBUS I2C driver                                             
  │ │    < > Synopsys DesignWare Platform                             
  │ │    < > EMMA Mobile series I2C adapter                         
  │ │    <*> GPIO-based bitbanging I2C                                   
  │ │    < > Marvell mv64xxx I2C Controller                       
  │ │    < > OpenCores I2C Controller                                 
  │ │    < > PCA9564/PCA9665 as platform device                       
  │ │    < > Rockchip RK3xxx I2C adapter                               
  │ │    < > Simtec Generic I2C interface         

dts如下

i2c0@0 {
        compatible = "i2c-gpio";
            gpios = <&pio 2 2 // sda
                     &pio 2 1 // scl
                >;
            i2c-gpio,sda-open-drain;
            i2c-gpio,scl-open-drain;
            i2c-gpio,delay-us = <2>;   
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";
        //rv3029c2@56 {
            //compatible = "rv3029c2";
            //reg = <0x56>;
        //};

        };

启动后报错, OF: /soc/i2c0@0: could not get #gpio-cells for /soc/clock@01c20000
是不是gpio配置不对,
&pio 2 2 /* sda */
&pio 2 1这两个口是串口,没有使用,应该不会被占用,

设备树怎么写?请教大家了

最近编辑记录 psst (2019-11-16 18:19:36)

离线

#2 2019-11-16 18:29:38

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 350

Re: v3s 怎么使用gpio模拟iic

软件模拟也需要定时器吧,否则时序无法控制

离线

#3 2019-11-18 13:54:40

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,551

Re: v3s 怎么使用gpio模拟iic

你的设备树配置有误, 来这里抄一个吧:

https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts

	i2c {
		compatible = "i2c-gpio";
		sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>;
		scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>;
		i2c-gpio,delay-us = <5>;
		#address-cells = <1>;
		#size-cells = <0>;
...

离线

页脚