# 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:=$(MODULES_DIR)/kernel/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:=$(MODULES_DIR)/kernel/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:=$(MODULES_DIR)/kernel/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_I2C_SCX200)
- FILES:=$(MODULES_DIR)/kernel/drivers/i2c/busses/scx200_i2c.$(LINUX_KMOD_SUFFIX) \
- $(MODULES_DIR)/kernel/drivers/i2c/busses/i2c-isa.$(LINUX_KMOD_SUFFIX)
- AUTOLOAD:=$(call AutoLoad,70,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))
+