i2c.mk 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. #
  2. # Copyright (C) 2006-2009 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. I2C_MENU:=I2C support
  8. ModuleConfVar=$(word 1,$(subst :,$(space),$(1)))
  9. ModuleFullPath=$(LINUX_DIR)/$(word 2,$(subst :,$(space),$(1))).ko
  10. ModuleKconfig=$(foreach mod,$(1),$(call ModuleConfVar,$(mod)))
  11. ModuleFiles=$(foreach mod,$(1),$(call ModuleFullPath,$(mod)))
  12. ModuleAuto=$(call AutoLoad,$(1),$(foreach mod,$(2),$(basename $(notdir $(call ModuleFullPath,$(mod))))),$(3))
  13. define i2c_defaults
  14. SUBMENU:=$(I2C_MENU)
  15. KCONFIG:=$(call ModuleKconfig,$(1))
  16. FILES:=$(call ModuleFiles,$(1))
  17. AUTOLOAD:=$(call ModuleAuto,$(2),$(1),$(3))
  18. endef
  19. I2C_CORE_MODULES:= \
  20. CONFIG_I2C:drivers/i2c/i2c-core \
  21. CONFIG_I2C_CHARDEV:drivers/i2c/i2c-dev
  22. ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),lt,3.12.0)),1)
  23. ifeq ($(CONFIG_OF),y)
  24. I2C_CORE_MODULES+=CONFIG_OF_I2C:drivers/of/of_i2c
  25. endif
  26. endif
  27. define KernelPackage/i2c-core
  28. $(call i2c_defaults,$(I2C_CORE_MODULES),51)
  29. AUTOLOAD:=
  30. TITLE:=I2C support
  31. endef
  32. define KernelPackage/i2c-core/description
  33. Kernel modules for I2C support
  34. endef
  35. $(eval $(call KernelPackage,i2c-core))
  36. I2C_ALGOBIT_MODULES:= \
  37. CONFIG_I2C_ALGOBIT:drivers/i2c/algos/i2c-algo-bit
  38. define KernelPackage/i2c-algo-bit
  39. $(call i2c_defaults,$(I2C_ALGOBIT_MODULES),55)
  40. TITLE:=I2C bit-banging interfaces
  41. DEPENDS:=kmod-i2c-core
  42. endef
  43. define KernelPackage/i2c-algo-bit/description
  44. Kernel modules for I2C bit-banging interfaces
  45. endef
  46. $(eval $(call KernelPackage,i2c-algo-bit))
  47. I2C_ALGOPCA_MODULES:= \
  48. CONFIG_I2C_ALGOPCA:drivers/i2c/algos/i2c-algo-pca
  49. define KernelPackage/i2c-algo-pca
  50. $(call i2c_defaults,$(I2C_ALGOPCA_MODULES),55)
  51. TITLE:=I2C PCA 9564 interfaces
  52. DEPENDS:=kmod-i2c-core
  53. endef
  54. define KernelPackage/i2c-algo-pca/description
  55. Kernel modules for I2C PCA 9564 interfaces
  56. endef
  57. $(eval $(call KernelPackage,i2c-algo-pca))
  58. I2C_ALGOPCF_MODULES:= \
  59. CONFIG_I2C_ALGOPCF:drivers/i2c/algos/i2c-algo-pcf
  60. define KernelPackage/i2c-algo-pcf
  61. $(call i2c_defaults,$(I2C_ALGOPCF_MODULES),55)
  62. TITLE:=I2C PCF 8584 interfaces
  63. DEPENDS:=kmod-i2c-core
  64. endef
  65. define KernelPackage/i2c-algo-pcf/description
  66. Kernel modules for I2C PCF 8584 interfaces
  67. endef
  68. $(eval $(call KernelPackage,i2c-algo-pcf))
  69. I2C_GPIO_MODULES:= \
  70. CONFIG_I2C_GPIO:drivers/i2c/busses/i2c-gpio
  71. define KernelPackage/i2c-gpio
  72. $(call i2c_defaults,$(I2C_GPIO_MODULES),59)
  73. TITLE:=GPIO-based bitbanging I2C
  74. DEPENDS:=@GPIO_SUPPORT +kmod-i2c-algo-bit
  75. endef
  76. define KernelPackage/i2c-gpio/description
  77. Kernel modules for a very simple bitbanging I2C driver utilizing the
  78. arch-neutral GPIO API to control the SCL and SDA lines.
  79. endef
  80. $(eval $(call KernelPackage,i2c-gpio))
  81. I2C_MPC_MODULES:=\
  82. CONFIG_I2C_MPC:drivers/i2c/busses/i2c-mpc
  83. define KernelPackage/i2c-mpc
  84. $(call i2c_defaults,$(I2C_MPC_MODULES),59)
  85. TITLE:=MPC I2C accessors
  86. DEPENDS:=@TARGET_mpc52xx||TARGET_mpc83xx||TARGET_mpc85xx +kmod-i2c-core
  87. endef
  88. define KernelPackage/i2c-mpc/description
  89. Kernel module for Freescale MPC52xx MPC83xx MPC85xx I2C accessors
  90. endef
  91. $(eval $(call KernelPackage,i2c-mpc))
  92. I2C_IBM_IIC_MODULES:=\
  93. CONFIG_I2C_IBM_IIC:drivers/i2c/busses/i2c-ibm_iic
  94. define KernelPackage/i2c-ibm-iic
  95. $(call i2c_defaults,$(OF_I2C_MODULES),59)
  96. TITLE:=IBM PPC 4xx on-chip I2C interface support
  97. DEPENDS:=@TARGET_ppc40x||TARGET_ppc4xx +kmod-i2c-core
  98. endef
  99. define KernelPackage/i2c-ibm-iic/description
  100. Kernel module for IIC peripheral found on embedded IBM PPC4xx based systems
  101. endef
  102. $(eval $(call KernelPackage,i2c-ibm-iic))
  103. I2C_MV64XXX_MODULES:=\
  104. CONFIG_I2C_MV64XXX:drivers/i2c/busses/i2c-mv64xxx
  105. define KernelPackage/i2c-mv64xxx
  106. $(call i2c_defaults,$(I2C_MV64XXX_MODULES),59)
  107. TITLE:=Orion Platform I2C interface support
  108. DEPENDS:=@TARGET_kirkwood||TARGET_orion||TARGET_mvebu +kmod-i2c-core
  109. endef
  110. define KernelPackage/i2c-mv64xxx/description
  111. Kernel module for I2C interface on the Kirkwood, Orion and Armada XP/370
  112. family processors
  113. endef
  114. $(eval $(call KernelPackage,i2c-mv64xxx))
  115. I2C_TINY_USB_MODULES:= \
  116. CONFIG_I2C_TINY_USB:drivers/i2c/busses/i2c-tiny-usb
  117. define KernelPackage/i2c-tiny-usb
  118. $(call i2c_defaults,$(I2C_TINY_USB_MODULES),59)
  119. TITLE:=I2C Tiny USB adaptor
  120. DEPENDS:=@USB_SUPPORT kmod-i2c-core +kmod-usb-core
  121. endef
  122. define KernelPackage/i2c-tiny-usb/description
  123. Kernel module for the I2C Tiny USB adaptor developed
  124. by Till Harbaum (http://www.harbaum.org/till/i2c_tiny_usb)
  125. endef
  126. $(eval $(call KernelPackage,i2c-tiny-usb))
  127. I2C_MUX_MODULES:= \
  128. CONFIG_I2C_MUX:drivers/i2c/i2c-mux
  129. define KernelPackage/i2c-mux
  130. $(call i2c_defaults,$(I2C_MUX_MODULES),51)
  131. TITLE:=I2C bus multiplexing support
  132. DEPENDS:=kmod-i2c-core
  133. endef
  134. define KernelPackage/i2c-mux/description
  135. Kernel modules for I2C bus multiplexing support
  136. endef
  137. $(eval $(call KernelPackage,i2c-mux))
  138. ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.6.0)),1)
  139. I2C_MUX_GPIO_MODULES:= \
  140. CONFIG_I2C_MUX_GPIO:drivers/i2c/muxes/i2c-mux-gpio
  141. else
  142. I2C_MUX_GPIO_MODULES:= \
  143. CONFIG_I2C_MUX_GPIO:drivers/i2c/muxes/gpio-i2cmux
  144. endif
  145. define KernelPackage/i2c-mux-gpio
  146. $(call i2c_defaults,$(I2C_MUX_GPIO_MODULES),51)
  147. TITLE:=GPIO-based I2C mux/switches
  148. DEPENDS:=kmod-i2c-mux
  149. endef
  150. define KernelPackage/i2c-mux-gpio/description
  151. Kernel modules for GENERIC_GPIO I2C bus mux/switching devices
  152. endef
  153. $(eval $(call KernelPackage,i2c-mux-gpio))
  154. ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.6.0)),1)
  155. I2C_MUX_PREFIX:=i2c-mux-
  156. endif
  157. I2C_MUX_PCA954x_MODULES:= \
  158. CONFIG_I2C_MUX_PCA954x:drivers/i2c/muxes/$(I2C_MUX_PREFIX)pca954x
  159. define KernelPackage/i2c-mux-pca954x
  160. $(call i2c_defaults,$(I2C_MUX_PCA954x_MODULES),51)
  161. TITLE:=Philips PCA954x I2C mux/switches
  162. DEPENDS:=kmod-i2c-mux
  163. endef
  164. define KernelPackage/i2c-mux-pca954x/description
  165. Kernel modules for PCA954x I2C bus mux/switching devices
  166. endef
  167. $(eval $(call KernelPackage,i2c-mux-pca954x))
  168. I2C_MUX_PCA9541_MODULES:= \
  169. CONFIG_I2C_MUX_PCA9541:drivers/i2c/muxes/$(I2C_MUX_PREFIX)pca9541
  170. define KernelPackage/i2c-mux-pca9541
  171. $(call i2c_defaults,$(I2C_MUX_PCA9541_MODULES),51)
  172. TITLE:=Philips PCA9541 I2C mux/switches
  173. DEPENDS:=kmod-i2c-mux
  174. endef
  175. define KernelPackage/i2c-mux-pca9541/description
  176. Kernel modules for PCA9541 I2C bus mux/switching devices
  177. endef
  178. $(eval $(call KernelPackage,i2c-mux-pca9541))