Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2015
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.36 KB | None | 0 0
  1. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 370) static int anx7808_avdd_onoff(bool on)
  2. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 371) {
  3. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 372) static bool init_done = 0;
  4. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 373) int rc = 0;
  5. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 374)
  6. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 375) if (!init_done) {
  7. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 376) rc = gpio_request_one(ANX_AVDD33_EN,
  8. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 377) GPIOF_OUT_INIT_HIGH, "anx_avdd33_en");
  9. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 378) if (rc) {
  10. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 379) pr_err("request anx_avdd33_en failed, rc=%d\n", rc);
  11. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 380) return rc;
  12. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 381) }
  13. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 382) init_done = 1;
  14. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 383) }
  15. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 384)
  16. :
  17. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 330) rc=%d\n", __func_
  18. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 331) goto out;
  19. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 332) }
  20. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 333) }
  21. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 334)
  22. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 335) if (on) {
  23. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 336) rc = regulator_set_optimum_mode(a
  24. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 337) if (rc < 0) {
  25. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 338) pr_err("%s : set optimum
  26. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 339) (%d)\n",
  27. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 340) goto out;
  28. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 341) }
  29. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 342) rc = regulator_enable(anx7808_dvd
  30. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 343) if (rc) {
  31. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 344) pr_err("%s : anx7808_dvdd
  32. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 345) __func__,
  33. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 346) goto out;
  34. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 347) }
  35. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 348) }
  36. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 349) else {
  37. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 350) rc = regulator_disable(anx7808_dv
  38. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 351) if (rc) {
  39. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 352) pr_err("%s : anx7808_dvdd
  40. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 353) __func__, rc);
  41. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 354) goto out;
  42. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 355) }
  43. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 356) rc = regulator_set_optimum_mode(a
  44. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 357) if (rc < 0) {
  45. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 358) pr_err("%s : set optimum
  46. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 359) (%d)\n", __func__
  47. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 360) goto out;
  48. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 361) }
  49. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 362) }
  50. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 363) power_state = on;
  51. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 364)
  52. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 365) out:
  53. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 366) return rc;
  54. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 367)
  55. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 368) }
  56. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 369)
  57. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 370) static int anx7808_avdd_onoff(bool on)
  58. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 371) {
  59. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 372) static bool init_done = 0;
  60. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 373) int rc = 0;
  61. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 374)
  62. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 375) if (!init_done) {
  63. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 376) rc = gpio_request_one(ANX_AVDD33_
  64. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 377) GPIOF_OUT
  65. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 378) if (rc) {
  66. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 379) pr_err("request anx_avdd3
  67. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 380) return rc;
  68. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 381) }
  69. :
  70. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 330) rc=%d\n", __func__, rc);
  71. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 331) goto out;
  72. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 332) }
  73. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 333) }
  74. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 334)
  75. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 335) if (on) {
  76. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 336) rc = regulator_set_optimum_mode(anx7808_dvdd_reg, 100000);
  77. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 337) if (rc < 0) {
  78. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 338) pr_err("%s : set optimum mode 100000, anx7808_dvdd_reg failed \
  79. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 339) (%d)\n", __func__, rc);
  80. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 340) goto out;
  81. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 341) }
  82. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 342) rc = regulator_enable(anx7808_dvdd_reg);
  83. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 343) if (rc) {
  84. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 344) pr_err("%s : anx7808_dvdd_reg enable failed (%d)\n",
  85. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 345) __func__, rc);
  86. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 346) goto out;
  87. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 347) }
  88. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 348) }
  89. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 349) else {
  90. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 350) rc = regulator_disable(anx7808_dvdd_reg);
  91. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 351) if (rc) {
  92. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 352) pr_err("%s : anx7808_dvdd_reg disable failed (%d)\n",
  93. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 353) __func__, rc);
  94. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 354) goto out;
  95. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 355) }
  96. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 356) rc = regulator_set_optimum_mode(anx7808_dvdd_reg, 100);
  97. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 357) if (rc < 0) {
  98. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 358) pr_err("%s : set optimum mode 100, anx7808_dvdd_reg failed \
  99. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 359) (%d)\n", __func__, rc);
  100. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 360) goto out;
  101. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 361) }
  102. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 362) }
  103. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 363) power_state = on;
  104. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 364)
  105. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 365) out:
  106. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 366) return rc;
  107. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 367)
  108. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 368) }
  109. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 369)
  110. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 370) static int anx7808_avdd_onoff(bool on)
  111. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 371) {
  112. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 372) static bool init_done = 0;
  113. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 373) int rc = 0;
  114. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 374)
  115. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 375) if (!init_done) {
  116. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 376) rc = gpio_request_one(ANX_AVDD33_EN,
  117. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 377) GPIOF_OUT_INIT_HIGH, "anx_avdd33_en");
  118. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 378) if (rc) {
  119. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 379) pr_err("request anx_avdd33_en failed, rc=%d\n", rc);
  120. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 380) return rc;
  121. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 381) }
  122. b4826d07 (choongryeol.lee 2012-07-11 18:13:49 -0700 382) init_done = 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement