|
|
内核中有这样的实现方式:& K& i* [0 l H0 B# c5 m9 R+ ~
2879 static struct i2c_gpio_platform_data da850_gpio_i2c_pdata = {/ M& e. f5 `- l" X0 }& K. D6 L
2880 .sda_pin = GPIO_TO_PIN(1, 4),6 f! t! F" }) f0 U
2881 .scl_pin = GPIO_TO_PIN(1, 5),4 }* J5 A' I5 Y9 }
2882 .udelay = 2, /* 250 KHz */
7 O1 r% ~6 y0 ]4 A' L: K2883 };
, |3 E& |8 k) u- H7 A- Z- V7 Z3 j# W2884
$ t$ w0 ^( C1 ?( {2885 static struct platform_device da850_gpio_i2c = {
6 Y( e1 {6 Z& v' h* B* i3 \2886 .name = "i2c-gpio",
2 w: ], v) p( K' `8 s+ c# g2887 .id = 1,
0 R! d, i! g8 g3 N# Q4 w# h. |( s2 Q! U2888 .dev = {
. Y+ J8 e* E: T. c9 `% c2889 .platform_data = &da850_gpio_i2c_pdata,5 f: f4 I# V; M' b# F6 ?
2890 },
3 R" g/ Z3 i& l1 o/ z q2891 };) F8 c5 W- E/ I% }* P- e
* w: a% D! r* c6 @9 Aplatform_device_register(&da850_gpio_i2c);
" Q& R" F! Z) v% w! ^
! E& h$ X: F- U1 L7 `, M只要将
, W" d; z- P0 z$ q" `2880 .sda_pin = GPIO_TO_PIN(1, 4),
/ |/ T2 W& d; C3 _3 a2881 .scl_pin = GPIO_TO_PIN(1, 5),
. M, @0 C* y) ]2 W" a, |# n配置成当前使用的gpio就实现了gpio模拟i2c的功能 |
|