/arch/arm/mach-msm/include/mach/msm_dsps.h

https://bitbucket.org/sammyz/iscream_thunderc-2.6.35-rebase · C++ Header · 103 lines · 33 code · 8 blank · 62 comment · 0 complexity · cb342f56cd8da8490fac30434a6106a6 MD5 · raw file

  1. /* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
  2. *
  3. * Redistribution and use in source and binary forms, with or without
  4. * modification, are permitted provided that the following conditions are
  5. * met:
  6. * * Redistributions of source code must retain the above copyright
  7. * notice, this list of conditions and the following disclaimer.
  8. * * Redistributions in binary form must reproduce the above
  9. * copyright notice, this list of conditions and the following
  10. * disclaimer in the documentation and/or other materials provided
  11. * with the distribution.
  12. * * Neither the name of Code Aurora Forum, Inc. nor the names of its
  13. * contributors may be used to endorse or promote products derived
  14. * from this software without specific prior written permission.
  15. *
  16. * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
  17. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  18. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
  19. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
  20. * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  21. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  22. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  23. * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  24. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  25. * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  26. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. *
  28. */
  29. #ifndef _MSM_DSPS_H_
  30. #define _MSM_DSPS_H_
  31. #include <linux/types.h>
  32. #include <linux/clk.h>
  33. #include <linux/regulator/consumer.h>
  34. #define DSPS_SIGNATURE 0x12345678
  35. /**
  36. * DSPS Clocks Platform data.
  37. *
  38. * @name - clock name.
  39. * @rate - rate to set. zero if not relevant.
  40. * @clock - clock handle, reserved for the driver.
  41. */
  42. struct dsps_clk_info {
  43. const char *name;
  44. u32 rate;
  45. struct clk *clock;
  46. };
  47. /**
  48. * DSPS GPIOs Platform data.
  49. *
  50. * @name - clock name.
  51. * @num - GPIO number.
  52. * @on_val - value to ouptput for ON (depends on polarity).
  53. * @off_val - value to ouptput for OFF (depends on polarity).
  54. * @is_owner - reserved for the driver.
  55. */
  56. struct dsps_gpio_info {
  57. const char *name;
  58. int num;
  59. int on_val;
  60. int off_val;
  61. int is_owner;
  62. };
  63. /**
  64. * DSPS Power regulators Platform data.
  65. *
  66. * @name - regulator name.
  67. * @volt - required voltage (in uV).
  68. * @reg - reserved for the driver.
  69. */
  70. struct dsps_regulator_info {
  71. const char *name;
  72. int volt;
  73. struct regulator *reg;
  74. };
  75. /**
  76. * DSPS Platform data.
  77. *
  78. * @clks - array of clocks.
  79. * @clks_num - number of clocks in array.
  80. * @gpios - array of gpios.
  81. * @gpios_num - number of gpios.
  82. * @regs - array of regulators.
  83. * @regs_num - number of regulators.
  84. * @signature - signature for validity check.
  85. */
  86. struct msm_dsps_platform_data {
  87. struct dsps_clk_info *clks;
  88. int clks_num;
  89. struct dsps_gpio_info *gpios;
  90. int gpios_num;
  91. struct dsps_regulator_info *regs;
  92. int regs_num;
  93. u32 signature;
  94. };
  95. #endif /* _MSM_DSPS_H_ */