kmi.hh (11174:5a9019db4a08) kmi.hh (11895:ff66da931b6d)
1/*
1/*
2 * Copyright (c) 2010 ARM Limited
2 * Copyright (c) 2010, 2017 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 85 unchanged lines hidden (view full) ---

96 */
97 uint8_t clkdiv;
98
99 BitUnion8(InterruptReg)
100 Bitfield<0> rx;
101 Bitfield<1> tx;
102 EndBitUnion(InterruptReg)
103
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 85 unchanged lines hidden (view full) ---

96 */
97 uint8_t clkdiv;
98
99 BitUnion8(InterruptReg)
100 Bitfield<0> rx;
101 Bitfield<1> tx;
102 EndBitUnion(InterruptReg)
103
104 /** interrupt status register. */
105 InterruptReg interrupts;
106
107 /** raw interrupt register (unmasked) */
108 InterruptReg rawInterrupts;
109
110 /** If the controller should ignore the next data byte and acknowledge it.
111 * The driver is attempting to setup some feature we don't care about
112 */
113 int ackNext;
114

--- 9 unchanged lines hidden (view full) ---

124
125 /** Update the status of the interrupt registers and schedule an interrupt
126 * if required */
127 void updateIntStatus();
128
129 /** Function to generate interrupt */
130 void generateInterrupt();
131
104 /** raw interrupt register (unmasked) */
105 InterruptReg rawInterrupts;
106
107 /** If the controller should ignore the next data byte and acknowledge it.
108 * The driver is attempting to setup some feature we don't care about
109 */
110 int ackNext;
111

--- 9 unchanged lines hidden (view full) ---

121
122 /** Update the status of the interrupt registers and schedule an interrupt
123 * if required */
124 void updateIntStatus();
125
126 /** Function to generate interrupt */
127 void generateInterrupt();
128
129 /** Get interrupt value */
130 InterruptReg getInterrupt() const {
131 InterruptReg tmp_interrupt(0);
132 tmp_interrupt.tx = rawInterrupts.tx & control.txint_enable;
133 tmp_interrupt.rx = rawInterrupts.rx & control.rxint_enable;
134 return tmp_interrupt;
135 }
132 /** Wrapper to create an event out of the thing */
133 EventWrapper<Pl050, &Pl050::generateInterrupt> intEvent;
134
135 /** Receive queue. This list contains all the pending commands that
136 * need to be sent to the driver
137 */
138 std::list<uint8_t> rxQueue;
139

--- 25 unchanged lines hidden ---
136 /** Wrapper to create an event out of the thing */
137 EventWrapper<Pl050, &Pl050::generateInterrupt> intEvent;
138
139 /** Receive queue. This list contains all the pending commands that
140 * need to be sent to the driver
141 */
142 std::list<uint8_t> rxQueue;
143

--- 25 unchanged lines hidden ---