| /* |
| * Copyright (C) 2010 Samsung Electronics. |
| * |
| * This software is licensed under the terms of the GNU General Public |
| * License version 2, as published by the Free Software Foundation, and |
| * may be copied, distributed, and modified under those terms. |
| * |
| * 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. |
| * |
| */ |
| |
| #ifndef __MODEM_VARIATION_H__ |
| #define __MODEM_VARIATION_H__ |
| |
| #include "modem_prj.h" |
| |
| #define DECLARE_MODEM_INIT(type) \ |
| int type ## _init_modemctl_device( \ |
| struct modem_ctl *mc, \ |
| struct modem_data *pdata) |
| |
| #define DECLARE_MODEM_INIT_DUMMY(type) \ |
| DECLARE_MODEM_INIT(type) { return 0; } |
| |
| #define DECLARE_LINK_INIT(type) \ |
| struct link_device *type ## _create_link_device( \ |
| struct platform_device *pdev) |
| |
| #define DECLARE_LINK_INIT_DUMMY(type) \ |
| DECLARE_LINK_INIT(type) { return NULL; } |
| |
| #define MODEM_INIT_CALL(type) type ## _init_modemctl_device |
| |
| #define LINK_INIT_CALL(type) type ## _create_link_device |
| |
| /** |
| * Add extern declaration of modem & link type |
| * (CAUTION!!! Every DUMMY function must be declared in modem_variation.c) |
| */ |
| |
| /* modem device support */ |
| #ifdef CONFIG_UMTS_MODEM_XMM6260 |
| DECLARE_MODEM_INIT(xmm6260); |
| #endif |
| |
| #ifdef CONFIG_UMTS_MODEM_XMM6262 |
| DECLARE_MODEM_INIT(xmm6262); |
| #endif |
| |
| #ifdef CONFIG_LTE_MODEM_XMM7260 |
| DECLARE_MODEM_INIT(xmm7260); |
| #endif |
| |
| #ifdef CONFIG_CDMA_MODEM_CBP71 |
| DECLARE_MODEM_INIT(cbp71); |
| #endif |
| |
| #ifdef CONFIG_CDMA_MODEM_CBP72 |
| DECLARE_MODEM_INIT(cbp72); |
| #endif |
| |
| #ifdef CONFIG_CDMA_MODEM_CBP82 |
| DECLARE_MODEM_INIT(cbp82); |
| #endif |
| |
| #ifdef CONFIG_LTE_MODEM_CMC220 |
| DECLARE_MODEM_INIT(cmc220); |
| #endif |
| |
| #ifdef CONFIG_LTE_MODEM_CMC221 |
| DECLARE_MODEM_INIT(cmc221); |
| #endif |
| |
| #ifdef CONFIG_UMTS_MODEM_SH222AP |
| DECLARE_MODEM_INIT(sh222ap); |
| #endif |
| |
| #ifdef CONFIG_UMTS_MODEM_SS310AP |
| DECLARE_MODEM_INIT(ss310ap); |
| #endif |
| |
| #ifdef CONFIG_UMTS_MODEM_SS222 |
| DECLARE_MODEM_INIT(ss222); |
| #endif |
| |
| #ifdef CONFIG_UMTS_MODEM_SS300 |
| DECLARE_MODEM_INIT(ss300); |
| #endif |
| |
| #ifdef CONFIG_CDMA_MODEM_MDM6600 |
| DECLARE_MODEM_INIT(mdm6600); |
| #endif |
| |
| #ifdef CONFIG_GSM_MODEM_ESC6270 |
| DECLARE_MODEM_INIT(esc6270); |
| #endif |
| |
| #ifdef CONFIG_CDMA_MODEM_QSC6085 |
| DECLARE_MODEM_INIT(qsc6085); |
| #endif |
| |
| #ifdef CONFIG_TDSCDMA_MODEM_SPRD8803 |
| DECLARE_MODEM_INIT(sprd8803); |
| #endif |
| |
| /* link device support */ |
| #ifdef CONFIG_LINK_DEVICE_MIPI |
| DECLARE_LINK_INIT(mipi); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_USB |
| DECLARE_LINK_INIT(usb); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_HSIC |
| DECLARE_LINK_INIT(hsic); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_DPRAM |
| DECLARE_LINK_INIT(dpram); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_PLD |
| DECLARE_LINK_INIT(pld); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_C2C |
| DECLARE_LINK_INIT(c2c); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_LLI |
| DECLARE_LINK_INIT(lli); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_SHMEM |
| DECLARE_LINK_INIT(shmem); |
| #endif |
| |
| #ifdef CONFIG_LINK_DEVICE_SPI |
| DECLARE_LINK_INIT(spi); |
| #endif |
| |
| typedef int (*modem_init_call)(struct modem_ctl *, struct modem_data *); |
| typedef struct link_device *(*link_init_call)(struct platform_device *); |
| |
| int call_modem_init_func(struct modem_ctl *mc, struct modem_data *pdata); |
| |
| struct link_device *call_link_init_func(struct platform_device *pdev, |
| enum modem_link link_type); |
| |
| #endif |