platform 总线是 kernel 中最近加入的一种虚拟总线,它被用来连接处在仅有最少基本组
件的总线上的那些设备.这样的总线包括许多片上系统上的那些用来整合外设的总线, 也包
括一些"古董" PC 上的连接器; 但不包括像 PCI或 USB 这样的有庞大正规说明的总线.
平台设备
~~~~~~
平台设备通常指的是系统中的自治体, 包括老式的基于端口的设备和连接外设总线的
北桥(host bridges),以及集成在片上系统中的绝大多数控制器. 它们通常拥有的一个共同
特征是直接编址于 CPU 总线上. 即使在某些罕见的情况下, 平台设备会通过某段其他类型
的总线连入系统, 它们的寄存器也会被直接编址.平台设备会分到一个名称(用在驱动绑定
中)以及一系列诸如地址和中断请求号(IRQ)之类的资源.
那什么情况可以使用 platform driver 机制编写驱动呢?
我的理解是只要和内核本身运行依赖性不大的外围设备(换句话说只要不在内核运行所
需的一个最小系统之内的设备),相对独立的,拥有各自独自的资源(addresses and IRQs),
都可以用 platform_driver 实现。如:lcd,usb,uart等,都可以用 platfrom_driver 写,
而 timer,irq等最小系统之内的设备则最好不用 platfrom_driver 机制,实际上内核实现也
是这样的。下面继续我们的分析过程。
首先要定义一个 platform