M7350/kernel/arch/arm/mach-msm/include/mach/qdsp5v2/voice.h
2024-09-09 08:52:07 +00:00

118 lines
2.4 KiB
C

/* 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