summaryrefslogtreecommitdiff
path: root/drivers/fims/Kconfig
blob: f2462f7096cde5e06b69963d7bd4f0f79e8374fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
#
# FIM devices configuration
#

menuconfig FIM_CORE
	tristate "FIM drivers support"
	depends on PROCESSOR_NS921X
        select FW_LOADER
        select HOTPLUG 
	default n
	help
	  This option adds the support for the Flexible Interfaces Modules (FIM).
	  Currently only the NS921X processors are supporting the FIM-devices. 
          The number of available FIMs is two for NS9215 and one for NS9210.

	  For installing the specific FIM-firmware, the FIM core driver depends on
	  Hotplug and the firmware-subsystem too. 

##           If a FIM-driver is selected as loadable module, then is required
##           to have installed the user-space application 'mdev' (Busybox).


if FIM_CORE

config FIM_ZERO
	bool "FIM 0"
	depends on PROCESSOR_NS9210 || PROCESSOR_NS9215 && FIM_CORE=y
	help
	  Enables FIM 0

choice
	prompt "Choose FIM 0 driver"
	depends on FIM_ZERO
	help
	  Only one of the following drivers can run in the FIM. Please pick one.

config FIM_ZERO_SDIO_SELECTED
	bool "SDIO driver"
	depends on MMC && MMC_BLOCK && !(CME9210JS_SERIAL_PORTA_FULL || CME9210JS_SERIAL_PORTA_CTSRTSRXTX)
	select FIM_ZERO_SDIO
	help
	  Enables the FIM-SDIO driver.
	  
          For testing the SDIO functionality is required to choose an additional 
          SDIO-driver (GPS/UART) from the MMC-core.

config FIM_ZERO_SERIAL_RXTX
	bool "Serial driver 2-wires (RX/TX)"
	depends on !(CME9210JS_SERIAL_PORTA_FULL || CME9210JS_SERIAL_PORTA_CTSRTSRXTX)
	select FIM_ZERO_SERIAL_SELECTED
	help
	  Enables the FIM-serial driver without the HW flow control (CTS and RTS
	  lines are not requested by the driver).

config FIM_ZERO_SERIAL_CTSRTS
	bool "Serial driver 4-wires (RX/TX/CTS/RTS)"
	depends on !(CME9210JS_SERIAL_PORTA || CME9210JS_SERIAL_PORTA_FULL || CME9210JS_SERIAL_PORTA_CTSRTSRXTX)
	select FIM_ZERO_SERIAL_SELECTED
	help
	  Enables the FIM-serial driver with HW flow control support. 

config FIM_ZERO_CAN_SELECTED
	bool "CAN-bus driver"
	depends on CAN && CAN_DEV && (!MACH_CME9210 && !MACH_CME9210JS)
	select FIM_ZERO_CAN
	help
	  Enables the FIM-CAN bus driver.

config FIM_ZERO_W1_SELECTED
	bool "1-wire driver"
	depends on !(CME9210JS_SERIAL_PORTA_FULL || CME9210JS_SERIAL_PORTA_CTSRTSRXTX)
	select FIM_ZERO_W1
	select W1
	select W1_MASTER_GPIO
	help
	  Enables the 1-wire GPIO driver on the FIM-board. For the selection of the
	  connected slaves you need to enter the config menu of the 1-wire subsystem.

config FIM_ZERO_USB_SELECTED
        tristate "USB serial port driver"
        select FIM_ZERO_USB
	select SERIAL_CORE
        help
          Enables the USB serial port driver (low speed).

endchoice # FIM_ZERO

config FIM_ONE
	bool "FIM 1"
	depends on PROCESSOR_NS9210 || PROCESSOR_NS9215 && FIM_CORE=y
	help
	  Enables FIM 1

choice
	prompt "Choose FIM 1 driver"
	depends on FIM_ONE
	help
	  Only one of the following drivers can run in the FIM. Please pick one.

config FIM_ONE_SDIO_SELECTED
	bool "SDIO driver"
	depends on MMC && MMC_BLOCK && (!MACH_CME9210 && !MACH_CME9210JS) && !FIM_ZERO_SDIO_SELECTED
	select FIM_ONE_SDIO
	help
	  Enables the FIM-SDIO serial driver. 
	  
          For testing the SDIO functionality is required to choose an additional 
          SDIO-driver (GPS/UART) from the MMC-core.

config FIM_ONE_SERIAL_RXTX
	bool "Serial driver 2-wires (RX/TX)"
	depends on !MACH_CME9210 && !MACH_CME9210JS
	select FIM_ONE_SERIAL_SELECTED
	help
	  Enables the FIM-serial driver without the HW flow control (CTS and RTS
          lines are not requested by the driver).

config FIM_ONE_SERIAL_CTSRTS
	bool "Serial driver 4-wires (RX/TX/CTS/RTS)"
	depends on !MACH_CME9210 && !MACH_CME9210JS
	select FIM_ONE_SERIAL_SELECTED
	help
	  Enables the FIM-serial driver with HW flow control support. 
	  
