menuconfig BCM_MGW
	bool "Broadcom Media Gateway Drivers"
	default n

if BCM_MGW

config BCM_PMB
	bool "Power Management Bus (PMB) Driver"
	default n
	help
	  Supports Power Management Bus (PMB) accesses to BPCM blocks.

config BCM_BPCM
	bool "Block Power Control Module (BPCM) Driver"
	depends on BCM_PMB
	default n
	help
	  Supports Block Power Control Module (BPCM) accesses.

config BCM_MBOX
	tristate "Broadcom MBOX support"
	default n
	help
	  Supports MBOX state tracking and setting

config BCM_MBOX_DEBUG
	bool "Broadcom MBOX debug messages"
	depends on BCM_MBOX
	default y

config BCM_MBOX_PERF
	bool "Broadcom MBOX performance metrics"
	depends on BCM_MBOX
	default n
	help
	  Collect timing metrics and display via debugfs

config BCM_BOOT_ASSIST
	tristate "Broadcom Boot Assist"
	depends on BCM_MBOX && ARM
	default n
	help
	  Tool to prepare and launch RG and CM CPUs

config BCM_BA_DEBUGFS_MAP
	bool "Boot Assist show memory mapping via debugfs"
	depends on BCM_BOOT_ASSIST
	default y
	help
	  Show current memory mapping information via debugfs

config BCM_BA_PERF
	bool "Boot Assist performance metrics"
	depends on BCM_BOOT_ASSIST
	default n
	help
	  Collect timing metrics and display via debugfs

config BCM_BA_DEBUG
	bool "Boot Assist Debug Messages"
	depends on BCM_BOOT_ASSIST
	default y

config BCM_BA_VERBOSE_REG
	bool "Boot Assist Verbose Regsister Logging"
	depends on BCM_BOOT_ASSIST && BCM_BA_DEBUG
	default n
	help
	  Boot assist will show all register access

config BCM_BA_HARDCODE_MAP
	bool "Boot Assist hard code memory mapping"
	depends on BCM_BOOT_ASSIST
	default n
	help
	  Boot Assist memory mapping is compile time defined and
	  cannot be modified at runtime

config BCM_BA_ALLOW_USER_MAP
	bool "Boot Assist Allow user mapping"
	depends on BCM_BOOT_ASSIST && !BCM_BA_HARDCODE_MAP
	default y
	help
	  Boot assist will allow the user space daemon to specify memory
	  mapping information

config BCM_MIIMDIOMUX3390
	bool "3390 RGMII/MDIO Mux Driver"
	default n
	help
	  Static init of the RGMII/MDIO mux for the 3390.

config BCM_MIIMDIOMUX339X
	bool "339x RGMII/MDIO Mux Driver"
	default n
	help
	  Static init of the RGMII/MDIO mux for the 339x chip family.

config BCM_I2C_WBID
	bool "I2C WBID Driver"
	default n
	help
	 I2C device/client driver used to read the WBID for WiFi

config BCM_FPM
	tristate "FPM Driver"
	default n
	help
	  Enable/disable the FPM driver.

config BCM_FPM_INIT
	tristate "FPM Driver Initializtion"
	default n
	help
	  Enable/disable the FPM driver Initialization.

config BCM_FPM_TOKEN_FORMAT_VARIABLE
	bool "Variable Token Format"
	depends on BCM_FPM
	default n
	help
	  Variable token format.

config BCM_FPM_TOKEN_CHECKING
	bool "Check FPM tokens as they pass through the FPM driver."
	depends on BCM_FPM
	default n
	help
	  Tokens that are passed to the FPM driver by other kernel drivers/modules
	  will be inspected to ensure that the valid bit is set, the index is within
	  range, and that the pool specified is enabled. Failures will be noted as
	  errors on the console.

config BCM_FPM_TOKEN_HIST
	bool "Maintain history of FPM tokens as they pass through the FPM driver."
	depends on BCM_FPM
	default n
	help
	  Calls to the FPM driver that involve handling of a token will be logged
	  to a circular memory buffer as transactions identifying the function
	  called, the caller, the token value, the first 14 bytes of the token
	  buffer contents at the system-wide buffer offset, and possibly the
	  source/destination of the token.

