Makefile revision 221163
1180740Sdes#
2180740Sdes# Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3180740Sdes# All rights reserved.
4180740Sdes#
5180740Sdes# Redistribution and use in source and binary forms, with or without
6180740Sdes# modification, are permitted provided that the following conditions
7180740Sdes# are met:
8180740Sdes# 1. Redistributions of source code must retain the above copyright
9180740Sdes#    notice, this list of conditions and the following disclaimer,
10180740Sdes#    without modification.
11180750Sdes# 2. Redistributions in binary form must reproduce at minimum a disclaimer
12180740Sdes#    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13180740Sdes#    redistribution must be conditioned upon including a substantially
14180740Sdes#    similar Disclaimer requirement for further binary redistribution.
15180740Sdes#
16180740Sdes# NO WARRANTY
17180740Sdes# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18180740Sdes# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19180740Sdes# LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
20180740Sdes# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21180740Sdes# THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22180740Sdes# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23180740Sdes# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24180740Sdes# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25180740Sdes# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26180740Sdes# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27180740Sdes# THE POSSIBILITY OF SUCH DAMAGES.
28180740Sdes#
29180740Sdes# $FreeBSD: head/sys/modules/ath/Makefile 221163 2011-04-28 12:47:40Z adrian $
30180740Sdes#
31180750Sdes
32180750SdesATH_RATE?=	sample		# tx rate control algorithm
33180750Sdes
34180750Sdes.PATH:	${.CURDIR}/../../dev/ath
35180740Sdes.PATH:	${.CURDIR}/../../dev/ath/ath_hal
36180740Sdes
37180740SdesKMOD=	if_ath
38180740SdesSRCS=	if_ath.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c
39180740SdesSRCS+=	if_ath_tx.c if_ath_tx_ht.c
40180740Sdes# NB: v3 eeprom support used by both AR5211 and AR5212; just include it
41189006SdesSRCS+=	ah_osdep.c ah.c ah_regdomain.c ah_eeprom_v3.c
42189006SdesSRCS+=	device_if.h bus_if.h pci_if.h opt_inet.h opt_ath.h opt_ah.h opt_wlan.h
43180740Sdes
44180740Sdes#
45189006Sdes# AR5210 support; these are first generation 11a-only devices.
46180740Sdes#
47180740Sdes.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5210
48180740SdesSRCS+=	ah_eeprom_v1.c \
49180740Sdes	ar5210_attach.c ar5210_beacon.c ar5210_interrupts.c \
50180740Sdes	ar5210_keycache.c ar5210_misc.c ar5210_phy.c ar5210_power.c \
51180740Sdes	ar5210_recv.c ar5210_reset.c ar5210_xmit.c
52180740Sdes
53180740Sdes#
54180740Sdes# AR5211 support; these are second generation 11b/g/a devices
55180740Sdes# (but 11g was OFDM only and is not supported).
56180740Sdes#
57180740Sdes.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5211
58180740SdesSRCS+=	ar5211_attach.c ar5211_beacon.c ar5211_interrupts.c \
59180740Sdes	ar5211_keycache.c ar5211_misc.c	ar5211_phy.c ar5211_power.c \
60180740Sdes	ar5211_recv.c ar5211_reset.c ar5211_xmit.c
61180740Sdes
62180750Sdes#
63180740Sdes# AR5212 support; this covers all other pci/cardbus legacy parts.
64#
65.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5212
66SRCS+=	ar5212_ani.c ar5212_attach.c ar5212_beacon.c ar5212_eeprom.c \
67	ar5212_gpio.c ar5212_interrupts.c ar5212_keycache.c ar5212_misc.c \
68	ar5212_phy.c ar5212_power.c ar5212_recv.c ar5212_reset.c \
69	ar5212_rfgain.c ar5212_xmit.c
70# RF backends
71SRCS+=	ar5111.c
72SRCS+=	ar5112.c
73SRCS+=	ar2413.c
74SRCS+=	ar2425.c
75SRCS+=	ar5413.c
76
77#
78# AR5416, AR9130, AR9160, AR9220, AR9280, AR9285 support.
79
80# Note enabling this support requires defining AH_SUPPORT_AR5416
81# in opt_ah.h so the 11n tx/rx descriptor format is handled.
82#
83# NB: 9160 depends on 5416 but 5416 does not require 9160
84#
85# + 5416 (Owl)
86.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5416
87SRCS+=	ah_eeprom_v14.c ah_eeprom_v4k.c \
88	ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_cal.c \
89	ar5416_cal_iq.c ar5416_cal_adcgain.c ar5416_cal_adcdc.c \
90	ar5416_eeprom.c ar5416_gpio.c ar5416_interrupts.c ar5416_keycache.c \
91	ar5416_misc.c ar5416_phy.c ar5416_power.c ar5416_recv.c \
92	ar5416_reset.c ar5416_xmit.c
93
94# RF backend for 5416, 9130 and 9160
95SRCS+=	ar2133.c
96
97# + AR9160 (Sowl)
98.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar9001
99SRCS+=	ar9160_attach.c
100
101# + AR9130 - (Sowl) - Embedded (AR913x SoC)
102#
103# This requires AH_SUPPORT_AR9130 in order to function as some
104# register values have shifted for this chipset. Definig this however
105# (currently) breaks non-AR9130 chipsets - since this is an embedded
106# chipset and no other radios are glued to it, this shouldn't pose a
107# problem.
108SRCS+=	ar9130_attach.c ar9130_eeprom.c ar9130_phy.c
109
110# AR9002 series chips
111# + AR9220/AR9280 - Merlin
112.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar9002
113SRCS+=	ar9280.c ar9280_attach.c ar9280_olc.c
114
115# + AR9285 - Kite
116SRCS+=	ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c
117SRCS+=	ar9285_diversity.c
118
119# NB: rate control is bound to the driver by symbol names so only pick one
120.if ${ATH_RATE} == "sample"
121.PATH:	${.CURDIR}/../../dev/ath/ath_rate/sample
122SRCS+=	sample.c
123.elif ${ATH_RATE} == "onoe"
124.PATH:	${.CURDIR}/../../dev/ath/ath_rate/onoe
125SRCS+=	onoe.c
126.elif ${ATH_RATE} == "amrr"
127.PATH:	${.CURDIR}/../../dev/ath/ath_rate/amrr
128SRCS+=	amrr.c
129.endif
130
131CFLAGS+=  -I. -I${.CURDIR}/../../dev/ath -I${.CURDIR}/../../dev/ath/ath_hal
132
133opt_ah.h:
134	echo '#define AH_SUPPORT_AR5416 1' > $@
135
136.include <bsd.kmod.mk>
137