Wed Sep 30 20:44:50 2009 UTC ()
Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


(jmcneill)
diff -r1.957 -r1.958 src/sys/conf/files
diff -r1.58 -r1.59 src/sys/dev/acpi/files.acpi
diff -r0 -r1.1 src/sys/dev/acpi/wb_acpi.c
diff -r0 -r1.1 src/sys/dev/ic/w83l518d.c
diff -r0 -r1.1 src/sys/dev/ic/w83l518d_sdmmc.c
diff -r0 -r1.1 src/sys/dev/ic/w83l518d_sdmmc.h
diff -r0 -r1.1 src/sys/dev/ic/w83l518dreg.h
diff -r0 -r1.1 src/sys/dev/ic/w83l518dvar.h

cvs diff -r1.957 -r1.958 src/sys/conf/files (switch to unified diff)

--- src/sys/conf/files 2009/09/26 19:05:07 1.957
+++ src/sys/conf/files 2009/09/30 20:44:49 1.958
@@ -1,1685 +1,1690 @@ @@ -1,1685 +1,1690 @@
1# $NetBSD: files,v 1.957 2009/09/26 19:05:07 jakllsch Exp $ 1# $NetBSD: files,v 1.958 2009/09/30 20:44:49 jmcneill Exp $
2# @(#)files.newconf 7.5 (Berkeley) 5/10/93 2# @(#)files.newconf 7.5 (Berkeley) 5/10/93
3 3
4version 20090313 4version 20090313
5 5
6# 6#
7# device classes 7# device classes
8# 8#
9devclass disk 9devclass disk
10devclass tape 10devclass tape
11devclass ifnet 11devclass ifnet
12devclass tty 12devclass tty
13devclass audiodev 13devclass audiodev
14devclass displaydev 14devclass displaydev
15devclass bus 15devclass bus
16 16
17# options understood by the machine-independent part of the kernel 17# options understood by the machine-independent part of the kernel
18# (note, these are case-sensitive) 18# (note, these are case-sensitive)
19# 19#
20defflag INSECURE 20defflag INSECURE
21defflag KMEMSTATS 21defflag KMEMSTATS
22defflag KTRACE 22defflag KTRACE
23defflag MBUFTRACE 23defflag MBUFTRACE
24defflag PTRACE 24defflag PTRACE
25defflag COREDUMP 25defflag COREDUMP
26defflag MODULAR 26defflag MODULAR
27defflag KEYLOCK 27defflag KEYLOCK
28 28
29defparam DEFCORENAME 29defparam DEFCORENAME
30defparam HZ 30defparam HZ
31defparam MAXUPRC 31defparam MAXUPRC
32defparam RTC_OFFSET 32defparam RTC_OFFSET
33defflag opt_pipe.h PIPE_SOCKETPAIR PIPE_NODIRECT 33defflag opt_pipe.h PIPE_SOCKETPAIR PIPE_NODIRECT
34 34
35defflag AIO 35defflag AIO
36defflag MQUEUE 36defflag MQUEUE
37 37
38defflag BUFQ_DISKSORT 38defflag BUFQ_DISKSORT
39defflag BUFQ_FCFS 39defflag BUFQ_FCFS
40defflag BUFQ_PRIOCSCAN 40defflag BUFQ_PRIOCSCAN
41defflag BUFQ_READPRIO 41defflag BUFQ_READPRIO
42defflag NEW_BUFQ_STRATEGY # same as BUFQ_READPRIO 42defflag NEW_BUFQ_STRATEGY # same as BUFQ_READPRIO
43 43
44defflag opt_sched.h SCHED_4BSD 44defflag opt_sched.h SCHED_4BSD
45defflag opt_sched.h SCHED_M2 45defflag opt_sched.h SCHED_M2
46 46
47defparam SOMAXKVA 47defparam SOMAXKVA
48defflag opt_sock_counters.h SOSEND_COUNTERS 48defflag opt_sock_counters.h SOSEND_COUNTERS
49defflag opt_sosend_loan.h SOSEND_NO_LOAN 49defflag opt_sosend_loan.h SOSEND_NO_LOAN
50defflag opt_route.h RTCACHE_DEBUG RTFLUSH_DEBUG 50defflag opt_route.h RTCACHE_DEBUG RTFLUSH_DEBUG
51 51
52defflag MULTIPROCESSOR 52defflag MULTIPROCESSOR
53 53
54defflag opt_config.h INCLUDE_CONFIG_FILE INCLUDE_JUST_CONFIG 54defflag opt_config.h INCLUDE_CONFIG_FILE INCLUDE_JUST_CONFIG
55 55
56defparam opt_dump.h DUMP_ON_PANIC 56defparam opt_dump.h DUMP_ON_PANIC
57 57
58defflag opt_callout.h CALLWHEEL_STATS 58defflag opt_callout.h CALLWHEEL_STATS
59 59
60defflag CPU_IN_CKSUM 60defflag CPU_IN_CKSUM
61 61
62defflag opt_posix.h P1003_1B_SEMAPHORE 62defflag opt_posix.h P1003_1B_SEMAPHORE
63defflag opt_sysv.h SYSVMSG SYSVSEM SYSVSHM 63defflag opt_sysv.h SYSVMSG SYSVSEM SYSVSHM
64defparam opt_sysvparam.h SHMMAXPGS SEMMNI SEMMNS SEMUME SEMMNU 64defparam opt_sysvparam.h SHMMAXPGS SEMMNI SEMMNS SEMUME SEMMNU
65 65
66defflag opt_ntp.h PPS_SYNC NTP 66defflag opt_ntp.h PPS_SYNC NTP
67 67
68defflag opt_ptm.h NO_DEV_PTM COMPAT_BSDPTY 68defflag opt_ptm.h NO_DEV_PTM COMPAT_BSDPTY
69 69
70defparam opt_kmempages.h NKMEMPAGES NKMEMPAGES_MIN NKMEMPAGES_MAX 70defparam opt_kmempages.h NKMEMPAGES NKMEMPAGES_MIN NKMEMPAGES_MAX
71defflag opt_malloclog.h MALLOCLOG 71defflag opt_malloclog.h MALLOCLOG
72defparam opt_malloclog.h MALLOCLOGSIZE 72defparam opt_malloclog.h MALLOCLOGSIZE
73defflag opt_malloc_debug.h MALLOC_DEBUG 73defflag opt_malloc_debug.h MALLOC_DEBUG
74defflag opt_pool.h POOL_DIAGNOSTIC 74defflag opt_pool.h POOL_DIAGNOSTIC
75defparam opt_poollog.h POOL_LOGSIZE 75defparam opt_poollog.h POOL_LOGSIZE
76defflag opt_powerhook.h POWERHOOK_DEBUG 76defflag opt_powerhook.h POWERHOOK_DEBUG
77 77
78defflag opt_revcache.h NAMECACHE_ENTER_REVERSE 78defflag opt_revcache.h NAMECACHE_ENTER_REVERSE
79 79
80defflag opt_execfmt.h EXEC_AOUT EXEC_COFF EXEC_ECOFF EXEC_ELF32 80defflag opt_execfmt.h EXEC_AOUT EXEC_COFF EXEC_ECOFF EXEC_ELF32
81 EXEC_ELF64 EXEC_MACHO EXEC_SCRIPT 81 EXEC_ELF64 EXEC_MACHO EXEC_SCRIPT
82 EXEC_ELF_NOTELESS 82 EXEC_ELF_NOTELESS
83 83
84defflag opt_dkwedge.h DKWEDGE_AUTODISCOVER 84defflag opt_dkwedge.h DKWEDGE_AUTODISCOVER
85 DKWEDGE_METHOD_BSDLABEL 85 DKWEDGE_METHOD_BSDLABEL
86 DKWEDGE_METHOD_GPT 86 DKWEDGE_METHOD_GPT
87 DKWEDGE_METHOD_MBR 87 DKWEDGE_METHOD_MBR
88 88
89defflag opt_veriexec.h VERIFIED_EXEC_FP_SHA1 89defflag opt_veriexec.h VERIFIED_EXEC_FP_SHA1
90 VERIFIED_EXEC_FP_SHA256 90 VERIFIED_EXEC_FP_SHA256
91 VERIFIED_EXEC_FP_SHA384 91 VERIFIED_EXEC_FP_SHA384
92 VERIFIED_EXEC_FP_SHA512 92 VERIFIED_EXEC_FP_SHA512
93 VERIFIED_EXEC_FP_MD5 93 VERIFIED_EXEC_FP_MD5
94 VERIFIED_EXEC_FP_RMD160 94 VERIFIED_EXEC_FP_RMD160
95 95
96# Per system call number counts and times 96# Per system call number counts and times
97defflag opt_syscall_stats.h SYSCALL_STATS 97defflag opt_syscall_stats.h SYSCALL_STATS
98defflag opt_syscall_stats.h SYSCALL_TIMES: SYSCALL_STATS  98defflag opt_syscall_stats.h SYSCALL_TIMES: SYSCALL_STATS
99# Assume cpu_hascounter() returns true - to use disabled rdtsc() (for soekris) 99# Assume cpu_hascounter() returns true - to use disabled rdtsc() (for soekris)
100defflag opt_syscall_stats.h SYSCALL_TIMES_HASCOUNTER: SYSCALL_TIMES  100defflag opt_syscall_stats.h SYSCALL_TIMES_HASCOUNTER: SYSCALL_TIMES
101file kern/subr_syscall_stats.c syscall_stats 101file kern/subr_syscall_stats.c syscall_stats
102 102
103defparam opt_pax.h PAX_MPROTECT 103defparam opt_pax.h PAX_MPROTECT
104 PAX_SEGVGUARD 104 PAX_SEGVGUARD
105 PAX_ASLR 105 PAX_ASLR
106 PAX_ASLR_DELTA_MMAP_LSB 106 PAX_ASLR_DELTA_MMAP_LSB
107 PAX_ASLR_DELTA_MMAP_LEN 107 PAX_ASLR_DELTA_MMAP_LEN
108 PAX_ASLR_DELTA_STACK_LSB 108 PAX_ASLR_DELTA_STACK_LSB
109 PAX_ASLR_DELTA_STACK_LEN 109 PAX_ASLR_DELTA_STACK_LEN
110 PAX_ASLR_DELTA_PROG_LEN 110 PAX_ASLR_DELTA_PROG_LEN
111 111
112defflag opt_fileassoc.h FILEASSOC 112defflag opt_fileassoc.h FILEASSOC
113 113
114defflag opt_gre.h GRE_DEBUG 114defflag opt_gre.h GRE_DEBUG
115 115
116# Write Ahead Physical Block Logging 116# Write Ahead Physical Block Logging
117defflag opt_wapbl.h WAPBL WAPBL_DEBUG 117defflag opt_wapbl.h WAPBL WAPBL_DEBUG
118defparam opt_wapbl.h WAPBL_DEBUG_PRINT 118defparam opt_wapbl.h WAPBL_DEBUG_PRINT
119 119
120# compatibility options 120# compatibility options
121# 121#
122defflag opt_sa.h KERN_SA 122defflag opt_sa.h KERN_SA
123defflag opt_compat_netbsd.h COMPAT_NETBSD 123defflag opt_compat_netbsd.h COMPAT_NETBSD
124defflag opt_compat_netbsd.h COMPAT_50: COMPAT_NETBSD 124defflag opt_compat_netbsd.h COMPAT_50: COMPAT_NETBSD
125defflag opt_compat_netbsd.h COMPAT_40: COMPAT_50, KERN_SA, COMPAT_NETBSD 125defflag opt_compat_netbsd.h COMPAT_40: COMPAT_50, KERN_SA, COMPAT_NETBSD
126defflag opt_compat_netbsd.h COMPAT_30: COMPAT_40, COMPAT_NETBSD 126defflag opt_compat_netbsd.h COMPAT_30: COMPAT_40, COMPAT_NETBSD
127defflag opt_compat_netbsd.h COMPAT_20: COMPAT_30, COMPAT_NETBSD 127defflag opt_compat_netbsd.h COMPAT_20: COMPAT_30, COMPAT_NETBSD
128defflag opt_compat_netbsd.h COMPAT_16: COMPAT_20, COMPAT_NETBSD 128defflag opt_compat_netbsd.h COMPAT_16: COMPAT_20, COMPAT_NETBSD
129defflag opt_compat_netbsd.h COMPAT_15: COMPAT_16, COMPAT_NETBSD 129defflag opt_compat_netbsd.h COMPAT_15: COMPAT_16, COMPAT_NETBSD
130defflag opt_compat_netbsd.h COMPAT_14: COMPAT_15, COMPAT_NETBSD 130defflag opt_compat_netbsd.h COMPAT_14: COMPAT_15, COMPAT_NETBSD
131defflag opt_compat_netbsd.h COMPAT_13: COMPAT_14, COMPAT_NETBSD 131defflag opt_compat_netbsd.h COMPAT_13: COMPAT_14, COMPAT_NETBSD
132defflag opt_compat_netbsd.h COMPAT_12: COMPAT_13, COMPAT_NETBSD 132defflag opt_compat_netbsd.h COMPAT_12: COMPAT_13, COMPAT_NETBSD
133defflag opt_compat_netbsd.h COMPAT_11: COMPAT_12, COMPAT_NETBSD 133defflag opt_compat_netbsd.h COMPAT_11: COMPAT_12, COMPAT_NETBSD
134defflag opt_compat_netbsd.h COMPAT_10: COMPAT_11, COMPAT_NETBSD 134defflag opt_compat_netbsd.h COMPAT_10: COMPAT_11, COMPAT_NETBSD
135defflag opt_compat_netbsd.h COMPAT_09: COMPAT_10, COMPAT_NETBSD 135defflag opt_compat_netbsd.h COMPAT_09: COMPAT_10, COMPAT_NETBSD
136defflag COMPAT_OSSAUDIO 136defflag COMPAT_OSSAUDIO
137defflag COMPAT_FREEBSD: COMPAT_30 137defflag COMPAT_FREEBSD: COMPAT_30
138defflag COMPAT_IBCS2 138defflag COMPAT_IBCS2
139defflag COMPAT_IRIX 139defflag COMPAT_IRIX
140defflag COMPAT_LINUX: COMPAT_16 140defflag COMPAT_LINUX: COMPAT_16
141defflag COMPAT_LINUX32 141defflag COMPAT_LINUX32
142defflag COMPAT_OSF1 142defflag COMPAT_OSF1
143defflag COMPAT_SUNOS: COMPAT_30 143defflag COMPAT_SUNOS: COMPAT_30
144defflag opt_compat_svr4.h COMPAT_SVR4 COMPAT_SVR4_32 SVR4_COMPAT_SOLARIS2 144defflag opt_compat_svr4.h COMPAT_SVR4 COMPAT_SVR4_32 SVR4_COMPAT_SOLARIS2
145defflag COMPAT_ULTRIX: COMPAT_50 145defflag COMPAT_ULTRIX: COMPAT_50
146defflag COMPAT_NETBSD32 146defflag COMPAT_NETBSD32
147defflag COMPAT_AOUT_M68K: COMPAT_40 147defflag COMPAT_AOUT_M68K: COMPAT_40
148defflag COMPAT_M68K4K 148defflag COMPAT_M68K4K
149defflag COMPAT_MACH 149defflag COMPAT_MACH
150defflag COMPAT_DARWIN 150defflag COMPAT_DARWIN
151defflag COMPAT_VAX1K 151defflag COMPAT_VAX1K
152defflag COMPAT_43 152defflag COMPAT_43
153defflag COMPAT_PECOFF 153defflag COMPAT_PECOFF
154defflag opt_compat_netbsd.h COMPAT_NOMID 154defflag opt_compat_netbsd.h COMPAT_NOMID
155 155
156# 156#
157# Cryptography support. Include this early, since several things 157# Cryptography support. Include this early, since several things
158# use it. 158# use it.
159 159
160# Individual crypto transforms 160# Individual crypto transforms
161include "crypto/arc4/files.arc4" 161include "crypto/arc4/files.arc4"
162include "crypto/des/files.des" 162include "crypto/des/files.des"
163include "crypto/blowfish/files.blowfish" 163include "crypto/blowfish/files.blowfish"
164include "crypto/cast128/files.cast128" 164include "crypto/cast128/files.cast128"
165include "crypto/rijndael/files.rijndael" 165include "crypto/rijndael/files.rijndael"
166include "crypto/skipjack/files.skipjack" 166include "crypto/skipjack/files.skipjack"
167 167
168# General-purpose crypto processing framework. 168# General-purpose crypto processing framework.
169include "opencrypto/files.opencrypto" 169include "opencrypto/files.opencrypto"
170 170
171# 171#
172# System monitoring framework 172# System monitoring framework
173# 173#
174include "dev/sysmon/files.sysmon" 174include "dev/sysmon/files.sysmon"
175 175
176# 176#
177# Networking protocols 177# Networking protocols
178# 178#
179include "net80211/files.net80211" 179include "net80211/files.net80211"
180include "netatalk/files.netatalk" 180include "netatalk/files.netatalk"
181include "netbt/files.netbt" 181include "netbt/files.netbt"
182include "netinet/files.netinet" 182include "netinet/files.netinet"
183include "netinet/files.ipfilter" 183include "netinet/files.ipfilter"
184include "netinet6/files.netinet6" 184include "netinet6/files.netinet6"
185include "netinet6/files.ipsec" 185include "netinet6/files.ipsec"
186include "netipsec/files.netipsec" 186include "netipsec/files.netipsec"
187include "netiso/files.netiso" 187include "netiso/files.netiso"
188include "netnatm/files.netnatm" 188include "netnatm/files.netnatm"
189include "netsmb/files.netsmb" 189include "netsmb/files.netsmb"
190include "net/files.pf" 190include "net/files.pf"
191 191
192obsolete defflag CCITT # obsolete 192obsolete defflag CCITT # obsolete
193obsolete defflag HDLC # obsolete 193obsolete defflag HDLC # obsolete
194obsolete defflag LLC # obsolete 194obsolete defflag LLC # obsolete
195obsolete defflag opt_ns.h NS NSIP # obsolete 195obsolete defflag opt_ns.h NS NSIP # obsolete
196obsolete defflag IPX # obsolete 196obsolete defflag IPX # obsolete
197obsolete defflag opt_iso.h TPCONS 197obsolete defflag opt_iso.h TPCONS
198obsolete defparam opt_md.h MEMORY_RBFLAGS # superseded by 198obsolete defparam opt_md.h MEMORY_RBFLAGS # superseded by
199 # MEMORY_DISK_RBFLAGS 199 # MEMORY_DISK_RBFLAGS
200 200
201defflag PFIL_HOOKS # pfil(9) 201defflag PFIL_HOOKS # pfil(9)
202defflag opt_bridge_ipf.h BRIDGE_IPF # bridge(4) use inet_pfil_hooks 202defflag opt_bridge_ipf.h BRIDGE_IPF # bridge(4) use inet_pfil_hooks
203defflag opt_ppp.h PPP_DEFLATE PPP_BSDCOMP PPP_FILTER 203defflag opt_ppp.h PPP_DEFLATE PPP_BSDCOMP PPP_FILTER
204 # Include deflate or bsd 204 # Include deflate or bsd
205 # compression, enable pppd 205 # compression, enable pppd
206 # packet filtering support 206 # packet filtering support
207defflag opt_pppoe.h PPPOE_SERVER PPPOE_TERM_UNKNOWN_SESSIONS 207defflag opt_pppoe.h PPPOE_SERVER PPPOE_TERM_UNKNOWN_SESSIONS
208 208
209# networking options 209# networking options
210# 210#
211defflag GATEWAY 211defflag GATEWAY
212defparam opt_nmbclusters.h NMBCLUSTERS 212defparam opt_nmbclusters.h NMBCLUSTERS
213defparam SB_MAX 213defparam SB_MAX
214 214
215# file system options 215# file system options
216# 216#
217defflag QUOTA # XXX files.ufs? 217defflag QUOTA # XXX files.ufs?
218defflag VNODE_LOCKDEBUG 218defflag VNODE_LOCKDEBUG
219defflag MAGICLINKS 219defflag MAGICLINKS
220 220
221# buffer cache size options 221# buffer cache size options
222# 222#
223defparam opt_bufcache.h BUFCACHE BUFPAGES 223defparam opt_bufcache.h BUFCACHE BUFPAGES
224 224
225# userconf 225# userconf
226# 226#
227defflag USERCONF 227defflag USERCONF
228 228
229# sysctl related 229# sysctl related
230# 230#
231defflag opt_sysctl.h SYSCTL_DISALLOW_CREATE SYSCTL_DISALLOW_KWRITE 231defflag opt_sysctl.h SYSCTL_DISALLOW_CREATE SYSCTL_DISALLOW_KWRITE
232 SYSCTL_DEBUG_SETUP SYSCTL_DEBUG_CREATE 232 SYSCTL_DEBUG_SETUP SYSCTL_DEBUG_CREATE
233 SYSCTL_INCLUDE_DESCR 233 SYSCTL_INCLUDE_DESCR
234 234
235# 235#
236# Not entirely MI, but present on multiple arch's 236# Not entirely MI, but present on multiple arch's
237# 237#
238 238
239# PC-style MBR handling 239# PC-style MBR handling
240# 240#
241defflag opt_mbr.h COMPAT_386BSD_MBRPART 241defflag opt_mbr.h COMPAT_386BSD_MBRPART
242 242
243# 243#
244# debugging options 244# debugging options
245# 245#
246include "ddb/files.ddb" # in-kernel dynamic debugger 246include "ddb/files.ddb" # in-kernel dynamic debugger
247 247
248defflag opt_kgdb.h KGDB 248defflag opt_kgdb.h KGDB
249defparam opt_kgdb.h KGDB_DEV KGDB_DEVNAME KGDB_DEVPORT 249defparam opt_kgdb.h KGDB_DEV KGDB_DEVNAME KGDB_DEVPORT
250 KGDB_DEVADDR KGDB_DEVRATE KGDB_DEVMODE 250 KGDB_DEVADDR KGDB_DEVRATE KGDB_DEVMODE
251defflag LOCKDEBUG 251defflag LOCKDEBUG
252defflag SYSCALL_DEBUG 252defflag SYSCALL_DEBUG
253defflag opt_kstack.h KSTACK_CHECK_MAGIC 253defflag opt_kstack.h KSTACK_CHECK_MAGIC
254 254
255# memory (ram) disk options 255# memory (ram) disk options
256# 256#
257defflag opt_md.h MEMORY_DISK_HOOKS MEMORY_DISK_IS_ROOT 257defflag opt_md.h MEMORY_DISK_HOOKS MEMORY_DISK_IS_ROOT
258 MEMORY_DISK_DYNAMIC 258 MEMORY_DISK_DYNAMIC
259defparam opt_md.h MEMORY_DISK_SERVER=1 MEMORY_DISK_ROOT_SIZE 259defparam opt_md.h MEMORY_DISK_SERVER=1 MEMORY_DISK_ROOT_SIZE
260 MEMORY_DISK_RBFLAGS 260 MEMORY_DISK_RBFLAGS
261 261
262defflag opt_tftproot.h TFTPROOT TFTPROOT_DEBUG 262defflag opt_tftproot.h TFTPROOT TFTPROOT_DEBUG
263 263
264# Support for hardware performance monitoring counters 264# Support for hardware performance monitoring counters
265# 265#
266defflag opt_perfctrs.h PERFCTRS 266defflag opt_perfctrs.h PERFCTRS
267 267
268defflag opt_wlan.h WLAN 268defflag opt_wlan.h WLAN
269 269
270# Machine-independent device majors assignements 270# Machine-independent device majors assignements
271include "conf/majors" 271include "conf/majors"
272 272
273# generic attributes 273# generic attributes
274# 274#
275define audiobus { } 275define audiobus { }
276define midibus { } 276define midibus { }
277define midisyn 277define midisyn
278define videobus { } 278define videobus { }
279define ata {[channel = -1]} 279define ata {[channel = -1]}
280define sata 280define sata
281define sata_fis 281define sata_fis
282define scsi_core 282define scsi_core
283define scsi {[channel = -1]}: scsi_core 283define scsi {[channel = -1]}: scsi_core
284define ata_hl {[drive = -1]} 284define ata_hl {[drive = -1]}
285define atapi { } 285define atapi { }
286define radiodev { } 286define radiodev { }
287define gpibdev {[address = -1]} 287define gpibdev {[address = -1]}
288define gpiobus { } 288define gpiobus { }
289define onewirebus { } 289define onewirebus { }
290define pckbport {[slot = -1]} 290define pckbport {[slot = -1]}
291define pckbport_machdep_cnattach 291define pckbport_machdep_cnattach
292define firmload 292define firmload
293 293
294# audio device attributes 294# audio device attributes
295# 295#
296define mulaw 296define mulaw
297define auconv 297define auconv
298define aurateconv 298define aurateconv
299 299
300# audio and midi devices, attaches to audio hardware driver 300# audio and midi devices, attaches to audio hardware driver
301# 301#
302device audio: audiodev 302device audio: audiodev
303attach audio at audiobus 303attach audio at audiobus
304device midi 304device midi
305attach midi at midibus 305attach midi at midibus
306 306
307# console bell via audio device 307# console bell via audio device
308# 308#
309define audiobell 309define audiobell
310 310
311# video devices, attaches to video hardware driver 311# video devices, attaches to video hardware driver
312# 312#
313device video 313device video
314attach video at videobus 314attach video at videobus
315 315
316# National Semiconductor LM7[89] 316# National Semiconductor LM7[89]
317# 317#
318# (included here so files.i2c can define an attachment) 318# (included here so files.i2c can define an attachment)
319 319
320device lm: sysmon_envsys 320device lm: sysmon_envsys
321file dev/ic/nslm7x.c lm needs-flag 321file dev/ic/nslm7x.c lm needs-flag
322 322
323# I2C device support 323# I2C device support
324include "dev/i2c/files.i2c" 324include "dev/i2c/files.i2c"
325 325
326# SPI device support 326# SPI device support
327include "dev/spi/files.spi" 327include "dev/spi/files.spi"
328 328
329# IR device support 329# IR device support
330include "dev/ir/files.ir" 330include "dev/ir/files.ir"
331 331
332# Parallel Port Bus support 332# Parallel Port Bus support
333include "dev/ppbus/files.ppbus" 333include "dev/ppbus/files.ppbus"
334 334
335# raster operations attributes 335# raster operations attributes
336# 336#
337define rasops1 337define rasops1
338define rasops2 338define rasops2
339define rasops4 339define rasops4
340define rasops8 340define rasops8
341define rasops15 341define rasops15
342define rasops16 342define rasops16
343define rasops24 343define rasops24
344define rasops32 344define rasops32
345define rasops_rotation 345define rasops_rotation
346 346
347# splash screen support 347# splash screen support
348include "dev/splash/files.splash" 348include "dev/splash/files.splash"
349 349
350# videomode support 350# videomode support
351include "dev/videomode/files.videomode" 351include "dev/videomode/files.videomode"
352 352
353# net device attributes - we have generic code for arc(net), ether(net), 353# net device attributes - we have generic code for arc(net), ether(net),
354# fddi, token ring, atm and eco(net). 354# fddi, token ring, atm and eco(net).
355# 355#
356define arcnet 356define arcnet
357define atm 357define atm
358define eco 358define eco
359define ether 359define ether
360define fddi 360define fddi
361define hippi 361define hippi
362define ieee1394 362define ieee1394
363define token 363define token
364define sppp 364define sppp
365define wlan: arc4, rijndael 365define wlan: arc4, rijndael
366define crypto 366define crypto
367 367
368# devices ARPing IPv4 pull this in: 368# devices ARPing IPv4 pull this in:
369# 369#
370define arp 370define arp
371 371
372# 372#
373# ALTQ network traffic shaping subsystem 373# ALTQ network traffic shaping subsystem
374# 374#
375include "altq/files.altq" 375include "altq/files.altq"
376 376
377# 377#
378# IPKDB kernel debugger 378# IPKDB kernel debugger
379# 379#
380include "ipkdb/files.ipkdb" 380include "ipkdb/files.ipkdb"
381 381
382# Logical disk 382# Logical disk
383# 383#
384device ld: disk 384device ld: disk
385file dev/ld.c ld needs-flag 385file dev/ld.c ld needs-flag
386 386
387# 387#
388# MII/PHY support for network devices 388# MII/PHY support for network devices
389# 389#
390include "dev/mii/files.mii" 390include "dev/mii/files.mii"
391 391
392# 392#
393# RAIDframe 393# RAIDframe
394# 394#
395include "dev/raidframe/files.raidframe" 395include "dev/raidframe/files.raidframe"
396 396
397# 397#
398# Hardware-assisted data mover API 398# Hardware-assisted data mover API
399# 399#
400include "dev/dmover/files.dmover" 400include "dev/dmover/files.dmover"
401 401
402# 402#
403# "Chipset" drivers. These are the bus-independent routines which 403# "Chipset" drivers. These are the bus-independent routines which
404# contain the cfdrivers. Attachments are provided by files.<bus> 404# contain the cfdrivers. Attachments are provided by files.<bus>
405# 405#
406 406
407# Adaptec AIC-6[32]60 ICs 407# Adaptec AIC-6[32]60 ICs
408# 408#
409device aic: scsi 409device aic: scsi
410file dev/ic/aic6360.c aic 410file dev/ic/aic6360.c aic
411 411
412# SMC 93Cx6 Serial EEPROM devices 412# SMC 93Cx6 Serial EEPROM devices
413# 413#
414define smc93cx6 414define smc93cx6
415file dev/ic/smc93cx6.c smc93cx6 415file dev/ic/smc93cx6.c smc93cx6
416 416
417# Adaptec 2[789]4X, 394X, aic7770 and aic78[5678]0 SCSI controllers 417# Adaptec 2[789]4X, 394X, aic7770 and aic78[5678]0 SCSI controllers
418# 418#
419defparam opt_ahc.h AHC_DEBUG 419defparam opt_ahc.h AHC_DEBUG
420defflag opt_ahc.h AHC_NO_TAGS 420defflag opt_ahc.h AHC_NO_TAGS
421device ahc: scsi 421device ahc: scsi
422define ahc_seeprom 422define ahc_seeprom
423define ahc_aic77xx 423define ahc_aic77xx
424file dev/ic/aic7xxx.c ahc 424file dev/ic/aic7xxx.c ahc
425file dev/ic/aic7xxx_osm.c ahc 425file dev/ic/aic7xxx_osm.c ahc
426file dev/ic/aic7xxx_seeprom.c ahc_seeprom 426file dev/ic/aic7xxx_seeprom.c ahc_seeprom
427file dev/ic/aic77xx.c ahc_aic77xx 427file dev/ic/aic77xx.c ahc_aic77xx
428 428
429# Adaptec aic79xx SCSI controllers 429# Adaptec aic79xx SCSI controllers
430defflag opt_ahd.h AHD_DEBUG 430defflag opt_ahd.h AHD_DEBUG
431device ahd: scsi 431device ahd: scsi
432file dev/ic/aic79xx.c ahd 432file dev/ic/aic79xx.c ahd
433file dev/ic/aic79xx_osm.c ahd 433file dev/ic/aic79xx_osm.c ahd
434 434
435# DPT EATA SCSI controllers 435# DPT EATA SCSI controllers
436# 436#
437device dpt: scsi 437device dpt: scsi
438file dev/ic/dpt.c dpt 438file dev/ic/dpt.c dpt
439 439
440# Compaq Smart ARRAY controllers 440# Compaq Smart ARRAY controllers
441# 441#
442device cac {unit = -1} 442device cac {unit = -1}
443file dev/ic/cac.c cac 443file dev/ic/cac.c cac
444 444
445attach ld at cac with ld_cac 445attach ld at cac with ld_cac
446file dev/ic/ld_cac.c ld_cac 446file dev/ic/ld_cac.c ld_cac
447 447
448# HP/Compaq Command Interface for SCSI-3 Support 448# HP/Compaq Command Interface for SCSI-3 Support
449# 449#
450device ciss: scsi 450device ciss: scsi
451file dev/ic/ciss.c ciss 451file dev/ic/ciss.c ciss
452 452
453# Mylex DAC960 RAID controllers 453# Mylex DAC960 RAID controllers
454# 454#
455device mlx {unit = -1} 455device mlx {unit = -1}
456file dev/ic/mlx.c mlx needs-flag 456file dev/ic/mlx.c mlx needs-flag
457 457
458attach ld at mlx with ld_mlx 458attach ld at mlx with ld_mlx
459file dev/ic/ld_mlx.c ld_mlx 459file dev/ic/ld_mlx.c ld_mlx
460 460
461# ICP-Vortex/Intel RAID controllers 461# ICP-Vortex/Intel RAID controllers
462# 462#
463device icp {unit = -1} 463device icp {unit = -1}
464file dev/ic/icp.c icp needs-flag 464file dev/ic/icp.c icp needs-flag
465file dev/ic/icp_ioctl.c icp 465file dev/ic/icp_ioctl.c icp
466 466
467attach ld at icp with ld_icp 467attach ld at icp with ld_icp
468file dev/ic/ld_icp.c ld_icp 468file dev/ic/ld_icp.c ld_icp
469 469
470device icpsp: scsi 470device icpsp: scsi
471file dev/ic/icpsp.c icpsp 471file dev/ic/icpsp.c icpsp
472attach icpsp at icp 472attach icpsp at icp
473 473
474# Adaptec FSA RAID controllers 474# Adaptec FSA RAID controllers
475# 475#
476device aac {unit = -1} 476device aac {unit = -1}
477file dev/ic/aac.c aac 477file dev/ic/aac.c aac
478 478
479attach ld at aac with ld_aac 479attach ld at aac with ld_aac
480file dev/ic/ld_aac.c ld_aac 480file dev/ic/ld_aac.c ld_aac
481 481
482# AdvanSys 1200A, 1200B and ULTRA SCSI controllers 482# AdvanSys 1200A, 1200B and ULTRA SCSI controllers
483# 483#
484device adv: scsi 484device adv: scsi
485file dev/ic/adv.c adv 485file dev/ic/adv.c adv
486file dev/ic/advlib.c adv 486file dev/ic/advlib.c adv
487file dev/ic/advmcode.c adv 487file dev/ic/advmcode.c adv
488 488
489# AdvanSys ULTRA WIDE SCSI controllers 489# AdvanSys ULTRA WIDE SCSI controllers
490# 490#
491device adw: scsi 491device adw: scsi
492file dev/ic/adw.c adw 492file dev/ic/adw.c adw
493 493
494# BusLogic MultiMaster and MultiMaster Ultra SCSI controllers 494# BusLogic MultiMaster and MultiMaster Ultra SCSI controllers
495# (Must be declared before AHA to ensure bha probes before aha. 495# (Must be declared before AHA to ensure bha probes before aha.
496# Probing AHA first configures bhas as aha, via their AHA 496# Probing AHA first configures bhas as aha, via their AHA
497# hardware-compatibility mode.) 497# hardware-compatibility mode.)
498# 498#
499device bha: scsi 499device bha: scsi
500file dev/ic/bha.c bha 500file dev/ic/bha.c bha
501 501
502# Adaptec AHA-154x and AHA-164x controllers 502# Adaptec AHA-154x and AHA-164x controllers
503# (must be after bha, see above) 503# (must be after bha, see above)
504# 504#
505device aha: scsi 505device aha: scsi
506file dev/ic/aha.c aha 506file dev/ic/aha.c aha
507 507
508# Initio INIC-940/950 SCSI controllers 508# Initio INIC-940/950 SCSI controllers
509# 509#
510device iha: scsi 510device iha: scsi
511file dev/ic/iha.c iha 511file dev/ic/iha.c iha
512 512
513# Qlogic ISP 10x0 SCSI Controllers 513# Qlogic ISP 10x0 SCSI Controllers
514# 514#
515defflag opt_isp.h ISP_DISABLE_1020_SUPPORT 515defflag opt_isp.h ISP_DISABLE_1020_SUPPORT
516 ISP_DISABLE_1080_SUPPORT 516 ISP_DISABLE_1080_SUPPORT
517 ISP_DISABLE_2100_SUPPORT 517 ISP_DISABLE_2100_SUPPORT
518 ISP_DISABLE_2200_SUPPORT 518 ISP_DISABLE_2200_SUPPORT
519 ISP_DISABLE_2300_SUPPORT 519 ISP_DISABLE_2300_SUPPORT
520 ISP_DISABLE_2322_SUPPORT 520 ISP_DISABLE_2322_SUPPORT
521 ISP_DISABLE_2400_SUPPORT 521 ISP_DISABLE_2400_SUPPORT
522 ISP_DISABLE_FW 522 ISP_DISABLE_FW
523 ISP_TARGET_MODE 523 ISP_TARGET_MODE
524defparam opt_isp.h ISP_LOGDEFAULT 524defparam opt_isp.h ISP_LOGDEFAULT
525 ISP_VPORTS 525 ISP_VPORTS
526device isp: scsi 526device isp: scsi
527file dev/ic/isp.c isp 527file dev/ic/isp.c isp
528file dev/ic/isp_library.c isp 528file dev/ic/isp_library.c isp
529file dev/ic/isp_netbsd.c isp 529file dev/ic/isp_netbsd.c isp
530file dev/ic/isp_target.c isp & isp_target_mode 530file dev/ic/isp_target.c isp & isp_target_mode
531# LSILogic MegaRAID SAS 531# LSILogic MegaRAID SAS
532# 532#
533device mfi: scsi 533device mfi: scsi
534file dev/ic/mfi.c mfi 534file dev/ic/mfi.c mfi
535 535
536# LSILogic Fusion-MPT I/O Processor SCSI/FC Controllers 536# LSILogic Fusion-MPT I/O Processor SCSI/FC Controllers
537# 537#
538device mpt: scsi 538device mpt: scsi
539file dev/ic/mpt.c mpt 539file dev/ic/mpt.c mpt
540file dev/ic/mpt_debug.c mpt 540file dev/ic/mpt_debug.c mpt
541file dev/ic/mpt_netbsd.c mpt 541file dev/ic/mpt_netbsd.c mpt
542 542
543# Workbit NinjaSCSI-32 controllers 543# Workbit NinjaSCSI-32 controllers
544device njs: scsi 544device njs: scsi
545file dev/ic/ninjascsi32.c njs 545file dev/ic/ninjascsi32.c njs
546 546
547# Symbios/NCR 53c700 SCSI controllers 547# Symbios/NCR 53c700 SCSI controllers
548device oosiop: scsi 548device oosiop: scsi
549file dev/ic/oosiop.c oosiop 549file dev/ic/oosiop.c oosiop
550 550
551# Symbios/NCR 53c710 SCSI controllers 551# Symbios/NCR 53c710 SCSI controllers
552# 552#
553device osiop: scsi 553device osiop: scsi
554file dev/ic/osiop.c osiop 554file dev/ic/osiop.c osiop
555 555
556# common stuff for siop and esiop 556# common stuff for siop and esiop
557# 557#
558define siop_common 558define siop_common
559file dev/ic/siop_common.c siop_common 559file dev/ic/siop_common.c siop_common
560 560
561# Symbios/NCR 53c720/53c8xx SCSI controllers 561# Symbios/NCR 53c720/53c8xx SCSI controllers
562# 562#
563device siop: scsi,siop_common 563device siop: scsi,siop_common
564file dev/ic/siop.c siop & (siop_pci | siop_gedoens) 564file dev/ic/siop.c siop & (siop_pci | siop_gedoens)
565defflag opt_siop.h SIOP_SYMLED 565defflag opt_siop.h SIOP_SYMLED
566 566
567device esiop: scsi,siop_common 567device esiop: scsi,siop_common
568file dev/ic/esiop.c esiop 568file dev/ic/esiop.c esiop
569 569
570# UltraStor SCSI controllers 570# UltraStor SCSI controllers
571# 571#
572device uha: scsi 572device uha: scsi
573file dev/ic/uha.c uha 573file dev/ic/uha.c uha
574 574
575# 3Com common probe code 575# 3Com common probe code
576define elink 576define elink
577file dev/isa/elink.c elink 577file dev/isa/elink.c elink
578 578
579# Aironet PC4500/PC4800 579# Aironet PC4500/PC4800
580# 580#
581device an: arp, wlan, ifnet 581device an: arp, wlan, ifnet
582file dev/ic/an.c an 582file dev/ic/an.c an
583 583
584# AMD 79c930-based 802.11 cards 584# AMD 79c930-based 802.11 cards
585# 585#
586device awi: arp, wlan, ifnet 586device awi: arp, wlan, ifnet
587file dev/ic/awi.c awi 587file dev/ic/awi.c awi
588file dev/ic/am79c930.c awi 588file dev/ic/am79c930.c awi
589 589
590# Lucent & Intersil WaveLan IEEE (802.11) 590# Lucent & Intersil WaveLan IEEE (802.11)
591# 591#
592device wi: arp, wlan, ifnet 592device wi: arp, wlan, ifnet
593file dev/ic/wi.c wi 593file dev/ic/wi.c wi
594 594
595# Atheros HAL 595# Atheros HAL
596# 596#
597include "external/isc/atheros_hal/conf/files.ath_hal" 597include "external/isc/atheros_hal/conf/files.ath_hal"
598 598
599# Atheros 5210/5211/5212 multi-mode 802.11 599# Atheros 5210/5211/5212 multi-mode 802.11
600# 600#
601device ath: arp, wlan, ifnet 601device ath: arp, wlan, ifnet
602file dev/ic/ath.c ath 602file dev/ic/ath.c ath
603file dev/ic/ath_netbsd.c ath 603file dev/ic/ath_netbsd.c ath
604file dev/ic/athrate-sample.c ath 604file dev/ic/athrate-sample.c ath
605 605
606# ADMtek ADM8211 802.11 606# ADMtek ADM8211 802.11
607# 607#
608device atw: arp, wlan, ifnet, smc93cx6 608device atw: arp, wlan, ifnet, smc93cx6
609file dev/ic/atw.c atw 609file dev/ic/atw.c atw
610 610
611# Realtek RTL8180 802.11 611# Realtek RTL8180 802.11
612# 612#
613device rtw: arp, wlan, ifnet, smc93cx6 613device rtw: arp, wlan, ifnet, smc93cx6
614file dev/ic/rtw.c rtw 614file dev/ic/rtw.c rtw
615file dev/ic/rtwphy.c rtw 615file dev/ic/rtwphy.c rtw
616file dev/ic/rtwphyio.c rtw 616file dev/ic/rtwphyio.c rtw
617 617
618# Ralink RT2500/RT2600 802.11 618# Ralink RT2500/RT2600 802.11
619device ral: arp, ether, ifnet, wlan, firmload 619device ral: arp, ether, ifnet, wlan, firmload
620file dev/ic/rt2560.c ral 620file dev/ic/rt2560.c ral
621file dev/ic/rt2661.c ral 621file dev/ic/rt2661.c ral
622 622
623# 3Com Etherlink-III Ethernet controller 623# 3Com Etherlink-III Ethernet controller
624# 624#
625device ep: arp, ether, ifnet, mii, mii_bitbang 625device ep: arp, ether, ifnet, mii, mii_bitbang
626file dev/ic/elink3.c ep 626file dev/ic/elink3.c ep
627 627
628# 3Com EtherLink XL Controller 628# 3Com EtherLink XL Controller
629# 629#
630device ex: arp, ether, ifnet, mii, mii_bitbang 630device ex: arp, ether, ifnet, mii, mii_bitbang
631file dev/ic/elinkxl.c ex 631file dev/ic/elinkxl.c ex
632 632
633# DEC EtherWORKS III (LEMAC) Ethernet controllers 633# DEC EtherWORKS III (LEMAC) Ethernet controllers
634# 634#
635device lc: arp, ether, ifnet 635device lc: arp, ether, ifnet
636file dev/ic/lemac.c lc 636file dev/ic/lemac.c lc
637 637
638# LANCE and PCnet Ethernet controllers 638# LANCE and PCnet Ethernet controllers
639# 639#
640device le: arp, ether, ifnet 640device le: arp, ether, ifnet
641define le24 641define le24
642define le32 642define le32
643file dev/ic/am7990.c le24 643file dev/ic/am7990.c le24
644file dev/ic/am79900.c le32 644file dev/ic/am79900.c le32
645file dev/ic/lance.c le24 | le32 645file dev/ic/lance.c le24 | le32
646 646
647# DEC DEPCA-family of LANCE Ethernet controllers 647# DEC DEPCA-family of LANCE Ethernet controllers
648# 648#
649device depca { }: le24 649device depca { }: le24
650file dev/ic/depca.c depca 650file dev/ic/depca.c depca
651attach le at depca with le_depca 651attach le at depca with le_depca
652 652
653# Sun HME Ethernet controllers 653# Sun HME Ethernet controllers
654# 654#
655device hme: arp, ether, ifnet, mii 655device hme: arp, ether, ifnet, mii
656file dev/ic/hme.c hme 656file dev/ic/hme.c hme
657 657
658# Sun GEM Ethernet controllers 658# Sun GEM Ethernet controllers
659# 659#
660device gem: arp, ether, ifnet, mii 660device gem: arp, ether, ifnet, mii
661file dev/ic/gem.c gem 661file dev/ic/gem.c gem
662 662
663# 8390-family Ethernet controllers 663# 8390-family Ethernet controllers
664# 664#
665defflag opt_ipkdb.h IPKDB_DP8390 665defflag opt_ipkdb.h IPKDB_DP8390
666define dp8390nic 666define dp8390nic
667file dev/ic/dp8390.c dp8390nic | ipkdb_dp8390 667file dev/ic/dp8390.c dp8390nic | ipkdb_dp8390
668 668
669# National Semiconductor DP83905 AT/LANTIC Ethernet media support 669# National Semiconductor DP83905 AT/LANTIC Ethernet media support
670# 670#
671define dp83905 671define dp83905
672file dev/ic/dp83905.c dp83905 672file dev/ic/dp83905.c dp83905
673 673
674# Macronix MX98905 Ethernet controller 674# Macronix MX98905 Ethernet controller
675# (use as an attribute for an "ne" bus attachment) 675# (use as an attribute for an "ne" bus attachment)
676# 676#
677define mx98905 677define mx98905
678file dev/ic/mx98905.c mx98905 678file dev/ic/mx98905.c mx98905
679 679
680# TROPIC Token-Ring controller 680# TROPIC Token-Ring controller
681# 681#
682device tr: arp, token, ifnet 682device tr: arp, token, ifnet
683file dev/ic/tropic.c tr 683file dev/ic/tropic.c tr
684 684
685# NCR 5380 SCSI Bus Controller 685# NCR 5380 SCSI Bus Controller
686# 686#
687define ncr5380sbc 687define ncr5380sbc
688file dev/ic/ncr5380sbc.c ncr5380sbc 688file dev/ic/ncr5380sbc.c ncr5380sbc
689device nca: scsi, ncr5380sbc 689device nca: scsi, ncr5380sbc
690 690
691# Sun sc PAL SCSI Bus Controller 691# Sun sc PAL SCSI Bus Controller
692# 692#
693define sunscpal 693define sunscpal
694file dev/ic/sunscpal.c sunscpal 694file dev/ic/sunscpal.c sunscpal
695device ssc: scsi, sunscpal 695device ssc: scsi, sunscpal
696 696
697# DEC FDDI Chipset 697# DEC FDDI Chipset
698# 698#
699define pdq 699define pdq
700file dev/ic/pdq.c pdq 700file dev/ic/pdq.c pdq
701file dev/ic/pdq_ifsubr.c pdq 701file dev/ic/pdq_ifsubr.c pdq
702 702
703# Cyclades Cyclom-8/16/32 703# Cyclades Cyclom-8/16/32
704# 704#
705device cy: tty 705device cy: tty
706file dev/ic/cy.c cy needs-flag 706file dev/ic/cy.c cy needs-flag
707 707
708# Efficient Networks, Inc. ATM interface 708# Efficient Networks, Inc. ATM interface
709# 709#
710device en: atm, ifnet 710device en: atm, ifnet
711file dev/ic/midway.c en 711file dev/ic/midway.c en
712 712
713# NCR 53x9x or Emulex ESP SCSI Controller 713# NCR 53x9x or Emulex ESP SCSI Controller
714# 714#
715define ncr53c9x 715define ncr53c9x
716device esp: scsi, ncr53c9x 716device esp: scsi, ncr53c9x
717file dev/ic/ncr53c9x.c ncr53c9x 717file dev/ic/ncr53c9x.c ncr53c9x
718 718
719# Fujitsu MB87030/MB89352 SCSI Protocol Controller 719# Fujitsu MB87030/MB89352 SCSI Protocol Controller
720device spc: scsi 720device spc: scsi
721file dev/ic/mb89352.c spc 721file dev/ic/mb89352.c spc
722 722
723# Western Digital WD33C93/WD33C93A SCSI Bus Interface Controller 723# Western Digital WD33C93/WD33C93A SCSI Bus Interface Controller
724define wd33c93 724define wd33c93
725file dev/ic/wd33c93.c wd33c93 725file dev/ic/wd33c93.c wd33c93
726 726
727# Hitachi HD44780 LCD panel controller 727# Hitachi HD44780 LCD panel controller
728define hd44780 728define hd44780
729file dev/ic/hd44780_subr.c hd44780 729file dev/ic/hd44780_subr.c hd44780
730file dev/ic/lcdkp_subr.c hd44780 730file dev/ic/lcdkp_subr.c hd44780
731 731
732# Matrix keypad 732# Matrix keypad
733define matrixkp 733define matrixkp
734file dev/ic/matrixkp_subr.c matrixkp 734file dev/ic/matrixkp_subr.c matrixkp
735 735
736# Hitachi HD64570 serial controller 736# Hitachi HD64570 serial controller
737# 737#
738define hd64570 738define hd64570
739file dev/ic/hd64570.c hd64570 739file dev/ic/hd64570.c hd64570
740 740
741# Riscom/N2 ISA/PCI Sync Serial Controller 741# Riscom/N2 ISA/PCI Sync Serial Controller
742# 742#
743device ntwoc: ifnet, hd64570 743device ntwoc: ifnet, hd64570
744 744
745# Intel 82586 Ethernet Controller 745# Intel 82586 Ethernet Controller
746# 746#
747define i82586 747define i82586
748file dev/ic/i82586.c i82586 748file dev/ic/i82586.c i82586
749 749
750# Intel 82596 Ethernet Controller 750# Intel 82596 Ethernet Controller
751# 751#
752define i82596 752define i82596
753file dev/ic/i82596.c i82596 753file dev/ic/i82596.c i82596
754 754
755# Intel 82557/82558/82559 Ethernet Controller 755# Intel 82557/82558/82559 Ethernet Controller
756# 756#
757device fxp: ether, ifnet, arp, mii 757device fxp: ether, ifnet, arp, mii
758file dev/ic/i82557.c fxp 758file dev/ic/i82557.c fxp
759 759
760# SEEQ 8005 Advanced Ethernet Data Link Controller 760# SEEQ 8005 Advanced Ethernet Data Link Controller
761# 761#
762define seeq8005 762define seeq8005
763file dev/ic/seeq8005.c seeq8005 763file dev/ic/seeq8005.c seeq8005
764 764
765# SMC 91Cxx Ethernet Controller 765# SMC 91Cxx Ethernet Controller
766# 766#
767device sm: arp, ether, ifnet, mii, mii_bitbang 767device sm: arp, ether, ifnet, mii, mii_bitbang
768file dev/ic/smc91cxx.c sm 768file dev/ic/smc91cxx.c sm
769 769
770# SMC 83C170 EPIC/100 Fast Ethernet Controller 770# SMC 83C170 EPIC/100 Fast Ethernet Controller
771# 771#
772device epic: arp, ether, ifnet, mii 772device epic: arp, ether, ifnet, mii
773file dev/ic/smc83c170.c epic 773file dev/ic/smc83c170.c epic
774 774
775# DEC SGEC Second Generation Ethernet Controller 775# DEC SGEC Second Generation Ethernet Controller
776# 776#
777define sgec 777define sgec
778file dev/ic/sgec.c sgec 778file dev/ic/sgec.c sgec
779 779
780# MB86950 Ethernet Controller 780# MB86950 Ethernet Controller
781# 781#
782define mb86950 782define mb86950
783file dev/ic/mb86950.c mb86950 783file dev/ic/mb86950.c mb86950
784 784
785# MB8696x Ethernet Controller 785# MB8696x Ethernet Controller
786# 786#
787define mb86960 787define mb86960
788file dev/ic/mb86960.c mb86960 788file dev/ic/mb86960.c mb86960
789 789
790# Generic MB8696x Ethernet Controller driver 790# Generic MB8696x Ethernet Controller driver
791# 791#
792device mbe: arp, ether, ifnet, mb86960 792device mbe: arp, ether, ifnet, mb86960
793 793
794# Interwave Am78C201 audio driver 794# Interwave Am78C201 audio driver
795# 795#
796define interwave 796define interwave
797file dev/ic/interwave.c interwave 797file dev/ic/interwave.c interwave
798 798
799# TMS 320av110 MPEG2/audio driver 799# TMS 320av110 MPEG2/audio driver
800# 800#
801define tms320av110 801define tms320av110
802file dev/ic/tms320av110.c tms320av110 802file dev/ic/tms320av110.c tms320av110
803 803
804# Novell NE2000-compatible Ethernet cards, based on the 804# Novell NE2000-compatible Ethernet cards, based on the
805# National Semiconductor DS8390. 805# National Semiconductor DS8390.
806# 806#
807defflag opt_ipkdb.h IPKDB_NE : IPKDB_DP8390 807defflag opt_ipkdb.h IPKDB_NE : IPKDB_DP8390
808device ne: ether, ifnet, arp, dp8390nic, mii 808device ne: ether, ifnet, arp, dp8390nic, mii
809file dev/ic/ne2000.c ne | ipkdb_ne 809file dev/ic/ne2000.c ne | ipkdb_ne
810 810
811# 8250/16[45]50-based "com" ports 811# 8250/16[45]50-based "com" ports
812# 812#
813defflag opt_com.h COM_DEBUG 813defflag opt_com.h COM_DEBUG
814# XXX In a perfect world, this would be done with attributes 814# XXX In a perfect world, this would be done with attributes
815defflag opt_com.h COM_16650 COM_HAYESP COM_PXA2X0 COM_AU1X00 815defflag opt_com.h COM_16650 COM_HAYESP COM_PXA2X0 COM_AU1X00
816 COM_REGMAP 816 COM_REGMAP
817device com { } : tty 817device com { } : tty
818file dev/ic/com.c com needs-flag 818file dev/ic/com.c com needs-flag
819 819
820# PC-like keyboard controller 820# PC-like keyboard controller
821# 821#
822device pckbc: pckbport 822device pckbc: pckbport
823file dev/ic/pckbc.c pckbc needs-flag 823file dev/ic/pckbc.c pckbc needs-flag
824 824
825device attimer 825device attimer
826file dev/ic/attimer.c attimer needs-flag 826file dev/ic/attimer.c attimer needs-flag
827 827
828# Cirrus Logic CD240[01] 4-port Multi-Protocol Communications Controller 828# Cirrus Logic CD240[01] 4-port Multi-Protocol Communications Controller
829# 829#
830device clmpcc: tty 830device clmpcc: tty
831file dev/ic/clmpcc.c clmpcc needs-flag 831file dev/ic/clmpcc.c clmpcc needs-flag
832 832
833# Abit uGuru 833# Abit uGuru
834# 834#
835device ug: sysmon_envsys 835device ug: sysmon_envsys
836file dev/ic/ug.c ug needs-flag 836file dev/ic/ug.c ug needs-flag
837 837
838# Essential Communications Corp. HIPPI Interface 838# Essential Communications Corp. HIPPI Interface
839# 839#
840device esh: hippi, ifnet 840device esh: hippi, ifnet
841file dev/ic/rrunner.c esh needs-flag 841file dev/ic/rrunner.c esh needs-flag
842 842
843# SMC 90c26, SMC 90C56 (and 90C66 if in compat mode) chip driver 843# SMC 90c26, SMC 90C56 (and 90C66 if in compat mode) chip driver
844# 844#
845device bah: ifnet, arcnet, arp 845device bah: ifnet, arcnet, arp
846file dev/ic/smc90cx6.c bah 846file dev/ic/smc90cx6.c bah
847 847
848# OPL2/OPL3 FM synth driver 848# OPL2/OPL3 FM synth driver
849# 849#
850device opl: midibus, midisyn 850device opl: midibus, midisyn
851file dev/ic/opl.c opl 851file dev/ic/opl.c opl
852file dev/ic/oplinstrs.c opl 852file dev/ic/oplinstrs.c opl
853 853
854# MPU401 MIDI UART compatibles 854# MPU401 MIDI UART compatibles
855# 855#
856device mpu: midibus 856device mpu: midibus
857file dev/ic/mpu.c mpu needs-flag 857file dev/ic/mpu.c mpu needs-flag
858 858
859# AD1848 (CS4248, CS4231, AD1845) audio codec support; used by other drivers 859# AD1848 (CS4248, CS4231, AD1845) audio codec support; used by other drivers
860# 860#
861define ad1848 861define ad1848
862file dev/ic/ad1848.c ad1848 862file dev/ic/ad1848.c ad1848
863 863
864# AMD 7930 audio/ISDN codec 864# AMD 7930 audio/ISDN codec
865# 865#
866define am7930 866define am7930
867file dev/ic/am7930.c am7930 867file dev/ic/am7930.c am7930
868 868
869# SPARC `SUNW,audiocs' 869# SPARC `SUNW,audiocs'
870# 870#
871device audiocs: audiobus, auconv, ad1848 871device audiocs: audiobus, auconv, ad1848
872file dev/ic/cs4231.c audiocs 872file dev/ic/cs4231.c audiocs
873 873
874# AC-97 CODECs 874# AC-97 CODECs
875# 875#
876define ac97 876define ac97
877file dev/ic/ac97.c ac97 877file dev/ic/ac97.c ac97
878 878
879# Oki MSM6258 support code 879# Oki MSM6258 support code
880# 880#
881define msm6258 881define msm6258
882file dev/ic/msm6258.c msm6258 882file dev/ic/msm6258.c msm6258
883 883
884# LSI64854 DMA controller back-end 884# LSI64854 DMA controller back-end
885# 885#
886define lsi64854 886define lsi64854
887file dev/ic/lsi64854.c lsi64854 887file dev/ic/lsi64854.c lsi64854
888 888
889# Cirrus Logic CL-CD180/1864/1865 multi port serial controller back-end 889# Cirrus Logic CL-CD180/1864/1865 multi port serial controller back-end
890# 890#
891define cd18xx 891define cd18xx
892file dev/ic/cd18xx.c cd18xx 892file dev/ic/cd18xx.c cd18xx
893 893
894# Realtek 8019/8029 NE2000-compatible network interface subroutines 894# Realtek 8019/8029 NE2000-compatible network interface subroutines
895# 895#
896define rtl80x9 896define rtl80x9
897file dev/ic/rtl80x9.c rtl80x9 897file dev/ic/rtl80x9.c rtl80x9
898 898
899# Realtek 8129/8139 Ethernet controllers 899# Realtek 8129/8139 Ethernet controllers
900# 900#
901device rtk: ether, ifnet, arp, mii 901device rtk: ether, ifnet, arp, mii
902file dev/ic/rtl81x9.c rtk | re 902file dev/ic/rtl81x9.c rtk | re
903 903
904# Realtek 8169 Ethernet controllers 904# Realtek 8169 Ethernet controllers
905# 905#
906device re: ether, ifnet, arp, mii 906device re: ether, ifnet, arp, mii
907file dev/ic/rtl8169.c re 907file dev/ic/rtl8169.c re
908 908
909# Common code for ESDI/IDE/etc. controllers 909# Common code for ESDI/IDE/etc. controllers
910# 910#
911define wdc_common 911define wdc_common
912define ata_dma 912define ata_dma
913define ata_udma 913define ata_udma
914define ata_piobm 914define ata_piobm
915device wdc: ata, wdc_common 915device wdc: ata, wdc_common
916 916
917defflag opt_ata.h ATADEBUG 917defflag opt_ata.h ATADEBUG
918 918
919device atabus: atapi,ata_hl 919device atabus: atapi,ata_hl
920attach atabus at ata 920attach atabus at ata
921# The strange expression is to dump ata_* definitions to ata_dma.h. 921# The strange expression is to dump ata_* definitions to ata_dma.h.
922file dev/ic/wdc.c (ata_dma | ata_udma | ata_piobm | atabus) & atabus & wdc_common needs-flag 922file dev/ic/wdc.c (ata_dma | ata_udma | ata_piobm | atabus) & atabus & wdc_common needs-flag
923 923
924# Workbit NinjaATA-32 IDE controllers 924# Workbit NinjaATA-32 IDE controllers
925device njata: ata, ata_piobm, wdc_common 925device njata: ata, ata_piobm, wdc_common
926file dev/ic/ninjaata32.c njata 926file dev/ic/ninjaata32.c njata
927 927
928# CHIPS and Technologies 82C7[12][01] Universal Peripheral Controller 928# CHIPS and Technologies 82C7[12][01] Universal Peripheral Controller
929# 929#
930device upc { [offset = -1] } 930device upc { [offset = -1] }
931attach wdc at upc with wdc_upc 931attach wdc at upc with wdc_upc
932attach com at upc with com_upc 932attach com at upc with com_upc
933attach lpt at upc with lpt_upc 933attach lpt at upc with lpt_upc
934file dev/ic/upc.c upc 934file dev/ic/upc.c upc
935file dev/ic/wdc_upc.c wdc_upc 935file dev/ic/wdc_upc.c wdc_upc
936file dev/ic/com_upc.c com_upc 936file dev/ic/com_upc.c com_upc
937file dev/ic/lpt_upc.c lpt_upc 937file dev/ic/lpt_upc.c lpt_upc
938 938
939# AHCI-compatible SATA controllers 939# AHCI-compatible SATA controllers
940define ahcisata_core 940define ahcisata_core
941file dev/ic/ahcisata_core.c ahcisata_core 941file dev/ic/ahcisata_core.c ahcisata_core
942device ahcisata: ata, ata_dma, ata_udma, sata, sata_fis, ahcisata_core 942device ahcisata: ata, ata_dma, ata_udma, sata, sata_fis, ahcisata_core
943 943
944# Silicon Image SteelVine SATA-II controllers 944# Silicon Image SteelVine SATA-II controllers
945define siisata 945define siisata
946file dev/ic/siisata.c siisata 946file dev/ic/siisata.c siisata
947device siisata: ata, ata_dma, ata_udma, sata, sata_fis, siisata 947device siisata: ata, ata_dma, ata_udma, sata, sata_fis, siisata
948 948
949# Marvell Serial-ATA Host Controller 949# Marvell Serial-ATA Host Controller
950define mvsata 950define mvsata
951file dev/ic/mvsata.c mvsata 951file dev/ic/mvsata.c mvsata
952device mvsata: ata, ata_dma, ata_udma, wdc_common, sata, mvsata 952device mvsata: ata, ata_dma, ata_udma, wdc_common, sata, mvsata
953defflag opt_mvsata.h MVSATA_WITHOUTDMA 953defflag opt_mvsata.h MVSATA_WITHOUTDMA
954 954
955# DECchip 21x4x Ethernet controller family, and assorted clones. 955# DECchip 21x4x Ethernet controller family, and assorted clones.
956# 956#
957device tlp: arp, ether, ifnet, mii, mii_bitbang 957device tlp: arp, ether, ifnet, mii, mii_bitbang
958file dev/ic/tulip.c tlp 958file dev/ic/tulip.c tlp
959 959
960# Adaptec AIC-6915 Ethernet interface 960# Adaptec AIC-6915 Ethernet interface
961# 961#
962device sf: arp, ether, ifnet, mii 962device sf: arp, ether, ifnet, mii
963file dev/ic/aic6915.c sf 963file dev/ic/aic6915.c sf
964 964
965# Mostek time-of-day clock and NVRAM 965# Mostek time-of-day clock and NVRAM
966# 966#
967define mk48txx 967define mk48txx
968file dev/ic/mk48txx.c mk48txx 968file dev/ic/mk48txx.c mk48txx
969 969
970# Intersil 7170 time-of-day clock 970# Intersil 7170 time-of-day clock
971# 971#
972define intersil7170 972define intersil7170
973file dev/ic/intersil7170.c intersil7170 973file dev/ic/intersil7170.c intersil7170
974 974
975# National Semiconductor MM58167 time-of-day clock 975# National Semiconductor MM58167 time-of-day clock
976# 976#
977define mm58167 977define mm58167
978file dev/ic/mm58167.c mm58167 978file dev/ic/mm58167.c mm58167
979 979
980# Motorola mc146818 (and compatible) time-of-day clock 980# Motorola mc146818 (and compatible) time-of-day clock
981# 981#
982define mc146818 982define mc146818
983file dev/ic/mc146818.c mc146818 983file dev/ic/mc146818.c mc146818
984 984
985# Ricoh RS5C313 time of-day-clock 985# Ricoh RS5C313 time of-day-clock
986# 986#
987define rs5c313 987define rs5c313
988file dev/ic/rs5c313.c rs5c313 988file dev/ic/rs5c313.c rs5c313
989 989
990# D-Link DL10019/10022 NE2000-compatible network interface subroutines 990# D-Link DL10019/10022 NE2000-compatible network interface subroutines
991# 991#
992define dl10019 992define dl10019
993file dev/ic/dl10019.c dl10019 993file dev/ic/dl10019.c dl10019
994 994
995# ASIX AX88190 NE2000-compatible network interface subroutines 995# ASIX AX88190 NE2000-compatible network interface subroutines
996# 996#
997define ax88190 997define ax88190
998file dev/ic/ax88190.c ax88190 998file dev/ic/ax88190.c ax88190
999 999
1000# WD/SMC 80x3 family, SMC Elite Ultra [8216], SMC EtherEZ 1000# WD/SMC 80x3 family, SMC Elite Ultra [8216], SMC EtherEZ
1001# 1001#
1002device we: ether, ifnet, arp, dp8390nic 1002device we: ether, ifnet, arp, dp8390nic
1003file dev/ic/we.c we 1003file dev/ic/we.c we
1004 1004
1005# Allied-Telesis Ethernet driver based on Fujitsu MB8696xA controllers 1005# Allied-Telesis Ethernet driver based on Fujitsu MB8696xA controllers
1006# 1006#
1007device ate: arp, ether, ifnet, mb86960 1007device ate: arp, ether, ifnet, mb86960
1008 1008
1009# Fujitsu FMV-18x Ethernet driver based on Fujitsu MB8696xA controllers 1009# Fujitsu FMV-18x Ethernet driver based on Fujitsu MB8696xA controllers
1010# 1010#
1011device fmv: arp, ether, ifnet, mb86960 1011device fmv: arp, ether, ifnet, mb86960
1012file dev/ic/fmv.c fmv 1012file dev/ic/fmv.c fmv
1013 1013
1014# Crystal Semiconductor CS8900, CS8920, and CS8920M Ethernet 1014# Crystal Semiconductor CS8900, CS8920, and CS8920M Ethernet
1015# 1015#
1016device cs: arp, ether, ifnet 1016device cs: arp, ether, ifnet
1017device tscs: arp, ether, ifnet 1017device tscs: arp, ether, ifnet
1018file dev/ic/cs89x0.c cs | tscs 1018file dev/ic/cs89x0.c cs | tscs
1019 1019
1020# Radio device attributes 1020# Radio device attributes
1021# 1021#
1022define tea5757 1022define tea5757
1023file dev/ic/tea5757.c tea5757 1023file dev/ic/tea5757.c tea5757
1024define lm700x 1024define lm700x
1025file dev/ic/lm700x.c lm700x 1025file dev/ic/lm700x.c lm700x
1026 1026
1027# Philips PCF8584 i2c controller 1027# Philips PCF8584 i2c controller
1028define pcf8584 1028define pcf8584
1029file dev/ic/pcf8584.c pcf8584 1029file dev/ic/pcf8584.c pcf8584
1030 1030
1031# ACPI power management timer (hardware access, independent of ACPI) 1031# ACPI power management timer (hardware access, independent of ACPI)
1032# 1032#
1033define acpipmtimer 1033define acpipmtimer
1034file dev/ic/acpipmtimer.c acpipmtimer 1034file dev/ic/acpipmtimer.c acpipmtimer
1035 1035
1036device hpet 1036device hpet
1037file dev/ic/hpet.c hpet needs-flag 1037file dev/ic/hpet.c hpet needs-flag
1038 1038
1039# SMSC LAN9118 Family Ethernet Controller 1039# SMSC LAN9118 Family Ethernet Controller
1040# 1040#
1041device smsh: arp, ether, ifnet 1041device smsh: arp, ether, ifnet
1042file dev/ic/lan9118.c smsh 1042file dev/ic/lan9118.c smsh
1043 1043
1044# DRM - Direct Rendering Infrastructure: dev/drm 1044# DRM - Direct Rendering Infrastructure: dev/drm
1045define drm {} 1045define drm {}
1046include "external/bsd/drm/conf/files.drm" 1046include "external/bsd/drm/conf/files.drm"
1047 1047
1048# Definitions for wscons 1048# Definitions for wscons
1049# device attributes: display, display with emulator, keyboard, and mouse 1049# device attributes: display, display with emulator, keyboard, and mouse
1050# 1050#
1051define wsdisplaydev {[kbdmux = 1]} 1051define wsdisplaydev {[kbdmux = 1]}
1052define wsemuldisplaydev {[console = -1], [kbdmux = 1]} 1052define wsemuldisplaydev {[console = -1], [kbdmux = 1]}
1053define wskbddev {[console = -1], [mux = 1]} 1053define wskbddev {[console = -1], [mux = 1]}
1054define wsmousedev {[mux = 0]} 1054define wsmousedev {[mux = 0]}
1055define vcons 1055define vcons
1056# attribute to pull in raster support 1056# attribute to pull in raster support
1057# 1057#
1058define wsrasteremulops 1058define wsrasteremulops
1059# common PC display functions 1059# common PC display functions
1060# 1060#
1061defflag opt_pcdisplay.h PCDISPLAY_SOFTCURSOR 1061defflag opt_pcdisplay.h PCDISPLAY_SOFTCURSOR
1062define pcdisplayops 1062define pcdisplayops
1063file dev/ic/pcdisplay_subr.c pcdisplayops 1063file dev/ic/pcdisplay_subr.c pcdisplayops
1064file dev/ic/pcdisplay_chars.c pcdisplayops 1064file dev/ic/pcdisplay_chars.c pcdisplayops
1065# an attribute used by arch specific config files to include /dev/fb* (or 1065# an attribute used by arch specific config files to include /dev/fb* (or
1066# equivalent) support - on most archs this is just a NOP (untill, maybe 1066# equivalent) support - on most archs this is just a NOP (untill, maybe
1067# someday when we might make /dev/fb* support MI) 1067# someday when we might make /dev/fb* support MI)
1068define fb 1068define fb
1069# VGA graphics 1069# VGA graphics
1070# 1070#
1071defparam opt_vga.h VGA_CONSOLE_SCREENTYPE 1071defparam opt_vga.h VGA_CONSOLE_SCREENTYPE
1072defflag opt_vga.h VGA_CONSOLE_ATI_BROKEN_FONTSEL 1072defflag opt_vga.h VGA_CONSOLE_ATI_BROKEN_FONTSEL
1073defflag opt_vga.h VGA_RASTERCONSOLE 1073defflag opt_vga.h VGA_RASTERCONSOLE
1074defflag opt_vga.h VGA_RESET 1074defflag opt_vga.h VGA_RESET
1075device vga: displaydev, wsemuldisplaydev, pcdisplayops, drm 1075device vga: displaydev, wsemuldisplaydev, pcdisplayops, drm
1076file dev/ic/vga.c vga & !vga_rasterconsole needs-flag 1076file dev/ic/vga.c vga & !vga_rasterconsole needs-flag
1077file dev/ic/vga_raster.c vga_rasterconsole needs-flag 1077file dev/ic/vga_raster.c vga_rasterconsole needs-flag
1078file dev/ic/vga_subr.c vga | vga_rasterconsole 1078file dev/ic/vga_subr.c vga | vga_rasterconsole
1079file dev/ic/vga_common.c vga | vga_rasterconsole 1079file dev/ic/vga_common.c vga | vga_rasterconsole
1080# Integraphics Systems IGA168x and CyberPro framebuffers (linear non-VGA mode) 1080# Integraphics Systems IGA168x and CyberPro framebuffers (linear non-VGA mode)
1081# 1081#
1082device igsfb: wsemuldisplaydev, wsrasteremulops, rasops8, vcons 1082device igsfb: wsemuldisplaydev, wsrasteremulops, rasops8, vcons
1083file dev/ic/igsfb.c igsfb needs-flag 1083file dev/ic/igsfb.c igsfb needs-flag
1084file dev/ic/igsfb_subr.c igsfb 1084file dev/ic/igsfb_subr.c igsfb
1085 1085
1086# STI (hp graphics) 1086# STI (hp graphics)
1087device sti: wsemuldisplaydev 1087device sti: wsemuldisplaydev
1088file dev/ic/sti.c sti & (sti_pci | sti_gedoens) 1088file dev/ic/sti.c sti & (sti_pci | sti_gedoens)
1089 1089
1090include "dev/wscons/files.wscons" 1090include "dev/wscons/files.wscons"
1091include "dev/rasops/files.rasops" 1091include "dev/rasops/files.rasops"
1092include "dev/wsfont/files.wsfont" 1092include "dev/wsfont/files.wsfont"
1093include "dev/wsfb/files.wsfb" 1093include "dev/wsfb/files.wsfb"
1094 1094
1095# Attributes which machine-independent bus support can be attached to. 1095# Attributes which machine-independent bus support can be attached to.
1096# These should be defined here, because some of these busses can have 1096# These should be defined here, because some of these busses can have
1097# devices which provide these attributes, and we'd like to avoid hairy 1097# devices which provide these attributes, and we'd like to avoid hairy
1098# ordering constraints on inclusion of the busses' "files" files. 1098# ordering constraints on inclusion of the busses' "files" files.
1099# 1099#
1100define isabus { } # ISA attachment 1100define isabus { } # ISA attachment
1101define eisabus { } # EISA attachment 1101define eisabus { } # EISA attachment
1102define pcibus {[bus = -1]} # PCI attachment 1102define pcibus {[bus = -1]} # PCI attachment
1103define tcbus { } # TurboChannel attachment 1103define tcbus { } # TurboChannel attachment
1104define mcabus { } # MicroChannel attachment 1104define mcabus { } # MicroChannel attachment
1105define usbus { } # USB attachment 1105define usbus { } # USB attachment
1106define fwbus { } # IEEE 1394 attachment 1106define fwbus { } # IEEE 1394 attachment
1107define vmebus { } # VME bus attachment 1107define vmebus { } # VME bus attachment
1108define acpibus { } # ACPI "bus" attachment 1108define acpibus { } # ACPI "bus" attachment
1109define pcmciabus { [controller = -1], [socket = -1]} # PCMCIA bus attachment 1109define pcmciabus { [controller = -1], [socket = -1]} # PCMCIA bus attachment
1110define cbbus { } # CardBus attachment 1110define cbbus { } # CardBus attachment
1111define pcmciaslot { } # PCMCIA slot itself 1111define pcmciaslot { } # PCMCIA slot itself
1112define sdmmcbus { } # SD/MMC attachment 1112define sdmmcbus { } # SD/MMC attachment
1113 1113
1114# We need the USB bus controllers here so different busses can 1114# We need the USB bus controllers here so different busses can
1115# use them in an 'attach-with'. 1115# use them in an 'attach-with'.
1116# UHCI USB controller 1116# UHCI USB controller
1117# 1117#
1118 1118
1119defparam USB_MEM_RESERVE 1119defparam USB_MEM_RESERVE
1120 1120
1121define usbroothub 1121define usbroothub
1122file dev/usb/usbroothub_subr.c usbroothub 1122file dev/usb/usbroothub_subr.c usbroothub
1123 1123
1124device uhci: usbus, usbroothub 1124device uhci: usbus, usbroothub
1125file dev/usb/uhci.c uhci needs-flag 1125file dev/usb/uhci.c uhci needs-flag
1126 1126
1127# OHCI USB controller 1127# OHCI USB controller
1128# 1128#
1129device ohci: usbus, usbroothub 1129device ohci: usbus, usbroothub
1130file dev/usb/ohci.c ohci needs-flag 1130file dev/usb/ohci.c ohci needs-flag
1131 1131
1132# EHCI USB controller 1132# EHCI USB controller
1133# 1133#
1134device ehci: usbus, usbroothub 1134device ehci: usbus, usbroothub
1135file dev/usb/ehci.c ehci needs-flag 1135file dev/usb/ehci.c ehci needs-flag
1136 1136
1137# SL811HS/T USB controller 1137# SL811HS/T USB controller
1138defflag opt_slhci.h SLHCI_DEBUG SLHCI_TRY_LSVH SLHCI_PROFILE_TRANSFER 1138defflag opt_slhci.h SLHCI_DEBUG SLHCI_TRY_LSVH SLHCI_PROFILE_TRANSFER
1139device slhci: usbus, usbroothub 1139device slhci: usbus, usbroothub
1140file dev/ic/sl811hs.c slhci needs-flag 1140file dev/ic/sl811hs.c slhci needs-flag
1141 1141
1142# USB HID processing (as used by bluetooth and usb code) 1142# USB HID processing (as used by bluetooth and usb code)
1143define hid 1143define hid
1144file dev/usb/hid.c hid 1144file dev/usb/hid.c hid
1145 1145
1146# SD Host controller 1146# SD Host controller
1147device sdhc: sdmmcbus 1147device sdhc: sdmmcbus
1148file dev/sdmmc/sdhc.c sdhc needs-flag 1148file dev/sdmmc/sdhc.c sdhc needs-flag
1149 1149
 1150# Winbond Integrated Media Reader
 1151device wb: sdmmcbus
 1152file dev/ic/w83l518d.c wb
 1153file dev/ic/w83l518d_sdmmc.c wb
 1154
