# 
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id: Makefile,v 1.13 2010/05/13 14:27:32 madhu.koriginja Exp $
#$(PKG_NAME)-$(PKG_VERSION).$(RELEASE_VERSION)-internal/driver_linux

include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk

PKG_NAME:=proslic
PKG_VERSION:=1.02
RELEASE_VERSION:=2

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).$(RELEASE_VERSION).tar.gz
PKG_CAT:=zcat

PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION).$(RELEASE_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
PKG_MODULE_NAME:=proslic-$(PKG_VERSION).$(RELEASE_VERSION).$(LINUX_KMOD_SUFFIX)

include $(INCLUDE_DIR)/package.mk

ifeq ($(CONFIG_TARGET_comcerto100_ferouter),y)
	L_TDM_CODING:=2
	L_FLASH_TIME:=500
	L_SPI_CS:=3
	L_NO_OF_POTS:=2
endif

ifeq ($(CONFIG_TARGET_comcerto1000_c1kevm),y)
	L_TDM_CODING:=2
	L_FLASH_TIME:=500
	L_SPI_CS:=0
	L_NO_OF_POTS:=4
endif

ifeq ($(CONFIG_TARGET_comcerto1000_c1kmfcn-evm),y)
	L_TDM_CODING:=2
	L_FLASH_TIME:=500
	L_SPI_CS:=0
	L_NO_OF_POTS:=2
endif

################ OpenWRT definition ########################
define KernelPackage/proslic/Default
  CATEGORY:=Mindspeed Packages
  DESCRIPTION:= This package contains a driver for ProSLIC
  URL:=http://www.silabs.com/
  DEPENDS:=@TARGET_comcerto100_ferouter||TARGET_comcerto1000_c1kevm||TARGET_comcerto1000_c1kmfcn-evm
  MAINTAINER:=Mindspeed Technologies
endef

define KernelPackage/proslic
  $(call KernelPackage/proslic/Default)
  TITLE:=SiLabs ProSLIC Driver
  FILES:= $(PKG_BUILD_DIR)/proslic.$(LINUX_KMOD_SUFFIX)
  MENU:=1
endef

define KernelPackage/proslic-si3215
  $(call KernelPackage/proslic/Default)
  DEPENDS:=kmod-proslic
  TITLE:=Proslic Si3215 Driver
  DESCRIPTION:=Proslic driver with Si3215 port support
endef

define KernelPackage/proslic-si3227
  $(call KernelPackage/proslic/Default)
  DEPENDS:=kmod-proslic
  TITLE:=Proslic Si3227 Driver
  DESCRIPTION:=Proslic driver with Si3227 port support
endef

ifeq ($(CONFIG_PACKAGE_kmod-proslic-si3215), y)
L_SI_PART:=3215
endif

ifeq ($(CONFIG_PACKAGE_kmod-proslic-si3227), y)
L_SI_PART:=3227
endif

##Debug mode enable or not: yes/no
L_DEBUG:=no


PKG_SOURCE_FILE:=$(TOPDIR)/dl/$(PKG_SOURCE)
PKG_BUILD_FROM_SOURCE:=$(shell if [ -e $(PKG_SOURCE_FILE) ]; then echo y; fi)
ifeq ($(CONFIG_DEV_PROSLIC), y)
  PKG_BUILD_FROM_SOURCE:=y
endif
ifeq ($(CONFIG_ASIC_SQV),y)
  PROFILE1:=$(PROFILE)-sqv
else
  PROFILE1:=$(PROFILE)
endif
ifeq ($(CONFIG_BOOT_NAND),y)
  BIN_PROFILE:=$(PROFILE1)-nand
else
  BIN_PROFILE:=$(PROFILE1)
endif
ifeq ($(word 1,$(subst ., ,$(GCC_VERSION))),4)
  BIN_PROFILE_BUILD:=$(BIN_PROFILE)-gcc-4.1_glibc_eabi
else
  BIN_PROFILE_BUILD:=$(BIN_PROFILE)
endif


ifeq ($(PKG_BUILD_FROM_SOURCE), y)
ifeq ($(CONFIG_DEV_PROSLIC), y)
ifeq ($(CONFIG_DEV_PROSLIC_CVSBRANCH), "")
define Build/Prepare
	pushd "$(KERNEL_BUILD_DIR)"; \
	cvs -z9 -d:pserver:$(CONFIG_ACTIVEDEV_CVSUSERNAME)@$(CONFIG_ACTIVEDEV_CVSROOTPATH):/prj/msacvs/enterprise checkout -d $(PKG_NAME)-$(PKG_VERSION).$(RELEASE_VERSION) $(CONFIG_DEV_PROSLIC_MODULENAME);\
	popd
endef
else
define Build/Prepare
	pushd "$(KERNEL_BUILD_DIR)"; \
	cvs -z9 -d:pserver:$(CONFIG_ACTIVEDEV_CVSUSERNAME)@$(CONFIG_ACTIVEDEV_CVSROOTPATH):/prj/msacvs/enterprise checkout -d $(PKG_NAME)-$(PKG_VERSION).$(RELEASE_VERSION) -r $(CONFIG_DEV_PROSLIC_CVSBRANCH) $(CONFIG_DEV_PROSLIC_MODULENAME);\
	popd
endef
endif
else # if Active DEV is not present
define Build/Prepare
	$(TAR) xfz $(PKG_SOURCE_FILE) -C $(KERNEL_BUILD_DIR)
endef
endif

define Build/Compile
	$(call Build/Compile/Default, KERNELPATH="$(LINUX_DIR)" SI_PART="$(L_SI_PART)" DEBUG="$(L_DEBUG)")
endef
else # if PKG_BUILD_FROM_SOURCE not set

define Build/Prepare
	echo BUILD PREPARE
endef

define Build/Compile
	$(CP) ./files/$(BIN_PROFILE_BUILD)/$(PKG_MODULE_NAME) $(PKG_BUILD_DIR)/proslic.$(LINUX_KMOD_SUFFIX)
endef
endif

define Build/InstallDev
endef

define Build/UninstallDev
endef

define KernelPackage/proslic/install
	sed -i 's/option no_of_pots[^][^]*/option no_of_pots "$(L_NO_OF_POTS)"/'  ../asterisk/files/asterisk.uci.iad
	sed -i 's/option no_of_pots[^][^]*/option no_of_pots "$(L_NO_OF_POTS)"/'  ../asterisk/files/asterisk.uci.fer
	sed -i 's/option no_of_pots[^][^]*/option no_of_pots "$(L_NO_OF_POTS)"/'  ../asterisk/files/asterisk.uci.c1kmfcn-evm
	mkdir -p $(1)/etc/modules.d
	echo proslic tdm_coding=$(L_TDM_CODING) flash_time=$(L_FLASH_TIME) spi_cs=$(L_SPI_CS) no_of_pots=$(L_NO_OF_POTS) > $(1)/etc/modules.d/39-proslic
endef

$(eval $(call KernelPackage,proslic))
$(eval $(call KernelPackage,proslic-si3215))
$(eval $(call KernelPackage,proslic-si3227))
