aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/zpu/lib/hal_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/zpu/lib/hal_io.c')
-rw-r--r--firmware/zpu/lib/hal_io.c274
1 files changed, 0 insertions, 274 deletions
diff --git a/firmware/zpu/lib/hal_io.c b/firmware/zpu/lib/hal_io.c
deleted file mode 100644
index d4be324f5..000000000
--- a/firmware/zpu/lib/hal_io.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* -*- c -*- */
-/*
- * Copyright 2007,2008 Free Software Foundation, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// conditionalized on HAL_IO_USES_DBOARD_PINS && HAL_IO_USES_UART
-
-#include "memory_map.h"
-#include "hal_uart.h"
-#include "hal_io.h"
-#include <stdbool.h>
-#include <stdio.h>
-#include <string.h>
-
-/*
- * ========================================================================
- * leds
- * ========================================================================
- */
-
-static unsigned long leds_shadow = 0;
-static unsigned long led_src_shadow = 0;
-
-void
-hal_set_leds(int value, int mask)
-{
- int ei = hal_disable_ints();
- leds_shadow = (leds_shadow & ~mask) | (value & mask);
- output_regs->leds = leds_shadow;
- hal_restore_ints(ei);
-}
-
-// Allow hardware control over leds. 1 = hardware, 0 = software
-void
-hal_set_led_src(int value, int mask)
-{
- int ei = hal_disable_ints();
- led_src_shadow = (led_src_shadow & ~mask) | (value & mask);
- output_regs->led_src = led_src_shadow;
- hal_restore_ints(ei);
-}
-
-void
-hal_toggle_leds(int mask)
-{
- int ei = hal_disable_ints();
- leds_shadow ^= mask;
- output_regs->leds = leds_shadow;
- hal_restore_ints(ei);
-}
-
-
-// ================================================================
-// primitives
-// ================================================================
-
-#if defined(HAL_IO_USES_DBOARD_PINS)
-//
-// Does i/o using high 9-bits of rx daughterboard pins.
-//
-// 1 1 1 1 1 1
-// 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
-// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-// | char |W| |
-// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-//
-//
-// Asserts W when writing char
-//
-
-#define W 0x0080
-
-void
-hal_io_init(void)
-{
- // make high 9 bits of tx daughterboard outputs
- hal_gpio_set_rx_mode(15, 7, GPIOM_OUTPUT);
-
- // and set them to zero
- hal_gpio_set_rx(0x0000, 0xff80);
-}
-
-void
-hal_finish(void)
-{
- volatile unsigned long *p = (unsigned long *) 0xC2F0;
- *p = 0;
-}
-
-// %c
-inline int
-putchar(int ch)
-{
- hal_gpio_set_rx((s << 8) | W, 0xff80);
- hal_gpio_set_rx(0, 0xff80);
- return ch;
-}
-
-#elif defined(HAL_IO_USES_UART)
-
-void
-hal_io_init(void)
-{
- hal_uart_init();
-}
-
-void
-hal_finish(void)
-{
-}
-
-// %c
-inline int
-fputchar(hal_uart_name_t u, int ch)
-{
- hal_uart_putc(u, ch);
- return ch;
-}
-
-inline int
-putchar(int ch)
-{
- hal_uart_putc(DEFAULT_UART, ch);
- return ch;
-}
-
-int
-fgetchar(hal_uart_name_t u)
-{
- return hal_uart_getc(u);
-}
-
-int
-getchar(void)
-{
- return fgetchar(DEFAULT_UART);
-}
-
-#else // nop all i/o
-
-void
-hal_io_init(void)
-{
-}
-
-void
-hal_finish(void)
-{
-}
-
-// %c
-inline int
-putchar(int ch)
-{
- return ch;
-}
-
-int
-getchar(void)
-{
- return EOF;
-}
-
-#endif
-
-// ================================================================
-// (slightly) higher level functions
-//
-// These are here so we can inline the calls to putchar.
-// The rest of the stuff was moved to nonstdio.c
-// ================================================================
-
-// \n
-inline void
-fnewline(hal_uart_name_t u)
-{
- fputchar(u, '\n');
-}
-
-inline void
-newline(void)
-{
- fnewline(DEFAULT_UART);
-}
-
-int
-fputstr(hal_uart_name_t u, const char *s)
-{
- while (*s)
- fputchar(u, *s++);
-
- return 0;
-}
-
-int
-fnputstr(hal_uart_name_t u, const char *s, int len)
-{
- int x = 0;
- while (*s && (len > x++))
- fputchar(u, *s++);
-
- return x;
-}
-
-int
-putstr(const char *s)
-{
- return fputstr(DEFAULT_UART, s);
-}
-
-int
-fputs(hal_uart_name_t u, const char *s)
-{
- fputstr(u, s);
- fputchar(u, '\n');
- return 0;
-}
-
-int puts(const char *s)
-{
- return fputs(DEFAULT_UART, s);
-}
-
-char *
-fgets(hal_uart_name_t u, char * const s)
-{
- char *x = s;
- while((*x=(char)hal_uart_getc(u)) != '\n') x++;
- *x = 0;
- return s;
-}
-
-int
-fngets(hal_uart_name_t u, char * const s, int len)
-{
- char *x = s;
- while(((*x=(char)hal_uart_getc(u)) != '\n') && ((x-s) < len)) x++;
- *x = 0;
- return (x-s);
-}
-
-int
-fngets_noblock(hal_uart_name_t u, char * const s, int len)
-{
- int i;
- for(i=0; i < len; i++) {
- int ret = hal_uart_getc_noblock(u);
- s[i] = (char) ret;
- if((ret == -1) || (s[i] == '\n')) break;
- }
- s[i] = 0;
-
- return i;
-}
-
-char *
-gets(char * const s)
-{
- return fgets(DEFAULT_UART, s);
-}
-