1150# Myson MTD803 3-in-1 Fast Ethernet Controller 1155# Myson MTD803 3-in-1 Fast Ethernet Controller
1151device mtd: arp, ether, ifnet, mii 1156device mtd: arp, ether, ifnet, mii
1152file dev/ic/mtd803.c mtd 1157file dev/ic/mtd803.c mtd
1153 1158
1154# radio devices, attaches to radio hardware driver 1159# radio devices, attaches to radio hardware driver
1155device radio 1160device radio
1156attach radio at radiodev 1161attach radio at radiodev
1157 1162
1158# IEEE 1394 controllers 1163# IEEE 1394 controllers
1159# (These need to be here since it will have both PCI and CardBus attachments) 1164# (These need to be here since it will have both PCI and CardBus attachments)
1160# 1165#
1161device fwohci: fwbus 1166device fwohci: fwbus
1162 1167
1163# Sony Programmable I/O Controller 1168# Sony Programmable I/O Controller
1164device spic: wsmousedev 1169device spic: wsmousedev
1165file dev/ic/spic.c spic 1170file dev/ic/spic.c spic
1166 1171
1167# IBM CPC700 PowerPC bridge 1172# IBM CPC700 PowerPC bridge
1168define cpcbus { addr, [irq=-1] } 1173define cpcbus { addr, [irq=-1] }
1169device cpc: cpcbus, pcibus 1174device cpc: cpcbus, pcibus
1170file dev/ic/cpc700.c cpc 1175file dev/ic/cpc700.c cpc
1171 1176
1172attach com at cpcbus with com_cpcbus 1177attach com at cpcbus with com_cpcbus
1173file dev/ic/com_cpcbus.c com_cpcbus 1178file dev/ic/com_cpcbus.c com_cpcbus
1174 1179
1175device cpctim 1180device cpctim
1176attach cpctim at cpcbus 1181attach cpctim at cpcbus
1177file dev/ic/timer_cpcbus.c cpctim 1182file dev/ic/timer_cpcbus.c cpctim
1178 1183
1179device cpciic 1184device cpciic
1180attach cpciic at cpcbus with iic_cpcbus 1185attach cpciic at cpcbus with iic_cpcbus
1181file dev/ic/iic_cpcbus.c iic_cpcbus 1186file dev/ic/iic_cpcbus.c iic_cpcbus
1182 1187
1183 1188
1184# Attribute used by various things that need BPF's virtual machine 1189# Attribute used by various things that need BPF's virtual machine
1185# 1190#
1186define bpf_filter 1191define bpf_filter
1187defparam opt_bpf.h BPF_BUFSIZE 1192defparam opt_bpf.h BPF_BUFSIZE
1188 1193
1189# Attributes used by the ISDN subsystem 1194# Attributes used by the ISDN subsystem
1190# 1195#
1191define isdndev # the ISDN subsystem 1196define isdndev # the ISDN subsystem
1192define passive_isdn # files needed by passive cards (XXX - protocol 1197define passive_isdn # files needed by passive cards (XXX - protocol
1193 # specific) 1198 # specific)
1194define isdncapi # ISDN CAPI (http://www.capi.org/) 1199define isdncapi # ISDN CAPI (http://www.capi.org/)
1195 1200
1196# The isac found on the Fritz V2.0 Card. 1201# The isac found on the Fritz V2.0 Card.
1197define nisacsx 1202define nisacsx
1198file dev/ic/isacsx.c nisacsx needs-flag 1203file dev/ic/isacsx.c nisacsx needs-flag
1199 1204
1200# The 'standard' isac 1205# The 'standard' isac
1201define nisac 1206define nisac
1202file dev/ic/isac.c nisac needs-flag 1207file dev/ic/isac.c nisac needs-flag
1203 1208
1204# ISDN cards based on the Siemens ISAC/HSCX chipset (or lookalikes) 1209# ISDN cards based on the Siemens ISAC/HSCX chipset (or lookalikes)
1205# 1210#
1206device isic: isdndev, passive_isdn, nisac 1211device isic: isdndev, passive_isdn, nisac
1207 1212
1208file dev/ic/isic.c isic 1213file dev/ic/isic.c isic
1209file dev/ic/isic_l1.c isic|ifpci|ifritz 1214file dev/ic/isic_l1.c isic|ifpci|ifritz
1210file dev/ic/isic_l1fsm.c isic|ifpci|ifritz 1215file dev/ic/isic_l1fsm.c isic|ifpci|ifritz
1211file dev/ic/hscx.c isic 1216file dev/ic/hscx.c isic
1212file dev/ic/isic_bchan.c isic 1217file dev/ic/isic_bchan.c isic
1213 1218
1214# (old) Diehl active ISDN cards 1219# (old) Diehl active ISDN cards
1215# 1220#
1216#device daic: isdndev 1221#device daic: isdndev
1217#file dev/ic/daic.c daic 1222#file dev/ic/daic.c daic
1218 1223
1219# AWM B1/T1 1224# AWM B1/T1
1220# XXX: passive_isdn 1225# XXX: passive_isdn
1221device iavc: isdndev, isdncapi, passive_isdn 1226device iavc: isdndev, isdncapi, passive_isdn
1222file dev/ic/iavc.c iavc 1227file dev/ic/iavc.c iavc
1223 1228
1224# Broadcom AirForce / Apple Airport Extreme 1229# Broadcom AirForce / Apple Airport Extreme
1225device bwi: arp, ifnet, firmload, wlan 1230device bwi: arp, ifnet, firmload, wlan
1226file dev/ic/bwi.c bwi 1231file dev/ic/bwi.c bwi
1227 1232
1228# legitimate pseudo-devices 1233# legitimate pseudo-devices
1229# 1234#
1230defpseudodev vnd: disk 1235defpseudodev vnd: disk
1231defflag opt_vnd.h VND_COMPRESSION 1236defflag opt_vnd.h VND_COMPRESSION
1232defpseudo ccd: disk 1237defpseudo ccd: disk
1233defpseudo cgd: disk, des, blowfish, cast128, rijndael 1238defpseudo cgd: disk, des, blowfish, cast128, rijndael
1234defpseudodev md: disk 1239defpseudodev md: disk
1235defpseudodev fss: disk 1240defpseudodev fss: disk
1236 1241
1237defpseudo pty: tty 1242defpseudo pty: tty
1238defpseudo rnd 1243defpseudo rnd
1239defpseudo ksyms 1244defpseudo ksyms
1240defpseudo nullcons 1245defpseudo nullcons
1241defpseudo lockstat 1246defpseudo lockstat
1242defpseudo bio: sysmon_envsys 1247defpseudo bio: sysmon_envsys
1243 1248
1244defpseudo loop: ifnet 1249defpseudo loop: ifnet
1245defpseudo sl: ifnet 1250defpseudo sl: ifnet
1246defpseudo ppp: ifnet, bpf_filter 1251defpseudo ppp: ifnet, bpf_filter
1247defpseudo pppoe: ifnet, ether, sppp 1252defpseudo pppoe: ifnet, ether, sppp
1248defpseudo sppp: ifnet 1253defpseudo sppp: ifnet
1249defpseudo tun: ifnet 1254defpseudo tun: ifnet
1250defpseudo vlan: ifnet, ether 1255defpseudo vlan: ifnet, ether
1251defpseudo bridge: ifnet, ether 1256defpseudo bridge: ifnet, ether
1252defpseudo bpfilter: ifnet, bpf_filter 1257defpseudo bpfilter: ifnet, bpf_filter
1253defpseudo strip: ifnet 1258defpseudo strip: ifnet
1254defpseudo gre: ifnet 1259defpseudo gre: ifnet
1255defpseudo gif: ifnet 1260defpseudo gif: ifnet
1256defpseudo faith: ifnet 1261defpseudo faith: ifnet
1257defpseudo srt: ifnet 1262defpseudo srt: ifnet
1258defpseudo stf: ifnet 1263defpseudo stf: ifnet
1259defpseudodev tap: ifnet, ether, arp, bpf_filter 1264defpseudodev tap: ifnet, ether, arp, bpf_filter
1260defpseudo carp: ifnet, ether, arp, bpf_filter 1265defpseudo carp: ifnet, ether, arp, bpf_filter
1261defpseudodev etherip: ifnet, ether, arp, bpf_filter 1266defpseudodev etherip: ifnet, ether, arp, bpf_filter
1262 1267
1263defpseudo sequencer 1268defpseudo sequencer
1264defpseudo clockctl 1269defpseudo clockctl
1265defpseudo irix_kmem 1270defpseudo irix_kmem
1266defpseudo irix_usema 1271defpseudo irix_usema
1267 1272
1268# 1273#
1269# Accept filters. XXX should use another registration/initialization method. 1274# Accept filters. XXX should use another registration/initialization method.
1270# 1275#
1271defpseudo accf_data 1276defpseudo accf_data
1272defpseudo accf_http 1277defpseudo accf_http
1273 1278
1274# ISDN userland pseudo devices 1279# ISDN userland pseudo devices
1275# 1280#
1276defpseudo isdntrc: isdndev, tty 1281defpseudo isdntrc: isdndev, tty
1277defpseudo isdnbchan: isdndev, tty 1282defpseudo isdnbchan: isdndev, tty
1278defpseudo isdntel: isdndev, tty 1283defpseudo isdntel: isdndev, tty
1279defpseudo isdnctl: isdndev, tty 1284defpseudo isdnctl: isdndev, tty
1280defpseudo isdn: isdndev, tty 1285defpseudo isdn: isdndev, tty
1281 1286
1282# ISDN network interfaces 1287# ISDN network interfaces
1283defpseudo irip: isdndev, ifnet 1288defpseudo irip: isdndev, ifnet
1284defflag opt_irip.h IRIP_VJ 1289defflag opt_irip.h IRIP_VJ
1285defpseudo ippp: isdndev, sppp, ifnet 1290defpseudo ippp: isdndev, sppp, ifnet
1286 1291
1287# KTTCP network throughput testing pseudo-device 1292# KTTCP network throughput testing pseudo-device
1288defpseudo kttcp 1293defpseudo kttcp
1289file dev/kttcp.c kttcp needs-flag 1294file dev/kttcp.c kttcp needs-flag
1290 1295
1291# Veriexec 1296# Veriexec
1292defpseudo veriexec 1297defpseudo veriexec
1293file kern/kern_verifiedexec.c veriexec 1298file kern/kern_verifiedexec.c veriexec
1294file dev/verified_exec.c veriexec needs-flag 1299file dev/verified_exec.c veriexec needs-flag
1295 1300
1296# isochronous pseudo device for IEEE 1394, i.LINK or FireWire 1301# isochronous pseudo device for IEEE 1394, i.LINK or FireWire
1297defpseudo fwiso: ieee1394 1302defpseudo fwiso: ieee1394
1298 1303
1299# driver attach / detach user interface 1304# driver attach / detach user interface
1300defpseudo drvctl 1305defpseudo drvctl
1301file kern/kern_drvctl.c drvctl needs-flag 1306file kern/kern_drvctl.c drvctl needs-flag
1302 1307
1303# cpu control 1308# cpu control
1304defpseudo cpuctl 1309defpseudo cpuctl
1305 1310
1306# pass-to-userspace transporter 1311# pass-to-userspace transporter
1307defpseudo putter 1312defpseudo putter
1308file dev/putter/putter.c putter 1313file dev/putter/putter.c putter
1309 1314
1310# userspace block/char device drivers 1315# userspace block/char device drivers
1311defpseudo pud 1316defpseudo pud
1312file dev/pud/pud.c pud 1317file dev/pud/pud.c pud
1313file dev/pud/pud_dev.c pud 1318file dev/pud/pud_dev.c pud
1314 1319
1315# device-mapper driver for LVM 1320# device-mapper driver for LVM
1316include "dev/dm/files.dm" 1321include "dev/dm/files.dm"
1317 1322
1318# 1323#
1319# File systems 1324# File systems
1320# 1325#
1321include "coda/files.coda" 1326include "coda/files.coda"
1322include "fs/adosfs/files.adosfs" 1327include "fs/adosfs/files.adosfs"
1323include "fs/cd9660/files.cd9660" 1328include "fs/cd9660/files.cd9660"
1324include "fs/efs/files.efs" 1329include "fs/efs/files.efs"
1325include "fs/filecorefs/files.filecorefs" 1330include "fs/filecorefs/files.filecorefs"
1326include "fs/hfs/files.hfs" 1331include "fs/hfs/files.hfs"
1327include "fs/msdosfs/files.msdosfs" 1332include "fs/msdosfs/files.msdosfs"
1328include "fs/nilfs/files.nilfs" 1333include "fs/nilfs/files.nilfs"
1329include "fs/ntfs/files.ntfs" 1334include "fs/ntfs/files.ntfs"
1330include "fs/ptyfs/files.ptyfs" 1335include "fs/ptyfs/files.ptyfs"
1331include "fs/puffs/files.puffs" 1336include "fs/puffs/files.puffs"
1332include "fs/udf/files.udf" 1337include "fs/udf/files.udf"
1333include "fs/smbfs/files.smbfs" 1338include "fs/smbfs/files.smbfs"
1334include "fs/sysvbfs/files.sysvbfs" 1339include "fs/sysvbfs/files.sysvbfs"
1335include "fs/tmpfs/files.tmpfs" 1340include "fs/tmpfs/files.tmpfs"
1336include "fs/union/files.union" 1341include "fs/union/files.union"
1337include "miscfs/fdesc/files.fdesc" 1342include "miscfs/fdesc/files.fdesc"
1338include "miscfs/kernfs/files.kernfs" 1343include "miscfs/kernfs/files.kernfs"
1339include "miscfs/nullfs/files.nullfs" 1344include "miscfs/nullfs/files.nullfs"
1340include "miscfs/overlay/files.overlay" 1345include "miscfs/overlay/files.overlay"
1341include "miscfs/portal/files.portal" 1346include "miscfs/portal/files.portal"
1342include "miscfs/procfs/files.procfs" 1347include "miscfs/procfs/files.procfs"
1343include "miscfs/umapfs/files.umapfs" 1348include "miscfs/umapfs/files.umapfs"
1344include "nfs/files.nfs" 1349include "nfs/files.nfs"
1345include "ufs/files.ufs" 1350include "ufs/files.ufs"
1346 1351
1347# 1352#
1348# UVM (virtual memory) 1353# UVM (virtual memory)
1349# 1354#
1350include "uvm/files.uvm" 1355include "uvm/files.uvm"
1351 1356
1352# 1357#
1353# Security models 1358# Security models
1354# 1359#
1355include "secmodel/files.secmodel" 1360include "secmodel/files.secmodel"
1356 1361
1357# 1362#
1358# kernel sources 1363# kernel sources
1359# 1364#
1360file compat/common/compat_mod.c compat_netbsd 1365file compat/common/compat_mod.c compat_netbsd
1361file compat/sa/compat_sa.c 1366file compat/sa/compat_sa.c
1362file conf/debugsyms.c 1367file conf/debugsyms.c
1363file dev/auconv.c auconv | mulaw 1368file dev/auconv.c auconv | mulaw
1364file dev/audio.c audio | midi | midibus needs-flag 1369file dev/audio.c audio | midi | midibus needs-flag
1365file dev/audiobell.c audiobell 1370file dev/audiobell.c audiobell
1366file dev/aurateconv.c aurateconv needs-flag 1371file dev/aurateconv.c aurateconv needs-flag
1367file dev/bio.c bio needs-flag 1372file dev/bio.c bio needs-flag
1368file dev/ccd.c ccd needs-flag 1373file dev/ccd.c ccd needs-flag
1369file dev/cgd.c cgd needs-flag 1374file dev/cgd.c cgd needs-flag
1370file dev/cgd_crypto.c cgd 1375file dev/cgd_crypto.c cgd
1371file dev/clock_subr.c 1376file dev/clock_subr.c
1372file dev/clockctl.c clockctl needs-flag 1377file dev/clockctl.c clockctl needs-flag
1373file dev/dksubr.c cgd | xbd | ccd | raid 1378file dev/dksubr.c cgd | xbd | ccd | raid
1374file dev/dkwedge/dk.c 1379file dev/dkwedge/dk.c
1375file dev/dkwedge/dkwedge_bsdlabel.c dkwedge_method_bsdlabel 1380file dev/dkwedge/dkwedge_bsdlabel.c dkwedge_method_bsdlabel
1376file dev/dkwedge/dkwedge_gpt.c dkwedge_method_gpt 1381file dev/dkwedge/dkwedge_gpt.c dkwedge_method_gpt
1377file dev/dkwedge/dkwedge_mbr.c dkwedge_method_mbr 1382file dev/dkwedge/dkwedge_mbr.c dkwedge_method_mbr
1378file dev/firmload.c firmload 1383file dev/firmload.c firmload
1379file dev/fss.c fss needs-count 1384file dev/fss.c fss needs-count
1380file dev/keylock.c keylock 1385file dev/keylock.c keylock
1381file dev/lockstat.c lockstat needs-flag 1386file dev/lockstat.c lockstat needs-flag
1382file dev/md.c md needs-count 1387file dev/md.c md needs-count
1383file dev/midi.c midi | midibus needs-flag 1388file dev/midi.c midi | midibus needs-flag
1384file dev/midictl.c midisyn 1389file dev/midictl.c midisyn
1385file dev/midisyn.c midisyn 1390file dev/midisyn.c midisyn
1386file dev/mm.c 1391file dev/mm.c
1387file dev/mulaw.c mulaw needs-flag 1392file dev/mulaw.c mulaw needs-flag
1388file dev/nullcons_subr.c nullcons needs-flag 1393file dev/nullcons_subr.c nullcons needs-flag
1389file dev/radio.c radio needs-flag 1394file dev/radio.c radio needs-flag
1390file dev/rnd.c rnd needs-flag 1395file dev/rnd.c rnd needs-flag
1391file dev/rndpool.c rnd needs-flag 1396file dev/rndpool.c rnd needs-flag
1392file dev/sequencer.c sequencer needs-flag 1397file dev/sequencer.c sequencer needs-flag
1393file dev/video.c video needs-flag 1398file dev/video.c video needs-flag
1394file dev/vnd.c vnd needs-flag 1399file dev/vnd.c vnd needs-flag
1395file kern/bufq_disksort.c bufq_disksort 1400file kern/bufq_disksort.c bufq_disksort
1396file kern/bufq_fcfs.c bufq_fcfs 1401file kern/bufq_fcfs.c bufq_fcfs
1397file kern/bufq_priocscan.c bufq_priocscan 1402file kern/bufq_priocscan.c bufq_priocscan
1398file kern/bufq_readprio.c bufq_readprio | new_bufq_strategy 1403file kern/bufq_readprio.c bufq_readprio | new_bufq_strategy
1399file kern/core_elf32.c exec_elf32 1404file kern/core_elf32.c exec_elf32
1400file kern/core_elf64.c exec_elf64 1405file kern/core_elf64.c exec_elf64
1401file kern/core_netbsd.c exec_aout | exec_coff | 1406file kern/core_netbsd.c exec_aout | exec_coff |
1402 exec_ecoff | exec_macho 1407 exec_ecoff | exec_macho
1403file kern/cnmagic.c 1408file kern/cnmagic.c
1404file kern/exec_aout.c exec_aout 1409file kern/exec_aout.c exec_aout
1405file kern/exec_ecoff.c exec_ecoff 1410file kern/exec_ecoff.c exec_ecoff
1406file kern/exec_elf32.c exec_elf32 1411file kern/exec_elf32.c exec_elf32
1407file kern/exec_elf64.c exec_elf64 1412file kern/exec_elf64.c exec_elf64
1408file kern/exec_macho.c exec_macho 1413file kern/exec_macho.c exec_macho
1409file kern/exec_script.c exec_script 1414file kern/exec_script.c exec_script
1410file kern/exec_subr.c 1415file kern/exec_subr.c
1411file kern/init_main.c 1416file kern/init_main.c
1412file kern/init_sysctl.c 1417file kern/init_sysctl.c
1413file kern/init_sysctl_base.c 1418file kern/init_sysctl_base.c
1414file kern/init_sysent.c 1419file kern/init_sysent.c
1415file kern/kern_acct.c 1420file kern/kern_acct.c
1416file kern/kern_auth.c 1421file kern/kern_auth.c
1417file kern/kern_clock.c 1422file kern/kern_clock.c
1418file kern/kern_condvar.c 1423file kern/kern_condvar.c
1419file kern/kern_core.c coredump 1424file kern/kern_core.c coredump
1420file kern/kern_cpu.c 1425file kern/kern_cpu.c
1421file kern/kern_descrip.c 1426file kern/kern_descrip.c
1422file kern/kern_event.c 1427file kern/kern_event.c
1423file kern/kern_exec.c 1428file kern/kern_exec.c
1424file kern/kern_exit.c 1429file kern/kern_exit.c
1425file kern/kern_fork.c 1430file kern/kern_fork.c
1426file kern/kern_idle.c 1431file kern/kern_idle.c
1427file kern/kern_kthread.c 1432file kern/kern_kthread.c
1428file kern/kern_ktrace.c ktrace 1433file kern/kern_ktrace.c ktrace
1429file kern/kern_ksyms.c ksyms | ddb | modular needs-flag 1434file kern/kern_ksyms.c ksyms | ddb | modular needs-flag
1430file kern/kern_lock.c 1435file kern/kern_lock.c
1431file kern/kern_lwp.c 1436file kern/kern_lwp.c
1432file kern/kern_malloc.c 1437file kern/kern_malloc.c
1433file kern/kern_malloc_stdtype.c 1438file kern/kern_malloc_stdtype.c
1434file kern/kern_malloc_debug.c malloc_debug 1439file kern/kern_malloc_debug.c malloc_debug
1435file kern/kern_module.c 1440file kern/kern_module.c
1436file kern/kern_mutex.c 1441file kern/kern_mutex.c
1437file kern/kern_fileassoc.c fileassoc 1442file kern/kern_fileassoc.c fileassoc
1438file kern/kern_ntptime.c 1443file kern/kern_ntptime.c
1439file kern/kern_pax.c pax_mprotect | pax_segvguard 1444file kern/kern_pax.c pax_mprotect | pax_segvguard
1440file kern/kern_physio.c 1445file kern/kern_physio.c
1441file kern/kern_pmf.c 1446file kern/kern_pmf.c
1442file kern/kern_proc.c 1447file kern/kern_proc.c
1443file kern/kern_prot.c 1448file kern/kern_prot.c
1444file kern/kern_ras.c 1449file kern/kern_ras.c
1445file kern/kern_rate.c 1450file kern/kern_rate.c
1446file kern/kern_resource.c 1451file kern/kern_resource.c
1447file kern/kern_runq.c 1452file kern/kern_runq.c
1448file kern/kern_rwlock.c 1453file kern/kern_rwlock.c
1449file kern/kern_sig.c 1454file kern/kern_sig.c
1450file kern/kern_sleepq.c 1455file kern/kern_sleepq.c
1451file kern/kern_softint.c 1456file kern/kern_softint.c
1452file kern/kern_ssp.c 1457file kern/kern_ssp.c
1453file kern/kern_stub.c 1458file kern/kern_stub.c
1454file kern/kern_subr.c 1459file kern/kern_subr.c
1455file kern/kern_synch.c 1460file kern/kern_synch.c
1456file kern/kern_sysctl.c 1461file kern/kern_sysctl.c
1457file kern/kern_tc.c 1462file kern/kern_tc.c
1458file kern/kern_time.c 1463file kern/kern_time.c
1459file kern/kern_timeout.c 1464file kern/kern_timeout.c
1460file kern/kern_turnstile.c 1465file kern/kern_turnstile.c
1461file kern/kern_todr.c 1466file kern/kern_todr.c
1462file kern/kern_uidinfo.c 1467file kern/kern_uidinfo.c
1463file kern/kern_uuid.c 1468file kern/kern_uuid.c
1464file kern/kern_xxx.c 1469file kern/kern_xxx.c
1465file kern/kgdb_stub.c kgdb 1470file kern/kgdb_stub.c kgdb
1466file kern/sched_4bsd.c sched_4bsd 1471file kern/sched_4bsd.c sched_4bsd
1467file kern/sched_m2.c sched_m2 1472file kern/sched_m2.c sched_m2
1468file kern/subr_autoconf.c 1473file kern/subr_autoconf.c
1469file kern/subr_blist.c vmswap 1474file kern/subr_blist.c vmswap
1470file kern/subr_bufq.c 1475file kern/subr_bufq.c
1471file kern/subr_callback.c 1476file kern/subr_callback.c
1472file kern/subr_debug.c debug 1477file kern/subr_debug.c debug
1473file kern/subr_devsw.c 1478file kern/subr_devsw.c
1474file kern/subr_disk.c 1479file kern/subr_disk.c
1475file kern/subr_disk_open.c 1480file kern/subr_disk_open.c
1476file kern/subr_iostat.c 1481file kern/subr_iostat.c
1477file kern/subr_evcnt.c 1482file kern/subr_evcnt.c
1478file kern/subr_exec_fd.c 1483file kern/subr_exec_fd.c
1479file kern/subr_extent.c 1484file kern/subr_extent.c
1480file kern/subr_hash.c 1485file kern/subr_hash.c
1481file kern/subr_kmem.c 1486file kern/subr_kmem.c
1482file kern/subr_kobj.c 1487file kern/subr_kobj.c
1483file kern/subr_lockdebug.c 1488file kern/subr_lockdebug.c
1484file kern/subr_log.c 1489file kern/subr_log.c
1485file kern/subr_percpu.c 1490file kern/subr_percpu.c
1486file kern/subr_pool.c 1491file kern/subr_pool.c
1487file kern/subr_prf.c 1492file kern/subr_prf.c
1488file kern/subr_prof.c 1493file kern/subr_prof.c
1489file kern/subr_once.c 1494file kern/subr_once.c
1490file kern/subr_optstr.c 1495file kern/subr_optstr.c
1491file kern/subr_specificdata.c 1496file kern/subr_specificdata.c
1492file kern/subr_tftproot.c tftproot 1497file kern/subr_tftproot.c tftproot
1493file kern/subr_time.c 1498file kern/subr_time.c
1494file kern/subr_userconf.c userconf 1499file kern/subr_userconf.c userconf
1495file kern/subr_vmem.c 1500file kern/subr_vmem.c
1496file kern/subr_workqueue.c 1501file kern/subr_workqueue.c
1497file kern/subr_xcall.c 1502file kern/subr_xcall.c
1498file kern/sys_aio.c aio 1503file kern/sys_aio.c aio
1499file kern/sys_descrip.c 1504file kern/sys_descrip.c
1500file kern/sys_generic.c 1505file kern/sys_generic.c
1501file kern/sys_module.c 1506file kern/sys_module.c
1502file kern/sys_mqueue.c mqueue 1507file kern/sys_mqueue.c mqueue
1503file kern/sys_lwp.c 1508file kern/sys_lwp.c
1504file kern/sys_pipe.c !pipe_socketpair 1509file kern/sys_pipe.c !pipe_socketpair
1505file kern/sys_pmc.c 1510file kern/sys_pmc.c
1506file kern/sys_process.c ptrace | ktrace 1511file kern/sys_process.c ptrace | ktrace
1507file kern/sys_pset.c 1512file kern/sys_pset.c
1508file kern/sys_select.c 1513file kern/sys_select.c
1509file kern/sys_sig.c 1514file kern/sys_sig.c
1510file kern/sys_sched.c 1515file kern/sys_sched.c
1511file kern/sys_socket.c 1516file kern/sys_socket.c
1512file kern/syscalls.c syscall_debug 1517file kern/syscalls.c syscall_debug
1513file kern/sysv_ipc.c sysvshm | sysvsem | sysvmsg 1518file kern/sysv_ipc.c sysvshm | sysvsem | sysvmsg
1514file kern/sysv_msg.c sysvmsg 1519file kern/sysv_msg.c sysvmsg
1515file kern/sysv_sem.c sysvsem 1520file kern/sysv_sem.c sysvsem
1516file kern/sysv_shm.c sysvshm 1521file kern/sysv_shm.c sysvshm
1517file kern/tty.c 1522file kern/tty.c
1518file kern/tty_conf.c 1523file kern/tty_conf.c
1519file kern/tty_bsdpty.c compat_bsdpty 1524file kern/tty_bsdpty.c compat_bsdpty
1520file kern/tty_pty.c pty needs-flag 1525file kern/tty_pty.c pty needs-flag
1521file kern/tty_ptm.c pty 1526file kern/tty_ptm.c pty
1522file kern/tty_subr.c 1527file kern/tty_subr.c
1523file kern/tty_tty.c 1528file kern/tty_tty.c
1524file kern/uipc_accf.c 1529file kern/uipc_accf.c
1525file kern/uipc_domain.c 1530file kern/uipc_domain.c
1526file kern/uipc_mbuf.c 1531file kern/uipc_mbuf.c
1527file kern/uipc_mbuf2.c 1532file kern/uipc_mbuf2.c
1528file net/link_proto.c 1533file net/link_proto.c
1529file kern/uipc_proto.c 1534file kern/uipc_proto.c
1530file kern/uipc_sem.c p1003_1b_semaphore 1535file kern/uipc_sem.c p1003_1b_semaphore
1531file kern/uipc_socket.c 1536file kern/uipc_socket.c
1532file kern/uipc_socket2.c 1537file kern/uipc_socket2.c
1533file kern/uipc_syscalls.c 1538file kern/uipc_syscalls.c
1534file kern/uipc_usrreq.c 1539file kern/uipc_usrreq.c
1535file kern/vfs_bio.c 1540file kern/vfs_bio.c
1536file kern/vfs_cache.c 1541file kern/vfs_cache.c
1537file kern/vfs_cwd.c 1542file kern/vfs_cwd.c
1538file kern/vfs_dirhash.c 1543file kern/vfs_dirhash.c
1539file kern/vfs_getcwd.c 1544file kern/vfs_getcwd.c
1540file kern/vfs_hooks.c 1545file kern/vfs_hooks.c
1541file kern/vfs_init.c 1546file kern/vfs_init.c
1542file kern/vfs_lockf.c 1547file kern/vfs_lockf.c
1543file kern/vfs_lookup.c 1548file kern/vfs_lookup.c
1544file kern/vfs_subr.c 1549file kern/vfs_subr.c
1545file kern/vfs_syscalls.c 1550file kern/vfs_syscalls.c
1546file kern/vfs_trans.c 1551file kern/vfs_trans.c
1547file kern/vfs_vnops.c 1552file kern/vfs_vnops.c
1548file kern/vfs_wapbl.c wapbl 1553file kern/vfs_wapbl.c wapbl
1549file kern/vfs_xattr.c 1554file kern/vfs_xattr.c
1550file kern/vnode_if.c 1555file kern/vnode_if.c
1551file miscfs/deadfs/dead_vnops.c 1556file miscfs/deadfs/dead_vnops.c
1552file miscfs/fifofs/fifo_vnops.c 1557file miscfs/fifofs/fifo_vnops.c
1553file miscfs/genfs/genfs_io.c 1558file miscfs/genfs/genfs_io.c
1554file miscfs/genfs/genfs_vfsops.c 1559file miscfs/genfs/genfs_vfsops.c
1555file miscfs/genfs/genfs_vnops.c 1560file miscfs/genfs/genfs_vnops.c
1556file miscfs/genfs/layer_subr.c nullfs | overlay | umapfs 1561file miscfs/genfs/layer_subr.c nullfs | overlay | umapfs
1557file miscfs/genfs/layer_vfsops.c nullfs | overlay | umapfs 1562file miscfs/genfs/layer_vfsops.c nullfs | overlay | umapfs
1558file miscfs/genfs/layer_vnops.c nullfs | overlay | umapfs 1563file miscfs/genfs/layer_vnops.c nullfs | overlay | umapfs
1559file miscfs/specfs/spec_vnops.c 1564file miscfs/specfs/spec_vnops.c
1560file miscfs/syncfs/sync_subr.c 1565file miscfs/syncfs/sync_subr.c
1561file miscfs/syncfs/sync_vnops.c 1566file miscfs/syncfs/sync_vnops.c
1562file net/bpf.c bpfilter needs-flag 1567file net/bpf.c bpfilter needs-flag
1563file net/bpf_filter.c bpf_filter 1568file net/bpf_filter.c bpf_filter
1564file net/bsd-comp.c ppp & ppp_bsdcomp 1569file net/bsd-comp.c ppp & ppp_bsdcomp
1565file net/if.c 1570file net/if.c
1566file net/if_arcsubr.c arcnet needs-flag 1571file net/if_arcsubr.c arcnet needs-flag
1567file net/if_atmsubr.c atm 1572file net/if_atmsubr.c atm
1568file net/if_bridge.c bridge needs-flag 1573file net/if_bridge.c bridge needs-flag
1569file net/bridgestp.c bridge 1574file net/bridgestp.c bridge
1570file net/if_ecosubr.c eco 1575file net/if_ecosubr.c eco
1571file net/if_etherip.c etherip needs-flag 1576file net/if_etherip.c etherip needs-flag
1572file net/if_ethersubr.c ether | fddi | netatalk | token | 1577file net/if_ethersubr.c ether | fddi | netatalk | token |
1573 wlan 1578 wlan
1574file net/if_faith.c faith & inet & inet6 needs-flag 1579file net/if_faith.c faith & inet & inet6 needs-flag
1575file net/if_fddisubr.c fddi needs-flag 1580file net/if_fddisubr.c fddi needs-flag
1576file net/if_gif.c gif needs-flag 1581file net/if_gif.c gif needs-flag
1577file net/if_gre.c gre needs-flag 1582file net/if_gre.c gre needs-flag
1578file net/if_hippisubr.c hippi needs-flag 1583file net/if_hippisubr.c hippi needs-flag
1579file net/if_ieee1394subr.c ieee1394 1584file net/if_ieee1394subr.c ieee1394
1580file net/if_loop.c loop needs-flag 1585file net/if_loop.c loop needs-flag
1581file net/if_media.c 1586file net/if_media.c
1582file net/if_ppp.c ppp needs-flag 1587file net/if_ppp.c ppp needs-flag
1583file net/if_srt.c srt 1588file net/if_srt.c srt
1584file net/if_stf.c stf & inet & inet6 needs-flag 1589file net/if_stf.c stf & inet & inet6 needs-flag
1585file net/if_sl.c sl needs-flag 1590file net/if_sl.c sl needs-flag
1586file net/if_spppsubr.c sppp 1591file net/if_spppsubr.c sppp
1587file net/if_strip.c strip needs-flag 1592file net/if_strip.c strip needs-flag
1588file net/if_tokensubr.c token needs-flag 1593file net/if_tokensubr.c token needs-flag
1589file net/if_tap.c tap needs-flag 1594file net/if_tap.c tap needs-flag
1590file net/if_tun.c tun needs-flag 1595file net/if_tun.c tun needs-flag
1591file net/if_vlan.c vlan needs-flag 1596file net/if_vlan.c vlan needs-flag
1592file net/if_pppoe.c pppoe needs-flag 1597file net/if_pppoe.c pppoe needs-flag
1593file net/pfil.c pfil_hooks | ipfilter | pf 1598file net/pfil.c pfil_hooks | ipfilter | pf
1594file net/ppp-deflate.c ppp & ppp_deflate 1599file net/ppp-deflate.c ppp & ppp_deflate
1595file net/ppp_tty.c ppp 1600file net/ppp_tty.c ppp
1596file net/net_stats.c 1601file net/net_stats.c
1597file net/radix.c 1602file net/radix.c
1598file net/raw_cb.c 1603file net/raw_cb.c
1599file net/raw_usrreq.c 1604file net/raw_usrreq.c
1600file net/route.c 1605file net/route.c
1601file net/rtsock.c 1606file net/rtsock.c
1602file net/slcompress.c sl | ppp | strip | (irip & irip_vj) 1607file net/slcompress.c sl | ppp | strip | (irip & irip_vj)
1603file net/zlib.c (ppp & ppp_deflate) | ipsec | opencrypto | vnd_compression 1608file net/zlib.c (ppp & ppp_deflate) | ipsec | opencrypto | vnd_compression
1604file netinet/accf_data.c accf_data 1609file netinet/accf_data.c accf_data
1605file netinet/accf_http.c accf_http 1610file netinet/accf_http.c accf_http
1606file netinet/cpu_in_cksum.c (inet | inet6) & !cpu_in_cksum 1611file netinet/cpu_in_cksum.c (inet | inet6) & !cpu_in_cksum
1607file netinet/if_arp.c arp | netatalk needs-flag 1612file netinet/if_arp.c arp | netatalk needs-flag
1608file netinet/if_atm.c atm 1613file netinet/if_atm.c atm
1609file netinet/in4_cksum.c inet 1614file netinet/in4_cksum.c inet
1610file netinet/in_cksum.c inet 1615file netinet/in_cksum.c inet
1611file netinet/in_gif.c gif & inet 1616file netinet/in_gif.c gif & inet
1612file netinet/ip_carp.c carp & (inet | inet6) needs-flag 1617file netinet/ip_carp.c carp & (inet | inet6) needs-flag
1613file netinet/ip_ecn.c ipsec | fast_ipsec | gif | stf 1618file netinet/ip_ecn.c ipsec | fast_ipsec | gif | stf
1614file netinet/ip_encap.c inet | inet6 1619file netinet/ip_encap.c inet | inet6
1615file netinet/ip_etherip.c etherip & inet 1620file netinet/ip_etherip.c etherip & inet
1616file netinet6/ip6_etherip.c etherip & inet6 1621file netinet6/ip6_etherip.c etherip & inet6
1617file netinet6/in6_gif.c gif & inet6 1622file netinet6/in6_gif.c gif & inet6
1618 1623
1619file netisdn/i4b_ctl.c isdnctl needs-flag 1624file netisdn/i4b_ctl.c isdnctl needs-flag
1620file netisdn/i4b_isppp.c ippp needs-count 1625file netisdn/i4b_isppp.c ippp needs-count
1621file netisdn/i4b_ipr.c irip needs-count 1626file netisdn/i4b_ipr.c irip needs-count
1622file netisdn/i4b_rbch.c isdnbchan needs-count 1627file netisdn/i4b_rbch.c isdnbchan needs-count
1623file netisdn/i4b_tel.c isdntel needs-count 1628file netisdn/i4b_tel.c isdntel needs-count
1624file netisdn/i4b_trace.c isdntrc needs-count 1629file netisdn/i4b_trace.c isdntrc needs-count
1625 1630
1626file netisdn/i4b_mbuf.c passive_isdn 1631file netisdn/i4b_mbuf.c passive_isdn
1627file netisdn/i4b_l2.c passive_isdn 1632file netisdn/i4b_l2.c passive_isdn
1628file netisdn/i4b_l2fsm.c passive_isdn 1633file netisdn/i4b_l2fsm.c passive_isdn
1629file netisdn/i4b_uframe.c passive_isdn 1634file netisdn/i4b_uframe.c passive_isdn
1630file netisdn/i4b_tei.c passive_isdn 1635file netisdn/i4b_tei.c passive_isdn
1631file netisdn/i4b_sframe.c passive_isdn 1636file netisdn/i4b_sframe.c passive_isdn
1632file netisdn/i4b_iframe.c passive_isdn 1637file netisdn/i4b_iframe.c passive_isdn
1633file netisdn/i4b_l2timer.c passive_isdn 1638file netisdn/i4b_l2timer.c passive_isdn
1634file netisdn/i4b_util.c passive_isdn 1639file netisdn/i4b_util.c passive_isdn
1635file netisdn/i4b_lme.c passive_isdn 1640file netisdn/i4b_lme.c passive_isdn
1636# Q.931 handler 1641# Q.931 handler
1637file netisdn/i4b_q931.c passive_isdn 1642file netisdn/i4b_q931.c passive_isdn
1638file netisdn/i4b_q932fac.c passive_isdn 1643file netisdn/i4b_q932fac.c passive_isdn
1639file netisdn/i4b_l3fsm.c passive_isdn 1644file netisdn/i4b_l3fsm.c passive_isdn
1640file netisdn/i4b_l3timer.c passive_isdn 1645file netisdn/i4b_l3timer.c passive_isdn
1641file netisdn/i4b_l2if.c passive_isdn 1646file netisdn/i4b_l2if.c passive_isdn
1642file netisdn/i4b_l4if.c passive_isdn 1647file netisdn/i4b_l4if.c passive_isdn
1643# isdn device driver, interface to isdnd 1648# isdn device driver, interface to isdnd
1644file netisdn/i4b_i4bdrv.c isdn needs-flag 1649file netisdn/i4b_i4bdrv.c isdn needs-flag
1645file netisdn/i4b_l4.c isdndev needs-flag 1650file netisdn/i4b_l4.c isdndev needs-flag
1646file netisdn/i4b_l4mgmt.c isdndev needs-flag 1651file netisdn/i4b_l4mgmt.c isdndev needs-flag
1647file netisdn/i4b_l4timer.c isdndev needs-flag 1652file netisdn/i4b_l4timer.c isdndev needs-flag
1648# capi 1653# capi
1649file netisdn/i4b_capi_l4if.c isdncapi 1654file netisdn/i4b_capi_l4if.c isdncapi
1650file netisdn/i4b_capi_llif.c isdncapi 1655file netisdn/i4b_capi_llif.c isdncapi
1651file netisdn/i4b_capi_msgs.c isdncapi 1656file netisdn/i4b_capi_msgs.c isdncapi
1652 1657
1653# Game adapter (joystick) 1658# Game adapter (joystick)
1654device joy 1659device joy
1655file dev/ic/joy.c joy needs-flag 1660file dev/ic/joy.c joy needs-flag
1656 1661
1657include "net/agr/files.agr" 1662include "net/agr/files.agr"
1658 1663
1659# 1664#
1660# General Purpose Input/Output framework 1665# General Purpose Input/Output framework
1661# 1666#
1662define onewire_bitbang 1667define onewire_bitbang
1663include "dev/gpio/files.gpio" 1668include "dev/gpio/files.gpio"
1664 1669
1665include "dev/onewire/files.onewire" 1670include "dev/onewire/files.onewire"
1666 1671
1667# 1672#
1668# Pseudo audio device 1673# Pseudo audio device
1669# 1674#
1670include "dev/pad/files.pad" 1675include "dev/pad/files.pad"
1671 1676
1672# 1677#
1673# Intel 386 Real Mode emulator 1678# Intel 386 Real Mode emulator
1674# 1679#
1675include "lib/libx86emu/files.x86emu" 1680include "lib/libx86emu/files.x86emu"
1676 1681
1677# 1682#
1678# "tprof" profiler. 1683# "tprof" profiler.
1679# 1684#
1680include "dev/tprof/files.tprof" 1685include "dev/tprof/files.tprof"
1681 1686
1682# 1687#
1683# alternate memory device 1688# alternate memory device
1684# 1689#
1685include "dev/altmem/files.altmem" 1690include "dev/altmem/files.altmem"

