FreeCalypso > hg > freecalypso-tools
view target-utils/libcommon/buzzer.c @ 607:d5abcbbf7432
scripts/gtm900[bp]-ffs-clean: remove some more wrong files
An earlier version of GTM900-B firmware has been found in the wild that
still has MFW&BMI layers included (producing files under /mmi), as well as
enlarged /pcm/L[DMR]N files. These files are wrong for FreeCalypso fw
and thus need to be cleaned out.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Feb 2020 21:27:40 +0000 |
parents | 4be951811791 |
children |
line wrap: on
line source
/* * Commands for exercising the Calypso's buzzer output, whatever * actual hardware (piezo buzzer or vibrator) it may be driving * on a given Calypso device. */ #include <sys/types.h> #include "types.h" extern u_long strtoul(); #define ARMIO_LOAD_TIM (*(volatile u16 *) 0xFFFE4808) #define BUZZ_LIGHT_REG (*(volatile u16 *) 0xFFFE480E) #define BUZZ_LEVEL_REG (*(volatile u16 *) 0xFFFE4812) void cmd_buzlev(argbulk) char *argbulk; { char *argv[2]; u32 arg; if (parse_args(argbulk, 0, 1, argv, 0) < 0) return; if (argv[0]) { arg = strtoul(argv[0], 0, 0); if (arg > 0xFFFF) { printf("ERROR: argument out of range\n"); return; } BUZZ_LEVEL_REG = arg; } else printf("%04X\n", BUZZ_LEVEL_REG); } void cmd_buz(argbulk) char *argbulk; { char *argv[2]; u32 arg; int c; if (parse_args(argbulk, 1, 1, argv, 0) < 0) return; arg = strtoul(argv[0], 0, 0); if (arg > 0xFFFF) { printf("ERROR: argument out of range\n"); return; } ARMIO_LOAD_TIM = arg; BUZZ_LIGHT_REG = 1; for (;;) { c = serial_in_poll(); if (c >= 0) break; } BUZZ_LIGHT_REG = 0; }