beautypg.com

2 overview, 1 driver architecture, Overview – Maxim Integrated 73M1866B/73M1966B Reference Driver User Manual

Page 9: Driver architecture, Figure 2: driver functional block diagram

background image

UG_1x66B_015

73M1866B/73M1966B Reference Driver User Guide

Rev. 2.7

9

2 Overview

2.1 Driver Architecture

The driver provides a framework by which applications can leverage the features of the chipset. The
main interface of the driver (IOCTLs) provides an abstraction layer for monitoring and control of the
device status. Device status is analyzed and processed by an independently running process based on
predefined algorithms. When an event or an even sequence is recognized, the driver posts the
corresponding event to be retrieved by the user application. Figure 2 depicts the driver functional block
diagram.

Figure 2: Driver Functional Block Diagram


The driver provides an interface to user application through the IOCTL and Events interface. Through this
interface, the user application communicates with the driver via a standard device interface (open, close,
select

, ioctl functions). Using this interface the application will be able to control the operation of the

device and to retrieve the status of the FXO line.

Section 6

describes the details of this interface.


The driver provides access to the 73M1x66B device via the SPI bus, and through the interrupt service
routine (ISR) triggered by the hardware interrupt signal. The driver accesses the platform's SPI hardware
interface directly through the system’s board support package (BSP). This access is in the context of an
operating system platform device definition.

The 73M1x66B driver is built as a Linux loadable module (for Linux) or integrated with the operating
system kernel. It will be brought into operation by a user application or by an operating system startup
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.