diff options
| author | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2025-12-28 12:27:31 +0300 |
|---|---|---|
| committer | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2025-12-28 12:27:31 +0300 |
| commit | 78ee7d5717807e6ac779293d0d3c78341de6130a (patch) | |
| tree | a43e3b0f61318ac45e6d907c7cc5bad2c6d7f497 /os/mpc/pit.c | |
| parent | bdaf46cf45bbb59261da245d548a179d95a42768 (diff) | |
Move existing boards into subdits split per arch
Diffstat (limited to 'os/mpc/pit.c')
| -rw-r--r-- | os/mpc/pit.c | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/os/mpc/pit.c b/os/mpc/pit.c deleted file mode 100644 index bfc8bc8d..00000000 --- a/os/mpc/pit.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * programmable interrupt timer - */ - -#include "u.h" -#include "../port/lib.h" -#include "mem.h" -#include "dat.h" -#include "fns.h" -#include "io.h" -#include "ureg.h" - -enum { - /* piscr */ - PTE = 1<<0, - PITF = 1<<1, - PIE = 1<<2, - PS = 1<<7, -}; - -static void -pitinterrupt(Ureg*, void*) -{ - IMM *io; - - io = m->iomem; - if(io->piscr & PS){ - io->piscr |= PS; /* clear by writing 1 */ - /* do whatever is required */ - } -} - -static void -pitreset(void) -{ - IMM *io; - - io = ioplock(); - io->piscrk = KEEP_ALIVE_KEY; - io->piscr = (PITlevel<<8) | PS | PITF; - if(0) - io->piscrk = ~KEEP_ALIVE_KEY; - /* piscrk is left unlocked for interrupt routine */ - iopunlock(); - intrenable(PITlevel, pitinterrupt, nil, BUSUNKNOWN, "pit"); -} - -static ulong -pitload(ulong usec) -{ - IMM *io; - ulong v; - - v = ((usec*m->oscclk)/512); - if(v == 0 || v >= (1<<16)) - return 0; /* can't do */ - io = ioplock(); - io->pitck = KEEP_ALIVE_KEY; - io->pitc = (v-1)<<16; - io->pitck = ~KEEP_ALIVE_KEY; - io->piscrk = KEEP_ALIVE_KEY; - io->piscr = (PITlevel<<8) | PS | PIE | PITF | PTE; - if(0) - io->piscrk = ~KEEP_ALIVE_KEY; - /* piscrk is left unlocked for interrupt routine */ - iopunlock(); - return (v*512)/m->oscclk; -} |
