RTEMS  5.0.0
Data Structures | Functions | Variables
ns16550.c File Reference
#include <stdlib.h>
#include <rtems.h>
#include <rtems/libio.h>
#include <rtems/ringbuf.h>
#include <rtems/bspIo.h>
#include <rtems/termiostypes.h>
#include <libchip/serial.h>
#include <libchip/sersupp.h>
#include <bsp.h>
#include <libchip/ns16550_p.h>
#include <libchip/ns16550.h>

Data Structures

struct  NS16550Context
 

Functions

NS16550_STATIC void ns16550_init (int minor)
 
NS16550_STATIC int ns16550_open (int major, int minor, void *arg)
 
NS16550_STATIC int ns16550_close (int major, int minor, void *arg)
 
NS16550_STATIC void ns16550_write_polled (int minor, char cChar)
 
NS16550_STATIC int ns16550_assert_RTS (int minor)
 
NS16550_STATIC int ns16550_negate_RTS (int minor)
 
NS16550_STATIC int ns16550_assert_DTR (int minor)
 
NS16550_STATIC int ns16550_negate_DTR (int minor)
 
NS16550_STATIC void ns16550_initialize_interrupts (int minor)
 
NS16550_STATIC void ns16550_cleanup_interrupts (int minor)
 
NS16550_STATIC ssize_t ns16550_write_support_int (int minor, const char *buf, size_t len)
 Transmits up to len characters from buf. More...
 
NS16550_STATIC ssize_t ns16550_write_support_polled (int minor, const char *buf, size_t len)
 
int ns16550_inbyte_nonblocking_polled (int minor)
 
NS16550_STATIC void ns16550_enable_interrupts (console_tbl *c, int mask)
 
NS16550_STATIC int ns16550_set_attributes (int minor, const struct termios *t)
 
void ns16550_outch_polled (console_tbl *c, char out)
 Polled write for NS16550.
 
int ns16550_inch_polled (console_tbl *c)
 

Variables

const console_flow ns16550_flow_RTSCTS
 
const console_flow ns16550_flow_DTRCTS
 
const console_fns ns16550_fns
 
const console_fns ns16550_fns_polled
 

Detailed Description

This file contains the TTY driver for the National Semiconductor NS16550.

This part is widely cloned and second sourced. It is found in a number of "Super IO" controllers.

This driver uses the termios pseudo driver.

Function Documentation

◆ ns16550_write_support_int()

ssize_t ns16550_write_support_int ( int  minor,
const char *  buf,
size_t  len 
)

Transmits up to len characters from buf.

This routine is invoked either from task context with disabled interrupts to start a new transmission process with exactly one character in case of an idle output state or from the interrupt handler to refill the transmitter.

Returns always zero.

Variable Documentation

◆ ns16550_flow_DTRCTS

const console_flow ns16550_flow_DTRCTS
Initial value:
= {
ns16550_negate_DTR,
ns16550_assert_DTR
}

◆ ns16550_flow_RTSCTS

const console_flow ns16550_flow_RTSCTS
Initial value:
= {
ns16550_negate_RTS,
ns16550_assert_RTS
}

◆ ns16550_fns

const console_fns ns16550_fns
Initial value:
= {
libchip_serial_default_probe,
ns16550_open,
ns16550_close,
NULL,
ns16550_init,
ns16550_write_polled,
ns16550_set_attributes,
true
}
NS16550_STATIC ssize_t ns16550_write_support_int(int minor, const char *buf, size_t len)
Transmits up to len characters from buf.
Definition: ns16550.c:660
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77

◆ ns16550_fns_polled

const console_fns ns16550_fns_polled
Initial value:
= {
libchip_serial_default_probe,
ns16550_open,
ns16550_close,
ns16550_inbyte_nonblocking_polled,
ns16550_write_support_polled,
ns16550_init,
ns16550_write_polled,
ns16550_set_attributes,
false
}