1 /* $OpenBSD: adb_subr.c,v 1.2 2006/02/09 06:45:41 miod Exp $ */
2 /* $NetBSD: adb.c,v 1.6 1999/08/16 06:28:09 tsubai Exp $ */
3
4 /*-
5 * Copyright (C) 1994 Bradley A. Grantham
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by Bradley A. Grantham.
19 * 4. The name of the author may not be used to endorse or promote products
20 * derived from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34 #include <sys/param.h>
35 #include <sys/systm.h>
36 #include <sys/device.h>
37
38 #include <dev/adb/adb.h>
39
40 struct cfdriver adb_cd = {
41 NULL, "adb", DV_DULL
42 };
43
44 int
45 adbprint(void *args, const char *name)
46 {
47 struct adb_attach_args *aa_args = (struct adb_attach_args *)args;
48 int rv = UNCONF;
49
50 if (name) { /* no configured device matched */
51 rv = UNSUPP; /* most ADB device types are unsupported */
52
53 /* print out what kind of ADB device we have found */
54 switch(aa_args->origaddr) {
55 #ifdef ADBVERBOSE
56 case ADBADDR_SECURE:
57 printf("security dongle (%d)", aa_args->handler_id);
58 break;
59 #endif
60 case ADBADDR_MAP:
61 printf("mapped device (%d)", aa_args->handler_id);
62 rv = UNCONF;
63 break;
64 case ADBADDR_REL:
65 printf("relative positioning device (%d)",
66 aa_args->handler_id);
67 rv = UNCONF;
68 break;
69 #ifdef ADBVERBOSE
70 case ADBADDR_ABS:
71 switch (aa_args->handler_id) {
72 case ADB_ARTPAD:
73 printf("WACOM ArtPad II");
74 break;
75 default:
76 printf("absolute positioning device (%d)",
77 aa_args->handler_id);
78 break;
79 }
80 break;
81 case ADBADDR_DATATX:
82 printf("data transfer device (modem?) (%d)",
83 aa_args->handler_id);
84 break;
85 case ADBADDR_MISC:
86 switch (aa_args->handler_id) {
87 case ADB_POWERKEY:
88 printf("Sophisticated Circuits PowerKey");
89 break;
90 default:
91 printf("misc. device (remote control?) (%d)",
92 aa_args->handler_id);
93 break;
94 }
95 break;
96 #endif /* ADBVERBOSE */
97 default:
98 printf("unknown type %d device, (handler %d)",
99 aa_args->origaddr, aa_args->handler_id);
100 break;
101 }
102 printf(" at %s", name);
103 }
104
105 printf(" addr %d", aa_args->adbaddr);
106
107 return (rv);
108 }