|
|
内核中有这样的实现方式:
, J; q( Z; U7 P* G/ Y5 h3 W+ @2879 static struct i2c_gpio_platform_data da850_gpio_i2c_pdata = {& C5 e+ W- v- X& T$ \; v
2880 .sda_pin = GPIO_TO_PIN(1, 4),
% @6 r2 R# ]7 z) H$ y2881 .scl_pin = GPIO_TO_PIN(1, 5),
9 q2 s3 O! V6 u! Q1 M2882 .udelay = 2, /* 250 KHz */* {: w- p7 D% q6 F4 t: D( l
2883 };2 E( D: o# M0 l* L
2884: N+ l- z: R! _ T Q/ j S
2885 static struct platform_device da850_gpio_i2c = {+ p/ T8 F% ^( U) U1 r4 \; Y
2886 .name = "i2c-gpio",! J$ ^$ Q% G0 f
2887 .id = 1,: Y$ m9 z$ V& D5 [& V9 N
2888 .dev = {, D! q% S5 g v
2889 .platform_data = &da850_gpio_i2c_pdata,
! D2 E* Z% s; H# C! J# M2890 },
$ A& W! H6 i) u2891 };
5 |4 O2 k( B5 ~. l. X
/ S w* N% P/ C& ~platform_device_register(&da850_gpio_i2c);. M+ }# q/ t! b3 O, Z+ f
# [4 `7 H% |% T. S只要将( f) p* `2 _+ [, W
2880 .sda_pin = GPIO_TO_PIN(1, 4),; x6 ?8 i1 T: B1 S
2881 .scl_pin = GPIO_TO_PIN(1, 5),, b+ y) K0 U; ?( C6 r
配置成当前使用的gpio就实现了gpio模拟i2c的功能 |
|