config BCM_FPM_TOKEN_HIST_MEM
	int "Memory size (KB) used to store token history."
	depends on BCM_FPM_TOKEN_HIST
	default 4096
	help
	  The size of the token history circular buffer in memory. This amount of
	  memory will be allocated at FPM driver init time so it will reduce the
	  amount of memory available to the rest of the system.

config BCM_FPM_TOKEN_HIST_CHECKING
	bool "Check token use via token history."
	depends on BCM_FPM_TOKEN_HIST
	default n
	help
	  The FPM driver will maintain a reference count for every token involved
	  in a call to the FPM driver. The reference count is used to determine if
	  the token is "owned" by Linux or not. When a call is made to the FPM driver
	  this option enables checking of the reference count for any token involved
	  to detect when tokens are double allocated, double freed, or still in use by
	  Linux.

config BCM_DQM
	tristate "DQM Driver"
	depends on BCM_FPM
	default n
	select BCM_DQM_256M_OL_DEPTH

config BCM_DQM_256M_OL_DEPTH
	bool "Use 256M OL Depth"
	depends on BCM_DQM
	default n

config BCM_ITC_RPC
	tristate "ITC RPC Module"
	default n

config BCM_ITC_RPC_DQM
	bool "ITC RPC DQM Backend Support"
	depends on BCM_ITC_RPC && BCM_DQM
	default y

config BCM_ITC_RPC_LED
	bool "ITC RPC DQM Led Support"
	depends on BCM_ITC_RPC
	default n

config BCM_UNIMAC
	tristate "Unimac Ethernet Mac Driver"
	depends on BCM_FPM
	default n

config BCM_UNIMAC_MBDMA
	tristate "Unimac MDMA Driver"
	depends on BCM_UNIMAC
	default n

config BCM_RPC_SERVICES
	tristate "RPC Services Module"
	depends on BCM_ITC_RPC
	default n

config BCM_DQSKB
	tristate "DQSKB SKB sharing through DQM"
	depends on BCM_DQM
	default n

config BCM_DQNET
	tristate "DQNET Network Driver"
	depends on BCM_FPM && BCM_DQM && BCM_ITC_RPC
	default n
	select PHYLIB
	select FIXED_PHY
	select MDIO_BCM_UNIMAC

config BCM_NETPORT
	tristate "Netport Driver"
	default n

config BCM_MERLIN
	tristate "Merlin Serdes Driver"
	default n

config BCM8275X_PHY
	tristate "BCM8275X Driver"
	default n

config BCM_XCVRNET
	tristate "XCVRNET Network Driver"
	default n

config BCM_VFBIO
	tristate "vFlash Block I/O Driver"
	depends on BCM_ITC_RPC
	default n
	help
	  A block I/O driver that uses the Broadcom ITC/RPC mechanism to
	  expose the flash logical units controlled by the SMC as block
	  devices.

config BCM_VFBIO_MQ
	tristate "VFBIO Driver - Use the Block IO Multi-Queue Model"
	depends on BCM_VFBIO
	default y
	help
	  This configures the driver to use the block I/O subsystem's
	  new multi-queue driver model. When disabled the old block IO
	  driver model is used. The multiqueue model is always used
	  on Linux versions 5.4 and above as support for the old driver
	  model was removed with that version.

config BCM_VFBIO_OOPS
	tristate "vFlash Block I/O Oops Driver"
	depends on BCM_VFBIO
	default n
	help
	  This enables panic and oops messages to be logged to a circular
	  buffer in a flash logical units where it can be read back at some
	  later point.

config BCM_VFBIO_USE_SMC_SIM_DRVR
	bool "Use the VFBIO SMC simulation driver"
	default n
	help
	  Use the VFBIO SMC simulation driver instead of real SMC hardware. This
	  is for testing the VFBIO driver on a 3390 that does not have an SMC.

config BCM_VFMTDS
	tristate "vFlash MTD Server Driver"
	depends on BCM_ITC_RPC
	default n

config BCM_VFMTDC
	tristate "vFlash MTD Client Driver"
	depends on BCM_ITC_RPC
	default n

config BCM_ETHSW
	tristate "Ethsw Driver"
	default n

config BCM_GFAP3384
	tristate "3384 GFAP Interface Driver"
	default n

