1# SPDX-License-Identifier: GPL-2.0-only
2config SSB_POSSIBLE
3	bool
4	depends on HAS_IOMEM && HAS_DMA
5	default y
6
7menuconfig SSB
8	tristate "Sonics Silicon Backplane support"
9	depends on SSB_POSSIBLE
10	help
11	  Support for the Sonics Silicon Backplane bus.
12	  You only need to enable this option, if you are
13	  configuring a kernel for an embedded system with
14	  this bus.
15	  It will be auto-selected if needed in other
16	  environments.
17
18	  The module will be called ssb.
19
20	  If unsure, say N.
21
22if SSB
23
24# Common SPROM support routines
25config SSB_SPROM
26	bool
27
28# Support for Block-I/O. SELECT this from the driver that needs it.
29config SSB_BLOCKIO
30	bool
31	depends on SSB
32
33config SSB_PCIHOST_POSSIBLE
34	bool
35	depends on SSB && (PCI = y || PCI = SSB) && (PCI_DRIVERS_LEGACY || !MIPS)
36	default y
37
38config SSB_PCIHOST
39	bool "Support for SSB on PCI-bus host"
40	depends on SSB_PCIHOST_POSSIBLE
41	select SSB_SPROM
42	default y
43	help
44	  Support for a Sonics Silicon Backplane on top
45	  of a PCI device.
46
47	  If unsure, say Y
48
49config SSB_B43_PCI_BRIDGE
50	bool
51	depends on SSB_PCIHOST
52	default n
53
54config SSB_PCMCIAHOST_POSSIBLE
55	bool
56	depends on SSB && (PCMCIA = y || PCMCIA = SSB)
57	default y
58
59config SSB_PCMCIAHOST
60	bool "Support for SSB on PCMCIA-bus host"
61	depends on SSB_PCMCIAHOST_POSSIBLE
62	select SSB_SPROM
63	help
64	  Support for a Sonics Silicon Backplane on top
65	  of a PCMCIA device.
66
67	  If unsure, say N
68
69config SSB_SDIOHOST_POSSIBLE
70	bool
71	depends on SSB && (MMC = y || MMC = SSB)
72	default y
73
74config SSB_SDIOHOST
75	bool "Support for SSB on SDIO-bus host"
76	depends on SSB_SDIOHOST_POSSIBLE
77	help
78	  Support for a Sonics Silicon Backplane on top
79	  of a SDIO device.
80
81	  If unsure, say N
82
83config SSB_HOST_SOC
84	bool "Support for SSB bus on SoC"
85	depends on SSB && BCM47XX_NVRAM
86	select SSB_SPROM
87	help
88	  Host interface for a SSB directly mapped into memory. This is
89	  for some Broadcom SoCs from the BCM47xx and BCM53xx lines.
90
91	  If unsure, say N
92
93config SSB_SERIAL
94	bool
95	depends on SSB
96	# ChipCommon and ExtIf serial support routines.
97
98config SSB_DRIVER_PCICORE_POSSIBLE
99	bool
100	depends on SSB_PCIHOST
101	default y
102
103config SSB_DRIVER_PCICORE
104	bool "SSB PCI core driver"
105	depends on SSB_DRIVER_PCICORE_POSSIBLE
106	help
107	  Driver for the Sonics Silicon Backplane attached
108	  Broadcom PCI core.
109
110	  If unsure, say Y
111
112config SSB_PCICORE_HOSTMODE
113	bool "Hostmode support for SSB PCI core"
114	depends on SSB_DRIVER_PCICORE && SSB_DRIVER_MIPS && SSB = y
115	help
116	  PCIcore hostmode operation (external PCI bus).
117
118config SSB_DRIVER_MIPS
119	bool "SSB Broadcom MIPS core driver"
120	depends on SSB && MIPS
121	select SSB_SERIAL
122	select SSB_SFLASH
123	help
124	  Driver for the Sonics Silicon Backplane attached
125	  Broadcom MIPS core.
126
127	  If unsure, say N
128
129config SSB_SFLASH
130	bool "SSB serial flash support"
131	depends on SSB_DRIVER_MIPS
132	default y
133
134# Assumption: We are on embedded, if we compile the MIPS core.
135config SSB_EMBEDDED
136	bool
137	depends on SSB_DRIVER_MIPS
138	depends on PCI=n || SSB_PCICORE_HOSTMODE
139	default y
140
141config SSB_DRIVER_EXTIF
142	bool "SSB Broadcom EXTIF core driver"
143	depends on SSB_DRIVER_MIPS
144	help
145	  Driver for the Sonics Silicon Backplane attached
146	  Broadcom EXTIF core.
147
148	  If unsure, say N
149
150config SSB_DRIVER_GIGE
151	bool "SSB Broadcom Gigabit Ethernet driver"
152	depends on SSB_PCIHOST_POSSIBLE && SSB_EMBEDDED && MIPS
153	help
154	  Driver for the Sonics Silicon Backplane attached
155	  Broadcom Gigabit Ethernet.
156
157	  If unsure, say N
158
159config SSB_DRIVER_GPIO
160	bool "SSB GPIO driver"
161	depends on SSB && GPIOLIB
162	select IRQ_DOMAIN if SSB_EMBEDDED
163	help
164	  Driver to provide access to the GPIO pins on the bus.
165
166	  If unsure, say N
167
168endif # SSB
169