|
内核中有这样的实现方式:
3 X B3 S8 J t* R1 V7 c2879 static struct i2c_gpio_platform_data da850_gpio_i2c_pdata = {
# R G5 m, [. N+ l5 `! A2880 .sda_pin = GPIO_TO_PIN(1, 4),( T: F7 E- M+ W% K
2881 .scl_pin = GPIO_TO_PIN(1, 5),7 A* m9 n" R Y- Q: ^
2882 .udelay = 2, /* 250 KHz */8 o! p, U5 J6 Y0 L4 D
2883 };2 z: {6 }6 S) |
2884: ?# h. n$ A. l. ]9 V4 _
2885 static struct platform_device da850_gpio_i2c = {0 P1 _! C% j# |% v8 D4 t- ?
2886 .name = "i2c-gpio",0 Y4 a" y* K9 K% {! Y j
2887 .id = 1,% S0 U' C0 j& r9 @1 I4 e5 Z
2888 .dev = {
* m+ R1 G1 n, v4 b" ^, t: n9 C2889 .platform_data = &da850_gpio_i2c_pdata,# b- {2 l9 _4 R( m/ P4 @7 C9 s. W
2890 },# T* G* ], R. P% ?8 _* w; d
2891 };
' e3 N" R& O4 d$ a+ W$ J6 [3 ^/ s( s1 g7 `+ I9 |0 N
platform_device_register(&da850_gpio_i2c);3 \) h8 ?( f8 c4 V
+ |& n8 G* t5 l7 p, i只要将
7 \9 o* i# q$ U9 a, n2880 .sda_pin = GPIO_TO_PIN(1, 4),) t E6 N3 r9 |+ a8 Q2 k9 m: U
2881 .scl_pin = GPIO_TO_PIN(1, 5),0 A2 f! d6 e+ c- R
配置成当前使用的gpio就实现了gpio模拟i2c的功能 |
|