cvs diff -r1.58 -r1.59 src/sys/dev/acpi/files.acpi (switch to unified diff)

--- src/sys/dev/acpi/files.acpi 2009/08/31 14:48:41 1.58
+++ src/sys/dev/acpi/files.acpi 2009/09/30 20:44:50 1.59
@@ -1,143 +1,147 @@ @@ -1,143 +1,147 @@
1# $NetBSD: files.acpi,v 1.58 2009/08/31 14:48:41 cube Exp $ 1# $NetBSD: files.acpi,v 1.59 2009/09/30 20:44:50 jmcneill Exp $
2 2
3include "dev/acpi/acpica/files.acpica" 3include "dev/acpi/acpica/files.acpica"
4 4
5defflag opt_acpi.h ACPIVERBOSE ACPI_DEBUG ACPI_ACTIVATE_DEV 5defflag opt_acpi.h ACPIVERBOSE ACPI_DEBUG ACPI_ACTIVATE_DEV
6 ACPI_DSDT_OVERRIDE ACPI_SCANPCI ACPI_BREAKPOINT 6 ACPI_DSDT_OVERRIDE ACPI_SCANPCI ACPI_BREAKPOINT
7defparam opt_acpi.h ACPI_DSDT_FILE := "\"/dev/null\"" 7defparam opt_acpi.h ACPI_DSDT_FILE := "\"/dev/null\""
8 8
9define acpiapmbus { } 9define acpiapmbus { }
10define acpinodebus { } 10define acpinodebus { }
11define acpiecdtbus { } 11define acpiecdtbus { }
12 12
13device acpi: acpica, acpiapmbus, acpinodebus, acpiecdtbus, sysmon_power, sysmon_taskq 13device acpi: acpica, acpiapmbus, acpinodebus, acpiecdtbus, sysmon_power, sysmon_taskq
14attach acpi at acpibus 14attach acpi at acpibus
15file dev/acpi/acpi.c acpi 15file dev/acpi/acpi.c acpi
16file dev/acpi/acpi_resource.c acpi 16file dev/acpi/acpi_resource.c acpi
17file dev/acpi/acpi_powerres.c acpi 17file dev/acpi/acpi_powerres.c acpi
18file dev/acpi/acpi_madt.c acpi 18file dev/acpi/acpi_madt.c acpi
19file dev/acpi/acpi_pci_link.c acpi 19file dev/acpi/acpi_pci_link.c acpi
20file dev/acpi/acpi_quirks.c acpi 20file dev/acpi/acpi_quirks.c acpi
21file dev/acpi/acpi_timer.c acpi 21file dev/acpi/acpi_timer.c acpi
22file dev/acpi/acpi_wakedev.c acpi 22file dev/acpi/acpi_wakedev.c acpi
23 23
24# ACPI/apm emulation. 24# ACPI/apm emulation.
25attach apm at acpiapmbus with acpiapm: sysmon_envsys 25attach apm at acpiapmbus with acpiapm: sysmon_envsys
26file dev/acpi/acpi_apm.c acpiapm 26file dev/acpi/acpi_apm.c acpiapm
27 27
28# ACPI Embedded Controller 28# ACPI Embedded Controller
29device acpiec 29device acpiec
30attach acpiec at acpinodebus 30attach acpiec at acpinodebus
31device acpiecdt 31device acpiecdt
32attach acpiecdt at acpiecdtbus 32attach acpiecdt at acpiecdtbus
33file dev/acpi/acpi_ec.c acpiec|acpiecdt 33file dev/acpi/acpi_ec.c acpiec|acpiecdt
34 34
35# ACPI Lid Switch 35# ACPI Lid Switch
36device acpilid: sysmon_power 36device acpilid: sysmon_power
37attach acpilid at acpinodebus 37attach acpilid at acpinodebus
38file dev/acpi/acpi_lid.c acpilid 38file dev/acpi/acpi_lid.c acpilid
39 39
40# ACPI Button 40# ACPI Button
41device acpibut: sysmon_power 41device acpibut: sysmon_power
42attach acpibut at acpinodebus 42attach acpibut at acpinodebus
43file dev/acpi/acpi_button.c acpibut 43file dev/acpi/acpi_button.c acpibut
44 44
45# ACPI AC Adapter 45# ACPI AC Adapter
46device acpiacad: sysmon_envsys, sysmon_power 46device acpiacad: sysmon_envsys, sysmon_power
47attach acpiacad at acpinodebus 47attach acpiacad at acpinodebus
48file dev/acpi/acpi_acad.c acpiacad 48file dev/acpi/acpi_acad.c acpiacad
49 49
50# ACPI Control Method Battery 50# ACPI Control Method Battery
51device acpibat: sysmon_envsys 51device acpibat: sysmon_envsys
52attach acpibat at acpinodebus 52attach acpibat at acpinodebus
53file dev/acpi/acpi_bat.c acpibat 53file dev/acpi/acpi_bat.c acpibat
54 54
55# ACPI Thermal Zone 55# ACPI Thermal Zone
56device acpitz: sysmon_envsys 56device acpitz: sysmon_envsys
57attach acpitz at acpinodebus 57attach acpitz at acpinodebus
58file dev/acpi/acpi_tz.c acpitz 58file dev/acpi/acpi_tz.c acpitz
59 59
60# Serial interface 60# Serial interface
61attach com at acpinodebus with com_acpi 61attach com at acpinodebus with com_acpi
62file dev/acpi/com_acpi.c com_acpi 62file dev/acpi/com_acpi.c com_acpi
63 63
64# Floppy disk controller 64# Floppy disk controller
65attach fdc at acpinodebus with fdc_acpi 65attach fdc at acpinodebus with fdc_acpi
66file dev/acpi/fdc_acpi.c fdc_acpi 66file dev/acpi/fdc_acpi.c fdc_acpi
67 67
68# Parallel interface 68# Parallel interface
69attach lpt at acpinodebus with lpt_acpi 69attach lpt at acpinodebus with lpt_acpi
70file dev/acpi/lpt_acpi.c lpt_acpi & !ppbus 70file dev/acpi/lpt_acpi.c lpt_acpi & !ppbus
71 71
72attach atppc at acpinodebus with atppc_acpi: isadma 72attach atppc at acpinodebus with atppc_acpi: isadma
73file dev/acpi/atppc_acpi.c atppc_acpi 73file dev/acpi/atppc_acpi.c atppc_acpi
74 74
75# Keyboard controller 75# Keyboard controller
76attach pckbc at acpinodebus with pckbc_acpi 76attach pckbc at acpinodebus with pckbc_acpi
77file dev/acpi/pckbc_acpi.c pckbc_acpi 77file dev/acpi/pckbc_acpi.c pckbc_acpi
78 78
79# NeoMagic 256AV audio with CS4232 codec 79# NeoMagic 256AV audio with CS4232 codec
80attach wss at acpinodebus with wss_acpi 80attach wss at acpinodebus with wss_acpi
81file dev/acpi/wss_acpi.c wss_acpi 81file dev/acpi/wss_acpi.c wss_acpi
82 82
83# Roland MPU401 (compatible) MIDI UART 83# Roland MPU401 (compatible) MIDI UART
84attach mpu at acpinodebus with mpu_acpi 84attach mpu at acpinodebus with mpu_acpi
85file dev/acpi/mpu_acpi.c mpu_acpi 85file dev/acpi/mpu_acpi.c mpu_acpi
86 86
87# Joystick/Game port 87# Joystick/Game port
88attach joy at acpinodebus with joy_acpi 88attach joy at acpinodebus with joy_acpi
89file dev/acpi/joy_acpi.c joy_acpi 89file dev/acpi/joy_acpi.c joy_acpi
90 90
91# AT-style speaker sound 91# AT-style speaker sound
92attach pcppi at acpinodebus with pcppi_acpi 92attach pcppi at acpinodebus with pcppi_acpi
93file dev/acpi/pcppi_acpi.c pcppi_acpi 93file dev/acpi/pcppi_acpi.c pcppi_acpi
94 94
95# AT Timer 95# AT Timer
96attach attimer at acpinodebus with attimer_acpi 96attach attimer at acpinodebus with attimer_acpi
97file dev/acpi/attimer_acpi.c attimer_acpi 97file dev/acpi/attimer_acpi.c attimer_acpi
98 98
99# Yamaha OPL3-SAx 99# Yamaha OPL3-SAx
100attach ym at acpinodebus with ym_acpi 100attach ym at acpinodebus with ym_acpi
101file dev/acpi/ym_acpi.c ym_acpi 101file dev/acpi/ym_acpi.c ym_acpi
102 102
103# High Precision Event Timer 103# High Precision Event Timer
104attach hpet at acpinodebus with hpet_acpi 104attach hpet at acpinodebus with hpet_acpi
105file dev/acpi/hpet_acpi.c hpet_acpi 105file dev/acpi/hpet_acpi.c hpet_acpi
106 106
107# ASUS AI Booster Hardware monitor 107# ASUS AI Booster Hardware monitor
108device aiboost: sysmon_envsys 108device aiboost: sysmon_envsys
109attach aiboost at acpinodebus 109attach aiboost at acpinodebus
110file dev/acpi/aiboost.c aiboost 110file dev/acpi/aiboost.c aiboost
111 111
112# ASUS hotkey device 112# ASUS hotkey device
113device asus: sysmon_envsys, sysmon_power 113device asus: sysmon_envsys, sysmon_power
114attach asus at acpinodebus 114attach asus at acpinodebus
115file dev/acpi/asus_acpi.c asus 115file dev/acpi/asus_acpi.c asus
116 116
117# Abit uGuru 2005 117# Abit uGuru 2005
118attach ug at acpinodebus with ug_acpi 118attach ug at acpinodebus with ug_acpi
119file dev/acpi/ug_acpi.c ug_acpi 119file dev/acpi/ug_acpi.c ug_acpi
120 120
121# HP Quick Launch Buttons 121# HP Quick Launch Buttons
122device hpqlb: sysmon_power 122device hpqlb: sysmon_power
123attach hpqlb at acpinodebus 123attach hpqlb at acpinodebus
124file dev/acpi/hpqlb_acpi.c hpqlb 124file dev/acpi/hpqlb_acpi.c hpqlb
125 125
126# Sony Notebook Controller (brightness, hotkeys, etc.) 126# Sony Notebook Controller (brightness, hotkeys, etc.)
127device sony: displaydev 127device sony: displaydev
128attach sony at acpinodebus with sony_acpi 128attach sony at acpinodebus with sony_acpi
129file dev/acpi/sony_acpi.c sony_acpi 129file dev/acpi/sony_acpi.c sony_acpi
130 130
131# Sony SPIC (jog dial etc.) 131# Sony SPIC (jog dial etc.)
132attach spic at acpinodebus with spic_acpi 132attach spic at acpinodebus with spic_acpi
133file dev/acpi/spic_acpi.c spic_acpi 133file dev/acpi/spic_acpi.c spic_acpi
134 134
135# IBM/Lenovo Thinkpad hotkey device 135# IBM/Lenovo Thinkpad hotkey device
136device thinkpad 136device thinkpad
137attach thinkpad at acpinodebus 137attach thinkpad at acpinodebus
138file dev/acpi/thinkpad_acpi.c thinkpad 138file dev/acpi/thinkpad_acpi.c thinkpad
139 139
140# Direct Application Launch Buttons 140# Direct Application Launch Buttons
141device acpidalb 141device acpidalb
142attach acpidalb at acpinodebus 142attach acpidalb at acpinodebus
143file dev/acpi/dalb_acpi.c acpidalb 143file dev/acpi/dalb_acpi.c acpidalb
 144
 145# Winbond Integrated Media Reader
 146attach wb at acpinodebus with wb_acpi
 147file dev/acpi/wb_acpi.c wb_acpi

