mt_auddrv_devtree_parser.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. * Copyright (C) 2007 The Android Open Source Project
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. /*******************************************************************************
  17. *
  18. * Filename:
  19. * ---------
  20. * auddrv_devtree_parser.h
  21. *
  22. * Project:
  23. * --------
  24. * devtree config parser
  25. *
  26. * Description:
  27. * ------------
  28. * devtree config parser
  29. *
  30. * Author:
  31. * -------
  32. * Chipeng Chang
  33. *
  34. *------------------------------------------------------------------------------
  35. *
  36. *
  37. *******************************************************************************/
  38. #ifndef _MT_AUDDRV_DEVTREE_PARSER_H_
  39. #define _MT_AUDDRV_DEVTREE_PARSER_H_
  40. #ifdef CONFIG_OF
  41. #include <linux/of.h>
  42. #include <linux/of_irq.h>
  43. #include <linux/of_address.h>
  44. #endif
  45. #include <linux/kernel.h>
  46. #include <linux/module.h>
  47. #include <linux/init.h>
  48. #include <linux/device.h>
  49. #include <linux/slab.h>
  50. #include <linux/fs.h>
  51. #include <linux/completion.h>
  52. #include <linux/mm.h>
  53. #include <linux/delay.h>
  54. #include <linux/vmalloc.h>
  55. #include <linux/wait.h>
  56. #include <linux/sched.h>
  57. #include <linux/semaphore.h>
  58. #include <linux/jiffies.h>
  59. #include <linux/proc_fs.h>
  60. #include <linux/string.h>
  61. #include <linux/mutex.h>
  62. #include <asm/uaccess.h>
  63. #include <asm/io.h>
  64. #include <linux/module.h>
  65. #define AUDDRV_I2S0_MCLKGPIO "i2s0mclk-gpio"
  66. #define AUDDRV_I2S0_CLKGPIO "i2s0clk-gpio"
  67. #define AUDDRV_I2S0_WSGPIO "i2s0ws-gpio"
  68. #define AUDDRV_I2S0_DATGPIO "i2s0dat-gpio"
  69. #define AUDDRV_I2S0_DAT1GPIO "i2s0dat1-gpio"
  70. #define AUDDRV_I2S0_DATAINGPIO "i2s0datain-gpio"
  71. #define AUDDRV_I2S1_MCLKGPIO "i2s1mclk-gpio"
  72. #define AUDDRV_I2S1_CLKGPIO "i2s1clk-gpio"
  73. #define AUDDRV_I2S1_WSGPIO "i2s1ws-gpio"
  74. #define AUDDRV_I2S1_DATGPIO "i2s1dat-gpio"
  75. #define AUDDRV_I2S1_DAT1GPIO "i2s1dat1-gpio"
  76. #define AUDDRV_I2S2_MCLKGPIO "i2s2mclk-gpio"
  77. #define AUDDRV_I2S2_CLKGPIO "i2s2clk-gpio"
  78. #define AUDDRV_I2S2_WSGPIO "i2s2ws-gpio"
  79. #define AUDDRV_I2S2_DATGPIO "i2s2dat-gpio"
  80. #define AUDDRV_I2S2_DAT1GPIO "i2s2dat1-gpio"
  81. #define AUDDRV_I2S3_MCLKGPIO "i2s3mclk-gpio"
  82. #define AUDDRV_I2S3_CLKGPIO "i2s3clk-gpio"
  83. #define AUDDRV_I2S3_WSGPIO "i2s3ws-gpio"
  84. #define AUDDRV_I2S3_DATGPIO "i2s3dat-gpio"
  85. #define AUDDRV_I2S3_DAT1GPIO "i2s3dat1-gpio"
  86. #define AUDDRV_AUD_CLKGPIO "audclk-gpio"
  87. #define AUDDRV_AUD_DATIGPIO "audmosi-gpio"
  88. #define AUDDRV_AUD_DATOGPIO "audmopi-gpio"
  89. enum Auddrv_I2S_NUMBER {
  90. Auddrv_I2S0_Setting = 0,
  91. Auddrv_I2S1_Setting,
  92. Auddrv_I2S2_Setting,
  93. Auddrv_I2S3_Setting,
  94. Auddrv_I2S_Num,
  95. };
  96. enum Auddrv_I2S_Setting {
  97. Auddrv_I2S_Setting_ws = 0,
  98. Auddrv_I2S_Setting_bck,
  99. Auddrv_I2S_Setting_D00,
  100. Auddrv_I2S_Setting_D01,
  101. Auddrv_I2S_Setting_I00,
  102. Auddrv_I2S_Setting_I01,
  103. Auddrv_I2S_Setting_Mclk,
  104. Auddrv_I2S_Attribute_Num
  105. };
  106. enum Auddrv_CLK_Setting {
  107. Auddrv_CLK_Mosi = 0,
  108. Auddrv_DataIn1_Mosi,
  109. Auddrv_DataOut1_Mosi,
  110. Auddrv_Attribute_num,
  111. };
  112. typedef struct {
  113. unsigned int Gpio_Number;
  114. unsigned int Gpio_Mode;
  115. } AUDDRV_I2S_ATTRIBUTE;
  116. void Auddrv_Devtree_Init(void);
  117. void Auddrv_DevTree_I2S_Setting(const char *DevTreeName);
  118. void Auddrv_Devtree_Dump(void);
  119. AUDDRV_I2S_ATTRIBUTE *GetI2SSetting(uint32_t I2S_Number, uint32_t I2S_Setting);
  120. #endif