aboutsummaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rwxr-xr-xarch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h190
-rwxr-xr-xarch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h31
-rw-r--r--arch/arm/mach-ux500/include/ste_audio_io_ioctl.h192
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