config BCM_SFAP
	tristate "Soft Forward Assist Processing Driver"
	default n

config BCM_SFAP_NETHOOK
	bool "SFAP - Use BCM nethooks"
	depends on BCM_SFAP
	default n
	help
	  Enable use of BCM nethooks

config BCM_SFAP_NETHOOK_FPM
	bool "SFAP - Use FPM based BCM nethooks"
	depends on BCM_SFAP
	default n
	help
	  Enable use of FPM based BCM nethooks

config BCM_RUNNER
	bool "Runner Drivers"
	default n

config BCM_RTF
	tristate "Runner transparent forwarding (RTF)"
	depends on BCM_DQNET && BCM_RUNNER
	default n
	help
	  Runner transparent upstream and cmim downstream forwarding

config BCM_FLOWMGR
	tristate "Packet Flow Manager Driver"
	depends on NF_CONNTRACK_OFFLOAD && BRIDGE_NETFILTER
	default n

config BCM_FLOWMGR_NETHOOK
	bool "FLOWMGR - Use BCM nethooks"
	depends on BCM_FLOWMGR
	default n
	help
	  Enable use of BCM nethooks

config BCM_FLOWMGR_SFAP
	bool "Flowmgr SFAP"
	depends on BCM_FLOWMGR &&  BCM_SFAP
	default n

config BCM_FLOWMGR_GFAP
	bool "Flowmgr GFAP"
	depends on BCM_FLOWMGR && BCM_GFAP3384
	default n

config BCM_FLOWMGR_RUNNER
	bool "Flowmgr Runner"
	depends on BCM_FLOWMGR &&  BCM_RUNNER
	default n

config BCM_FLOWMGR_MCAST
	bool "Flowmgr MCAST"
	depends on BCM_FLOWMGR
	default n

config BCM_FLOWMGR_TUNNEL
	bool "Flowmgr Tunnel"
	depends on BCM_FLOWMGR
	default n

config BCM_FLOWMGR_IOCTL
	bool "Flowmgr ioctl"
	depends on BCM_FLOWMGR
	default y

config BCM_FLOWMGR_FAP_WQ
	bool "Flowmgr FAP Flow API Workqueue"
	depends on BCM_FLOWMGR
	default n

config BCM_FLOWMGR_ARL
	bool "Flowmgr ARL Offload"
	depends on BCM_FLOWMGR && NET_SWITCHDEV
	default n

config BCM_FLOWLYZER
	tristate "Flowlyzer Driver"
	depends on NF_CONNTRACK_OFFLOAD && BCM_FLOWMGR && BCM_DQNET && BCM_DQM
	default n

config BCM_FLOWLYZER_LAN
	bool
	depends on BCM_FLOWLYZER
	default n

config BCM_OAMHOOK
	tristate "DPoE OAM nethooks"
	depends on BCM_DQNET
	default n
	help
	  DPoe OAM nethook on pon port for filtering OAM messages

config BCM_NETFILTER
	bool "Netfilter Add ons"
	default n

config BCM_MACPT
	tristate "MAC Pass-through"
	default n

config BCM_WPS_GPIO
	tristate "Drivers for WPS LED and Push-Button"
	depends on GPIOLIB
	default n

config BCM_WRFPWR
	tristate "Drivers for Wifi RF Power Control"
	depends on GPIOLIB
	default y

config BCM_NETDEV_RFAP
	tristate "netdev runner acceleration"
	depends on BCM_DQNET && BCM_FPM && BCM_RUNNER
	default n
	help
	  Runner acceleration layer for network devices

config BCM_NETDEV_RFAP_PCI
	tristate "netdev runner acceleration"
	depends on BCM_DQNET && BCM_FPM && BCM_RUNNER
	default m
	help
	 Runner acceleration layer for network devices

config BCM_NIO
	bool "Broadcom Network Interface Offload"
	depends on BCM_NETDEV_RFAP || BCM_NETDEV_RFAP_PCI
	default n

config BCM_DHD_RUNNER
	bool "Broadcom DHD Offload Runner Support"
	default y

config BCM_MDQM
	tristate "Multi-DQM Interface"
	depends on BCM_DQM
	default n

