|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
该系列文章将分为四个部分:# ]9 O; S) t- Y6 W( C' K) v
' k1 Q0 P1 i v+ B4 L 第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的Linux驱动 -- SPI子系统解读(一)) H1 v' q9 S E. }) a9 ]
% W3 Q' |/ u3 y4 m. m, q2 Y 第二部分,该文将对SPI的主控制器(master)驱动进行描述。基于S3C2440的Linux驱动 -- SPI子系统解读(二)(上)和基于S3C2440的Linux驱动 -- SPI子系统解读(二)(下)7 E1 ^8 I) @+ `. f2 ?
* M) i3 d! u: D9 o! u# n 第三部分,即本篇文章,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。 Q3 I! s0 w& }! ]4 z
2 V& h2 L5 K6 w* C$ i0 K% b) A$ }
第四部分,通过SPI设备驱动留给用户层的API,我们将从上到下描述数据是如何通过SPI的protocol 驱动,由bitbang中转,最后由master驱动将数据传输出去。 基于S3C2440的Linux驱动——SPI子系统解读(四)
6 r7 L7 c1 [# Q5 {
9 X; Q1 h, S+ U# X0 U' T4 z2 p本文属于第三部分。# l7 Z5 p" `9 z& T
; @0 ]! z/ W. U2 {, _- o+ G( s
5. SPI设备驱动
$ d6 e9 f- S& T) }" Y+ p0 w
% t# P) F0 c) b3 \, ? S9 S 在主控制器驱动中,spi_device已经注册了,在设备驱动中,首先要做的就是注册spi_driver,并提供用户层相应的API。
D7 n" K) D) }) {( p! g7 _9 M/ I* ~+ n- T- B! `
5.1 SPI设备驱动的注册
& c n$ E6 L+ B3 D; t2 Y4 s) i% k8 Z. x! ^" R' O8 |1 m
下列数据结构及函数位于drivers/spi/spidev.c。
+ |- g0 K& ?; j. E$ F, ^: B4 j3 |& p7 ^' u5 `% X4 `
; t* |$ M0 }1 O6 B+ q
+ ^( Y* c) G4 u4 N4 a/ ^ |
|