config FIM_ONE_CAN_SELECTED
	bool "CAN-bus driver"
	depends on CAN && CAN_DEV && !((MACH_CME9210 || MACH_CME9210JS) && (CME9210JS_SERIAL_PORTA_FULL || FIM_ZERO_SERIAL_SELECTED || FIM_ZERO_SDIO_SELECTED))
	select FIM_ONE_CAN
	help
	  Enables the FIM-CAN bus driver.

config FIM_ONE_W1_SELECTED
	bool "1-wire driver"
	depends on !MACH_CME9210 && !MACH_CME9210JS && !FIM_ZERO_W1_SELECTED
	select FIM_ONE_W1
	select W1_MASTER_GPIO
	help
	  Enables the 1-wire GPIO driver on the FIM-board. For the selection of the
	  connected slaves you need to enter the config menu of the 1-wire subsystem.

config FIM_ONE_USB_SELECTED
        tristate "USB serial port driver"
        depends on !MACH_CME9210JS
        select FIM_ONE_USB
	select SERIAL_CORE
        help
          Enables the USB serial port driver (low speed).

endchoice # FIM_ONE

# -- Special configuration options for some FIM-drivers
config SERIAL_FIM_CONSOLE
        bool "Enable the FIM Serial Console"
        depends on FIM_ZERO_SERIAL_SELECTED || FIM_ONE_SERIAL_SELECTED
	select SERIAL_CORE_CONSOLE
        help
          Enables the console functionality on the FIM serial ports.

config FIM_MODULES
	bool "Enable FIM drivers as loadable modules"
	depends on !FIM_ZERO || !FIM_ONE
	help
	  This option allows to build the FIM drivers as loadable modules
	  rather than as built-in features.

if FIM_MODULES

# -- These are the options for enabling the FIM-drivers as loadable modules
config FIM_SDIO_MODULE
	bool "SDIO as loadable module"
	depends on MMC && MMC_BLOCK && !FIM_ZERO_SDIO_SELECTED && !FIM_ONE_SDIO_SELECTED && (!FIM_ZERO || !FIM_ONE)
	select FIM_ZERO_SDIO
	select FIM_ONE_SDIO if !(MACH_CME9210JS || MACH_CME9210)
	help
          Enables the FIM SDIO as loadable module. The number of FIMs to be
	  handled by this driver can be passed with the module parameter 'fims'

config FIM_SERIAL_MODULE
	bool "Serial as loadable module"
	depends on !FIM_ZERO_SERIAL_SELECTED && !FIM_ONE_SERIAL_SELECTED && (!FIM_ZERO || !FIM_ONE)
	select FIM_ZERO_SERIAL
	select FIM_ONE_SERIAL if !(MACH_CME9210JS || MACH_CME9210)
	select SERIAL_CORE
	help
          Enables the FIM Serial loadable module. The number of FIMs to be
	  handled by this driver can be passed with the module parameter 'fims'

config FIM_CAN_MODULE
	bool "CAN as loadable module"
	depends on CAN && CAN_DEV && !FIM_ZERO_CAN_SELECTED && !FIM_ONE_CAN_SELECTED && (!FIM_ZERO || !FIM_ONE)
	select FIM_ZERO_CAN if !(MACH_CME9210JS || MACH_CME9210)
	select FIM_ONE_CAN
	help
          Enables the FIM CAN as loadable module. The number of FIMs to be
	  handled by this driver can be passed with the module parameter 'fims'

config FIM_USB_MODULE
        bool "USB serial port driver as loadable module"
        depends on SERIAL_CORE && !FIM_ZERO_USB_SELECTED && !FIM_ONE_USB_SELECTED
        select FIM_ZERO_USB
        select FIM_ONE_USB if !(MACH_CME9210JS || MACH_CME9210)
        help
          Enables the FIM USB Device Controller as loadable module.
          The number of FIMs to be handled by this driver can be passed with the
          module parameter 'fims'

endif # FIM_MODULES

# -- Variables for selection the platform devices
config FIM_ZERO_SDIO
	bool

config FIM_ONE_SDIO
	bool

config FIM_ZERO_SERIAL
	bool

config FIM_ZERO_SERIAL_SELECTED
        select FIM_ZERO_SERIAL
	select SERIAL_CORE
	bool
	
config FIM_ONE_SERIAL
	bool

config FIM_ONE_SERIAL_SELECTED
        select FIM_ONE_SERIAL
	select SERIAL_CORE
	bool

config FIM_ZERO_CAN
	bool

config FIM_ONE_CAN
	bool

config FIM_ZERO_W1
        bool

config FIM_ONE_W1
        bool

config FIM_ZERO_USB
        bool

config FIM_ONE_USB
        bool

endif # FIM_CORE