summaryrefslogtreecommitdiff
path: root/snd-alpx/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'snd-alpx/Makefile')
-rw-r--r--snd-alpx/Makefile115
1 files changed, 115 insertions, 0 deletions
diff --git a/snd-alpx/Makefile b/snd-alpx/Makefile
new file mode 100644
index 0000000..fbfafbd
--- /dev/null
+++ b/snd-alpx/Makefile
@@ -0,0 +1,115 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Support for Digigram AlpX PCI-e boards
+#
+# Copyright (c) 2024 Digigram Digital (info@digigram.com)
+#
+
+#Get OS family out of /etc/os-release file, need "grep" command
+OS_FAMILY := $(strip $(filter-out ID, $(subst =, ,$(shell grep ^ID= /etc/os-release))))
+
+# *** GENERIC ***
+#UBUNTU
+ifneq ( ,$(findstring ubuntu, $(OS_FAMILY)))
+ KERNEL_FLAVOUR ?= KERNEL_GENERIC
+else ifneq ( ,$(findstring debian, $(OS_FAMILY)))
+ # Debian => Generic kernel
+ KERNEL_FLAVOUR ?= KERNEL_GENERIC
+else ifneq ( ,$(findstring rhel, $(OS_FAMILY)))
+# *** RedHat ***
+ KERNEL_FLAVOUR ?= KERNEL_REDHAT
+else ifneq ( ,$(findstring centos, $(OS_FAMILY)))
+# CentOs => RedHat
+ KERNEL_FLAVOUR ?= KERNEL_REDHAT
+else ifneq ( ,$(findstring fedora, $(OS_FAMILY)))
+ # fedora => RedHat
+ KERNEL_FLAVOUR ?= KERNEL_REDHAT
+else ifneq ( ,$(findstring rocky, $(OS_FAMILY)))
+ # Rocky => RedHat
+ KERNEL_FLAVOUR ?= KERNEL_REDHAT
+else
+# GENERIC kernel by default
+ KERNEL_FLAVOUR ?= KERNEL_GENERIC
+endif
+
+
+
+SND_ALPX_CCFLAGS += -DCONFIG_${KERNEL_FLAVOUR}
+
+
+KERNEL_VERSION ?= $(shell uname -r)
+KERNEL_PATH ?= /lib/modules/$(KERNEL_VERSION)/build
+
+LOAD_DRIVER_SCRIPT_NAME:="load_alp_driver.sh"
+BUILD_LOADER_SCRIPT_PATH:=./tools/build-load-script.sh
+
+#Special config, MUST check the consistency !
+ifeq ( ,$(finsdtring VARIANT_MADI, $(SND_ALPX_CCFLAGS)))
+SND_ALPX_CCFLAGS += -DCONFIG_ALP_MADI_PASSTHROUGH
+endif
+
+#Activate the MCU logs dump (at driver level)
+#SND_ALPX_CCFLAGS += -DCONFIG_ALPX_WITH_PROC_LOG
+
+#Activate CONTROLS Logs
+#SND_ALPX_CCFLAGS += -DCONFIG_ALPX_LOG_CONTROLS
+
+
+#The libXDMA Debug messages activation
+# SND_ALPX_CCFLAGS += -D__LIBXDMA_DEBUG__
+
+#Dump the DMA buffers(size in bytes, if 0 : all buffer).
+#SND_ALPX_CCFLAGS += -DCONFIG_ALPX_DUMP_DMA_BUFFER
+SND_ALPX_CCFLAGS += -DCONFIG_ALPX_DUMP_DMA_BUFFER_SIZE=128
+
+#Module revision log, need to desable the date-time warning
+SND_ALPX_CCFLAGS += -Wno-error=date-time -Wno-date-time
+
+#Enable the GPIO support in the card
+ifeq (true,$(CONFIG_WITHOUT_GPIO))
+SND_ALPX_CCFLAGS += -DCONFIG_WITHOUT_GPIO
+else
+OPTIONNAL_UNIT += alpx_gpio.o
+endif
+
+
+#Activate The REG Debug feature
+#SND_ALPX_CCFLAGS += -DWITH_REG_DEBUG
+
+ccflags-y += ${SND_ALPX_CCFLAGS}
+
+snd-alpx-xdma-y := snd_alpx_xdma.o
+snd-alpx-y := $(OPTIONNAL_UNIT) alpx_axcmem.o alpx_core.o alpx_proc.o alpx_mtd.o alpx_controls.o alpx_streams.o alpx_cards.o alpx_xdma.o
+
+#ALPX module in first
+obj-m := snd-alpx.o
+
+# XDMA Module creation
+obj-m += snd-alpx-xdma.o
+
+#Embed regmap--mmio in XDMA module if not enabled, use the 4.19 version as this is the base required for XDMA support
+ifndef CONFIG_REGMAP_MMIO
+snd-alpx-xdma-y += core/generic/4.19/regmap-mmio.o
+endif
+
+all: load-script
+ $(MAKE) -C $(KERNEL_PATH) M=$(CURDIR) modules
+
+clean:
+ $(MAKE) -C $(KERNEL_PATH) M=$(CURDIR) clean
+ rm -f ${LOAD_DRIVER_SCRIPT_NAME}
+
+.PHONY: clean dump_env
+
+#Add chmod to handle the exec right to the script.
+load-script:
+ chmod 744 ${BUILD_LOADER_SCRIPT_PATH} && exec ${BUILD_LOADER_SCRIPT_PATH} ${LOAD_DRIVER_SCRIPT_NAME}
+
+dump_env:
+ @echo "SND_ALPX_CCFLAGS: $(SND_ALPX_CCFLAGS)"
+ @echo "obj-m: $(obj-m)"
+ @echo "snd-alpx obj: $(snd-alpx-y)"
+ @echo "config regmap: $(CONFIG_REGMAP_MMIO)"
+ @echo "GCC :" CONFIG_CC_VERSION_TEXT
+ @echo "GCC :" $(CONFIG_CC_VERSION_TEXT)
+ @echo "CONFIG_WITHOUT_GPIO: $(CONFIG_WITHOUT_GPIO)"