Hardware Module for SMDK412

73M1822/73M1922 Hardware Module for SMDK412 User Guide UG_1x22_054
6 Rev. 1.1
2 Overview
2.1 Driver Architecture
The driver provides a framework by which applications can leverage the features of the 73M1x22 device.
The main interface of the driver provides an abstraction layer for monitoring and control of the device
status. Figure 1 depicts the driver functional block diagram.
73M1x22
Device
&
External
Components
SCLK
73M1x22 Hardware Interface Module
Control
Module
System
BSP
Register Read/Write
Control & Status
FS
SDIN
SDOUT
Data
Module
DATA
DATA
DATA
DATA
DATA
CTL
DATA
CTL
DATA
CTL
DATA
CTL
CTL
CTL
CTL
CTL
DATA
DATA
DATA
DATA
CTL
CTL
CTL
CTL
Tx/Rx Data
Control & Status
State Machine
API
INT
MS
TYPE
Figure 1: Driver Functional Block Diagram
2.2 Functional Overview
The 73M1x22 driver is built as a Linux loadable module (for Linux) or integrated with the operating system
kernel. It is brought into operation by a user application or by an operating system start up script. For
Linux, the insmod command is used to insert the driver into the kernel. The insmod command invokes
the module_init() macro, which in turn runs the one-time initialization function of the driver. Before
exiting the initialization the driver enters its main operational state via the scheduling of one of many
timers that make up the driver’s main processing.
This description is valid for Linux 2.6. The driver takes the form of a Linux standard character device
driver. It is brought into operation by a user application or by Linux startup script using the
insmod
command. This command inserts the driver module into the kernel which in turn registers with the kernel
using the default major number of 250
Once installed, the driver is a self-contained module running independently along with the kernel
processes. Its main purpose is to monitor and control the MAFE interface, transfer MAFE frames to and
from the 73M1x22 device and to provide access to the 73M1x22 device for management purposes, via
standard driver access methods such as open, close, select, ioctl, etc. The following sections
provide an overview of that functionality.