1greybus-y := core.o \ 2 debugfs.o \ 3 hd.o \ 4 manifest.o \ 5 module.o \ 6 interface.o \ 7 bundle.o \ 8 connection.o \ 9 control.o \ 10 svc.o \ 11 svc_watchdog.o \ 12 bootrom.o \ 13 operation.o \ 14 timesync.o \ 15 timesync_platform.o 16 17gb-gbphy-y := gbphy.o 18 19# Prefix all modules with gb- 20gb-vibrator-y := vibrator.o 21gb-power-supply-y := power_supply.o 22gb-loopback-y := loopback.o 23gb-light-y := light.o 24gb-raw-y := raw.o 25gb-hid-y := hid.o 26gb-es2-y := es2.o 27gb-arche-y := arche-platform.o arche-apb-ctrl.o 28gb-audio-module-y := audio_module.o audio_topology.o 29gb-audio-codec-y := audio_codec.o 30gb-audio-gb-y := audio_gb.o 31gb-audio-apbridgea-y := audio_apbridgea.o 32gb-audio-manager-y += audio_manager.o 33gb-audio-manager-y += audio_manager_module.o 34gb-camera-y := camera.o 35gb-firmware-y := fw-core.o fw-download.o fw-management.o 36gb-spilib-y := spilib.o 37gb-sdio-y := sdio.o 38gb-uart-y := uart.o 39gb-pwm-y := pwm.o 40gb-gpio-y := gpio.o 41gb-i2c-y := i2c.o 42gb-usb-y := usb.o 43gb-spi-y := spi.o 44 45obj-m += greybus.o 46obj-m += gb-gbphy.o 47obj-m += gb-vibrator.o 48obj-m += gb-power-supply.o 49obj-m += gb-loopback.o 50obj-m += gb-light.o 51obj-m += gb-hid.o 52obj-m += gb-raw.o 53obj-m += gb-es2.o 54ifeq ($(CONFIG_USB_HSIC_USB3613),y) 55 obj-m += gb-arche.o 56endif 57ifeq ($(CONFIG_ARCH_MSM8994),y) 58 obj-m += gb-audio-codec.o 59 obj-m += gb-audio-module.o 60 obj-m += gb-camera.o 61endif 62obj-m += gb-audio-gb.o 63obj-m += gb-audio-apbridgea.o 64obj-m += gb-audio-manager.o 65obj-m += gb-firmware.o 66obj-m += gb-spilib.o 67obj-m += gb-sdio.o 68obj-m += gb-uart.o 69obj-m += gb-pwm.o 70obj-m += gb-gpio.o 71obj-m += gb-i2c.o 72obj-m += gb-usb.o 73obj-m += gb-spi.o 74 75KERNELVER ?= $(shell uname -r) 76KERNELDIR ?= /lib/modules/$(KERNELVER)/build 77INSTALL_MOD_PATH ?= /.. 78PWD := $(shell pwd) 79 80# kernel config option that shall be enable 81CONFIG_OPTIONS_ENABLE := POWER_SUPPLY PWM SYSFS SPI USB SND_SOC MMC LEDS_CLASS INPUT 82 83# kernel config option that shall be disable 84CONFIG_OPTIONS_DISABLE := 85 86# this only run in kbuild part of the makefile 87ifneq ($(KERNELRELEASE),) 88# This function returns the argument version if current kernel version is minor 89# than the passed version, return 1 if equal or the current kernel version if it 90# is greater than argument version. 91kvers_cmp=$(shell [ "$(KERNELVERSION)" = "$(1)" ] && echo 1 || printf "$(1)\n$(KERNELVERSION)" | sort -V | tail -1) 92 93ifneq ($(call kvers_cmp,"3.19.0"),3.19.0) 94 CONFIG_OPTIONS_ENABLE += LEDS_CLASS_FLASH 95endif 96 97ifneq ($(call kvers_cmp,"4.2.0"),4.2.0) 98 CONFIG_OPTIONS_ENABLE += V4L2_FLASH_LED_CLASS 99endif 100 101$(foreach opt,$(CONFIG_OPTIONS_ENABLE),$(if $(CONFIG_$(opt)),, \ 102 $(error CONFIG_$(opt) is disabled in the kernel configuration and must be enable \ 103 to continue compilation))) 104$(foreach opt,$(CONFIG_OPTIONS_DISABLE),$(if $(filter m y, $(CONFIG_$(opt))), \ 105 $(error CONFIG_$(opt) is enabled in the kernel configuration and must be disable \ 106 to continue compilation),)) 107endif 108 109# add -Wall to try to catch everything we can. 110ccflags-y := -Wall 111 112# needed for trace events 113ccflags-y += -I$(src) 114 115GB_AUDIO_MANAGER_SYSFS ?= true 116ifeq ($(GB_AUDIO_MANAGER_SYSFS),true) 117gb-audio-manager-y += audio_manager_sysfs.o 118ccflags-y += -DGB_AUDIO_MANAGER_SYSFS 119endif 120 121all: module 122 123tools:: 124 $(MAKE) -C tools KERNELDIR=$(realpath $(KERNELDIR)) 125 126module: 127 $(MAKE) -C $(KERNELDIR) M=$(PWD) 128 129check: 130 $(MAKE) -C $(KERNELDIR) M=$(PWD) C=2 CF="-D__CHECK_ENDIAN__" 131 132clean: 133 rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c 134 rm -f Module.markers Module.symvers modules.order 135 rm -rf .tmp_versions Modules.symvers 136 $(MAKE) -C tools clean 137 138coccicheck: 139 $(MAKE) -C $(KERNELDIR) M=$(PWD) coccicheck 140 141install: module 142 mkdir -p $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/ 143 cp -f *.ko $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/ 144 depmod -b $(INSTALL_MOD_PATH) -a $(KERNELVER) 145