1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
greybus-y := core.o \
debugfs.o \
hd.o \
manifest.o \
endo.o \
module.o \
interface.o \
bundle.o \
connection.o \
protocol.o \
control.o \
svc.o \
firmware.o \
operation.o
gb-phy-y := gpbridge.o \
sdio.o \
uart.o \
pwm.o \
gpio.o \
hid.o \
i2c.o \
spi.o \
usb.o
# Prefix all modules with gb-
gb-vibrator-y := vibrator.o
gb-battery-y := battery.o
gb-loopback-y := loopback.o
gb-light-y := light.o
gb-raw-y := raw.o
gb-es1-y := es1.o
gb-es2-y := es2.o
gb-db3-y := db3-platform.o
obj-m += greybus.o
obj-m += gb-phy.o
obj-m += gb-vibrator.o
obj-m += gb-battery.o
obj-m += gb-loopback.o
obj-m += gb-light.o
obj-m += gb-raw.o
obj-m += gb-es1.o
obj-m += gb-es2.o
obj-m += gb-db3.o
KERNELVER ?= $(shell uname -r)
KERNELDIR ?= /lib/modules/$(KERNELVER)/build
INSTALL_MOD_PATH ?= /..
PWD := $(shell pwd)
# kernel config option that shall be enable
CONFIG_OPTIONS_ENABLE := PWM SYSFS SPI USB SND_SOC MMC LEDS_CLASS
# kernel config option that shall be disable
CONFIG_OPTIONS_DISABLE :=
# this only run in kbuild part of the makefile
ifneq ($(KERNELRELEASE),)
# This function returns the argument version if current kernel version is minor
# than the passed version, return 1 if equal or the current kernel version if it
# is greater than argument version.
kvers_cmp=$(shell [ "$(KERNELVERSION)" = "$(1)" ] && echo 1 || printf "$(1)\n$(KERNELVERSION)" | sort -V | tail -1)
ifneq ($(call kvers_cmp,"3.19.0"),3.19.0)
CONFIG_OPTIONS_ENABLE += LEDS_CLASS_FLASH
endif
ifneq ($(call kvers_cmp,"4.2.0"),4.2.0)
CONFIG_OPTIONS_ENABLE += V4L2_FLASH_LED_CLASS
endif
$(foreach opt,$(CONFIG_OPTIONS_ENABLE),$(if $(CONFIG_$(opt)),, \
$(error CONFIG_$(opt) is disabled in the kernel configuration and must be enable \
to continue compilation)))
$(foreach opt,$(CONFIG_OPTIONS_DISABLE),$(if $(filter m y, $(CONFIG_$(opt))), \
$(error CONFIG_$(opt) is enabled in the kernel configuration and must be disable \
to continue compilation),))
endif
# add -Wall to try to catch everything we can.
ccflags-y := -Wall
# needed for trace events
ccflags-y += -I$(src)
all: module
module:
$(MAKE) -C $(KERNELDIR) M=$(PWD)
check:
$(MAKE) -C $(KERNELDIR) M=$(PWD) C=2 CF="-D__CHECK_ENDIAN__"
clean:
rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
rm -f Module.markers Module.symvers modules.order
rm -rf .tmp_versions Modules.symvers
coccicheck:
$(MAKE) -C $(KERNELDIR) M=$(PWD) coccicheck
install: module
mkdir -p $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/
cp -f *.ko $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/
depmod -b $(INSTALL_MOD_PATH) -a $(KERNELVER)
|