iPXE
|
8254 Programmable Interval Timer More...
Go to the source code of this file.
Macros | |
#define | PIT8254_CH_IRQ0 0 |
IRQ0 channel. More... | |
#define | PIT8254_CH_SPKR 2 |
PC speaker channel. More... | |
#define | PIT8254_HZ 1193182UL |
Timer frequency (1.193182MHz) More... | |
#define | PIT8254_DATA(channel) ( 0x40 + (channel) ) |
Data port. More... | |
#define | PIT8254_CMD 0x43 |
Mode/command register. More... | |
#define | PIT8254_CMD_CHANNEL(channel) ( (channel) << 6 ) |
Select channel. More... | |
#define | PIT8254_CMD_ACCESS_LATCH 0x00 |
Access modes. More... | |
#define | PIT8254_CMD_ACCESS_LO 0x10 |
Low byte only. More... | |
#define | PIT8254_CMD_ACCESS_HI 0x20 |
High byte only. More... | |
#define | PIT8254_CMD_ACCESS_LOHI 0x30 |
Low-byte, high-byte pair. More... | |
#define | PIT8254_CMD_OP_TERMINAL 0x00 |
Interrupt on terminal count. More... | |
#define | PIT8254_CMD_OP_ONESHOT 0x02 |
Hardware re-triggerable one-shot. More... | |
#define | PIT8254_CMD_OP_RATE 0x04 |
Rate generator. More... | |
#define | PIT8254_CMD_OP_SQUARE 0x06 |
Square wave generator. More... | |
#define | PIT8254_CMD_OP_SWSTROBE 0x08 |
Software triggered strobe. More... | |
#define | PIT8254_CMD_OP_HWSTROBE 0x0a |
Hardware triggered strobe. More... | |
#define | PIT8254_CMD_OP_RATE2 0x0c |
Rate generator (duplicate) More... | |
#define | PIT8254_CMD_OP_SQUARE2 0x0e |
Square wave generator (duplicate) More... | |
#define | PIT8254_CMD_BINARY 0x00 |
Binary mode. More... | |
#define | PIT8254_CMD_BCD 0x01 |
BCD mode. More... | |
#define | PIT8254_SPKR 0x61 |
PC speaker control register. More... | |
#define | PIT8254_SPKR_GATE 0x01 |
PC speaker channel gate. More... | |
#define | PIT8254_SPKR_ENABLE 0x02 |
PC speaker enabled. More... | |
#define | PIT8254_SPKR_OUT 0x20 |
PC speaker channel output. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
void | pit8254_speaker_delay (unsigned int ticks) |
Delay for a fixed number of timer ticks using the speaker channel. More... | |
static | __attribute__ ((always_inline)) void pit8254_udelay(unsigned long usecs) |
Delay for a fixed number of microseconds. More... | |
8254 Programmable Interval Timer
Definition in file pit8254.h.
#define PIT8254_DATA | ( | channel | ) | ( 0x40 + (channel) ) |
#define PIT8254_CMD_ACCESS_LATCH 0x00 |
#define PIT8254_CMD_ACCESS_LOHI 0x30 |
#define PIT8254_CMD_OP_TERMINAL 0x00 |
#define PIT8254_CMD_OP_ONESHOT 0x02 |
#define PIT8254_CMD_OP_SWSTROBE 0x08 |
#define PIT8254_CMD_OP_HWSTROBE 0x0a |
#define PIT8254_CMD_OP_RATE2 0x0c |
#define PIT8254_CMD_OP_SQUARE2 0x0e |
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
void pit8254_speaker_delay | ( | unsigned int | ticks | ) |
Delay for a fixed number of timer ticks using the speaker channel.
ticks | Number of timer ticks for which to delay |
Definition at line 41 of file pit8254.c.
References assert(), cmd, high, inb(), low, outb, PIT8254_CH_SPKR, PIT8254_CMD, PIT8254_CMD_ACCESS_LOHI, PIT8254_CMD_BINARY, PIT8254_CMD_CHANNEL, PIT8254_CMD_OP_TERMINAL, PIT8254_DATA, PIT8254_SPKR, PIT8254_SPKR_ENABLE, PIT8254_SPKR_GATE, and PIT8254_SPKR_OUT.
Referenced by __attribute__().
|
inlinestatic |
Delay for a fixed number of microseconds.
usecs | Number of microseconds for which to delay |
Definition at line 71 of file pit8254.h.
References PIT8254_HZ, and pit8254_speaker_delay().