platform_sst_audio.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * platform_sst_audio.h: sst audio platform data header file
  3. *
  4. * Copyright (C) 2012-14 Intel Corporation
  5. * Author: Jeeja KP <jeeja.kp@intel.com>
  6. * Omair Mohammed Abdullah <omair.m.abdullah@intel.com>
  7. * Vinod Koul ,vinod.koul@intel.com>
  8. *
  9. * This program is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * as published by the Free Software Foundation; version 2
  12. * of the License.
  13. */
  14. #ifndef _PLATFORM_SST_AUDIO_H_
  15. #define _PLATFORM_SST_AUDIO_H_
  16. #include <linux/sfi.h>
  17. enum sst_audio_task_id_mrfld {
  18. SST_TASK_ID_NONE = 0,
  19. SST_TASK_ID_SBA = 1,
  20. SST_TASK_ID_MEDIA = 3,
  21. SST_TASK_ID_MAX = SST_TASK_ID_MEDIA,
  22. };
  23. /* Device IDs for Merrifield are Pipe IDs,
  24. * ref: DSP spec v0.75 */
  25. enum sst_audio_device_id_mrfld {
  26. /* Output pipeline IDs */
  27. PIPE_ID_OUT_START = 0x0,
  28. PIPE_CODEC_OUT0 = 0x2,
  29. PIPE_CODEC_OUT1 = 0x3,
  30. PIPE_SPROT_LOOP_OUT = 0x4,
  31. PIPE_MEDIA_LOOP1_OUT = 0x5,
  32. PIPE_MEDIA_LOOP2_OUT = 0x6,
  33. PIPE_VOIP_OUT = 0xC,
  34. PIPE_PCM0_OUT = 0xD,
  35. PIPE_PCM1_OUT = 0xE,
  36. PIPE_PCM2_OUT = 0xF,
  37. PIPE_MEDIA0_OUT = 0x12,
  38. PIPE_MEDIA1_OUT = 0x13,
  39. /* Input Pipeline IDs */
  40. PIPE_ID_IN_START = 0x80,
  41. PIPE_CODEC_IN0 = 0x82,
  42. PIPE_CODEC_IN1 = 0x83,
  43. PIPE_SPROT_LOOP_IN = 0x84,
  44. PIPE_MEDIA_LOOP1_IN = 0x85,
  45. PIPE_MEDIA_LOOP2_IN = 0x86,
  46. PIPE_VOIP_IN = 0x8C,
  47. PIPE_PCM0_IN = 0x8D,
  48. PIPE_PCM1_IN = 0x8E,
  49. PIPE_MEDIA0_IN = 0x8F,
  50. PIPE_MEDIA1_IN = 0x90,
  51. PIPE_MEDIA2_IN = 0x91,
  52. PIPE_RSVD = 0xFF,
  53. };
  54. /* The stream map for each platform consists of an array of the below
  55. * stream map structure.
  56. */
  57. struct sst_dev_stream_map {
  58. u8 dev_num; /* device id */
  59. u8 subdev_num; /* substream */
  60. u8 direction;
  61. u8 device_id; /* fw id */
  62. u8 task_id; /* fw task */
  63. u8 status;
  64. };
  65. struct sst_platform_data {
  66. /* Intel software platform id*/
  67. struct sst_dev_stream_map *pdev_strm_map;
  68. unsigned int strm_map_size;
  69. };
  70. int add_sst_platform_device(void);
  71. #endif