config BCM_NETXL
	tristate "Network Device Acceleration Interface"
	depends on BCM_DQNET && BCM_RUNNER
	default n

config BCM_SGMIIPLUS2
	tristate "Driver for SGMIIPLUS2 serdes core"
	depends on BCM_MIIMDIOMUX3390 && MDIO_BCM_UNIMAC
	default n
	select BCM8488X_PHY
	help
	  28nm SGMIIPLUS2 Multi-rate Serdes PHY core

config BCM_MEMCSTATS
	tristate "MemCStats driver"
	default n
	help
	  Memory Controller Statistics Driver

config BCM_IPERF
	tristate "Kernel iperf driver"
	default m

if BCM_NETFILTER
source "drivers/bcm_media_gw/netfilter/Kconfig"
endif

source "drivers/bcm_media_gw/test/Kconfig"

endif

menu "Broadcom HND network devices"
	depends on PCI

config HND
	tristate "Broadcom HND network device support"
	default n

config ET
	tristate "10/100 Ethernet support"
	depends on HND

config ET_47XX
	bool "BCM47xx support"
	depends on ET

choice
	prompt "ET ALL PASSIVE mode"
	depends on ET

config ET_ALL_PASSIVE_ON
	bool "ET ALL PASSIVE on"

config ET_ALL_PASSIVE_RUNTIME
	bool "ET ALL PASSIVE with runtime setting"
endchoice

config BCM_CTF
	tristate "BCMCTF support"
	depends on HND

config BCM_FA
	bool "BCM HW Flow Accelerator support"
	depends on BCM_CTF

config BCM_GMAC3
	bool "BCM 3 GMAC Forwarding support"
	depends on BCM_CTF

config WL_EMULATOR
	bool "WL emulation using Gigabit ethernet"
	depends on HND

config BCM57XX
	tristate "BCM57xx support is ON"
	depends on WL_EMULATOR

config WL
	tristate "Wireless feature variant is set to AP"
	depends on WL_EMULATOR
	select WL_USE_AP

config BCM57XX
	tristate "BCM57xx Gigabit Ethernet support"
	depends on HND && !WL_EMULATOR

config DHDAP
	tristate "BCM DHD support"
	depends on HND && !WL_EMULATOR

config WL
	tristate "BCM43xx 802.11 Wireless support"
	depends on HND && !WL_EMULATOR

config WAPI
	bool "Wireless Authentication Privacy Infrastructure (WAPI) support"
	depends on HND && !WL_EMULATOR && WL
	select MTD_BCMCONF_PARTS

choice
	prompt "Wireless feature variant"
	depends on HND && !WL_EMULATOR && WL

config WL_USE_AP
	bool "Config file for basic AP variant"

config WL_USE_AP_SDSTD
	bool "Config file for basic AP sdstd variant"

config WL_USE_STA
	bool "Config file for basic STA variant"

config WL_USE_APSTA
	bool "Config file for basic APSTA variant"

config WL_USE_AP_ONCHIP_G
	bool "Config file for AP 1chipG variant"

config WL_USE_STA_ONCHIP_G
	bool "Config file for STA 1chipG variant"

config WL_USE_APSTA_ONCHIP_G
	bool "Config file for APSTA 1chipG variant"
endchoice

config WL_USBAP
	bool "USB/HSIC Wireless Access Point support"

#if defined(WLSRC) || defined(PREBUILD)

config WL_AP
	string "Config file for basic AP variant"
	default "wlconfig_lx_router_ap"

config WL_AP_SDSTD
	string "Config file for basic AP sdstd variant"
	default "wlconfig_lx_router_ap_sdstd"

config WL_STA
	string "Config file for basic STA variant"
	default "wlconfig_lx_router_sta"

config WL_APSTA
	string "Config file for basic APSTA variant"
	default "wlconfig_lx_router_apsta"

config WL_AP_ONCHIP_G
	string "Config file for AP 1chipG variant"
	default "wlconfig_lx_router_ap_1chipG"

config WL_STA_ONCHIP_G
	string "Config file for STA 1chipG variant"
	default "wlconfig_lx_router_sta_1chipG"

config WL_HIGH
	string "Config file for high/bmac split variant"
	default "wlconfig_lx_router_high"

