drivers/net/wireless/intel/iwlwifi: http://elixir.free-electrons.com/linux/latest/source/drivers/net/wireless/intel/iwlwifiiwm(4)
mac80211 is a framework for writing SoftMAC drivers (see net80211(4) for FreeBSD counterpart). Its website at wireless.wiki.kernel.org has not been updated since 2015. The latest documentation is probably available in Linux 802.11 Driver Developer’s Guide. Most of the 802.11 standards should be implemented on the mac80211 common SoftMAC layer.
Notes about mac80211 API (2015, outdated): https://wireless.wiki.kernel.org/en/developers/documentation/mac80211/api
Interesting sequence diagrams: 1 , 2
PaulFertser told me that if I really want to know how to use 802.11ac in Linux I should study the mac80211 driver for MediaTek MT76x2 802.11ac chips (https://github.com/openwrt/mt76 ) as it is a relatively thin wrapper around real hardware functions in contrast to iwlwifi.
Johannes Berg's presentation (2009, Intel): https://wireless.wiki.kernel.org/_media/en/developers/documentation/mac80211.pdf
The most important mac80211 header to driver developers: include/net/mac80211.h
Other files are in net/mac80211/.
https://wireless.wiki.kernel.org/en/users/drivers suggests that iwlwifi supports A/B/G/N/AC PHY modes.
indicates that I've not read it yet (and most often just scanned through)
Special thanks to