File Added: src/sys/dev/acpi/wb_acpi.c
/* $NetBSD: wb_acpi.c,v 1.1 2009/09/30 20:44:50 jmcneill Exp $ */

/*
 * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: wb_acpi.c,v 1.1 2009/09/30 20:44:50 jmcneill Exp $");

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/errno.h>
#include <sys/ioctl.h>
#include <sys/syslog.h>
#include <sys/device.h>
#include <sys/proc.h>

#include <sys/bus.h>

#include <dev/isa/isavar.h>
#include <dev/isa/isadmavar.h>

#include <dev/acpi/acpica.h>
#include <dev/acpi/acpireg.h>
#include <dev/acpi/acpivar.h>

#include <dev/sdmmc/sdmmcvar.h>
#include <dev/ic/w83l518dvar.h>
#include <dev/ic/w83l518dreg.h>

static int	wb_acpi_match(device_t, cfdata_t, void *);
static void	wb_acpi_attach(device_t, device_t, void *);
static int	wb_acpi_detach(device_t, int);

struct wb_acpi_softc {
	struct wb_softc sc_wb;
	isa_chipset_tag_t sc_ic;
	void *sc_ih;
	int sc_ioh_length;
};

CFATTACH_DECL_NEW(wb_acpi, sizeof(struct wb_acpi_softc),
    wb_acpi_match,
    wb_acpi_attach,
    wb_acpi_detach,
    NULL
);

static const char * const wb_acpi_ids[] = {
#if notyet
	"WEC0515",	/* Memory Stick interface */
