cs4281pm.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef NOT_CS4281_PM
  2. /*******************************************************************************
  3. *
  4. *      "cs4281pm.h" --  Cirrus Logic-Crystal CS4281 linux audio driver.
  5. *
  6. *      Copyright (C) 2000,2001  Cirrus Logic Corp.  
  7. *            -- tom woller (twoller@crystal.cirrus.com) or
  8. *               (audio@crystal.cirrus.com).
  9. *
  10. *      This program is free software; you can redistribute it and/or modify
  11. *      it under the terms of the GNU General Public License as published by
  12. *      the Free Software Foundation; either version 2 of the License, or
  13. *      (at your option) any later version.
  14. *
  15. *      This program is distributed in the hope that it will be useful,
  16. *      but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. *      GNU General Public License for more details.
  19. *
  20. *      You should have received a copy of the GNU General Public License
  21. *      along with this program; if not, write to the Free Software
  22. *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23. *
  24. * 12/22/00 trw - new file. 
  25. *
  26. *******************************************************************************/
  27. /* general pm definitions */
  28. #define CS4281_AC97_HIGHESTREGTORESTORE 0x26
  29. #define CS4281_AC97_NUMBER_RESTORE_REGS (CS4281_AC97_HIGHESTREGTORESTORE/2-1)
  30. /* pipeline definitions */
  31. #define CS4281_NUMBER_OF_PIPELINES  4
  32. #define CS4281_PIPELINE_VALID  0x0001
  33. #define CS4281_PLAYBACK_PIPELINE_NUMBER 0x0000
  34. #define CS4281_CAPTURE_PIPELINE_NUMBER  0x0001
  35. /* PM state defintions */
  36. #define CS4281_PM_NOT_REGISTERED 0x1000
  37. #define CS4281_PM_IDLE 0x0001
  38. #define CS4281_PM_SUSPENDING 0x0002
  39. #define CS4281_PM_SUSPENDED 0x0004
  40. #define CS4281_PM_RESUMING 0x0008
  41. #define CS4281_PM_RESUMED 0x0010
  42. struct cs4281_pm {
  43. unsigned long flags;
  44. u32 u32CLKCR1_SAVE,u32SSPMValue,u32PPLVCvalue,u32PPRVCvalue;
  45. u32 u32FMLVCvalue,u32FMRVCvalue,u32GPIORvalue,u32JSCTLvalue,u32SSCR;
  46. u32 u32SRCSA,u32DacASR,u32AdcASR,u32DacSR,u32AdcSR,u32MIDCR_Save;
  47. u32 u32SSPM_BITS;
  48. u32 ac97[CS4281_AC97_NUMBER_RESTORE_REGS];
  49. u32 u32AC97_master_volume, u32AC97_headphone_volume, u32AC97_master_volume_mono;
  50. u32 u32AC97_pcm_out_volume, u32AC97_powerdown, u32AC97_general_purpose;
  51. u32 u32hwptr_playback,u32hwptr_capture;
  52. };
  53. struct cs4281_pipeline {
  54. unsigned flags;
  55. unsigned number;
  56. u32 u32DBAnValue,u32DBCnValue,u32DMRnValue,u32DCRnValue;
  57. u32 u32DBAnAddress,u32DCAnAddress,u32DBCnAddress,u32DCCnAddress;
  58. u32 u32DMRnAddress,u32DCRnAddress,u32HDSRnAddress;
  59. u32 u32DBAn_Save,u32DBCn_Save,u32DMRn_Save,u32DCRn_Save;
  60. u32 u32DCCn_Save,u32DCAn_Save;
  61. /* 
  62. * technically, these are fifo variables, but just map the 
  63. * first fifo with the first pipeline and then use the fifo
  64. * variables inside of the pipeline struct.
  65. */
  66. u32 u32FCRn_Save,u32FSICn_Save;
  67. u32 u32FCRnValue,u32FCRnAddress,u32FSICnValue,u32FSICnAddress;
  68. u32 u32FPDRnValue,u32FPDRnAddress;
  69. };
  70. #endif