Changeset 466e75ad in mainline for kernel/genarch/include/genarch/drivers/ns16550/ns16550.h
- Timestamp:
- 2018-02-12T18:58:50Z (6 years ago)
- Parents:
- 8192d8a
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-12 17:25:25)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-12 18:58:50)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/include/genarch/drivers/ns16550/ns16550.h
r8192d8a r466e75ad 50 50 51 51 /** NS16550 registers. */ 52 typedef struct { 53 union { 54 ioport8_t rbr; /**< Receiver Buffer Register (read). */ 55 ioport8_t thr; /**< Transmitter Holder Register (write). */ 56 } __attribute__ ((packed)); 57 ioport8_t ier; /**< Interrupt Enable Register. */ 58 union { 59 ioport8_t iir; /**< Interrupt Ident Register (read). */ 60 ioport8_t fcr; /**< FIFO control register (write). */ 61 } __attribute__ ((packed)); 62 ioport8_t lcr; /**< Line Control register. */ 63 ioport8_t mcr; /**< Modem Control Register. */ 64 ioport8_t lsr; /**< Line Status Register. */ 65 } __attribute__ ((packed)) ns16550_t; 52 enum { 53 NS16550_REG_RBR = 0, /**< Receiver Buffer Register (read). */ 54 NS16550_REG_THR = 0, /**< Transmitter Holder Register (write). */ 55 NS16550_REG_IER = 1, /**< Interrupt Enable Register. */ 56 NS16550_REG_IIR = 2, /**< Interrupt Ident Register (read). */ 57 NS16550_REG_FCR = 2, /**< FIFO control register (write). */ 58 NS16550_REG_LCR = 3, /**< Line Control register. */ 59 NS16550_REG_MCR = 4, /**< Modem Control Register. */ 60 NS16550_REG_LSR = 5, /**< Line Status Register. */ 61 }; 66 62 67 63 /** Structure representing the ns16550 device. */ 68 64 typedef struct { 69 65 irq_t irq; 70 ns16550_t *ns16550;66 volatile ioport8_t *ns16550; 71 67 indev_t *input; 72 68 outdev_t *output; 73 69 parea_t parea; 70 int reg_shift; 74 71 } ns16550_instance_t; 75 72 76 extern ns16550_instance_t *ns16550_init( ns16550_t *, inr_t, cir_t, void *,73 extern ns16550_instance_t *ns16550_init(ioport8_t *, int, inr_t, cir_t, void *, 77 74 outdev_t **); 78 75 extern void ns16550_wire(ns16550_instance_t *, indev_t *);
Note:
See TracChangeset
for help on using the changeset viewer.