|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
该系列文章将分为四个部分:
& t" S/ G; C3 p: r3 u. S, ^, C- x
) P+ O" ~) Q5 G% ?6 p 第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的Linux驱动 -- SPI子系统解读(一)
0 x0 Q8 ]3 [( X% ]% h% e$ n; E7 c
; N- U" C' k0 ?, U! |/ M3 A8 a 第二部分,该文将对SPI的主控制器(master)驱动进行描述。基于S3C2440的Linux驱动 -- SPI子系统解读(二)(上)和基于S3C2440的Linux驱动 -- SPI子系统解读(二)(下)# \3 l7 X: [4 r8 H( ^
$ e& k! z& G+ P* v1 N8 W. } 第三部分,即本篇文章,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。
0 }% p3 S3 I r2 ?) T4 E5 _: P
3 J$ R+ N! U' E4 Y 第四部分,通过SPI设备驱动留给用户层的API,我们将从上到下描述数据是如何通过SPI的protocol 驱动,由bitbang中转,最后由master驱动将数据传输出去。 基于S3C2440的Linux驱动——SPI子系统解读(四)
3 x) s4 J/ K% x3 ^, m6 t6 w3 t9 q, G! u/ r4 Z% Y/ T
本文属于第三部分。
- O B& d4 w7 F; y ?; h/ U
3 B! w, e7 M0 ^) j5. SPI设备驱动 U/ m8 h7 \9 b' L9 G: J' _
- L" a& T3 g6 o8 S0 M; e3 H
在主控制器驱动中,spi_device已经注册了,在设备驱动中,首先要做的就是注册spi_driver,并提供用户层相应的API。/ l, U3 ?& Y' R! I
* a/ k* p& a1 ?8 W) y2 s
5.1 SPI设备驱动的注册6 [' S& Y& U# i) m, t8 d" Z
3 W. J/ Q. V" J+ M
下列数据结构及函数位于drivers/spi/spidev.c。- U: i* o$ @2 ?3 d% q E
: `" E. u2 ^' ?/ e- h6 f/ o, Z p4 _% x# F+ g. u' m2 }, T
" k7 u7 \4 X2 d4 l$ b& Z |
|