summaryrefslogtreecommitdiff
path: root/os/mpc/pit.c
diff options
context:
space:
mode:
authorKonstantin Kirik (snegovick) <snegovick@uprojects.org>2025-12-28 12:27:31 +0300
committerKonstantin Kirik (snegovick) <snegovick@uprojects.org>2025-12-28 12:27:31 +0300
commit78ee7d5717807e6ac779293d0d3c78341de6130a (patch)
treea43e3b0f61318ac45e6d907c7cc5bad2c6d7f497 /os/mpc/pit.c
parentbdaf46cf45bbb59261da245d548a179d95a42768 (diff)
Move existing boards into subdits split per arch
Diffstat (limited to 'os/mpc/pit.c')
-rw-r--r--os/mpc/pit.c68
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;
-}