Changeset 3e53ab7 in mainline for kernel/genarch/include/kbd/ns16550.h
- Timestamp:
- 2008-11-28T19:33:10Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7905360
- Parents:
- 4c4ddbe9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/include/kbd/ns16550.h
r4c4ddbe9 r3e53ab7 59 59 #define FCR_REG 2 /** FIFO control register (write). */ 60 60 #define LCR_REG 3 /** Line Control register. */ 61 #define MCR_REG 4 /** Modem Control Register. */ 61 62 #define LSR_REG 5 /** Line Status Register. */ 62 63 … … 65 66 #define LCR_DLAB 0x80 /** Divisor Latch Access bit. */ 66 67 68 #define MCR_OUT2 0x08 /** OUT2. */ 69 67 70 /** Structure representing the ns16550 device. */ 68 71 typedef struct { 69 72 devno_t devno; 70 volatile ioport_t io_port; /** Memory mapped registers of the ns16550. */ 73 /** Memory mapped registers of the ns16550. */ 74 volatile ioport_t io_port; 71 75 } ns16550_t; 72 76 73 77 static inline uint8_t ns16550_rbr_read(ns16550_t *dev) 74 78 { 75 return inb(dev->io_port +RBR_REG);79 return inb(dev->io_port + RBR_REG); 76 80 } 77 81 static inline void ns16550_rbr_write(ns16550_t *dev, uint8_t v) 78 82 { 79 outb(dev->io_port +RBR_REG,v);83 outb(dev->io_port + RBR_REG, v); 80 84 } 81 85 82 86 static inline uint8_t ns16550_ier_read(ns16550_t *dev) 83 87 { 84 return inb(dev->io_port +IER_REG);88 return inb(dev->io_port + IER_REG); 85 89 } 86 90 87 91 static inline void ns16550_ier_write(ns16550_t *dev, uint8_t v) 88 92 { 89 outb(dev->io_port +IER_REG,v);93 outb(dev->io_port + IER_REG, v); 90 94 } 91 95 92 96 static inline uint8_t ns16550_iir_read(ns16550_t *dev) 93 97 { 94 return inb(dev->io_port +IIR_REG);98 return inb(dev->io_port + IIR_REG); 95 99 } 96 100 97 101 static inline void ns16550_fcr_write(ns16550_t *dev, uint8_t v) 98 102 { 99 outb(dev->io_port +FCR_REG,v);103 outb(dev->io_port + FCR_REG, v); 100 104 } 101 105 102 106 static inline uint8_t ns16550_lcr_read(ns16550_t *dev) 103 107 { 104 return inb(dev->io_port +LCR_REG);108 return inb(dev->io_port + LCR_REG); 105 109 } 106 110 107 111 static inline void ns16550_lcr_write(ns16550_t *dev, uint8_t v) 108 112 { 109 outb(dev->io_port +LCR_REG,v);113 outb(dev->io_port + LCR_REG, v); 110 114 } 111 115 112 116 static inline uint8_t ns16550_lsr_read(ns16550_t *dev) 113 117 { 114 return inb(dev->io_port +LSR_REG);118 return inb(dev->io_port + LSR_REG); 115 119 } 116 120 121 static inline uint8_t ns16550_mcr_read(ns16550_t *dev) 122 { 123 return inb(dev->io_port + MCR_REG); 124 } 117 125 126 static inline void ns16550_mcr_write(ns16550_t *dev, uint8_t v) 127 { 128 outb(dev->io_port + MCR_REG, v); 129 } 118 130 119 131 #endif
Note:
See TracChangeset
for help on using the changeset viewer.