camera_main.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef CAMERA_MAIN_H
  7. #define CAMERA_MAIN_H
  8. #include <linux/platform_device.h>
  9. #include <linux/i2c.h>
  10. #include <linux/component.h>
  11. extern struct platform_driver cam_sync_driver;
  12. extern struct platform_driver cam_smmu_driver;
  13. extern struct platform_driver cam_cpas_driver;
  14. extern struct platform_driver cam_cdm_intf_driver;
  15. extern struct platform_driver cam_hw_cdm_driver;
  16. #ifdef CONFIG_SPECTRA_ISP
  17. extern struct platform_driver cam_ife_csid_driver;
  18. extern struct platform_driver cam_ife_csid_lite_driver;
  19. extern struct platform_driver cam_vfe_driver;
  20. extern struct platform_driver cam_sfe_driver;
  21. extern struct platform_driver isp_driver;
  22. #endif
  23. #ifdef CONFIG_SPECTRA_TFE
  24. extern struct platform_driver cam_csid_ppi100_driver;
  25. extern struct platform_driver cam_tfe_driver;
  26. extern struct platform_driver cam_tfe_csid_driver;
  27. #endif
  28. #ifdef CONFIG_SPECTRA_SENSOR
  29. extern struct platform_driver cam_res_mgr_driver;
  30. extern struct platform_driver cci_driver;
  31. extern struct platform_driver csiphy_driver;
  32. extern struct platform_driver cam_actuator_platform_driver;
  33. extern struct platform_driver cam_sensor_platform_driver;
  34. extern struct platform_driver cam_eeprom_platform_driver;
  35. extern struct platform_driver cam_ois_platform_driver;
  36. extern struct platform_driver cam_tpg_driver;
  37. extern struct i2c_driver cam_actuator_i2c_driver;
  38. extern struct i2c_driver cam_flash_i2c_driver;
  39. extern struct i2c_driver cam_ois_i2c_driver;
  40. extern struct i2c_driver cam_eeprom_i2c_driver;
  41. extern struct i2c_driver cam_sensor_i2c_driver;
  42. #if IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2) || \
  43. IS_REACHABLE(CONFIG_LEDS_QTI_FLASH)
  44. extern struct platform_driver cam_flash_platform_driver;
  45. #endif
  46. #endif
  47. #ifdef CONFIG_SPECTRA_ICP
  48. extern struct platform_driver cam_icp_v1_driver;
  49. extern struct platform_driver cam_icp_v2_driver;
  50. extern struct platform_driver cam_ipe_driver;
  51. extern struct platform_driver cam_bps_driver;
  52. extern struct platform_driver cam_ofe_driver;
  53. extern struct platform_driver cam_icp_driver;
  54. #endif
  55. #ifdef CONFIG_SPECTRA_OPE
  56. extern struct platform_driver cam_ope_driver;
  57. extern struct platform_driver cam_ope_subdev_driver;
  58. #endif
  59. #ifdef CONFIG_SPECTRA_CRE
  60. extern struct platform_driver cam_cre_driver;
  61. extern struct platform_driver cam_cre_subdev_driver;
  62. #endif
  63. #ifdef CONFIG_SPECTRA_JPEG
  64. extern struct platform_driver cam_jpeg_enc_driver;
  65. extern struct platform_driver cam_jpeg_dma_driver;
  66. extern struct platform_driver jpeg_driver;
  67. #endif
  68. #ifdef CONFIG_SPECTRA_FD
  69. extern struct platform_driver cam_fd_hw_driver;
  70. extern struct platform_driver cam_fd_driver;
  71. #endif
  72. #ifdef CONFIG_SPECTRA_LRME
  73. extern struct platform_driver cam_lrme_hw_driver;
  74. extern struct platform_driver cam_lrme_driver;
  75. #endif
  76. #ifdef CONFIG_SPECTRA_CUSTOM
  77. extern struct platform_driver cam_custom_hw_sub_mod_driver;
  78. extern struct platform_driver cam_custom_csid_driver;
  79. extern struct platform_driver custom_driver;
  80. #endif
  81. /*
  82. * Drivers to be bound by component framework in this order with
  83. * CRM as master
  84. */
  85. static struct platform_driver *const cam_component_platform_drivers[] = {
  86. /* BASE */
  87. &cam_sync_driver,
  88. &cam_smmu_driver,
  89. &cam_cpas_driver,
  90. &cam_cdm_intf_driver,
  91. &cam_hw_cdm_driver,
  92. #ifdef CONFIG_SPECTRA_TFE
  93. &cam_csid_ppi100_driver,
  94. &cam_tfe_driver,
  95. &cam_tfe_csid_driver,
  96. #endif
  97. #ifdef CONFIG_SPECTRA_ISP
  98. &cam_ife_csid_driver,
  99. &cam_ife_csid_lite_driver,
  100. &cam_vfe_driver,
  101. &cam_sfe_driver,
  102. &isp_driver,
  103. #endif
  104. #ifdef CONFIG_SPECTRA_SENSOR
  105. &cam_res_mgr_driver,
  106. &cci_driver,
  107. &csiphy_driver,
  108. &cam_actuator_platform_driver,
  109. &cam_sensor_platform_driver,
  110. &cam_eeprom_platform_driver,
  111. &cam_ois_platform_driver,
  112. &cam_tpg_driver,
  113. #if IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2) || \
  114. IS_REACHABLE(CONFIG_LEDS_QTI_FLASH)
  115. &cam_flash_platform_driver,
  116. #endif
  117. #endif
  118. #ifdef CONFIG_SPECTRA_ICP
  119. &cam_icp_v1_driver,
  120. &cam_icp_v2_driver,
  121. &cam_ipe_driver,
  122. &cam_bps_driver,
  123. &cam_ofe_driver,
  124. &cam_icp_driver,
  125. #endif
  126. #ifdef CONFIG_SPECTRA_OPE
  127. &cam_ope_driver,
  128. &cam_ope_subdev_driver,
  129. #endif
  130. #ifdef CONFIG_SPECTRA_JPEG
  131. &cam_jpeg_enc_driver,
  132. &cam_jpeg_dma_driver,
  133. &jpeg_driver,
  134. #endif
  135. #ifdef CONFIG_SPECTRA_CRE
  136. &cam_cre_driver,
  137. &cam_cre_subdev_driver,
  138. #endif
  139. #ifdef CONFIG_SPECTRA_FD
  140. &cam_fd_hw_driver,
  141. &cam_fd_driver,
  142. #endif
  143. #ifdef CONFIG_SPECTRA_LRME
  144. &cam_lrme_hw_driver,
  145. &cam_lrme_driver,
  146. #endif
  147. #ifdef CONFIG_SPECTRA_CUSTOM
  148. &cam_custom_hw_sub_mod_driver,
  149. &cam_custom_csid_driver,
  150. &custom_driver,
  151. #endif
  152. };
  153. static struct i2c_driver *const cam_component_i2c_drivers[] = {
  154. #ifdef CONFIG_SPECTRA_SENSOR
  155. &cam_actuator_i2c_driver,
  156. &cam_flash_i2c_driver,
  157. &cam_ois_i2c_driver,
  158. &cam_eeprom_i2c_driver,
  159. &cam_sensor_i2c_driver,
  160. #endif
  161. };
  162. #endif /* CAMERA_MAIN_H */