/* * Allocate 8250 platform device IDs. Nothing is implied by * the numbering here, except for the legacy entry being -1.
*/ enum {
PLAT8250_DEV_LEGACY = -1,
PLAT8250_DEV_PLATFORM,
PLAT8250_DEV_PLATFORM1,
PLAT8250_DEV_PLATFORM2,
PLAT8250_DEV_FOURPORT,
PLAT8250_DEV_ACCENT,
PLAT8250_DEV_BOCA,
PLAT8250_DEV_EXAR_ST16C554,
PLAT8250_DEV_HUB6,
PLAT8250_DEV_AU1X00,
PLAT8250_DEV_SM501,
};
struct uart_8250_dma; struct uart_8250_port;
/** * 8250 core driver operations * * @setup_irq() Setup irq handling. The universal 8250 driver links this * port to the irq chain. Other drivers may @request_irq(). * @release_irq() Undo irq handling. The universal 8250 driver unlinks * the port from the irq chain.
*/ struct uart_8250_ops { int (*setup_irq)(struct uart_8250_port *); void (*release_irq)(struct uart_8250_port *); void (*setup_timer)(struct uart_8250_port *);
};
struct uart_8250_em485 { struct hrtimer start_tx_timer; /* "rs485 start tx" timer */ struct hrtimer stop_tx_timer; /* "rs485 stop tx" timer */ struct hrtimer *active_timer; /* pointer to active timer */ struct uart_8250_port *port; /* for hrtimer callbacks */ unsignedint tx_stopped:1; /* tx is currently stopped */
};
/* * This should be used by drivers which want to register * their own 8250 ports without registering their own * platform device. Using these will make your driver * dependent on the 8250 driver. * * @dl_read: ``u32 ()(struct uart_8250_port *port)`` * * UART divisor latch read. * * @dl_write: ``void ()(struct uart_8250_port *port, u32 value)`` * * Write @value into UART divisor latch. * * Locking: Caller holds port's lock.
*/ struct uart_8250_port { struct uart_port port; struct timer_list timer; /* "no irq" timer */ struct list_head list; /* ports on this IRQ */
u32 capabilities; /* port capabilities */
u16 bugs; /* port bugs */ unsignedint tx_loadsz; /* transmit fifo load size */ unsignedchar acr; unsignedchar fcr; unsignedchar ier; unsignedchar lcr; unsignedchar mcr; unsignedchar cur_iotype; /* Running I/O type */ unsignedint rpm_tx_active; unsignedchar canary; /* non-zero during system sleep * if no_console_suspend
*/ unsignedchar probe; struct mctrl_gpios *gpios; #define UART_PROBE_RSA (1 << 0)
/* * Some bits in registers are cleared on a read, so they must * be saved whenever the register is read but the bits will not * be immediately processed.
*/ #define LSR_SAVE_FLAGS UART_LSR_BRK_ERROR_BITS
u16 lsr_saved_flags;
u16 lsr_save_mask; #define MSR_SAVE_FLAGS UART_MSR_ANY_DELTA unsignedchar msr_saved_flags;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.