#endif
	"WEC0517",	/* SD Memory Card interface */
	NULL
};

static int
wb_acpi_match(device_t parent, cfdata_t match, void *opaque)
{
	struct acpi_attach_args *aa = opaque;

	if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE)
		return 0;

	return acpi_match_hid(aa->aa_node->ad_devinfo, wb_acpi_ids);
}

static void
wb_acpi_attach(device_t parent, device_t self, void *opaque)
{
	struct wb_acpi_softc *sc = device_private(self);
	struct acpi_attach_args *aa = opaque;
	struct acpi_resources res;
	struct acpi_io *io;
	struct acpi_irq *irq;
	bus_space_handle_t ioh;
	ACPI_STATUS rv;

	sc->sc_ic = aa->aa_ic;

	rv = acpi_resource_parse(self, aa->aa_node->ad_handle, "_CRS",
	    &res, &acpi_resource_parse_ops_default);
	if (ACPI_FAILURE(rv))
		return;

	io = acpi_res_io(&res, 0);
	irq = acpi_res_irq(&res, 0);
	if (io == NULL || irq == NULL) {
		aprint_error_dev(self, "incomplete resources\n");
		goto cleanup;
	}

	if (bus_space_map(aa->aa_iot, io->ar_base, io->ar_length, 0, &ioh)) {
		aprint_error_dev(self, "couldn't map registers\n");
		goto cleanup;
	}
	sc->sc_ioh_length = io->ar_length;

	sc->sc_ih = isa_intr_establish(sc->sc_ic, irq->ar_irq,
	    (irq->ar_type == ACPI_EDGE_SENSITIVE) ? IST_EDGE : IST_LEVEL,
	    IPL_SDMMC, wb_intr, &sc->sc_wb);
	if (sc->sc_ih == NULL) {
		aprint_error_dev(self,
		    "couldn't establish interrupt handler\n");
		goto cleanup;
	}

	sc->sc_wb.wb_dev = self;
	sc->sc_wb.wb_type = WB_DEVNO_SD;
	sc->sc_wb.wb_iot = aa->aa_iot;
	sc->sc_wb.wb_ioh = ioh;
	sc->sc_wb.wb_irq = irq->ar_irq;
	sc->sc_wb.wb_base = io->ar_base;
	wb_attach(&sc->sc_wb);
	
cleanup:
	acpi_resource_cleanup(&res);
}

