X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/7bf90bdd3629b94950d68d85565da138abcb2773..f9f1a967746c940b98080ee24439e795faa826c6:/package/kernel/modules/i2c.mk diff --git a/package/kernel/modules/i2c.mk b/package/kernel/modules/i2c.mk index 31801a6b8..444cc874f 100644 --- a/package/kernel/modules/i2c.mk +++ b/package/kernel/modules/i2c.mk @@ -4,52 +4,125 @@ # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -# $Id $ -I2CMENU:=I2C Bus +I2C_MENU:=I2C support define KernelPackage/i2c-core + SUBMENU:=$(I2C_MENU) TITLE:=I2C support - DESCRIPTION:=Kernel modules for i2c support - SUBMENU:=$(I2CMENU) - KCONFIG:=$(CONFIG_I2C) - FILES:=$(LINUX_DIR)/drivers/i2c/*.$(LINUX_KMOD_SUFFIX) - AUTOLOAD:=$(call AutoLoad,50,i2c-core i2c-dev) + DEPENDS:=@LINUX_2_6 + KCONFIG:= \ + CONFIG_I2C \ + CONFIG_I2C_CHARDEV + FILES:= \ + $(LINUX_DIR)/drivers/i2c/i2c-core.$(LINUX_KMOD_SUFFIX) \ + $(LINUX_DIR)/drivers/i2c/i2c-dev.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,51,i2c-core i2c-dev) endef + +define KernelPackage/i2c-core/description + Kernel modules for I2C support +endef + $(eval $(call KernelPackage,i2c-core)) -define KernelPackage/i2c-algos - TITLE:=I2C algorithms support - DESCRIPTION:=Kernel modules for various i2c algorithms + +define KernelPackage/i2c-algo-bit + SUBMENU:=$(I2C_MENU) + TITLE:=I2C bit-banging interfaces + DEPENDS:=kmod-i2c-core + KCONFIG:=CONFIG_I2C_ALGOBIT + FILES:=$(LINUX_DIR)/drivers/i2c/algos/i2c-algo-bit.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,55,i2c-algo-bit) +endef + +define KernelPackage/i2c-algo-bit/description + Kernel modules for I2C bit-banging interfaces. +endef + +$(eval $(call KernelPackage,i2c-algo-bit)) + + +define KernelPackage/i2c-algo-pca + SUBMENU:=$(I2C_MENU) + TITLE:=I2C PCA 9564 interfaces + DEPENDS:=kmod-i2c-core + KCONFIG:=CONFIG_I2C_ALGOPCA + FILES:=$(LINUX_DIR)/drivers/i2c/algos/i2c-algo-pca.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,55,i2c-algo-pca) +endef + +define KernelPackage/i2c-algo-pca/description + Kernel modules for I2C PCA 9564 interfaces. +endef + +$(eval $(call KernelPackage,i2c-algo-pca)) + + +define KernelPackage/i2c-algo-pcf + SUBMENU:=$(I2C_MENU) + TITLE:=I2C PCF 8584 interfaces DEPENDS:=kmod-i2c-core - SUBMENU:=$(I2CMENU) - KCONFIG:=$(CONFIG_I2C_ALGOBIT) - FILES:=$(LINUX_DIR)/drivers/i2c/algos/*.$(LINUX_KMOD_SUFFIX) - AUTOLOAD:=$(call AutoLoad,60,i2c-algo-bit i2c-algo-pcf i2c-algo-pca) + KCONFIG:=CONFIG_I2C_ALGOPCF + FILES:=$(LINUX_DIR)/drivers/i2c/algos/i2c-algo-pcf.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,55,i2c-algo-pcf) endef -$(eval $(call KernelPackage,i2c-algos)) -define KernelPackage/i2c-au1x00gpio - TITLE:=I2C GPIO interface for Au1x00 devices - DESCRIPTION:=I2C GPIO interface for Au1x00 devices - DEFAULT:=y if LINUX_2_6_AU1000 - DEPENDS:=kmod-i2c-core kmod-i2c-algos @LINUX_2_6_AU1000 - SUBMENU:=$(I2CMENU) - KCONFIG:=$(CONFIG_I2C_AU1X00GPIO) - FILES:=$(LINUX_DIR)/drivers/i2c/busses/i2c-au1x00gpio.$(LINUX_KMOD_SUFFIX) - AUTOLOAD:=$(call Autoload,70,i2c-au1x00gpio) +define KernelPackage/i2c-algo-pcf/description + Kernel modules for I2C PCF 8584 interfaces endef -$(eval $(call KernelPackage,i2c-au1x00gpio)) + +$(eval $(call KernelPackage,i2c-algo-pcf)) + + +define KernelPackage/i2c-gpio + SUBMENU:=$(I2C_MENU) + TITLE:=GPIO-based bitbanging I2C + DEPENDS:=@GPIO_SUPPORT +kmod-i2c-algo-bit + KCONFIG:=CONFIG_I2C_GPIO + FILES:=$(LINUX_DIR)/drivers/i2c/busses/i2c-gpio.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,59,i2c-gpio) +endef + +define KernelPackage/i2c-gpio/description + Kernel modules for a very simple bitbanging I2C driver utilizing the + arch-neutral GPIO API to control the SCL and SDA lines. +endef + +$(eval $(call KernelPackage,i2c-gpio)) + define KernelPackage/i2c-scx200 - TITLE:=SCX200 i2c support - DESCRIPTION:=Kernel module for SCX200 i2c bus - DEFAULT:=y if LINUX_2_6_X86_Soekris - DEPENDS:=kmod-i2c-core kmod-i2c-algos @LINUX_2_6_X86_Soekris - SUBMENU:=$(I2CMENU) - KCONFIG:=$(CONFIG_SCx200_I2C) - FILES:=$(LINUX_DIR)/drivers/i2c/busses/scx200_i2c.$(LINUX_KMOD_SUFFIX) \ - $(LINUX_DIR)/drivers/i2c/busses/i2c-isa.$(LINUX_KMOD_SUFFIX) - AUTOLOAD:=$(call AutoLoad,70,i2c-isa scx200_i2c) + SUBMENU:=$(I2C_MENU) + TITLE:=Geode SCx200 I2C using GPIO pins + DEPENDS:=@PCI_SUPPORT @TARGET_x86 +kmod-i2c-algo-bit + KCONFIG:=CONFIG_SCx200_I2C \ + CONFIG_SCx200_I2C_SCL=12 \ + CONFIG_SCx200_I2C_SDA=13 + FILES:=$(LINUX_DIR)/drivers/i2c/busses/scx200_i2c.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,59,scx200_i2c) +endef + +define KernelPackage/i2c-scx200/description + Kernel module for I2C using GPIO pins on the Geode SCx200 processors. endef + $(eval $(call KernelPackage,i2c-scx200)) + + +define KernelPackage/i2c-scx200-acb + SUBMENU:=$(I2C_MENU) + TITLE:=Geode SCx200 ACCESS.bus support + DEPENDS:=@PCI_SUPPORT @TARGET_x86 +kmod-i2c-algo-bit + KCONFIG:=CONFIG_SCx200_ACB + FILES:=$(LINUX_DIR)/drivers/i2c/busses/scx200_acb.$(LINUX_KMOD_SUFFIX) + AUTOLOAD:=$(call AutoLoad,59,scx200_acb) +endef + +define KernelPackage/i2c-scx200-acb/description + Kernel module for I2C using the ACCESS.bus controllers on the Geode SCx200 + and SC1100 processors and the CS5535 and CS5536 Geode companion devices. +endef + +$(eval $(call KernelPackage,i2c-scx200-acb)) +