VxWorks Reference Manual : Libraries

smcFdc37b78x

NAME

smcFdc37b78x - a superIO (fdc37b78x) initialization source module

ROUTINES

smcFdc37b78xDevCreate( ) - set correct IO port addresses for Super I/O chip
smcFdc37b78xInit( ) - initializes Super I/O chip Library
smcFdc37b78xKbdInit( ) - initializes the keyboard controller

DESCRIPTION

The FDC37B78x with advanced Consumer IR and IrDA v1.0 support incorporates a keyboard interface, real-time clock, SMSC's true CMOS 765B floppy disk controller, advanced digital data separator, 16 byte data FIFO, two 16C550 compatible UARTs, one Multi-Mode parallel port which includes ChiProtect circuitry plus EPP and ECP support, on-chip 12 mA AT bus drivers, and two floppy direct drive support, soft power management and SMI support and Intelligent Power Management including PME and SCI/ACPI support. The true CMOS 765B core provides 100% compatibility with IBM PC/XT and PC/AT architectures in addition to providing data overflow and underflow protection. The SMSC advanced digital data separator incorporates SMSC's patented data separator technology, allowing for ease of testing and use. Both on-chip UARTs are compatible with the NS16C550. The parallel port, the IDE interface, and the game port select logic are compatible with IBM PC/AT architecture, as well as EPP and ECP.

The FDC37B78x incorporates sophisticated power control circuitry (PCC) which includes support for keyboard, mouse, modem ring, power button support and consumer infrared wake-up events. The PCC supports multiple low power down modes.

The FDC37B78x provides features for compliance with the "Advanced Configuration and Power Interface Specification" (ACPI). These features include support of both legacy and ACPI power management models through the selection of SMI or SCI. It implements a power button override event (4 second button hold to turn off the system) and either edge triggered interrupts.

The FDC37B78x provides support for the ISA Plug-and-Play Standard (Version 1.0a) and provides for the recommended functionality to support Windows95, PC97 and PC98. Through internal configuration registers, each of the FDC37B78x's logical device's I/O address, DMA channel and IRQ channel may be programmed. There are 480 I/O address location options, 12 IRQ options or Serial IRQ option, and four DMA channel options for each logical device.

USAGE This library provides routines to intialize various logical devices on superIO chip (fdc37b78x).

The functions addressed here include:

INTERNAL DATABASES This library provides it's user to changes superIO's config, index, and data I/O port addresses. The default I/O port addresses are defined in target/h/drv/smcFdc37b78x.h file. These mnemonics can be overridden by defining in architecture related BSP header file. These default setting can also be changed on-the-fly by passing in a pointer of type SMCFDC37B78X_IOPORTS with different I/O port addresses. If not redefined, they take their default values as defined in smcFdc37b78x.h file.

SMCFDC37B78X_CONFIG_PORT
Defines the config I/O port for SMC-FDC37B78X superIO chip.

SMCFDC37B78X_INDEX_PORT
Defines the index I/O port for SMC-FDC37B78X superIO chip.

SMCFDC37B78X_DATA_PORT
Defines the data I/O port for SMC-FDC37B78X superIO chip.

USER INTERFACE

VOID smcFdc37b78xDevCreate
    (
    SMCFDC37B78X_IOPORTS *smcFdc37b78x_iop
    )
This is a very first routine that should be called by the user of this library. This routine sets up IO port address that will subsequentally be used later on. The IO PORT setting could either be overridden by redefining SMCFDC37B78X_CONFIG_PORT, SMCFDC37B78X_INDEX_PORT and SMCFDC37B78X_DATA_PORT or on-the-fly by passing in a pointer of type SMCFDC37B78X_IOPORTS.

VOID smcFdc37b78xInit
    (
    int devInitMask
    )
This is routine intakes device intialization mask and intializes only those devices that are requested by user. Device initialization mask holds bitwise ORed values of all devices that are requested by user to enable on superIO device.

The mnemonics that are supported in current version of this facility are:

SMCFDC37B78X_COM1_EN
Use this mnemonic to enable COM1 only.

SMCFDC37B78X_COM2_EN
Use this mnemonic to enable COM2 only.

SMCFDC37B78X_LPT1_EN
Use this mnemonic to enable LPT1 only.

SMCFDC37B78X_KBD_EN
Use this mnemonic to enable KBD only.

SMCFDC37B78X_FDD_EN
Use this mnemonic to enable FDD only.

The above mentioned can be bitwise ORed to enable more than one device at a time. e.g. if you want COM1 and COM2 to be enable on superIO chip call:

smcFdc37b78xInit (SMCFDC37B78X_COM1_EN | SMCFDC37B78X_COM2_EN);
The prerequisites for above mentioned call, superIO chip library should be intialized using smcFdc37b78xDevCreate( ) with parameter as per user's need.

STATUS smcFdc37b78xKbdInit
    (
    VOID
    )
This routine sends some keyboard commands to keyboard controller embedded in superIO chip. Call to this function is required for proper functioning of keyboard driver.

INCLUDE FILES

smcFdc37b78x.h

SEE ALSO

smcFdc37b78x


Libraries : Routines

smcFdc37b78xDevCreate( )

NAME

smcFdc37b78xDevCreate( ) - set correct IO port addresses for Super I/O chip

SYNOPSIS

VOID smcFdc37b78xDevCreate
    (
    SMCFDC37B78X_IOPORTS * smcFdc37b78x_iop
    )

DESCRIPTION

This routine will initialize smcFdc37b78xIoPorts data structure. These ioports can either be changed on-the-fly or overriding SMCFDC37B78X_CONFIG_PORT, SMCFDC37B78X_INDEX_PORT and SMCFDC37B78X_DATA_PORT. This is a necassary step in intialization of superIO chip and logical devices embedded in it.

RETURNS

NONE

SEE ALSO

smcFdc37b78x


Libraries : Routines

smcFdc37b78xInit( )

NAME

smcFdc37b78xInit( ) - initializes Super I/O chip Library

SYNOPSIS

VOID smcFdc37b78xInit
    (
    int devInitMask
    )

DESCRIPTION

This routine will initialize serial, keyboard, floppy disk, parallel port and gpio pins as a part super i/o intialization

RETURNS

NONE

SEE ALSO

smcFdc37b78x


Libraries : Routines

smcFdc37b78xKbdInit( )

NAME

smcFdc37b78xKbdInit( ) - initializes the keyboard controller

SYNOPSIS

STATUS smcFdc37b78xKbdInit
    (
    )

DESCRIPTION

This routine will initialize keyboard controller

RETURNS

OK/ERROR

SEE ALSO

smcFdc37b78x