diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-09 07:07:14 +0900 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-09 07:07:14 +0900 | 
| commit | f5a246eab9a268f51ba8189ea5b098a1bfff200e (patch) | |
| tree | a6ff7169e0bcaca498d9aec8b0624de1b74eaecb /include/linux/platform_data/davinci_asp.h | |
| parent | d5bbd43d5f450c3fca058f5b85f3dfb4e8cc88c9 (diff) | |
| parent | 7ff34ad80b7080fafaac8efa9ef0061708eddd51 (diff) | |
| download | olio-linux-3.10-f5a246eab9a268f51ba8189ea5b098a1bfff200e.tar.xz olio-linux-3.10-f5a246eab9a268f51ba8189ea5b098a1bfff200e.zip  | |
Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
 "This contains pretty many small commits covering fairly large range of
  files in sound/ directory.  Partly because of additional API support
  and partly because of constantly developed ASoC and ARM stuff.
  Some highlights:
   - Introduced the helper function and documentation for exposing the
     channel map via control API, as discussed in Plumbers; most of PCI
     drivers are covered, will follow more drivers later
   - Most of drivers have been replaced with the new PM callbacks (if
     the bus is supported)
   - HD-audio controller got the support of runtime PM and the support
     of D3 clock-stop.  Also changing the power_save option in sysfs
     kicks off immediately to enable / disable the power-save mode.
   - Another significant code change in HD-audio is the rewrite of
     firmware loading code.  Other than that, most of changes in
     HD-audio are continued cleanups and standardization for the generic
     auto parser and bug fixes (HBR, device-specific fixups), in
     addition to the support of channel-map API.
   - Addition of ASoC bindings for the compressed API, used by the
     mid-x86 drivers.
   - Lots of cleanups and API refreshes for ASoC codec drivers and
     DaVinci.
   - Conversion of OMAP to dmaengine.
   - New machine driver for Wolfson Microelectronics Bells.
   - New CODEC driver for Wolfson Microelectronics WM0010.
   - Enhancements to the ux500 and wm2000 drivers
   - A new driver for DA9055 and the support for regulator bypass mode."
Fix up various arm soc header file reorg conflicts.
* tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (339 commits)
  ALSA: hda - Add new codec ALC283 ALC290 support
  ALSA: hda - avoid unneccesary indices on "Headphone Jack" controls
  ALSA: hda - fix indices on boost volume on Conexant
  ALSA: aloop - add locking to timer access
  ALSA: hda - Fix hang caused by race during suspend.
  sound: Remove unnecessary semicolon
  ALSA: hda/realtek - Fix detection of ALC271X codec
  ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310
  ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event
  ALSA: hda - make a generic unsol event handler
  ASoC: codecs: Add DA9055 codec driver
  ASoC: eukrea-tlv320: Convert it to platform driver
  ALSA: ASoC: add DT bindings for CS4271
  ASoC: wm_hubs: Ensure volume updates are handled during class W startup
  ASoC: wm5110: Adding missing volume update bits
  ASoC: wm5110: Add OUT3R support
  ASoC: wm5110: Add AEC loopback support
  ASoC: wm5110: Rename EPOUT to HPOUT3
  ASoC: arizona: Add more clock rates
  ASoC: arizona: Add more DSP options for mixer input muxes
  ...
Diffstat (limited to 'include/linux/platform_data/davinci_asp.h')
| -rw-r--r-- | include/linux/platform_data/davinci_asp.h | 105 | 
1 files changed, 105 insertions, 0 deletions
diff --git a/include/linux/platform_data/davinci_asp.h b/include/linux/platform_data/davinci_asp.h new file mode 100644 index 00000000000..d0c5825876f --- /dev/null +++ b/include/linux/platform_data/davinci_asp.h @@ -0,0 +1,105 @@ +/* + * TI DaVinci Audio Serial Port support + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation version 2. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __DAVINCI_ASP_H +#define __DAVINCI_ASP_H + +struct snd_platform_data { +	u32 tx_dma_offset; +	u32 rx_dma_offset; +	int asp_chan_q;	/* event queue number for ASP channel */ +	int ram_chan_q;	/* event queue number for RAM channel */ +	unsigned int codec_fmt; +	/* +	 * Allowing this is more efficient and eliminates left and right swaps +	 * caused by underruns, but will swap the left and right channels +	 * when compared to previous behavior. +	 */ +	unsigned enable_channel_combine:1; +	unsigned sram_size_playback; +	unsigned sram_size_capture; + +	/* +	 * If McBSP peripheral gets the clock from an external pin, +	 * there are three chooses, that are MCBSP_CLKX, MCBSP_CLKR +	 * and MCBSP_CLKS. +	 * Depending on different hardware connections it is possible +	 * to use this setting to change the behaviour of McBSP +	 * driver. +	 */ +	int clk_input_pin; + +	/* +	 * This flag works when both clock and FS are outputs for the cpu +	 * and makes clock more accurate (FS is not symmetrical and the +	 * clock is very fast. +	 * The clock becoming faster is named +	 * i2s continuous serial clock (I2S_SCK) and it is an externally +	 * visible bit clock. +	 * +	 * first line : WordSelect +	 * second line : ContinuousSerialClock +	 * third line: SerialData +	 * +	 * SYMMETRICAL APPROACH: +	 *   _______________________          LEFT +	 * _|         RIGHT         |______________________| +	 *     _   _         _   _   _   _         _   _ +	 *   _| |_| |_ x16 _| |_| |_| |_| |_ x16 _| |_| |_ +	 *     _   _         _   _   _   _         _   _ +	 *   _/ \_/ \_ ... _/ \_/ \_/ \_/ \_ ... _/ \_/ \_ +	 *    \_/ \_/       \_/ \_/ \_/ \_/       \_/ \_/ +	 * +	 * ACCURATE CLOCK APPROACH: +	 *   ______________          LEFT +	 * _|     RIGHT    |_______________________________| +	 *     _         _   _         _   _   _   _   _   _ +	 *   _| |_ x16 _| |_| |_ x16 _| |_| |_| |_| |_| |_| | +	 *     _         _   _          _      dummy cycles +	 *   _/ \_ ... _/ \_/ \_  ... _/ \__________________ +	 *    \_/       \_/ \_/        \_/ +	 * +	 */ +	bool i2s_accurate_sck; + +	/* McASP specific fields */ +	int tdm_slots; +	u8 op_mode; +	u8 num_serializer; +	u8 *serial_dir; +	u8 version; +	u8 txnumevt; +	u8 rxnumevt; +}; + +enum { +	MCASP_VERSION_1 = 0,	/* DM646x */ +	MCASP_VERSION_2,	/* DA8xx/OMAPL1x */ +	MCASP_VERSION_3,        /* TI81xx/AM33xx */ +}; + +enum mcbsp_clk_input_pin { +	MCBSP_CLKR = 0,		/* as in DM365 */ +	MCBSP_CLKS, +}; + +#define INACTIVE_MODE	0 +#define TX_MODE		1 +#define RX_MODE		2 + +#define DAVINCI_MCASP_IIS_MODE	0 +#define DAVINCI_MCASP_DIT_MODE	1 + +#endif  |