Makefile revision 238056
1169695Skan#
2169695Skan# Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3169695Skan# All rights reserved.
4169695Skan#
5169695Skan# Redistribution and use in source and binary forms, with or without
6169695Skan# modification, are permitted provided that the following conditions
7169695Skan# are met:
8169695Skan# 1. Redistributions of source code must retain the above copyright
9169695Skan#    notice, this list of conditions and the following disclaimer,
10169695Skan#    without modification.
11169695Skan# 2. Redistributions in binary form must reproduce at minimum a disclaimer
12169695Skan#    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13169695Skan#    redistribution must be conditioned upon including a substantially
14169695Skan#    similar Disclaimer requirement for further binary redistribution.
15169695Skan#
16169695Skan# NO WARRANTY
17169695Skan# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18169695Skan# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19169695Skan# LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
20169695Skan# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21169695Skan# THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22169695Skan# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23169695Skan# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24169695Skan# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25169695Skan# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26169695Skan# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27169695Skan# THE POSSIBILITY OF SUCH DAMAGES.
28169695Skan#
29169695Skan# $FreeBSD: head/sys/modules/ath/Makefile 238056 2012-07-03 07:01:12Z adrian $
30169695Skan#
31169695Skan
32169695SkanATH_RATE?=	sample		# tx rate control algorithm
33169695Skan
34169695Skan.PATH:	${.CURDIR}/../../dev/ath
35169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal
36169695Skan
37169695SkanKMOD=	if_ath
38169695SkanSRCS=	if_ath.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c
39169695SkanSRCS+=	if_ath_tx.c if_ath_tx_ht.c if_ath_led.c if_ath_rx.c if_ath_tdma.c
40169695SkanSRCS+=	if_ath_beacon.c if_ath_rx_edma.c
41169695Skan# NB: v3 eeprom support used by both AR5211 and AR5212; just include it
42169695SkanSRCS+=	ah_osdep.c ah.c ah_regdomain.c ah_eeprom_v3.c
43169695SkanSRCS+=	device_if.h bus_if.h pci_if.h opt_inet.h opt_ath.h opt_ah.h opt_wlan.h
44169695Skan
45169695Skan#
46169695Skan# AR5210 support; these are first generation 11a-only devices.
47169695Skan#
48169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5210
49169695SkanSRCS+=	ah_eeprom_v1.c \
50169695Skan	ar5210_attach.c ar5210_beacon.c ar5210_interrupts.c \
51169695Skan	ar5210_keycache.c ar5210_misc.c ar5210_phy.c ar5210_power.c \
52169695Skan	ar5210_recv.c ar5210_reset.c ar5210_xmit.c
53169695Skan
54169695Skan#
55169695Skan# AR5211 support; these are second generation 11b/g/a devices
56169695Skan# (but 11g was OFDM only and is not supported).
57169695Skan#
58169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5211
59169695SkanSRCS+=	ar5211_attach.c ar5211_beacon.c ar5211_interrupts.c \
60169695Skan	ar5211_keycache.c ar5211_misc.c	ar5211_phy.c ar5211_power.c \
61169695Skan	ar5211_recv.c ar5211_reset.c ar5211_xmit.c
62169695Skan
63169695Skan#
64169695Skan# AR5212 support; this covers all other pci/cardbus legacy parts.
65169695Skan#
66169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5212
67169695SkanSRCS+=	ar5212_ani.c ar5212_attach.c ar5212_beacon.c ar5212_eeprom.c \
68169695Skan	ar5212_gpio.c ar5212_interrupts.c ar5212_keycache.c ar5212_misc.c \
69169695Skan	ar5212_phy.c ar5212_power.c ar5212_recv.c ar5212_reset.c \
70169695Skan	ar5212_rfgain.c ar5212_xmit.c
71169695Skan# RF backends
72169695SkanSRCS+=	ar5111.c
73169695SkanSRCS+=	ar5112.c
74169695SkanSRCS+=	ar2413.c
75169695SkanSRCS+=	ar2425.c
76169695SkanSRCS+=	ar5413.c
77169695Skan
78169695Skan#
79169695Skan# AR5416, AR9130, AR9160, AR9220, AR9280, AR9285, AR9287 support.
80169695Skan
81169695Skan# Note enabling this support requires defining AH_SUPPORT_AR5416
82169695Skan# in opt_ah.h so the 11n tx/rx descriptor format is handled.
83169695Skan#
84169695Skan# NB: 9160 depends on 5416 but 5416 does not require 9160
85169695Skan#
86169695Skan# + 5416 (Owl)
87169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5416
88169695SkanSRCS+=	ah_eeprom_v14.c ah_eeprom_v4k.c \
89169695Skan	ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_cal.c \
90169695Skan	ar5416_cal_iq.c ar5416_cal_adcgain.c ar5416_cal_adcdc.c \
91169695Skan	ar5416_eeprom.c ar5416_gpio.c ar5416_interrupts.c ar5416_keycache.c \
92169695Skan	ar5416_misc.c ar5416_phy.c ar5416_power.c ar5416_radar.c \
93169695Skan	ar5416_recv.c ar5416_reset.c ar5416_xmit.c
94169695Skan
95169695Skan# RF backend for 5416, 9130 and 9160
96169695SkanSRCS+=	ar2133.c
97169695Skan
98169695Skan# + AR9160 (Sowl)
99169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar9001
100169695SkanSRCS+=	ar9160_attach.c
101169695Skan
102169695Skan# + AR9130 - (Sowl) - Embedded (AR913x SoC)
103169695Skan#
104169695Skan# This requires AH_SUPPORT_AR9130 in order to function as some
105169695Skan# register values have shifted for this chipset. Definig this however
106169695Skan# (currently) breaks non-AR9130 chipsets - since this is an embedded
107169695Skan# chipset and no other radios are glued to it, this shouldn't pose a
108169695Skan# problem.
109169695SkanSRCS+=	ar9130_attach.c ar9130_eeprom.c ar9130_phy.c
110169695Skan
111169695Skan# AR9002 series chips
112169695Skan# + AR9220/AR9280 - Merlin
113169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar9002
114169695SkanSRCS+=	ar9280.c ar9280_attach.c ar9280_olc.c
115169695Skan
116169695Skan# + AR9285 - Kite
117169695SkanSRCS+=	ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c
118169695SkanSRCS+=	ar9285_diversity.c
119169695Skan
120169695Skan# + AR9287 - Kiwi
121169695Skan.PATH:  ${.CURDIR}/../../dev/ath/ath_hal
122169695SkanSRCS+=  ah_eeprom_9287.c
123169695Skan.PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar9002
124169695SkanSRCS+=  ar9287.c ar9287_reset.c ar9287_attach.c ar9287_cal.c ar9287_olc.c
125169695Skan
126169695Skan# NB: rate control is bound to the driver by symbol names so only pick one
127169695Skan.if ${ATH_RATE} == "sample"
128169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_rate/sample
129169695SkanSRCS+=	sample.c
130169695Skan.elif ${ATH_RATE} == "onoe"
131169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_rate/onoe
132169695SkanSRCS+=	onoe.c
133169695Skan.elif ${ATH_RATE} == "amrr"
134169695Skan.PATH:	${.CURDIR}/../../dev/ath/ath_rate/amrr
135169695SkanSRCS+=	amrr.c
136169695Skan.endif
137169695Skan
138169695Skan# DFS
139169695Skan.PATH: ${.CURDIR}/../../dev/ath/ath_dfs/null
140169695SkanSRCS+=	dfs_null.c
141169695Skan
142169695SkanCFLAGS+=  -I. -I${.CURDIR}/../../dev/ath -I${.CURDIR}/../../dev/ath/ath_hal
143169695Skan
144169695Skan.if !defined(KERNBUILDDIR)
145169695Skanopt_ah.h:
146169695Skan	echo '#define AH_SUPPORT_AR5416 1' > $@
147169695Skan.endif
148169695Skan
149169695Skan.include <bsd.kmod.mk>
150169695Skan
151169695SkanCWARNFLAGS.ah_regdomain.c=	${NO_WSHIFT_COUNT_NEGATIVE} ${NO_WSHIFT_COUNT_OVERFLOW}
152169695SkanCWARNFLAGS+=			${CWARNFLAGS.${.IMPSRC:T}}
153169695Skan