1 /*        $NetBSD: auxioreg.h,v 1.8 2015/07/11 10:32:46 kamil Exp $   */
2 
3 /*
4  * Copyright (c) 2000 Matthew R. Green
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26  * SUCH DAMAGE.
27  */
28 
29 /*
30  * The AUXIO registers; their offset in the Ebus2 address space, plus the
31  * bits for each register.  Note that the fdthree (FD), SUNW,CS4231 (AUDIO)
32  * and power (POWER) devices on the Ebus2 have their AUXIO registers mapped
33  * into their own "reg" properties, not the "auxio" device's "reg" properties.
34  */
35 #define   AUXIO_FD                      0x00720000
36 #define   AUXIO_FD_DENSENSE_INPUT                 0x0
37 #define   AUXIO_FD_DENSENSE_OUTPUT      0x1
38 
39 #define   AUXIO_AUDIO                             0x00722000
40 #define   AUXIO_AUDIO_POWERDOWN                   0x0
41 
42 #define   AUXIO_POWER                             0x00724000
43 #define   AUXIO_POWER_SYSTEM_OFF                  0x0
44 #define   AUXIO_POWER_COURTESY_OFF      0x1
45 
46 #define   AUXIO_LED                       0x00726000
47 /* XXX: these may be useless on Ebus2 auxio! find out! */
48 #define   AUXIO_LED_LED           0x01    /* front panel LED */
49 #define   AUXIO_LED_FTC           0x02    /* floppy: drives Terminal Count pin */
50 #define   AUXIO_LED_MMUX          0x04    /* Monitor/Mouse MUX; what is it? */
51 #define   AUXIO_LED_LTE           0x08    /* link-test enable */
52 #define   AUXIO_LED_FHD           0x20    /* floppy: high density (unreliable?)*/
53 #define   AUXIO_LED_FLOPPY_MASK           (AUXIO_LED_FTC)
54 
55 #define   AUXIO_PCI                     0x00728000
56 #define   AUXIO_PCI_SLOT0                         0x0       /* two bits each */
57 #define   AUXIO_PCI_SLOT1                         0x2
58 #define   AUXIO_PCI_SLOT2                         0x4
59 #define   AUXIO_PCI_SLOT3                         0x6
60 #define   AUXIO_PCI_MODE                          0x8
61 
62 #define   AUXIO_FREQ                              0x0072a000
63 #define   AUXIO_FREQ_FREQ0              0x0
64 #define   AUXIO_FREQ_FREQ1              0x1
65 #define   AUXIO_FREQ_FREQ2              0x2
66 
67 #define   AUXIO_SCSI                              0x0072c000
68 #define   AUXIO_SCSI_INT_OSC_EN                   0x0
69 #define   AUXIO_SCSI_EXT_OSC_EN                   0x1
70 
71 #define   AUXIO_TEMP                              0x0072f000
72 #define   AUXIO_TEMP_SELECT             0x0
73 #define   AUXIO_TEMP_CLOCK              0x1
74 #define   AUXIO_TEMP_ENABLE             0x2
75 #define   AUXIO_TEMP_DATAOUT            0x3
76 #define   AUXIO_TEMP_DATAINT            0x4
77 
78 #define FTC_FLIP \
79           do { \
80                     auxio_fd_control(AUXIO_LED_FTC); \
81                     auxio_fd_control(0); \
82           } while (0)
83