summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/apps/trx/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/apps/trx/main.c')
-rw-r--r--src/target/firmware/apps/trx/main.c123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/target/firmware/apps/trx/main.c b/src/target/firmware/apps/trx/main.c
new file mode 100644
index 00000000..b0170b92
--- /dev/null
+++ b/src/target/firmware/apps/trx/main.c
@@ -0,0 +1,123 @@
+/* main program for TRX function */
+
+/*
+ * Copyright (C) 2013 Sylvain Munaut <tnt@246tNt.com>
+ *
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include <stdio.h>
+
+#include <debug.h>
+#include <keypad.h>
+#include <board.h>
+
+#include <abb/twl3025.h>
+
+#include <comm/timer.h>
+
+#include <calypso/clock.h>
+#include <calypso/tpu.h>
+#include <calypso/misc.h>
+
+#include <layer1/sync.h>
+#include <layer1/async.h>
+#include <layer1/l23_api.h>
+#include <layer1/trx.h>
+
+#include <fb/framebuffer.h>
+
+
+static void
+key_handler(enum key_codes code, enum key_states state)
+{
+ if (state != PRESSED)
+ return;
+
+ switch (code) {
+ default:
+ break;
+ }
+}
+
+
+/* MAIN program **************************************************************/
+
+int main(void)
+{
+ const char *hr = "======================================================================\n";
+
+ /* Init board */
+ board_init(1);
+
+ /* Register keypad handler */
+ keypad_set_handler(&key_handler);
+
+ /* Debug console output */
+ /* Ident */
+ puts("\n\nOSMOCOM TRX (revision " GIT_REVISION ")\n");
+ puts(hr);
+
+ /* Dump device identification */
+ dump_dev_id();
+ puts(hr);
+
+ /* Dump clock config after PLL set */
+ calypso_clk_dump();
+ puts(hr);
+
+ /* Fill screen */
+ fb_clear();
+
+ fb_setfg(FB_COLOR_BLACK);
+ fb_setbg(FB_COLOR_WHITE);
+ fb_setfont(FB_FONT_HELVB14);
+
+ fb_gotoxy(2,20);
+ fb_putstr("TRX",framebuffer->width-4);
+
+ fb_setfg(FB_COLOR_RED);
+ fb_setbg(FB_COLOR_BLUE);
+
+ fb_gotoxy(2,25);
+ fb_boxto(framebuffer->width-3,38);
+
+ fb_setfg(FB_COLOR_WHITE);
+ fb_setfont(FB_FONT_HELVR08);
+ fb_gotoxy(8,33);
+ fb_putstr("osmocom-bb",framebuffer->width-4);
+
+ fb_flush();
+
+ /* Init TRX */
+ trx_init();
+
+ /* Init layer 1 */
+ layer1_init();
+
+ tpu_frame_irq_en(1, 1);
+
+ /* Main loop */
+ while (1) {
+ l1a_compl_execute();
+ osmo_timers_update();
+ l1a_l23_handler();
+ }
+
+ /* NOT REACHED */
+ twl3025_power_off();
+}