static int
wb_acpi_detach(device_t self, int flags)
{
	struct wb_acpi_softc *sc = device_private(self);
	int rv;

	rv = wb_detach(&sc->sc_wb, flags);
	if (rv)
		return rv;

	if (sc->sc_ih)
		isa_intr_disestablish(sc->sc_ic, sc->sc_ih);

	if (sc->sc_ioh_length > 0)
		bus_space_unmap(sc->sc_wb.wb_iot, sc->sc_wb.wb_ioh,
		    sc->sc_ioh_length);

	return 0;
}

File Added: src/sys/dev/ic/w83l518d.c
/* $NetBSD: w83l518d.c,v 1.1 2009/09/30 20:44:50 jmcneill Exp $ */

/*
 * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: w83l518d.c,v 1.1 2009/09/30 20:44:50 jmcneill Exp $");

#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/errno.h>
#include <sys/ioctl.h>
#include <sys/syslog.h>
#include <sys/device.h>
#include <sys/proc.h>

#include <sys/bus.h>

#include <dev/isa/isavar.h>
#include <dev/isa/isadmavar.h>

#include <dev/ic/w83l518dreg.h>
#include <dev/ic/w83l518dvar.h>
#include <dev/ic/w83l518d_sdmmc.h>

uint8_t
wb_idx_read(struct wb_softc *wb, uint8_t reg)
{
	bus_space_write_1(wb->wb_iot, wb->wb_ioh, WB_SD_INDEX, reg);
	return bus_space_read_1(wb->wb_iot, wb->wb_ioh, WB_SD_DATA);
}

void
wb_idx_write(struct wb_softc *wb, uint8_t reg, uint8_t val)
{
	bus_space_write_1(wb->wb_iot, wb->wb_ioh, WB_SD_INDEX, reg);
	bus_space_write_1(wb->wb_iot, wb->wb_ioh, WB_SD_DATA, val);
}

uint8_t
wb_read(struct wb_softc *wb, uint8_t reg)
{
	return bus_space_read_1(wb->wb_iot, wb->wb_ioh, reg);
}

void
wb_write(struct wb_softc *wb, uint8_t reg, uint8_t val)
{
	bus_space_write_1(wb->wb_iot, wb->wb_ioh, reg, val);
}

void
wb_led(struct wb_softc *wb, bool enable)
{
	uint8_t val;

	val = wb_read(wb, WB_SD_CSR);
	if (enable)
		val |= WB_CSR_MS_LED;
	else
		val &= ~WB_CSR_MS_LED;
	wb_write(wb, WB_SD_CSR, val);
}

void
wb_attach(struct wb_softc *wb)
{
	switch (wb->wb_type) {
	case WB_DEVNO_SD:
		aprint_verbose_dev(wb->wb_dev,
		    "SD/MMC Reader\n");
		wb_sdmmc_attach(wb);
		break;
	case WB_DEVNO_MS:
		aprint_verbose_dev(wb->wb_dev,
		    "Memory Stick Reader (not supported)\n");
		break;
	case WB_DEVNO_SC:
		aprint_verbose_dev(wb->wb_dev,
		    "Smart Card Reader (not supported)\n");
		break;
	case WB_DEVNO_GPIO:
		aprint_verbose_dev(wb->wb_dev,
		    "GPIO (not supported)\n");
		break;
	}
}

int
wb_detach(struct wb_softc *wb, int flags)
{
	switch (wb->wb_type) {
	case WB_DEVNO_SD:
		wb_sdmmc_detach(wb, flags);
		break;
	}

	return 0;
}

/*
 * intr handler 
 */
