# SPDX-License-Identifier: GPL-2.0-only
#
# RTL818X Wireless LAN device configuration
#
config RTL8180
	tristate "Realtek 8180/8185/8187SE PCI support"
	depends on MAC80211 && PCI
	select EEPROM_93CX6
	help
	  This is a driver for RTL8180, RTL8185 and RTL8187SE based cards.
	  These are PCI based chips found in cards such as:

	  (RTL8185 802.11g)
	  A-Link WL54PC

	  (RTL8180 802.11b)
	  Belkin F5D6020 v3
	  Belkin F5D6020 v3
	  Dlink DWL-610
	  Dlink DWL-510
	  Netgear MA521
	  Level-One WPC-0101
	  Acer Aspire 1357 LMi
	  VCTnet PC-11B1
	  Ovislink AirLive WL-1120PCM
	  Mentor WL-PCI
	  Linksys WPC11 v4
	  TrendNET TEW-288PI
	  D-Link DWL-520 Rev D
	  Repotec RP-WP7126
	  TP-Link TL-WN250/251
	  Zonet ZEW1000
	  Longshine LCS-8031-R
	  HomeLine HLW-PCC200
	  GigaFast WF721-AEX
	  Planet WL-3553
	  Encore ENLWI-PCI1-NT
	  TrendNET TEW-266PC
	  Gigabyte GN-WLMR101
	  Siemens-fujitsu Amilo D1840W
	  Edimax EW-7126
	  PheeNet WL-11PCIR
	  Tonze PC-2100T
	  Planet WL-8303
	  Dlink DWL-650 v M1
	  Edimax EW-7106
	  Q-Tec 770WC
	  Topcom Skyr@cer 4011b
	  Roper FreeLan 802.11b (edition 2004)
	  Wistron Neweb Corp CB-200B
	  Pentagram HorNET
	  QTec 775WC
	  TwinMOS Booming B Series
	  Micronet SP906BB
	  Sweex LC700010
	  Surecom EP-9428
	  Safecom SWLCR-1100

	  Thanks to Realtek for their support!

config RTL8187
	tristate "Realtek 8187 and 8187B USB support"
	depends on MAC80211 && USB
	select EEPROM_93CX6
	help
	  This is a driver for RTL8187 and RTL8187B based cards.
	  These are USB based chips found in devices such as:

	  Netgear WG111v2
	  Level 1 WNC-0301USB
	  Micronet SP907GK V5
	  Encore ENUWI-G2
	  Trendnet TEW-424UB
	  ASUS P5B Deluxe/P5K Premium motherboards
	  Toshiba Satellite Pro series of laptops
	  Asus Wireless Link
	  Linksys WUSB54GC-EU v2
	    (v1 = rt73usb; v3 is rt2070-based,
	     use staging/rt3070 or try rt2800usb)

	  Thanks to Realtek for their support!

# If possible, automatically enable LEDs for RTL8187.

config RTL8187_LEDS
	bool
	depends on RTL8187 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = RTL8187)
	default y

