28#ifndef _DEV_SERIAL_SC16IS752_H
29#define _DEV_SERIAL_SC16IS752_H
31#include <sys/ioccom.h>
52 SC16IS752_MODE_RS485_RTS,
58 SC16IS752_MODE_RS485_RTS_INV
254void sc16is752_interrupt_handler(
void *arg);
267 const char *device_path
275#define SC16IS752_SET_SLEEP_MODE _IOW('d', 0, int)
283#define SC16IS752_SET_IOCONTROL _IOW('d', 1, uint8_t)
288#define SC16IS752_SET_IODIR _IOW('d', 2, uint8_t)
293#define SC16IS752_SET_IOSTATE _IOW('d', 3, uint8_t)
298#define SC16IS752_SET_EFCR _IOW('d', 4, uint8_t)
303#define SC16IS752_GET_SLEEP_MODE _IOR('d', 0, int)
308#define SC16IS752_GET_IOCONTROL _IOR('d', 1, uint8_t)
313#define SC16IS752_GET_IODIR _IOR('d', 2, uint8_t)
318#define SC16IS752_GET_IOSTATE _IOR('d', 3, uint8_t)
323#define SC16IS752_GET_EFCR _IOR('d', 4, uint8_t)
329#define SC16IS752_IOCONTROL_SRESET (1u << 3)
330#define SC16IS752_IOCONTROL_GPIO_3_0_OR_MODEM (1u << 2)
331#define SC16IS752_IOCONTROL_GPIO_7_4_OR_MODEM (1u << 1)
332#define SC16IS752_IOCONTROL_IOLATCH (1u << 0)
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
Termios device context.
Definition: termiosdevice.h:68
Termios device handler.
Definition: termiosdevice.h:100
Definition: termiostypes.h:94
SC16IS752 device context.
Definition: sc16is752.h:66
uint8_t ier
Shadow Interrupt Enable Register (IER).
Definition: sc16is752.h:160
uint32_t input_frequency
Input frequency in Hertz (dependent on crystal, see XTAL1 and XTAL2 pins).
Definition: sc16is752.h:146
rtems_termios_tty * tty
Corresponding Termios structure.
Definition: sc16is752.h:153
uint8_t tx_fifo_free
Count of free characters in the transmit FIFO.
Definition: sc16is752.h:174
void(* last_close)(sc16is752_context *ctx)
Last close.
Definition: sc16is752.h:117
int(* write_reg)(sc16is752_context *ctx, uint8_t addr, const uint8_t *data, size_t len)
Writes a register.
Definition: sc16is752.h:74
int(* read_2_reg)(sc16is752_context *ctx, uint8_t addr_0, uint8_t addr_1, uint8_t data[2])
Reads two registers.
Definition: sc16is752.h:98
int(* read_reg)(sc16is752_context *ctx, uint8_t addr, uint8_t *data, size_t len)
Reads a register.
Definition: sc16is752.h:86
uint8_t tx_in_progress
Characters placed into transmit FIFO.
Definition: sc16is752.h:167
void(* remove_irq)(sc16is752_context *ctx)
Shall remove the interrupt handler.
Definition: sc16is752.h:131
bool(* install_irq)(sc16is752_context *ctx)
Shall install the interrupt handler.
Definition: sc16is752.h:124
sc16is752_mode mode
Device mode.
Definition: sc16is752.h:138
bool(* first_open)(sc16is752_context *ctx)
First open.
Definition: sc16is752.h:110
uint8_t lcr
Shadow Line Control Register (LCR).
Definition: sc16is752.h:181
uint8_t efcr
Shadow Extra Features Control Register (EFCR).
Definition: sc16is752.h:188
SC16IS752 I2C context.
Definition: sc16is752.h:229
const char * bus_path
The I2C bus device path.
Definition: sc16is752.h:244
int fd
The I2C bus device file descriptor.
Definition: sc16is752.h:237
SC16IS752 SPI context.
Definition: sc16is752.h:194
const char * spi_path
The SPI bus device path.
Definition: sc16is752.h:223
uint32_t speed_hz
The SPI bus speed in Hertz.
Definition: sc16is752.h:216
uint8_t cs
The SPI device chip select.
Definition: sc16is752.h:209
int fd
The SPI bus device file descriptor.
Definition: sc16is752.h:202