r2734 - trunk/src/target/gsm/src/gsmd
laforge at sita.openmoko.org
laforge at sita.openmoko.org
Fri Aug 17 12:01:29 CEST 2007
Author: laforge
Date: 2007-08-17 12:01:25 +0200 (Fri, 17 Aug 2007)
New Revision: 2734
Added:
trunk/src/target/gsm/src/gsmd/vendor_bcm.c
Modified:
trunk/src/target/gsm/src/gsmd/Makefile.am
trunk/src/target/gsm/src/gsmd/machine.c
Log:
Add Broadcom BCM2132 vendor plugin (Alex Osborne)
Modified: trunk/src/target/gsm/src/gsmd/Makefile.am
===================================================================
--- trunk/src/target/gsm/src/gsmd/Makefile.am 2007-08-17 08:36:48 UTC (rev 2733)
+++ trunk/src/target/gsm/src/gsmd/Makefile.am 2007-08-17 10:01:25 UTC (rev 2734)
@@ -21,7 +21,8 @@
libgsmd-machine_tihtc.la \
libgsmd-vendor_ti.la \
libgsmd-vendor_tihtc.la \
- libgsmd-vendor_qc.la
+ libgsmd-vendor_qc.la \
+ libgsmd-vendor_bcm.la
libgsmd_machine_generic_la_SOURCES = machine_generic.c
libgsmd_machine_generic_la_LDFLAGS = -module
@@ -34,5 +35,8 @@
libgsmd_vendor_tihtc_la_LDFLAGS = -module
libgsmd_vendor_qc_la_SOURCES = vendor_qc.c
libgsmd_vendor_qc_la_LDFLAGS = -module
+libgsmd_vendor_bcm_la_SOURCES = vendor_bcm.c
+libgsmd_vendor_bcm_la_LDFLAGS = -module
+
noinst_HEADERS = gsmd.h
Modified: trunk/src/target/gsm/src/gsmd/machine.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/machine.c 2007-08-17 08:36:48 UTC (rev 2733)
+++ trunk/src/target/gsm/src/gsmd/machine.c 2007-08-17 10:01:25 UTC (rev 2734)
@@ -100,6 +100,7 @@
{ "HTC Himalaya", "tihtc", "tihtc" },
{ "HTC Magician", "tihtc", "tihtc" },
{ "HTC Universal", "generic", "qc" },
+ { "Palm Treo 650", "generic", "bcm" },
{ NULL, NULL, NULL },
};
@@ -157,6 +158,7 @@
gsmd_vendor_plugin_load("ti");
gsmd_vendor_plugin_load("tihtc");
gsmd_vendor_plugin_load("qc");
+ gsmd_vendor_plugin_load("bcm");
}
return rc;
Added: trunk/src/target/gsm/src/gsmd/vendor_bcm.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/vendor_bcm.c 2007-08-17 08:36:48 UTC (rev 2733)
+++ trunk/src/target/gsm/src/gsmd/vendor_bcm.c 2007-08-17 10:01:25 UTC (rev 2734)
@@ -0,0 +1,112 @@
+/* Broadcom [BCM2132] gsmd plugin
+ *
+ * Written by Alex Osborne <bobofdoom at gmail.com>
+ *
+ * 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 2 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, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+
+#include "gsmd.h"
+
+#include <gsmd/gsmd.h>
+#include <gsmd/usock.h>
+#include <gsmd/event.h>
+#include <gsmd/talloc.h>
+#include <gsmd/extrsp.h>
+#include <gsmd/atcmd.h>
+#include <gsmd/vendorplugin.h>
+#include <gsmd/unsolicited.h>
+
+static int mrdy_parse(char *buf, int len, const char *param,
+ struct gsmd *g)
+{
+ int status = atoi(param);
+ DEBUGP("entering mrdy_parse param=`%s'\n", param);
+
+ switch (status) {
+ case 1:
+ DEBUGP("Module is ready.\n");
+ break;
+ case 2:
+ DEBUGP("Emergency call is ready.\n");
+ break;
+ case 3:
+ DEBUGP("All AT commands are ready.\n");
+ break;
+ case 4:
+ DEBUGP("SIM card inserted.\n");
+ break;
+ case 5:
+ DEBUGP("SIM card removed.\n");
+ break;
+ case 6:
+ DEBUGP("No access - limited service.\n");
+ break;
+ case 7:
+ DEBUGP("SOS - limited service.\n");
+ break;
+ default:
+ DEBUGP("Unknown module ready status %d\n", status);
+ }
+
+ return 0;
+}
+
+static int mtsmenu_parse(char *buf, int len, const char *param,
+ struct gsmd *g)
+{
+ char *tok, *param_tmp;
+ struct mtsmenu *mtsmenu;
+
+ DEBUGP("mtsmenu_parse param=`%s'\n", param);
+ return 0;
+}
+
+static const struct gsmd_unsolicit bcm_unsolicit[] = {
+ { "*MRDY", &mrdy_parse }, /* Module Ready Status */
+ { "*MTSMENU", &mtsmenu_parse }, /* Set Up Menu (SAT) */
+
+ /* FIXME: determine other unsolicited responses */
+};
+
+static int bcm_detect(struct gsmd *g)
+{
+ /* FIXME: do actual detection of vendor if we have multiple vendors */
+ return 1;
+}
+
+static int bcm_initsettings(struct gsmd *g)
+{
+ int rc;
+ struct gsmd_atcmd *cmd;
+
+ /* TODO */
+ return rc;
+}
+
+struct gsmd_vendor_plugin gsmd_vendor_plugin = {
+ .name = "Broadcom BCM2132",
+ .ext_chars = "*",
+ .num_unsolicit = ARRAY_SIZE(bcm_unsolicit),
+ .unsolicit = bcm_unsolicit,
+ .detect = &bcm_detect,
+ .initsettings = &bcm_initsettings,
+};
More information about the commitlog
mailing list