|
|
内核中有这样的实现方式:
* J! P0 N1 Y0 I- W2879 static struct i2c_gpio_platform_data da850_gpio_i2c_pdata = {
, z; h P4 i8 t5 J$ N2880 .sda_pin = GPIO_TO_PIN(1, 4),$ ~! K2 h; o. ?& j
2881 .scl_pin = GPIO_TO_PIN(1, 5),4 j' r! f9 i8 X" |/ v
2882 .udelay = 2, /* 250 KHz */
$ \- F* n: }+ j' z0 T0 i2883 };
8 V1 h3 R* l% b1 C, I; o2884% i9 z8 g0 i, J# z( L- G
2885 static struct platform_device da850_gpio_i2c = {
! O+ I, U1 e/ v9 o( R+ q2886 .name = "i2c-gpio",- L5 @+ | y" R/ y
2887 .id = 1,/ W( e% O, i% X1 ~* j: e+ a
2888 .dev = {3 Y. j1 q; d( W$ H. S, T
2889 .platform_data = &da850_gpio_i2c_pdata,
8 O/ u9 l* b2 I6 p- \, ]2890 }," o, ]2 U6 v C' ^- a; Z
2891 };& T B8 v. g( G+ f5 A4 [( W
7 O) @) R6 \+ j2 M8 |' g A0 R8 |' F
platform_device_register(&da850_gpio_i2c);
3 i3 i( ]* c; g+ N# L' X4 D3 u& q
4 d9 a# A+ W! E; `只要将+ r( E* e; l0 _ G1 r
2880 .sda_pin = GPIO_TO_PIN(1, 4),
' v+ o+ Y! u3 W& ?7 p* [5 [2881 .scl_pin = GPIO_TO_PIN(1, 5),7 k* Y" E( r7 M: U+ H, u
配置成当前使用的gpio就实现了gpio模拟i2c的功能 |
|