• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED.
2#
3# This program is free software; you can redistribute it and/or
4# modify it under the terms of the GNU General Public License
5# as published by the Free Software Foundation; either version 2
6# of the License, or (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program; if not, write to the Free Software
15# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
16
17ifeq ($(CFG_PRODUCT_TYPE),liteos)
18#===============================================================================
19#===============================================================================
20#===============================================================================
21# export variables
22#===============================================================================
23ifndef LITEOSTOPDIR
24.EXPORT_ALL_VARIABLES:
25CUR_DIR=${PWD}
26SUB_DIR=/source/msp/drv/gpio
27TOP_DIR=$(subst $(SUB_DIR),,$(CUR_DIR))
28SOURCE_DIR=$(TOP_DIR)/source
29include $(TOP_DIR)/base.mak
30endif
31
32LIBOUT = $(MSPOUT_DRV_DIR)/gpio
33
34ARFLAGS = cr
35RM = -rm -rf
36
37MODULE_NAME := gpio_drv
38LIBM = $(MSP_LIB_DIR)/libhi_$(MODULE_NAME).a
39
40TARGET := gpio
41
42DRV_FILES = $(wildcard *.c)
43
44DRV_OBJS = $(patsubst %.c,$(LIBOUT)/%.o, $(DRV_FILES))
45
46EXTRA_CFLAGS += $(CFG_HI_KMOD_CFLAGS)
47
48EXTRA_CFLAGS += -I$(COMMON_UNF_INCLUDE)                 \
49                -I$(COMMON_API_INCLUDE)                 \
50                -I$(COMMON_DRV_INCLUDE)                 \
51                -I$(MSP_UNF_INCLUDE)                    \
52                -I$(MSP_API_INCLUDE)                    \
53                -I$(MSP_DRV_INCLUDE)                    \
54                -I$(MSP_DIR)/api/gpio			        \
55                -I$(MSP_DIR)/drv/gpio			        \
56
57EXTRA_CFLAGS += -DLOG_D_MODULE_ID=HI_ID_GPIO
58
59SDK_CFLAGS  =  $(CFG_HI_CFLAGS)
60SDK_CFLAGS  +=  $(EXTRA_CFLAGS)
61
62-include $(TOP_DIR)/rule.mak
63#===============================================================================
64#   rules
65#===============================================================================
66.PHONY: all clean
67all: $(LIBM)
68clean:
69	$(RM) $(LIBM) $(LIBOUT)/* *.bak *~
70
71$(LIBM): $(DRV_OBJS)
72	$(call make-ar,$@,$^)
73
74$(LIBOUT)/%.o: %.c
75	$(call make-depend-compile,$<,$@,$(subst .o,.d,$@),$(SDK_CFLAGS))
76
77-include $(DRV_OBJS:.o=.d)
78
79else
80#===============================================================================
81# export variables
82#===============================================================================
83ifeq ($(CFG_HI_EXPORT_FLAG),)
84    ifneq ($(KERNELRELEASE),)
85    KERNEL_DIR := $(srctree)
86
87    SDK_DIR := $(KERNEL_DIR)/../../..
88    else
89    SDK_DIR := $(CURDIR)/../../../..
90    endif
91
92    ifneq ($(SDK_SOURCE_DIR),)
93    SDK_DIR := $(SDK_SOURCE_DIR)/..
94    endif
95
96include $(SDK_DIR)/base.mak
97endif
98
99KBUILD_EXTRA_SYMBOLS += $(COMMON_DIR)/drv/Module.symvers
100KBUILD_EXTRA_SYMBOLS += $(MSP_DIR)/drv/pq/Module.symvers
101export KBUILD_EXTRA_SYMBOLS
102
103#===============================================================================
104# local variables
105#===============================================================================
106EXTRA_CFLAGS += -I$(COMMON_UNF_INCLUDE)                 \
107                -I$(COMMON_API_INCLUDE)                 \
108                -I$(COMMON_DRV_INCLUDE)                 \
109                -I$(MSP_UNF_INCLUDE)                    \
110                -I$(MSP_API_INCLUDE)                    \
111                -I$(MSP_DRV_INCLUDE)                    \
112                -I$(MSP_DIR)/api/gpio			        \
113                -I$(MSP_DIR)/drv/gpio			        \
114
115EXTRA_CFLAGS += $(CFG_HI_KMOD_CFLAGS)
116
117EXTRA_CFLAGS += -DLOG_D_MODULE_ID=HI_ID_GPIO
118
119KBUILD_EXTRA_SYMBOLS += $(COMMON_DIR)/drv/Module.symvers
120
121MOD_NAME := hi_gpio
122
123$(MOD_NAME)-y := drv_gpio_intf.o	\
124		 drv_gpio.o
125
126obj-$(CFG_MSP_BUILDTYPE) += $(MOD_NAME).o
127
128
129#===============================================================================
130#   rules
131#===============================================================================
132.PHONY: all clean install uninstall
133
134all:
135	$(AT)make -C $(LINUX_DIR) ARCH=$(CFG_HI_CPU_ARCH) CROSS_COMPILE=$(CFG_HI_TOOLCHAINS_NAME)- M=$(CURDIR) modules
136
137clean:
138	$(AT)make -C $(LINUX_DIR) M=$(CURDIR) clean
139	$(AT)rm -rf  *.o
140	$(AT)rm -rf  .*.o.cmd
141	$(AT)rm -rf .tmp_versions
142	$(AT)rm -rf  Module.symvers
143	$(AT)rm -rf  modules.order
144
145install: all
146ifneq ($(CFG_MSP_BUILDTYPE),y)
147	$(AT)cp -f $(CURDIR)/$(MOD_NAME).ko $(MODULE_DIR)/
148endif
149
150uninstall:
151	$(AT)rm -rf $(MODULE_DIR)/$(MOD_NAME).ko
152endif
153
154