|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
该系列文章将分为四个部分:
, g; g# V' W) v! ^9 ]5 P. I6 A/ P2 n( @" t9 W$ [
第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的Linux驱动 -- SPI子系统解读(一)6 B, f' i) G- k7 [1 x* O$ m
$ x* T# `) J7 |% u, r. P 第二部分,该文将对SPI的主控制器(master)驱动进行描述。基于S3C2440的Linux驱动 -- SPI子系统解读(二)(上)和基于S3C2440的Linux驱动 -- SPI子系统解读(二)(下)6 p/ I' c' f: D8 ]* u4 j$ s/ i
6 b) }7 e- g4 s9 F 第三部分,即本篇文章,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。2 h8 X& L8 F" ] w, Y1 H( F, F$ P7 Z
* d7 h" n, a0 I
第四部分,通过SPI设备驱动留给用户层的API,我们将从上到下描述数据是如何通过SPI的protocol 驱动,由bitbang中转,最后由master驱动将数据传输出去。 基于S3C2440的Linux驱动——SPI子系统解读(四)/ P% d0 P8 r% R8 S
% r% `: v( I# j2 R本文属于第三部分。
5 P5 K3 p- |$ p3 b
* _! k2 g; d6 ]$ t* c4 c+ b5. SPI设备驱动& y3 q; d1 m; _% w _* E( o9 i
3 z! V" K( \- Y/ R+ ] 在主控制器驱动中,spi_device已经注册了,在设备驱动中,首先要做的就是注册spi_driver,并提供用户层相应的API。+ b( M3 Q( s( y" {! n( Q. |% f
% M, l$ z7 {7 |% F- X
5.1 SPI设备驱动的注册$ ~0 j: |) P5 T. R @# Q
0 p8 H& p Z; P9 l下列数据结构及函数位于drivers/spi/spidev.c。2 W3 a1 N3 T: L+ n
* _7 K/ c. L, _9 E+ D+ f! ]$ V, S) A$ n) Q* b2 t
/ l! f# v6 J5 ]$ t5 ?6 a" Y1 j. a' v |
|