The last time I looked it required a proprietary binary blob. AFAIK the only free drivers which work well are ath5k and ath9k.
I'm not fine with the bottom half of the network stack being offloaded to the proprietary firmware where we can't adjust or even directly see things like how many packets it's buffering and how it handles aggregation and retransmissions.