|
|
内核中有这样的实现方式:
3 n ~" s2 b1 v1 `$ G2879 static struct i2c_gpio_platform_data da850_gpio_i2c_pdata = {
, b1 @, ]% U8 V. N* L$ O4 }; P2880 .sda_pin = GPIO_TO_PIN(1, 4),+ a0 h# ]. L2 f& Q# ~3 {9 Z
2881 .scl_pin = GPIO_TO_PIN(1, 5),6 O! \9 p7 L, S+ R. a# v9 R
2882 .udelay = 2, /* 250 KHz */' U) N" c0 ~8 Z# Y
2883 };1 z3 P- {0 `! @3 b" j' I1 m
2884
" o" t: z1 y* Z2885 static struct platform_device da850_gpio_i2c = {9 g% Q% }2 H a- E
2886 .name = "i2c-gpio",
! ?& o/ [# d5 _2887 .id = 1,% V! S/ \6 G2 Z& W7 H
2888 .dev = {; D7 ^. l" B$ k1 a, D5 [0 j
2889 .platform_data = &da850_gpio_i2c_pdata,
# n" I( @: U. J) F. Y. @. V: Y2890 },
. F; A8 e5 V5 v' {( @/ e& ~: R8 L2891 };2 i: G' _ v7 n1 ^7 ]1 R( _' x
7 U; w U* ^9 [1 oplatform_device_register(&da850_gpio_i2c);# U9 E. P; q1 w# h3 d* k
7 \2 r* r y6 O只要将! N5 w5 |& s3 a+ R5 `. j
2880 .sda_pin = GPIO_TO_PIN(1, 4),. W/ F0 e/ Z# n9 R
2881 .scl_pin = GPIO_TO_PIN(1, 5),
* g. c3 G' y- q1 A/ G1 V( p配置成当前使用的gpio就实现了gpio模拟i2c的功能 |
|