summaryrefslogtreecommitdiffstats
path: root/sys/dev/matcd/creativeif.h
diff options
context:
space:
mode:
authoruhclem <uhclem@FreeBSD.org>2003-06-17 01:20:03 +0000
committeruhclem <uhclem@FreeBSD.org>2003-06-17 01:20:03 +0000
commit9c37ee4474176fb7bc1084da2676dbaa0df82fcf (patch)
tree4425367ce6be7febeff5e39dc985b2bbd53cf8da /sys/dev/matcd/creativeif.h
parent74ee61c2bbc5044cd0c47d4e33abab739855286f (diff)
downloadFreeBSD-src-9c37ee4474176fb7bc1084da2676dbaa0df82fcf.zip
FreeBSD-src-9c37ee4474176fb7bc1084da2676dbaa0df82fcf.tar.gz
Re-introduction of the matcd CD driver.
This version of the driver code is compatible with near-release FreeBSD 5.1 kernel/driver interfaces. modules/Makefile, man page and other bindings to follow shortly, once I get this part of the check-in right. Approved by: markm(mentor)
Diffstat (limited to 'sys/dev/matcd/creativeif.h')
-rw-r--r--sys/dev/matcd/creativeif.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/sys/dev/matcd/creativeif.h b/sys/dev/matcd/creativeif.h
new file mode 100644
index 0000000..739550b
--- /dev/null
+++ b/sys/dev/matcd/creativeif.h
@@ -0,0 +1,101 @@
+/*creative.h-------------------------------------------------------------------
+
+ Matsushita(Panasonic) / Creative CD-ROM Driver (matcd)
+ Authored by Frank Durda IV
+
+Copyright 1994, 1995, 2002, 2003 Frank Durda IV. All rights reserved.
+"FDIV" is a trademark of Frank Durda IV.
+
+------------------------------------------------------------------------------
+
+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. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. Neither the name of the author nor the names of their contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+
+------------------------------------------------------------------------------
+
+See matcd.c for Edit History
+*/
+
+/* $FreeBSD$
+*/
+
+/*----------------------------------------------------------------------------
+These are the I/O port mapping offsets and bit assignments used by Creative
+Labs in their implementation of the host interface adapter for the Matsushita
+CD-ROM drive. These may be different in the adapter cards (including sound
+cards) made by other vendors. It is unknown if the Creative interface is
+based on a reference design provided by Matsushita. (If Matsushita did
+provide a reference design, you would expect adapters made by other vendors
+to be more compatible.)
+
+Note that the Matsushita drives are actually capable of using DMA and
+generating interrupts, but none of the host adapters provide the circuitry
+needed to do DMA or generate interrupts.
+
+See matcd.h for defines related to the drive command set.
+
+------------------------------------------------------------------------------
+ Creative Labs (and compatible) host adapter I/O port mapping offsets
+----------------------------------------------------------------------------*/
+
+#define NUMPORTS 4 /*Four ports are decoded by the i/f*/
+
+#define CMD 0 /*Write - commands*/
+#define DATA 0 /*Read - status from drive. Also for*/
+ /*reading data on Creative adapters.*/
+#define PHASE 1 /*Write - switch between data/status*/
+#define STATUS 1 /*Read - bus status*/
+#define RESET 2 /*Write - reset all attached drives*/
+ /*Any value written will reset*/
+#define ALTDATA 2 /*Read - data on non-Creative adaptrs.*/
+#define SELECT 3 /*Write - drive select*/
+
+
+/* Creative PHASE port bit assignments
+*/
+
+#define PHASENA 1 /*Access data bytes instead of status*/
+ /*on shared data/status port*/
+
+
+/* Creative STATUS port register bits
+*/
+
+#define DTEN 2 /*When low, in data xfer phase*/
+#define STEN 4 /*When low, in status phase*/
+#define TEST 1 /*Function is unknown*/
+
+
+/* Creative drive SELECT port bit assignments
+ Note that on the Creative host adapters, DS0==Bit 1 and
+ DS1==Bit 0 (DS is Drive Select).
+*/
+
+#define CRDRIVE0 0x00
+#define CRDRIVE1 0x02
+#define CRDRIVE2 0x01
+#define CRDRIVE3 0x03
+
+/*End of creative.h*/
+
OpenPOWER on IntegriCloud