diff options
Diffstat (limited to 'arch/arm')
-rwxr-xr-x | arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h | 190 | ||||
-rwxr-xr-x | arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h | 31 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/ste_audio_io_ioctl.h | 192 |
3 files changed, 221 insertions, 192 deletions
diff --git a/arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h b/arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h new file mode 100755 index 00000000000..fab511975e3 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h @@ -0,0 +1,190 @@ +/* + * Copyright (C) ST-Ericsson SA 2010 + * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson + * License terms: GNU General Public License (GPL) version 2. + */ + +#ifndef _AUDIOIO_IOCTL_H_ +#define _AUDIOIO_IOCTL_H_ + + +#define AUDIOIO_IOC_MAGIC 'N' +#define AUDIOIO_READ_REGISTER _IOWR(AUDIOIO_IOC_MAGIC, 1,\ + struct audioio_data_t) +#define AUDIOIO_WRITE_REGISTER _IOW(AUDIOIO_IOC_MAGIC, 2,\ + struct audioio_data_t) +#define AUDIOIO_PWR_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 3,\ + struct audioio_pwr_ctrl_t) +#define AUDIOIO_PWR_STS_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 4,\ + struct audioio_pwr_ctrl_t) +#define AUDIOIO_LOOP_CTRL _IOW(AUDIOIO_IOC_MAGIC, 5,\ + struct audioio_loop_ctrl_t) +#define AUDIOIO_LOOP_STS _IOR(AUDIOIO_IOC_MAGIC, 6,\ + struct audioio_loop_ctrl_t) +#define AUDIOIO_GET_TRNSDR_GAIN_CAPABILITY _IOR(AUDIOIO_IOC_MAGIC, 7,\ + struct audioio_get_gain_t) +#define AUDIOIO_GAIN_CAP_LOOP _IOR(AUDIOIO_IOC_MAGIC, 8,\ + struct audioio_gain_loop_t) +#define AUDIOIO_SUPPORT_LOOP _IOR(AUDIOIO_IOC_MAGIC, 9,\ + struct audioio_support_loop_t) +#define AUDIOIO_GAIN_DESC_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 10,\ + struct audioio_gain_desc_trnsdr_t) +#define AUDIOIO_GAIN_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 11,\ + struct audioio_gain_ctrl_trnsdr_t) +#define AUDIOIO_GAIN_QUERY_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 12,\ + struct audioio_gain_ctrl_trnsdr_t) +#define AUDIOIO_MUTE_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 13,\ + struct audioio_mute_trnsdr_t) +#define AUDIOIO_MUTE_STS_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 14,\ + struct audioio_mute_trnsdr_t) +#define AUDIOIO_FADE_CTRL _IOW(AUDIOIO_IOC_MAGIC, 15,\ + struct audioio_fade_ctrl_t) +#define AUDIOIO_BURST_CTRL _IOW(AUDIOIO_IOC_MAGIC, 16,\ + struct audioio_burst_ctrl_t) +#define AUDIOIO_READ_ALL_ACODEC_REGS_CTRL _IOW(AUDIOIO_IOC_MAGIC, 17,\ + struct audioio_read_all_acodec_reg_ctrl_t) +#define AUDIOIO_FSBITCLK_CTRL _IOW(AUDIOIO_IOC_MAGIC, 18,\ + struct audioio_fsbitclk_ctrl_t) +#define AUDIOIO_PSEUDOBURST_CTRL _IOW(AUDIOIO_IOC_MAGIC, 19,\ + struct audioio_pseudoburst_ctrl_t) +#define AUDIOIO_AUDIOCODEC_PWR_CTRL _IOW(AUDIOIO_IOC_MAGIC, 20, \ + struct audioio_acodec_pwr_ctrl_t) +/* audio codec channel ids */ +#define EAR_CH 0 +#define HS_CH 1 +#define IHF_CH 2 +#define VIBL_CH 3 +#define VIBR_CH 4 +#define MIC1A_CH 5 +#define MIC1B_CH 6 +#define MIC2_CH 7 +#define LIN_CH 8 +#define DMIC12_CH 9 +#define DMIC34_CH 10 +#define DMIC56_CH 11 +#define MULTI_MIC_CH 12 +#define FMRX_CH 13 +#define FMTX_CH 14 +#define BLUETOOTH_CH 15 + +#define MAX_NO_TRANSDUCERS 16 + +#define AUDIOIO_TRUE 1 +#define AUDIOIO_FALSE 0 + +enum AUDIOIO_COMMON_SWITCH { + AUDIOIO_COMMON_OFF = 0, + AUDIOIO_COMMON_ON, + AUDIOIO_COMMON_ALLCHANNEL_UNSUPPORTED = 0xFFFF +}; + +enum AUDIOIO_HAL_HW_LOOPS { + AUDIOIO_NOLOOP = 0, + AUDIOIO_SIDETONE_LOOP = 0xFFFF +}; + + +enum AUDIOIO_FADE_PERIOD { + e_FADE_00, + e_FADE_01, + e_FADE_10, + e_FADE_11 +}; + +enum AUDIOIO_CH_INDEX { + e_CHANNEL_1 = 0x01, + e_CHANNEL_2 = 0x02, + e_CHANNEL_3 = 0x04, + e_CHANNEL_4 = 0x08, + e_CHANNEL_ALL = 0x0f +}; + +struct audioio_data_t { + unsigned char block; + unsigned char addr; + unsigned char data; +}; + +struct audioio_pwr_ctrl_t { + enum AUDIOIO_COMMON_SWITCH ctrl_switch; + int channel_type; + enum AUDIOIO_CH_INDEX channel_index; +}; + +struct audioio_acodec_pwr_ctrl_t { + enum AUDIOIO_COMMON_SWITCH ctrl_switch; +}; + +struct audioio_loop_ctrl_t { + enum AUDIOIO_HAL_HW_LOOPS hw_loop; + enum AUDIOIO_COMMON_SWITCH ctrl_switch; + int channel_type; + enum AUDIOIO_CH_INDEX channel_index; +}; + +struct audioio_get_gain_t { + unsigned int num_channels; + unsigned short max_num_gain; +}; + +struct audioio_gain_loop_t { + unsigned short num_loop; + unsigned short max_gains; +}; + +struct audioio_support_loop_t { + unsigned short spprtd_loop_index; +}; + +struct audioio_gain_desc_trnsdr_t { + enum AUDIOIO_CH_INDEX channel_index; + int channel_type; + unsigned short gain_index; + int min_gain; + int max_gain; + unsigned int gain_step; +}; + +struct audioio_gain_ctrl_trnsdr_t { + enum AUDIOIO_CH_INDEX channel_index; + int channel_type; + unsigned short gain_index; + int gain_value; + unsigned int linear; +}; + +struct audioio_mute_trnsdr_t { + int channel_type; + enum AUDIOIO_CH_INDEX channel_index; + enum AUDIOIO_COMMON_SWITCH ctrl_switch; +}; + +struct audioio_fade_ctrl_t { + enum AUDIOIO_COMMON_SWITCH ctrl_switch; + enum AUDIOIO_FADE_PERIOD fade_period; + int channel_type; + enum AUDIOIO_CH_INDEX channel_index; +}; + +struct audioio_burst_ctrl_t { + enum AUDIOIO_COMMON_SWITCH ctrl_switch; + int channel_type; + int burst_fifo_interrupt_sample_count; + int burst_fifo_length;/* BFIFOTx */ + int burst_fifo_switch_frame; + int burst_fifo_sample_number; +}; + +struct audioio_read_all_acodec_reg_ctrl_t { + unsigned char data[200]; +}; + +struct audioio_fsbitclk_ctrl_t { + enum AUDIOIO_COMMON_SWITCH ctrl_switch; +}; + +struct audioio_pseudoburst_ctrl_t { + enum AUDIOIO_COMMON_SWITCH ctrl_switch; +}; + +#endif diff --git a/arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h b/arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h new file mode 100755 index 00000000000..7af7e5fa8e9 --- /dev/null +++ b/arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h @@ -0,0 +1,31 @@ +/* +* Overview: +* Header File defining vibrator kernel space interface +* +* Copyright (C) 2010 ST Ericsson +* +* 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. +*/ + +#ifndef _STE_AUDIO_IO_VIBRATOR_H_ +#define _STE_AUDIO_IO_VIBRATOR_H_ + +/* Client definitions which can use vibrator, defined as bitmask */ +#define STE_AUDIOIO_CLIENT_AUDIO_L 1 +#define STE_AUDIOIO_CLIENT_AUDIO_R 2 +#define STE_AUDIOIO_CLIENT_FF_VIBRA 4 +#define STE_AUDIOIO_CLIENT_TIMED_VIBRA 8 + +/* + * Define vibrator's maximum speed allowed + * Duty cycle supported by vibrator's PWM is 0-100 + */ +#define STE_AUDIOIO_VIBRATOR_MAX_SPEED 100 + +/* Vibrator control function - uses PWM source */ +int ste_audioio_vibrator_pwm_control(int client, + unsigned char left_speed, unsigned char right_speed); + +#endif diff --git a/arch/arm/mach-ux500/include/ste_audio_io_ioctl.h b/arch/arm/mach-ux500/include/ste_audio_io_ioctl.h deleted file mode 100644 index 3a1773f6f84..00000000000 --- a/arch/arm/mach-ux500/include/ste_audio_io_ioctl.h +++ /dev/null @@ -1,192 +0,0 @@ -/* -* Overview: -* Header File defining IOCTLs for Audio IO interface -* -* Copyright (C) 2009 ST Ericsson -* -* 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. -*/ - - -#ifndef _AUDIOIO_IOCTL_H_ -#define _AUDIOIO_IOCTL_H_ - - -#define AUDIOIO_IOC_MAGIC 'N' -#define AUDIOIO_READ_REGISTER _IOWR(AUDIOIO_IOC_MAGIC, 1,\ - audioio_data_t) -#define AUDIOIO_WRITE_REGISTER _IOW(AUDIOIO_IOC_MAGIC, 2,\ - audioio_data_t) -#define AUDIOIO_PWR_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 3,\ - audioio_pwr_ctrl_t) -#define AUDIOIO_PWR_STS_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 4,\ - audioio_pwr_ctrl_t) -#define AUDIOIO_LOOP_CTRL _IOW(AUDIOIO_IOC_MAGIC, 5,\ - audioio_loop_ctrl_t) -#define AUDIOIO_LOOP_STS _IOR(AUDIOIO_IOC_MAGIC, 6,\ - audioio_loop_ctrl_t) -#define AUDIOIO_GET_TRNSDR_GAIN_CAPABILITY _IOR(AUDIOIO_IOC_MAGIC, 7,\ - audioio_get_gain_t) -#define AUDIOIO_GAIN_CAP_LOOP _IOR(AUDIOIO_IOC_MAGIC, 8,\ - audioio_gain_loop_t) -#define AUDIOIO_SUPPORT_LOOP _IOR(AUDIOIO_IOC_MAGIC, 9,\ - audioio_support_loop_t) -#define AUDIOIO_GAIN_DESC_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 10,\ - audioio_gain_desc_trnsdr_t) -#define AUDIOIO_GAIN_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 11,\ - audioio_gain_ctrl_trnsdr_t) -#define AUDIOIO_GAIN_QUERY_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 12,\ - audioio_gain_ctrl_trnsdr_t) -#define AUDIOIO_MUTE_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 13,\ - audioio_mute_trnsdr_t) -#define AUDIOIO_MUTE_STS_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 14,\ - audioio_mute_trnsdr_t) -#define AUDIOIO_FADE_CTRL _IOW(AUDIOIO_IOC_MAGIC, 15,\ - audioio_fade_ctrl_t) -#define AUDIOIO_BURST_CTRL _IOW(AUDIOIO_IOC_MAGIC, 16,\ - audioio_burst_ctrl_t) -#define AUDIOIO_READ_ALL_ACODEC_REGS_CTRL _IOW(AUDIOIO_IOC_MAGIC, 17,\ - audioio_read_all_acodec_reg_ctrl_t) - -/* audio codec channel ids */ -#define EAR_CH 0 -#define HS_CH 1 -#define IHF_CH 2 -#define VIBL_CH 3 -#define VIBR_CH 4 -#define MIC1A_CH 5 -#define MIC1B_CH 6 -#define MIC2_CH 7 -#define LIN_CH 8 -#define DMIC12_CH 9 -#define DMIC34_CH 10 -#define DMIC56_CH 11 -#define MULTI_MIC_CH 12 - -#define MAX_NO_TRANSDUCERS 13 - -#define AUDIOIO_TRUE 1 -#define AUDIOIO_FALSE 0 - -/** 16 bit unsigned quantity that is 16 bit word aligned */ -typedef unsigned short uint16; - -/** 16 bit signed quantity that is 16 bit word aligned */ -typedef signed short int16; - -/** 32 bit unsigned quantity that is 32 bit word aligned */ -typedef unsigned long uint32; - -/** signed quantity that is 32 bit word aligned */ -typedef signed long int32; - - - -typedef enum AUDIOIO_COMMON_SWITCH { - AUDIOIO_COMMON_OFF = 0, - AUDIOIO_COMMON_ON, - AUDIOIO_COMMON_ALLCHANNEL_UNSUPPORTED = 0xFFFF -} AUDIOIO_COMMON_SWITCH; - - -typedef enum AUDIOIO_HAL_HW_LOOPS { - AUDIOIO_NOLOOP = 0, - AUDIOIO_SIDETONE_LOOP = 0xFFFF -} AUDIOIO_HAL_HW_LOOPS; - - -typedef enum AUDIOIO_FADE_PERIOD { - e_FADE_00, - e_FADE_01, - e_FADE_10, - e_FADE_11 -}AUDIOIO_FADE_PERIOD; - -typedef enum AUDIOIO_CH_INDEX { - e_CHANNEL_1 = 0x01, - e_CHANNEL_2 = 0x02, - e_CHANNEL_3 = 0x04, - e_CHANNEL_4 = 0x08, - e_CHANNEL_ALL = 0x0f -}AUDIOIO_CH_INDEX; - -typedef struct __audioio_data { - unsigned char block; - unsigned char addr; - unsigned char data; -}audioio_data_t; - -typedef struct __audioio_pwr_ctrl { - AUDIOIO_COMMON_SWITCH ctrl_switch; - int channel_type; - AUDIOIO_CH_INDEX channel_index; -}audioio_pwr_ctrl_t; - -typedef struct __audioio_loop_ctrl { - AUDIOIO_HAL_HW_LOOPS hw_loop; - AUDIOIO_COMMON_SWITCH ctrl_switch; - int channel_type; - AUDIOIO_CH_INDEX channel_index; -}audioio_loop_ctrl_t; - -typedef struct __audioio_get_gain { - uint32 num_channels; - uint16 max_num_gain; -}audioio_get_gain_t; - -typedef struct __audioio_gain_loop { - uint16 num_loop; - uint16 max_gains; -}audioio_gain_loop_t; - -typedef struct __audioio_support_loop { - uint16 spprtd_loop_index; -}audioio_support_loop_t; - -typedef struct __audioio_gain_desc_trnsdr { - AUDIOIO_CH_INDEX channel_index; - int channel_type; - uint16 gain_index; - int32 min_gain; - int32 max_gain; - uint32 gain_step; -}audioio_gain_desc_trnsdr_t; - -typedef struct __audioio_gain_ctrl_trnsdr { - AUDIOIO_CH_INDEX channel_index; - int channel_type; - uint16 gain_index; - int32 gain_value; - uint32 linear; -}audioio_gain_ctrl_trnsdr_t; - -typedef struct __audioio_mute_trnsdr { - int channel_type; - AUDIOIO_CH_INDEX channel_index; - AUDIOIO_COMMON_SWITCH ctrl_switch; -}audioio_mute_trnsdr_t; - -typedef struct __audioio_fade_ctrl { - AUDIOIO_COMMON_SWITCH ctrl_switch; - AUDIOIO_FADE_PERIOD fade_period; - int channel_type; - AUDIOIO_CH_INDEX channel_index; -}audioio_fade_ctrl_t; - -typedef struct __audioio_burst_ctrl { - AUDIOIO_COMMON_SWITCH ctrl_switch; - int channel_type; - int32 burst_fifo_interrupt_sample_count; - int32 burst_fifo_length;/*BFIFOTx*/ - int32 burst_fifo_switch_frame; - int32 burst_fifo_sample_number; -}audioio_burst_ctrl_t; - -typedef struct __audioio_read_all_acodec_reg_ctrl_t { - unsigned char data[200]; -}audioio_read_all_acodec_reg_ctrl_t; - - -#endif |