Changeset 63530c62 in mainline for kernel/arch/sparc64/include
- Timestamp:
- 2006-10-14T19:31:03Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e3890b3f
- Parents:
- 7dcf22a
- Location:
- kernel/arch/sparc64/include/drivers
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/drivers/kbd.h
r7dcf22a r63530c62 47 47 extern kbd_type_t kbd_type; 48 48 49 extern volatile uint8_t *kbd_virt_address;50 51 49 extern void kbd_init(ofw_tree_node_t *node); 52 50 -
kernel/arch/sparc64/include/drivers/ns16550.h
r7dcf22a r63530c62 51 51 #define LCR_DLAB 0x80 /** Divisor Latch Access bit. */ 52 52 53 static inline uint8_t ns16550_rbr_read(void) 53 /** Structure representing the ns16550 device. */ 54 typedef struct { 55 devno_t devno; 56 volatile uint8_t *reg; /** Memory mapped registers of the ns16550. */ 57 } ns16550_t; 58 59 static inline uint8_t ns16550_rbr_read(ns16550_t *dev) 54 60 { 55 return kbd_virt_address[RBR_REG];61 return dev->reg[RBR_REG]; 56 62 } 57 63 58 static inline uint8_t ns16550_ier_read( void)64 static inline uint8_t ns16550_ier_read(ns16550_t *dev) 59 65 { 60 return kbd_virt_address[IER_REG];66 return dev->reg[IER_REG]; 61 67 } 62 68 63 static inline void ns16550_ier_write( uint8_t v)69 static inline void ns16550_ier_write(ns16550_t *dev, uint8_t v) 64 70 { 65 kbd_virt_address[IER_REG] = v;71 dev->reg[IER_REG] = v; 66 72 } 67 73 68 static inline uint8_t ns16550_iir_read( void)74 static inline uint8_t ns16550_iir_read(ns16550_t *dev) 69 75 { 70 return kbd_virt_address[IIR_REG];76 return dev->reg[IIR_REG]; 71 77 } 72 78 73 static inline void ns16550_fcr_write( uint8_t v)79 static inline void ns16550_fcr_write(ns16550_t *dev, uint8_t v) 74 80 { 75 kbd_virt_address[FCR_REG] = v;81 dev->reg[FCR_REG] = v; 76 82 } 77 83 78 static inline uint8_t ns16550_lcr_read( void)84 static inline uint8_t ns16550_lcr_read(ns16550_t *dev) 79 85 { 80 return kbd_virt_address[LCR_REG];86 return dev->reg[LCR_REG]; 81 87 } 82 88 83 static inline void ns16550_lcr_write( uint8_t v)89 static inline void ns16550_lcr_write(ns16550_t *dev, uint8_t v) 84 90 { 85 kbd_virt_address[LCR_REG] = v;91 dev->reg[LCR_REG] = v; 86 92 } 87 93 88 static inline uint8_t ns16550_lsr_read( void)94 static inline uint8_t ns16550_lsr_read(ns16550_t *dev) 89 95 { 90 return kbd_virt_address[LSR_REG];96 return dev->reg[LSR_REG]; 91 97 } 92 98 -
kernel/arch/sparc64/include/drivers/z8530.h
r7dcf22a r63530c62 92 92 #define RR0_RCA (0x1<<0) /** Receive Character Available. */ 93 93 94 static inline void z8530_write(index_t chan, uint8_t reg, uint8_t val) 94 /** Structure representing the z8530 device. */ 95 typedef struct { 96 devno_t devno; 97 volatile uint8_t *reg; /** Memory mapped registers of the z8530. */ 98 } z8530_t; 99 100 static inline void z8530_write(z8530_t *dev, index_t chan, uint8_t reg, uint8_t val) 95 101 { 96 102 /* … … 98 104 * command as their bit 3 is 1. 99 105 */ 100 kbd_virt_address[WR0+chan] = reg; /* select register */101 kbd_virt_address[WR0+chan] = val; /* write value */106 dev->reg[WR0+chan] = reg; /* select register */ 107 dev->reg[WR0+chan] = val; /* write value */ 102 108 } 103 109 104 static inline void z8530_write_a( uint8_t reg, uint8_t val)110 static inline void z8530_write_a(z8530_t *dev, uint8_t reg, uint8_t val) 105 111 { 106 z8530_write( Z8530_CHAN_A, reg, val);112 z8530_write(dev, Z8530_CHAN_A, reg, val); 107 113 } 108 static inline void z8530_write_b( uint8_t reg, uint8_t val)114 static inline void z8530_write_b(z8530_t *dev, uint8_t reg, uint8_t val) 109 115 { 110 z8530_write( Z8530_CHAN_B, reg, val);116 z8530_write(dev, Z8530_CHAN_B, reg, val); 111 117 } 112 118 113 static inline uint8_t z8530_read( index_t chan, uint8_t reg)119 static inline uint8_t z8530_read(z8530_t *dev, index_t chan, uint8_t reg) 114 120 { 115 121 /* … … 117 123 * command as their bit 3 is 1. 118 124 */ 119 kbd_virt_address[WR0+chan] = reg; /* select register */120 return kbd_virt_address[WR0+chan];125 dev->reg[WR0+chan] = reg; /* select register */ 126 return dev->reg[WR0+chan]; 121 127 } 122 128 123 static inline uint8_t z8530_read_a( uint8_t reg)129 static inline uint8_t z8530_read_a(z8530_t *dev, uint8_t reg) 124 130 { 125 return z8530_read( Z8530_CHAN_A, reg);131 return z8530_read(dev, Z8530_CHAN_A, reg); 126 132 } 127 static inline uint8_t z8530_read_b( uint8_t reg)133 static inline uint8_t z8530_read_b(z8530_t *dev, uint8_t reg) 128 134 { 129 return z8530_read( Z8530_CHAN_B, reg);135 return z8530_read(dev, Z8530_CHAN_B, reg); 130 136 } 131 137
Note:
See TracChangeset
for help on using the changeset viewer.