int
wb_intr(void *opaque)
{
	struct wb_softc *wb = opaque;

	switch (wb->wb_type) {
	case WB_DEVNO_SD:
		return wb_sdmmc_intr(wb);
		break;
	}

	return 0;
}

File Added: src/sys/dev/ic/w83l518d_sdmmc.c
/* $NetBSD: w83l518d_sdmmc.c,v 1.1 2009/09/30 20:44:50 jmcneill Exp $ */

/*
 * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: w83l518d_sdmmc.c,v 1.1 2009/09/30 20:44:50 jmcneill Exp $");

#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/errno.h>
#include <sys/ioctl.h>
#include <sys/syslog.h>
#include <sys/device.h>
#include <sys/proc.h>

#include <sys/bus.h>

#include <dev/sdmmc/sdmmcvar.h>
#include <dev/sdmmc/sdmmcchip.h>
#include <dev/sdmmc/sdmmc_ioreg.h>

#include <dev/isa/isavar.h>
#include <dev/isa/isadmavar.h>

#include <dev/ic/w83l518dreg.h>
#include <dev/ic/w83l518dvar.h>
#include <dev/ic/w83l518d_sdmmc.h>

/* #define WB_SDMMC_DEBUG */

#ifdef WB_SDMMC_DEBUG
static int wb_sdmmc_debug = 1;
#else
static int wb_sdmmc_debug = 0;
#endif

#if defined(__NetBSD__) && __NetBSD_Version__ < 599000600
#define	snprintb(b, l, f, v) bitmask_snprintf((v), (f), (b), (l))
#endif

#define REPORT(_wb, ...)					\
	if (wb_sdmmc_debug > 0)					\
		aprint_normal_dev(((struct wb_softc *)(_wb))->wb_dev, \
				  __VA_ARGS__)

static int	wb_sdmmc_host_reset(sdmmc_chipset_handle_t);
static uint32_t	wb_sdmmc_host_ocr(sdmmc_chipset_handle_t);
static int	wb_sdmmc_host_maxblklen(sdmmc_chipset_handle_t);
static int	wb_sdmmc_card_detect(sdmmc_chipset_handle_t);
static int	wb_sdmmc_write_protect(sdmmc_chipset_handle_t);
static int	wb_sdmmc_bus_power(sdmmc_chipset_handle_t, uint32_t);
static int	wb_sdmmc_bus_clock(sdmmc_chipset_handle_t, int);
static int	wb_sdmmc_bus_width(sdmmc_chipset_handle_t, int);
static void	wb_sdmmc_exec_command(sdmmc_chipset_handle_t,
				      struct sdmmc_command *);
static void	wb_sdmmc_card_enable_intr(sdmmc_chipset_handle_t, int);
static void	wb_sdmmc_card_intr_ack(sdmmc_chipset_handle_t);

static struct sdmmc_chip_functions wb_sdmmc_chip_functions = {
	.host_reset = wb_sdmmc_host_reset,
	.host_ocr = wb_sdmmc_host_ocr,
	.host_maxblklen = wb_sdmmc_host_maxblklen,
	.card_detect = wb_sdmmc_card_detect,
	.write_protect = wb_sdmmc_write_protect,
	.bus_power = wb_sdmmc_bus_power,
	.bus_clock = wb_sdmmc_bus_clock,
	.bus_width = wb_sdmmc_bus_width,
	.exec_command = wb_sdmmc_exec_command,
	.card_enable_intr = wb_sdmmc_card_enable_intr,
	.card_intr_ack = wb_sdmmc_card_intr_ack,
};

static void
wb_sdmmc_read_data(struct wb_softc *wb, uint8_t *data, int len)
{
	bus_space_read_multi_1(wb->wb_iot, wb->wb_ioh, WB_SD_FIFO, data, len);
}

static void
wb_sdmmc_write_data(struct wb_softc *wb, uint8_t *data, int len)
{
	bus_space_write_multi_1(wb->wb_iot, wb->wb_ioh, WB_SD_FIFO, data, len);
}

static void
wb_sdmmc_discover(void *opaque)
{
	struct wb_softc *wb = opaque;

	REPORT(wb, "TRACE: discover(wb)\n");

	sdmmc_needs_discover(wb->wb_sdmmc_dev);
}

static bool
wb_sdmmc_enable(struct wb_softc *wb)
{
	int i = 5000;

	REPORT(wb, "TRACE: enable(wb)\n");

	/* put the device in a known state */
	wb_idx_write(wb, WB_INDEX_SETUP, WB_SETUP_SOFT_RST);
	while (--i > 0 && wb_idx_read(wb, WB_INDEX_SETUP) & WB_SETUP_SOFT_RST)
		delay(10);
	if (i == 0) {
		aprint_error_dev(wb->wb_dev, "timeout resetting device\n");
		return false;
	}
	wb_idx_write(wb, WB_INDEX_CLK, WB_CLK_375K);
	wb_idx_write(wb, WB_INDEX_FIFOEN, 0);
	wb_idx_write(wb, WB_INDEX_DMA, 0);
	wb_idx_write(wb, WB_INDEX_PBSMSB, 0);
	wb_idx_write(wb, WB_INDEX_PBSLSB, 0);
	/* drain FIFO */
	while ((wb_read(wb, WB_SD_FIFOSTS) & WB_FIFO_EMPTY) == 0)
		wb_read(wb, WB_SD_FIFO);

	wb_write(wb, WB_SD_CSR, 0);

	wb_write(wb, WB_SD_INTCTL, WB_INT_DEFAULT);

	wb_sdmmc_card_detect(wb);

	return true;
}

static bool
wb_sdmmc_disable(struct wb_softc *wb)
{
	uint8_t val;

	REPORT(wb, "TRACE: disable(wb)\n");

	val = wb_read(wb, WB_SD_CSR);
	val |= WB_CSR_POWER_N;
	wb_write(wb, WB_SD_CSR, val);

	return true;
}

void
wb_sdmmc_attach(struct wb_softc *wb)
{
	struct sdmmcbus_attach_args saa;

	callout_init(&wb->wb_sdmmc_callout, 0);
	callout_setfunc(&wb->wb_sdmmc_callout, wb_sdmmc_discover, wb);

	wb->wb_sdmmc_width = 1;

	if (wb_sdmmc_enable(wb) == false)
		return;

	memset(&saa, 0, sizeof(saa));
	saa.saa_busname = "sdmmc";
	saa.saa_sct = &wb_sdmmc_chip_functions;
	saa.saa_sch = wb;
	saa.saa_clkmin = 375;
	saa.saa_clkmax = 24000;
	saa.saa_caps = SMC_CAPS_4BIT_MODE;

	wb->wb_sdmmc_dev = config_found(wb->wb_dev, &saa, NULL);
}

int
wb_sdmmc_detach(struct wb_softc *wb, int flags)
{
	int rv;

	if (wb->wb_sdmmc_dev) {
		rv = config_detach(wb->wb_sdmmc_dev, flags);
		if (rv)
			return rv;
	}
	wb_sdmmc_disable(wb);

	callout_halt(&wb->wb_sdmmc_callout, NULL);
	callout_destroy(&wb->wb_sdmmc_callout);

	return 0;
}

/*
 * SD/MMC interface
 */
static int
wb_sdmmc_host_reset(sdmmc_chipset_handle_t sch)
{
	REPORT(sch, "TRACE: sdmmc/host_reset(wb)\n");

	return 0;
}

static uint32_t
wb_sdmmc_host_ocr(sdmmc_chipset_handle_t sch)
{
	REPORT(sch, "TRACE: sdmmc/host_ocr(wb)\n");

	return MMC_OCR_3_2V_3_3V | MMC_OCR_3_3V_3_4V;
}

static int
wb_sdmmc_host_maxblklen(sdmmc_chipset_handle_t sch)
{
	REPORT(sch, "TRACE: sdmmc/host_maxblklen(wb)\n");

	return 512;	/* XXX */
}

