aboutsummaryrefslogtreecommitdiffstats
path: root/samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-02-21 02:08:55 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-02-21 05:20:24 +0100
commitc137579d09b0de9a903bd764bb0cb8196190dff3 (patch)
treee3911e634b050a06541bf4e4b7cdcd4692872fcf /samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h
parent703dbcfac4e313eaf3e6177f8639fbe729f5b290 (diff)
downloadhardware_replicant_libsamsung-ipc-c137579d09b0de9a903bd764bb0cb8196190dff3.tar.gz
hardware_replicant_libsamsung-ipc-c137579d09b0de9a903bd764bb0cb8196190dff3.tar.bz2
hardware_replicant_libsamsung-ipc-c137579d09b0de9a903bd764bb0cb8196190dff3.zip
modem: rename xmm626_sec_modem to xmm626_kernel_smdk4412
The XMM626 is the modem model, and SEC is a reference to Samsung Electronics. However, in practice the xmm626_sec_modem file and functions are tied to a specific kernel interface which is not upstream. In CyanogenMod, LineageOS and Replicant (up to the 6.0 version), most of the devices supported by libsamsung-ipc use a kernel named android_kernel_samsung_smdk4412, which implements this interface. So it is more clear to use a name that reflects that instead of using the generic xmm626_sec_modem name. Even if SMDK4412 is also a Samsung evaluation board for the Exynos 4412 System on a chip, the kernel name is probably way more known to people working on supporting devices with an XMM626 modem in libsamsung-ipc. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h')
-rw-r--r--samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h b/samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h
new file mode 100644
index 0000000..99b4714
--- /dev/null
+++ b/samsung-ipc/modems/xmm626/xmm626_kernel_smdk4412.h
@@ -0,0 +1,72 @@
+/*
+ * This file is part of libsamsung-ipc.
+ *
+ * Copyright (C) 2013-2014 Paul Kocialkowski <contact@paulk.fr>
+ *
+ * libsamsung-ipc 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.
+ *
+ * libsamsung-ipc 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 libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __XMM626_SEC_MODEM_H__
+#define __XMM626_SEC_MODEM_H__
+
+#define XMM626_SEC_MODEM_BOOT0_DEVICE "/dev/umts_boot0"
+#define XMM626_SEC_MODEM_BOOT1_DEVICE "/dev/umts_boot1"
+#define XMM626_SEC_MODEM_IPC0_DEVICE "/dev/umts_ipc0"
+#define XMM626_SEC_MODEM_RFS0_DEVICE "/dev/umts_rfs0"
+#define XMM626_SEC_MODEM_LINK_PM_DEVICE "/dev/link_pm"
+#define XMM626_SEC_MODEM_EHCI_POWER_SYSFS "/sys/devices/platform/s5p-ehci/ehci_power"
+#define XMM626_SEC_MODEM_OHCI_POWER_SYSFS "/sys/devices/platform/s5p-ohci/ohci_power"
+
+#define XMM626_SEC_MODEM_GPRS_IFACE_PREFIX "rmnet"
+#define XMM626_SEC_MODEM_GPRS_IFACE_COUNT 3
+
+int xmm626_kernel_smdk4412_power(struct ipc_client *client, int device_fd, int power);
+int xmm626_kernel_smdk4412_boot_power(struct ipc_client *client, int device_fd,
+ int power);
+int xmm626_kernel_smdk4412_status_online_wait(struct ipc_client *client,
+ int device_fd);
+int xmm626_kernel_smdk4412_hci_power(struct ipc_client *client, int power);
+int xmm626_kernel_smdk4412_link_control_enable(struct ipc_client *client,
+ int device_fd, int enable);
+int xmm626_kernel_smdk4412_link_control_active(struct ipc_client *client,
+ int device_fd, int active);
+int xmm626_kernel_smdk4412_link_connected_wait(struct ipc_client *client,
+ int device_fd);
+int xmm626_kernel_smdk4412_link_get_hostwake_wait(struct ipc_client *client,
+ int device_fd);
+
+int xmm626_kernel_smdk4412_fmt_send(struct ipc_client *client,
+ struct ipc_message *message);
+int xmm626_kernel_smdk4412_fmt_recv(struct ipc_client *client,
+ struct ipc_message *message);
+int xmm626_kernel_smdk4412_rfs_send(struct ipc_client *client,
+ struct ipc_message *message);
+int xmm626_kernel_smdk4412_rfs_recv(struct ipc_client *client,
+ struct ipc_message *message);
+
+int xmm626_kernel_smdk4412_open(struct ipc_client *client, int type);
+int xmm626_kernel_smdk4412_close(struct ipc_client *client, int fd);
+int xmm626_kernel_smdk4412_read(struct ipc_client *client, int fd, void *buffer,
+ size_t length);
+int xmm626_kernel_smdk4412_write(struct ipc_client *client, int fd,
+ const void *buffer, size_t length);
+int xmm626_kernel_smdk4412_poll(struct ipc_client *client, int fd,
+ struct ipc_poll_fds *fds, struct timeval *timeout);
+
+char *xmm626_kernel_smdk4412_gprs_get_iface(unsigned int cid);
+int xmm626_kernel_smdk4412_gprs_get_capabilities(struct ipc_client_gprs_capabilities *capabilities);
+
+#endif
+
+// vim:ts=4:sw=4:expandtab