choice
	prompt "WL ALL PASSIVE mode"
	depends on WL

config WL_ALL_PASSIVE_ON
	bool "WL ALL PASSIVE on"

config WL_ALL_PASSIVE_RUNTIME
	bool "WL ALL PASSIVE with runtime setting"
endchoice

#endif

config DPSTA
	tristate "Broadcom dualband wireless proxy repeater support"
	depends on WL

config EMF
# WLAN_BCG_CM_LINUX start
	default n
# WLAN_BCG_CM_LINUX end
	tristate "Efficient Multicast Forwarding & IGMP Snooping Layers"
	depends on NETFILTER

endmenu

config BCM_BUS_CAPTURE
	bool "bus capture support"
	depends on BCM3390
	default y
	help
	  Enable ubus bus capture and gisb bus error capture

config BCM_SMCLOG
	bool "SMC log viewer"
	default n
	depends on BCM_ITC_RPC
	help
	  SMC ramlog driver that maps SMC ramlog to /proc/driver/smc/log.

config BCM_BA_RPC
	tristate "Broadcom Boot Assist Control through SMC"
	depends on BCM_ITC_RPC && ARM64 && BCM_PWR_RPC
	default n
	help
	  Enable boot assist coordination through SMC

config BCM_PWR_RPC
	tristate "Broadcom Power Control through SMC"
	depends on BCM_ITC_RPC && COMMON_CLK
	default n
	help
	  Enable power domain control via direct RPC to SMC as well as
          via a pseudo-clock device.

config BCM_BA_TO_POWERMAN_NOTIF
	tristate "Sending Reboot/Halt/Poweroff Notiication to Powerman from BA"
	default n
	help
	  To communicate system reboot/halt/poweroff to powerman

config BCM_LED_RPC
	bool "Broadcom LED Control through SMC"
	depends on BCM_ITC_RPC && BCM_BA_RPC
	default n

config BCM_MSO_FEAT
	tristate "Broadcom Per MSO Feature"
	default m

config BCM_SMC_OTP
	tristate "SMC OTP Driver"
	depends on BCM_ITC_RPC
	default n

config BCM_SMC_SVN
	tristate "SMC SVN Driver"
	depends on BCM_ITC_RPC
	default n

config BRCM_SRAM_PANIC_DUMP
	bool "Broadcom SRAM panic dump"
	depends on HAS_IOMEM
	help
	    Say Y to dump panic, oom or watchdog data to Broadcom AON SRAM area.

config EDAC_BCM_RPC
	tristate "BCM RPC EDAC"
	depends on BCM_ITC_RPC && EDAC_MM_EDAC && ARM64
	help
	  BCM RPC EDAC driver for error detection and correction that uses
	  the Broadcom ITC/RPC mechanism to get error counts controlled by
	  the SMC.

config PINCTRL_BCM_RPC
	tristate "Drivers for RPC Pincntrl driver"
	default n
	depends on BCM_ITC_RPC && OF_GPIO
	select GPIO_GENERIC
	select GENERIC_IRQ_CHIP
	select PINMUX
	select PINCONF
	help
	  A GPIO/Pinctrl driver that uses the Broadcom ITC/RPC mechanism to
	  expose the GPIO and Pinctrl units controlled by the SMC.

config BCM_RPC_RTC_DRV
          tristate "Broadcom RPC Real Time Clock driver"
          depends on BCM_ITC_RPC
          default n
          help
            RTC driver that uses the Broadcom ITC/RPC mechanism to
            expose the RTC devices controlled by the SMC.

config REGULATOR_BCM_FIXED
	tristate "BCM Fixed regulator support"
	depends on GPIOLIB
	help
	  This driver provides support for power regulators that have
	  a reset GPIO

config BCM3390_WDT
	tristate "BCM3390 Watchdog"
	select WATCHDOG_CORE
	depends on HAS_IOMEM
	depends on ARCH_BRCMSTB || COMPILE_TEST
	help
	  Watchdog driver for the built-in hardware in Broadcom 3390 SoC.

config BCM3390_WDT_NMI
	bool "BCM3390 Watchdog NMI Support"
	depends on BCM3390_WDT
	help
	  Adds support for using the NMI output of the watchdog to trigger
	  capturing debug information.