static int
wb_sdmmc_card_detect(sdmmc_chipset_handle_t sch)
{
	struct wb_softc *wb = sch;
	int rv;

	wb_led(wb, true);
	rv = (wb_read(wb, WB_SD_CSR) & WB_CSR_CARD_PRESENT) ? 1 : 0;
	wb_led(wb, false);

	REPORT(wb, "TRACE: sdmmc/card_detect(wb) -> %d\n", rv);

	return rv;
}

static int
wb_sdmmc_write_protect(sdmmc_chipset_handle_t sch)
{
	struct wb_softc *wb = sch;
	int rv;

	wb_led(wb, true);
	rv = (wb_read(wb, WB_SD_CSR) & WB_CSR_WRITE_PROTECT) ? 1 : 0;
	wb_led(wb, false);

	REPORT(wb, "TRACE: sdmmc/write_protect(wb) -> %d\n", rv);

	return rv;
}

static int
wb_sdmmc_bus_power(sdmmc_chipset_handle_t sch, uint32_t ocr)
{
	REPORT(sch, "TRACE: sdmmc/bus_power(wb, ocr=%d)\n", ocr);

	return 0;
}

static int
wb_sdmmc_bus_clock(sdmmc_chipset_handle_t sch, int freq)
{
	struct wb_softc *wb = sch;
	uint8_t clk;

	REPORT(wb, "TRACE: sdmmc/bus_clock(wb, freq=%d)\n", freq);

	if (freq >= 24000)
		clk = WB_CLK_24M;
	else if (freq >= 16000)
		clk = WB_CLK_16M;
	else if (freq >= 12000)
		clk = WB_CLK_12M;
	else
		clk = WB_CLK_375K;

	if (wb_idx_read(wb, WB_INDEX_CLK) != clk)
		wb_idx_write(wb, WB_INDEX_CLK, clk);

	return 0;
}

static int
wb_sdmmc_bus_width(sdmmc_chipset_handle_t sch, int width)
{
	struct wb_softc *wb = sch;

	REPORT(wb, "TRACE: sdmmc/bus_width(wb, width=%d)\n", width);

	if (width != 1 && width != 4)
		return 1;

	wb->wb_sdmmc_width = width;

	return 0;
}


static void
wb_sdmmc_rsp_read_long(struct wb_softc *wb, struct sdmmc_command *cmd)
{
	uint8_t *p = (uint8_t *)cmd->c_resp;
	int i;

	if (wb_idx_read(wb, WB_INDEX_RESPLEN) != 1) {
		cmd->c_error = ENXIO;
		return;
	}

	for (i = 12; i >= 0; i -= 4) {
		p[3] = wb_idx_read(wb, WB_INDEX_RESP(i + 0));
		p[2] = wb_idx_read(wb, WB_INDEX_RESP(i + 1));
		p[1] = wb_idx_read(wb, WB_INDEX_RESP(i + 2));
		p[0] = wb_idx_read(wb, WB_INDEX_RESP(i + 3));
		p += 4;
	}
}

static void
wb_sdmmc_rsp_read_short(struct wb_softc *wb, struct sdmmc_command *cmd)
{
	uint8_t *p = (uint8_t *)cmd->c_resp;

	if (wb_idx_read(wb, WB_INDEX_RESPLEN) != 0) {
		cmd->c_error = ENXIO;
		return;
	}

	p[3] = wb_idx_read(wb, WB_INDEX_RESP(12));
	p[2] = wb_idx_read(wb, WB_INDEX_RESP(13));
	p[1] = wb_idx_read(wb, WB_INDEX_RESP(14));
	p[0] = wb_idx_read(wb, WB_INDEX_RESP(15));
}

static int
wb_sdmmc_transfer_data(struct wb_softc *wb, struct sdmmc_command *cmd)
{
	uint8_t fifosts;
	int datalen, retry = 5000;

	if (wb->wb_sdmmc_intsts & WB_INT_CARD)
		return EIO;

	fifosts = wb_read(wb, WB_SD_FIFOSTS);
	if (ISSET(cmd->c_flags, SCF_CMD_READ)) {
		if (fifosts & WB_FIFO_EMPTY) {
			while (--retry > 0) {
				fifosts = wb_read(wb, WB_SD_FIFOSTS);
				if ((fifosts & WB_FIFO_EMPTY) == 0)
					break;
				delay(100);
			}
			if (retry == 0)
				return EBUSY;
		}

		if (fifosts & WB_FIFO_FULL)
			datalen = 16;
		else
			datalen = fifosts & WB_FIFO_DEPTH_MASK;
	} else {
		if (fifosts & WB_FIFO_FULL) {
			while (--retry > 0) {
				fifosts = wb_read(wb, WB_SD_FIFOSTS);
				if ((fifosts & WB_FIFO_FULL) == 0)
					break;
				delay(100);
			}
			if (retry == 0)
				return EBUSY;
		}

		if (fifosts & WB_FIFO_EMPTY)
			datalen = 16;
		else
			datalen = 16 - (fifosts & WB_FIFO_DEPTH_MASK);
	}

	datalen = MIN(datalen, cmd->c_resid);
	if (datalen > 0) {
		if (ISSET(cmd->c_flags, SCF_CMD_READ))
			wb_sdmmc_read_data(wb, cmd->c_buf, datalen);
		else
			wb_sdmmc_write_data(wb, cmd->c_buf, datalen);

		cmd->c_buf += datalen;
		cmd->c_resid -= datalen;
	}

	return 0;
}

static void
wb_sdmmc_exec_command(sdmmc_chipset_handle_t sch, struct sdmmc_command *cmd)
{
	static const int opcodes[] = {
		11, 17, 18, 20, 24, 25, 26, 27, 30, 42, 51, 56
	};
	struct wb_softc *wb = sch;
	uint8_t val;
	int blklen;
	int error;
	int i, retry;
	int s;

	REPORT(wb, "TRACE: sdmmc/exec_command(wb, cmd) "
	    "opcode %d flags 0x%x data %p datalen %d\n",
	    cmd->c_opcode, cmd->c_flags, cmd->c_data, cmd->c_datalen);

	if (cmd->c_datalen > 0) {
		/* controller only supports a select number of data opcodes */
		for (i = 0; i < __arraycount(opcodes); i++)
			if (opcodes[i] == cmd->c_opcode)
				break;
		if (i == __arraycount(opcodes)) {
			cmd->c_error = EINVAL;
			goto done;
		}

		/* Fragment the data into proper blocks */
		blklen = MIN(cmd->c_datalen, cmd->c_blklen);

		if (cmd->c_datalen % blklen > 0) {
			aprint_error_dev(wb->wb_dev,
			    "data is not a multiple of %u bytes\n", blklen);
			cmd->c_error = EINVAL;
			goto done;
		}

		/* setup block size registers */
		blklen = blklen + 2 * wb->wb_sdmmc_width;
		wb_idx_write(wb, WB_INDEX_PBSMSB,
		    ((blklen >> 4) & 0xf0) | (wb->wb_sdmmc_width / 4));
		wb_idx_write(wb, WB_INDEX_PBSLSB, blklen & 0xff);

		/* clear FIFO */
		val = wb_idx_read(wb, WB_INDEX_SETUP);
		val |= WB_SETUP_FIFO_RST;
		wb_idx_write(wb, WB_INDEX_SETUP, val);
		while (wb_idx_read(wb, WB_INDEX_SETUP) & WB_SETUP_FIFO_RST)
			;

		cmd->c_resid = cmd->c_datalen;
		cmd->c_buf = cmd->c_data;

		/* setup FIFO thresholds */
		if (ISSET(cmd->c_flags, SCF_CMD_READ))
			wb_idx_write(wb, WB_INDEX_FIFOEN, WB_FIFOEN_FULL | 8);
		else {
			wb_idx_write(wb, WB_INDEX_FIFOEN, WB_FIFOEN_EMPTY | 8);

			/* pre-fill the FIFO on write */
			error = wb_sdmmc_transfer_data(wb, cmd);
			if (error) {
				cmd->c_error = error;
				goto done;
			}
		}
	}

	s = splsdmmc();
	wb->wb_sdmmc_intsts = 0;
	wb_write(wb, WB_SD_COMMAND, cmd->c_opcode);
	wb_write(wb, WB_SD_COMMAND, (cmd->c_arg >> 24) & 0xff);
	wb_write(wb, WB_SD_COMMAND, (cmd->c_arg >> 16) & 0xff);
	wb_write(wb, WB_SD_COMMAND, (cmd->c_arg >> 8) & 0xff);
	wb_write(wb, WB_SD_COMMAND, (cmd->c_arg >> 0) & 0xff);
	splx(s);

	retry = 100000;
	while (wb_idx_read(wb, WB_INDEX_STATUS) & WB_STATUS_CARD_TRAFFIC) {
		if (--retry == 0)
			break;
		delay(1);
	}
	if (wb_idx_read(wb, WB_INDEX_STATUS) & WB_STATUS_CARD_TRAFFIC) {
		REPORT(wb,
		    "command timed out, WB_INDEX_STATUS = 0x%02x\n",
		    wb_idx_read(wb, WB_INDEX_STATUS));
		cmd->c_error = ETIMEDOUT;
		goto done;
	}

	if (ISSET(cmd->c_flags, SCF_RSP_PRESENT)) {
		if (wb->wb_sdmmc_intsts & WB_INT_TIMEOUT) {
			cmd->c_error = ETIMEDOUT;
			goto done;
		}

		if (ISSET(cmd->c_flags, SCF_RSP_136))
			wb_sdmmc_rsp_read_long(wb, cmd);
		else
			wb_sdmmc_rsp_read_short(wb, cmd);
	}

	if (cmd->c_error == 0 && cmd->c_datalen > 0) {
		wb_led(wb, true);
		while (cmd->c_resid > 0) {
			error = wb_sdmmc_transfer_data(wb, cmd);
			if (error) {
				cmd->c_error = error;
				break;
			}
		}
		wb_led(wb, false);
	}

done:
	SET(cmd->c_flags, SCF_ITSDONE);

	if (cmd->c_error) {
		REPORT(wb,
		    "cmd error = %d, op = %d [%s] "
		    "blklen %d datalen %d resid %d\n",
		    cmd->c_error, cmd->c_opcode,
		    ISSET(cmd->c_flags, SCF_CMD_READ) ? "rd" : "wr",
		    cmd->c_blklen, cmd->c_datalen, cmd->c_resid);
	}
}
				      
static void
wb_sdmmc_card_enable_intr(sdmmc_chipset_handle_t sch, int enable)
{
	REPORT(sch, "TRACE: sdmmc/card_enable_intr(wb, enable=%d)\n", enable);
}

static void
wb_sdmmc_card_intr_ack(sdmmc_chipset_handle_t sch)
{
	REPORT(sch, "TRACE: sdmmc/card_intr_ack(wb)\n");
}

/*
 * intr handler 
 */
int
wb_sdmmc_intr(struct wb_softc *wb)
{
	uint8_t val;

	val = wb_read(wb, WB_SD_INTSTS);
	if (val == 0xff || val == 0x00)
		return 0;

	if (wb->wb_sdmmc_dev == NULL)
		return 1;

	wb->wb_sdmmc_intsts |= val;

	if (wb_sdmmc_debug) {
		char buf[64];
		snprintb(buf, sizeof(buf),
		    "\20\1TC\2BUSYEND\3PROGEND\4TIMEOUT"
		    "\5CRC\6FIFO\7CARD\010PENDING",
		    val);
		REPORT(wb, "WB_SD_INTSTS = %s\n", buf);
	}

	if (val & WB_INT_CARD)
		callout_schedule(&wb->wb_sdmmc_callout, hz / 4);

	return 1;
}

File Added: src/sys/dev/ic/w83l518d_sdmmc.h
/* $NetBSD: w83l518d_sdmmc.h,v 1.1 2009/09/30 20:44:50 jmcneill Exp $ */

/*
 * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifndef _SYS_DEV_IC_W83L518D_SDMMC_H
#define _SYS_DEV_IC_W83L518D_SDMMC_H

void	wb_sdmmc_attach(struct wb_softc *);
int	wb_sdmmc_detach(struct wb_softc *, int);
int	wb_sdmmc_intr(struct wb_softc *);

#endif

File Added: src/sys/dev/ic/w83l518dreg.h
/* $NetBSD: w83l518dreg.h,v 1.1 2009/09/30 20:44:50 jmcneill Exp $ */

/*
 * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifndef _SYS_DEV_IC_W83L518DREG_H
#define _SYS_DEV_IC_W83L518DREG_H

/*
 * Global Registers
 */

#define	WB_REG_RESET		0x02
#define	 WB_RESET_SWRST		 0x01	/* software reset */

#define	WB_REG_DEVNO		0x07
#define	 WB_DEVNO_SC		 0x00	/* Smart Card interface */
#define	 WB_DEVNO_MS		 0x01	/* Memory Stick interface */
#define	 WB_DEVNO_GPIO		 0x02	/* GPIO */
#define	 WB_DEVNO_SD		 0x03	/* SD memory card interface */

#define	WB_REG_DEVID_HI		0x20
#define	WB_REG_DEVID_LO		0x21
#define	 WB_DEVID_W83L518D	 0x7110
#define	 WB_DEVID_W83L519D	 0x7120
#define	 WB_DEVID_REVISION(id)	 ((id) & 0xf)

#define	WB_REG_POWER		0x22
#define	 WB_POWER_SC		 0x80	/* Smart Card interface */
#define	 WB_POWER_MS		 0x40	/* Memory Stick interface */
#define	 WB_POWER_SD		 0x20	/* SD memory card interface */

#define	WB_REG_PME		0x23
#define	 WB_PME_PME_EN		 0x80	/* Global PM event enable */
#define	 WB_PME_MSPME_EN	 0x40	/* MS PM event enable */
#define	 WB_PME_SDPME_EN	 0x20	/* SD PM event enable */
#define	 WB_PME_SCPME_EN	 0x10	/* SC PM event enable */

#define	WB_REG_PMESTS		0x24	/* PM event status */
#define	 WB_PMESTS_MSPME_STS	 0x40	/* MS PM event status */
#define	 WB_PMESTS_SDPME_STS	 0x20	/* SD PM event status */
#define	 WB_PMESTS_SCPME_STS	 0x10	/* SC PM event status */

#define	WB_REG_CFG		0x26
#define	 WB_CFG_HEFRAS		 0x40	/* Extended func reg addr select */
#define	 WB_CFG_LOCKREG		 0x20	/* Config register access control */

#define	WB_REG_MFSEL		0x29	/* Multi-function sel (518 only) */

/*
 * Logical Device Interface
 */

#define WB_REG_DEV_EN		0x30
#define	 WB_DEV_EN_ACTIVE	 0x01	/* Logical device active bit */

#define	WB_REG_DEV_BASE_HI	0x60
#define	WB_REG_DEV_BASE_LO	0x61

#define	WB_REG_DEV_IRQ		0x70
#define	 WB_DEV_IRQ_MASK	 0x0f

#define	WB_REG_DEV_DRQ		0x74
#define	 WB_DEV_DRQ_MASK	 0x0f

#define	WB_REG_DEV_MISC		0xf0
#define	 WB_DEV_MISC_SCIRQ_SHR	 0x80	/* SC: IRQ sharing control */
#define	 WB_DEV_MISC_SCPSNT_POL	 0x01	/* SC: SC present polarity */
#define	 WB_DEV_MISC_MSIRQ_POLL	 0x10	/* MS: IRQ polarity control (level) */
#define	 WB_DEV_MISC_MSIRQ_POLP	 0x08	/* MS: IRQ polarity control (pulse) */
#define	 WB_DEV_MISC_MSIRQ_SHR	 0x04	/* MS: IRQ sharing control */
#define	 WB_DEV_MISC_MS4OUT_POL	 0x02	/* MS: MS4 output polarity control */
#define	 WB_DEV_MISC_MS4OUT_EN	 0x01	/* MS: MS4 output enable */
#define	 WB_DEV_MISC_SDDATA3_HI	 0x20	/* SD: DATA3 pin will output high */
#define	 WB_DEV_MISC_SDDATA3_OUT 0x10	/* SD: DATA3 pin to output pin */
#define	 WB_DEV_MISC_SDGP11_HI	 0x04	/* SD: GP11 card-detect pin pole */
#define	 WB_DEV_MISC_SDGP11_DET	 0x02	/* SD: GP11 card-detect enable */
#define	 WB_DEV_MISC_SDDATA3_DET 0x01	/* SD: DATA3 card-detect enable */

#define	WB_REG_DEV_IRQCFG	0xf1
#define	 WB_DEV_IRQCFG_HI_L	 0x08
#define	 WB_DEV_IRQCFG_HI_P	 0x04
#define	 WB_DEV_IRQCFG_MODE	 0x02
#define	 WB_DEV_IRQCFG_DEBOUNCE	 0x01

/*
 * SD Card interface registers
 */

#define WB_SD_COMMAND		0x00
#define	WB_SD_FIFO		0x01
#define	WB_SD_INTCTL		0x02
#define	WB_SD_INTSTS		0x03
#define	 WB_INT_PENDING		 0x80
#define	 WB_INT_CARD		 0x40
#define	 WB_INT_FIFO		 0x20
#define	 WB_INT_CRC		 0x10
#define	 WB_INT_TIMEOUT		 0x08
#define	 WB_INT_PROGEND		 0x04
#define	 WB_INT_BUSYEND		 0x02
#define	 WB_INT_TC		 0x01
#define	 WB_INT_DEFAULT	\
	  (WB_INT_CARD|WB_INT_FIFO|WB_INT_CRC|WB_INT_TIMEOUT)
#define	WB_SD_FIFOSTS		0x04
#define	 WB_FIFO_EMPTY		 0x80
#define	 WB_FIFO_FULL		 0x40
#define	 WB_FIFO_EMPTY_THRES	 0x20
#define	 WB_FIFO_FULL_THRES	 0x10
#define	 WB_FIFO_DEPTH_MASK	 0x0f
#define	WB_SD_INDEX		0x05
#define	 WB_INDEX_CLK		 0x01
#define	  WB_CLK_375K		  0x00
#define	  WB_CLK_12M		  0x01
#define	  WB_CLK_16M		  0x02
#define	  WB_CLK_24M		  0x03
#define	 WB_INDEX_PBSMSB	 0x02
#define	 WB_INDEX_TAAC		 0x03
#define	 WB_INDEX_NSAC		 0x04
#define	 WB_INDEX_PBSLSB	 0x05
#define	 WB_INDEX_SETUP		 0x06
#define	  WB_SETUP_DATA3_HI	  0x08
#define	  WB_SETUP_FIFO_RST	  0x04
#define	  WB_SETUP_SOFT_RST	  0x02
#define	 WB_INDEX_DMA		 0x07
#define	 WB_INDEX_FIFOEN	 0x08
#define	  WB_FIFOEN_EMPTY	  0x20
#define	  WB_FIFOEN_FULL	  0x10
#define	 WB_INDEX_STATUS	 0x10
#define	  WB_STATUS_BLOCK_READ	  0x80
#define	  WB_STATUS_BLOCK_WRITE	  0x40
#define	  WB_STATUS_BUSY	  0x20
#define	  WB_STATUS_CARD_TRAFFIC  0x04
#define	  WB_STATUS_SEND_COMMAND  0x02
#define	  WB_STATUS_RECV_RES	  0x01
#define	 WB_INDEX_RESPLEN	 0x1e
#define	 WB_INDEX_RESP(n)	 (0x1f + (n))
#define	 WB_INDEX_CRCSTS	 0x30
#define	 WB_INDEX_ISR		 0x3f
#define	WB_SD_DATA		0x06
#define	WB_SD_CSR		0x07
#define	 WB_CSR_MS_LED		 0x20
#define	 WB_CSR_POWER_N		 0x10
#define	 WB_CSR_WRITE_PROTECT	 0x04
#define	 WB_CSR_CARD_PRESENT	 0x01

#endif

File Added: src/sys/dev/ic/w83l518dvar.h
/* $NetBSD: w83l518dvar.h,v 1.1 2009/09/30 20:44:50 jmcneill Exp $ */

/*
 * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifndef _SYS_DEV_IC_W83L518DVAR_H
#define _SYS_DEV_IC_W83L518DVAR_H

struct wb_softc {
	device_t		wb_dev;

	/* to be filled in by bus driver */
	bus_space_tag_t		wb_iot;
	bus_space_handle_t	wb_ioh;
	uint8_t			wb_type;
	uint16_t		wb_base;
	uint8_t			wb_irq;

	/* private */
	device_t		wb_sdmmc_dev;
	int			wb_sdmmc_width;
	uint8_t			wb_sdmmc_intsts;
	callout_t		wb_sdmmc_callout;
};

void	wb_attach(struct wb_softc *);
int	wb_detach(struct wb_softc *, int);
int	wb_intr(void *);

uint8_t	wb_read(struct wb_softc *, uint8_t);
void	wb_write(struct wb_softc *, uint8_t, uint8_t);
uint8_t	wb_idx_read(struct wb_softc *, uint8_t);
void	wb_idx_write(struct wb_softc *, uint8_t, uint8_t);

void	wb_led(struct wb_softc *, bool);

#endif