NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/uart/smc/smcUart.c - driver code drv/src/uart/smc/smcUartProp.h - driver specific properties
DRV
The smcuart driver implements the uart device driver interface. The driver works on a quicc "serial management controller" device in uart mode.
The driver uses the quicc bus driver interface provided by a parent bus driver.
The smcuart driver does not provide the drv_probe() routine. In other words, the smcuart driver does not enumerate the quicc bus in order to detect an smc device and create an associated device node. When the smcuart driver is used, associated device nodes are created either statically by a boot program or dynamically by a quicc bus enumerator driver.
The smcuart driver provides the drv_bind() routine. This routine examines the device node properties in order to recognize an smcuart compatible device. The routine checks for a QUICC_PROP_CHANNEL property matching an smc device. If the check is positive, the drv_bind() routine binds the driver to the device node attaching a PROP_DRIVER property to it. The property value specifies the smcuart driver name. The parent bus driver uses such a property to determine the name of the driver servicing the device. In other words, via the PROP_DRIVER property, the driver gives its name to the parent bus driver asking it to invoke the drv_init() routine on that device. Note that the drv_bind() routine does nothing if a PROP_DRIVER or a PROP_DBG_LINK property are already present in the device node. In other words, the drv_bind() routine does not override existing driver-to-device binding.
The driver provides the drv_unload() entry and supports the unloading driver component. This allows the driver component to be unloaded if it is no longer in use. Note that the driver component can be unloaded only if it has been dynamically loaded at run time. In other words, a resident driver component (embedded in the system bootable image) cannot be unloaded although unloading is supported by the driver.
The driver supports the QUICC_SYS_SHUTDOWN and QUICC_DEV_SHUTDOWN bus events specified by the quicc bus driver interface.
The table below summarizes characteristics of the smcuart uart driver.
driver name: | "sun@quicc-smc-uart" |
hardware: | quicc /smc device |
exported interface: | "uart" (UART_CLASS) |
exported interface version: | 0 (UART_VERSION_INITIAL) |
imported parent interface: | "quicc" (QUICC_CLASS) |
minimal parent interface version: | 0 (UART_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver to device binding: | supported (on channel basis) |
driver unloading: | supported |
system (emergency) shut-down: | supported |
normal device shut-down: | supported |
hot-plug (surprise) device removal: | not supported |
The table below lists device node properties used by the smcuart driver.
Note that the column "m/o" specifies whether a given property is mandatory or optional. For optional properties, the "Default Value" column shows the default value which is used by the driver when a given property is not specified.
Name | Alias | Type | m/o | Default Value |
---|---|---|---|---|
"mem-rgn" | QUICC_PROP_MEM_RGN | QuiccPropMemRgn | m | |
"brg" | QUICC_PROP_BRG | QuiccPropBrg | m | |
"intr" | QUICC_PROP_INTR | QuiccPropIntr | m | |
"channel" | QUICC_PROP_CHANNEL | QuiccPropChannel | m | |
"rx-fifo-sz" | SMCUART_PROP_RX_FIFO_SZ | SmcUartPropFifoSz | o | 8 bytes |
"tx-fifo-sz" | SMCUART_PROP_TX_FIFO_SZ | SmcUartPropFifoSz | o | 2 bytes |
The QUICC_PROP_MEM_RGN property specifies the quicc bus memory mapped regions used by the driver:
Index SMCUART_REG is used to map smc registers.
Index SMCUART_PARAM is used to map smc parameters.
Index SMCUART_BASE is used to map the smc parameter base pointer in case parameters are accessed indirectly. In such cases the driver dynamically allocates DPRAM memory for the parameters and makes the base pointer point to the allocated memory. Otherwise, if parameters must be directly mapped, the "size" field of this property element must be zero.
The QUICC_PROP_INTR property specifies the interrupt used by the device.
The QUICC_PROP_CHANNEL property specifies the channel used by the device.
The QUICC_PROP_BRG property specifies the baud rate generator to be used as clocks in the device.
The SMCUART_PROP_RX_FIFO_SZ property specifies the size in bytes of the receive FIFO.
The SMCUART_PROP_TX_FIFO_SZ property specifies the size in bytes of the transmit FIFO.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO