EDA365电子论坛网

标题: gpio引脚复用i2c功能 是怎么实现的? [打印本页]

作者: RNGxiaohu    时间: 2021-11-9 13:48
标题: gpio引脚复用i2c功能 是怎么实现的?
omapl138开发板中i2c接口被占完,将i2c接口的电源模块连接到未使用的dsp引脚上了,现在需要读取电源模块的信息, 怎么实现这个功能,求指导下。
4 |0 V2 ~( s0 q5 f是使用gpio引脚复用i2c功能 还是有其他方法,0 V5 G% b- ~# ^0 Y' S, b
gpio引脚复用i2c功能 这个怎么实现的?
8 H! p) \$ n# O
作者: faker12    时间: 2021-11-9 13:49
内核中有这样的实现方式:! A, W; `$ b. q* t3 w
2879 static struct i2c_gpio_platform_data da850_gpio_i2c_pdata = {/ `+ a: Q  H7 i: U5 @
2880     .sda_pin    = GPIO_TO_PIN(1, 4),9 W( f* d. _: o% @) N5 V
2881     .scl_pin    = GPIO_TO_PIN(1, 5),
% a2 u2 Q, V8 ~3 B+ ?) J- C3 e- g7 O$ T2882     .udelay     = 2,            /* 250 KHz */& c* M9 r3 ]$ y
2883 };
1 t* F( ]! v) d6 Z1 m1 a6 |- u; D# v28844 Y/ E' r% c8 o5 z0 F
2885 static struct platform_device da850_gpio_i2c = {0 o- {) Q6 y/ Q) ^. t* c% g* [2 ~
2886     .name       = "i2c-gpio",
7 \" r4 {2 M& c5 @) H9 r5 p2887     .id     = 1,& D/ I( t; N$ O; q0 B! v5 e- x
2888     .dev        = {
) u1 I3 t1 C3 u$ l4 ?1 y: v7 U$ i2889         .platform_data  = &da850_gpio_i2c_pdata,6 N. M8 |. C" L- l# R" I1 D/ ~
2890     },
+ L" j6 @; U' o, q2 M/ K2 g% O2891 };
* d0 I8 J4 L; R; n
6 f+ a5 y6 I  U$ m! s) n, L( |platform_device_register(&da850_gpio_i2c);7 u$ J  R0 W1 v: p2 ?& T( `
5 W! m, q; [+ M( l- C: Q# @( ^
只要将
$ n. V+ p- d9 g$ O. \2880     .sda_pin    = GPIO_TO_PIN(1, 4),9 \  n4 u) n0 O6 y. B# E
2881     .scl_pin    = GPIO_TO_PIN(1, 5),: P( A! f. Y& T& t6 q, a
配置成当前使用的gpio就实现了gpio模拟i2c的功能
作者: CLBuu    时间: 2021-11-9 13:50
GPIO模拟IIC吧!不过可能要自己写一下底层的驱动
作者: xiananUZI    时间: 2021-11-9 13:50
注册一个da850_gpio_i2c_pdata




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2