| /* Copyright (c) 2009-2010, The Linux Foundation. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 and |
| * only 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. |
| * |
| */ |
| #ifndef _MACH_QDSP5_V2_VOICE_H |
| #define _MACH_QDSP5_V2_VOICE_H |
| |
| #define VOICE_DALRPC_DEVICEID 0x02000075 |
| #define VOICE_DALRPC_PORT_NAME "DAL00" |
| #define VOICE_DALRPC_CPU 0 |
| |
| |
| /* Commands sent to Modem */ |
| #define CMD_VOICE_INIT 0x1 |
| #define CMD_ACQUIRE_DONE 0x2 |
| #define CMD_RELEASE_DONE 0x3 |
| #define CMD_DEVICE_INFO 0x4 |
| #define CMD_DEVICE_CHANGE 0x6 |
| |
| /* EVENTS received from MODEM */ |
| #define EVENT_ACQUIRE_START 0x51 |
| #define EVENT_RELEASE_START 0x52 |
| #define EVENT_CHANGE_START 0x54 |
| #define EVENT_NETWORK_RECONFIG 0x53 |
| |
| /* voice state */ |
| enum { |
| VOICE_INIT = 0, |
| VOICE_ACQUIRE, |
| VOICE_CHANGE, |
| VOICE_RELEASE, |
| }; |
| |
| enum { |
| NETWORK_CDMA = 0, |
| NETWORK_GSM, |
| NETWORK_WCDMA, |
| NETWORK_WCDMA_WB, |
| }; |
| |
| enum { |
| VOICE_DALRPC_CMD = DALDEVICE_FIRST_DEVICE_API_IDX |
| }; |
| |
| /* device state */ |
| enum { |
| DEV_INIT = 0, |
| DEV_READY, |
| DEV_CHANGE, |
| DEV_CONCUR, |
| DEV_REL_DONE, |
| }; |
| |
| /* Voice Event */ |
| enum{ |
| VOICE_RELEASE_START = 1, |
| VOICE_CHANGE_START, |
| VOICE_ACQUIRE_START, |
| VOICE_NETWORK_RECONFIG, |
| }; |
| |
| /* Device Event */ |
| #define DEV_CHANGE_READY 0x1 |
| |
| #define VOICE_CALL_START 0x1 |
| #define VOICE_CALL_END 0 |
| |
| #define VOICE_DEV_ENABLED 0x1 |
| #define VOICE_DEV_DISABLED 0 |
| |
| struct voice_header { |
| uint32_t id; |
| uint32_t data_len; |
| }; |
| |
| struct voice_init { |
| struct voice_header hdr; |
| void *cb_handle; |
| }; |
| |
| |
| /* Device information payload structure */ |
| struct voice_device { |
| struct voice_header hdr; |
| uint32_t rx_device; |
| uint32_t tx_device; |
| uint32_t rx_volume; |
| uint32_t rx_mute; |
| uint32_t tx_mute; |
| uint32_t rx_sample; |
| uint32_t tx_sample; |
| }; |
| |
| /*Voice command structure*/ |
| struct voice_network { |
| struct voice_header hdr; |
| uint32_t network_info; |
| }; |
| |
| struct device_data { |
| uint32_t dev_acdb_id; |
| uint32_t volume; /* in percentage */ |
| uint32_t mute; |
| uint32_t sample; |
| uint32_t enabled; |
| uint32_t dev_id; |
| }; |
| |
| #endif |