summaryrefslogtreecommitdiffstats
path: root/plugins/nokia-gpio.h
diff options
context:
space:
mode:
authorPekka Pessi <ppessi@hamsa.research.nokia.com>2010-09-16 17:56:17 +0300
committerAki Niemi <aki.niemi@nokia.com>2010-09-30 11:25:47 +0300
commit82894cf58f8ed1ab4935bd17bac9890b15e4569d (patch)
treecc384fd3869c5f8ce7feb455723e7ced59b1ecb4 /plugins/nokia-gpio.h
parentce2ff831877ea15d3cd2529007b94a033e0314ae (diff)
downloadofono-82894cf58f8ed1ab4935bd17bac9890b15e4569d.tar.bz2
n900: modem driver plugin for Nokia N900
This patch adds a modem driver plugin for the Nokia N900 internal modem. It controls the modem using the appropriate GPIO lines and thus works without the Maemo userspace. This plugin can run natively on the N900 with either Maemo or Meego kernels. However, it conflicts with the Maemo userspace, for which isigen should be used instead.
Diffstat (limited to 'plugins/nokia-gpio.h')
-rw-r--r--plugins/nokia-gpio.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/plugins/nokia-gpio.h b/plugins/nokia-gpio.h
new file mode 100644
index 00000000..d0e1b0c0
--- /dev/null
+++ b/plugins/nokia-gpio.h
@@ -0,0 +1,53 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * 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 St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifndef __NOKIA_GPIO_H
+#define __NOKIA_GPIO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum power_state {
+ POWER_STATE_NONE,
+ POWER_STATE_ON_STARTED,
+ POWER_STATE_ON,
+ POWER_STATE_ON_RESET,
+ POWER_STATE_ON_FAILED,
+ POWER_STATE_OFF_STARTED,
+ POWER_STATE_OFF_WAITING,
+ POWER_STATE_OFF,
+};
+
+typedef void (*gpio_finished_cb_t)(enum power_state value, void *opaque);
+
+int gpio_probe(GIsiModem *idx, unsigned addr, gpio_finished_cb_t cb, void *data);
+int gpio_enable(void *opaque);
+int gpio_disable(void *opaque);
+int gpio_remove(void *opaque);
+
+char const *gpio_power_state_name(enum power_state value);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* __NOKIA_GPIO_H */