'\" t
.\" Copyright (c) 2000 lars brinkhoff <lars@nocrew.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" Modified, Thu Jan 27 19:16:19 CET 2000, lars@nocrew.org
.\"
.TH DSP56K 4 2012-08-05 "Linux" "Linux Programmer's Manual"
.SH NAME
dsp56k \- DSP56001 interface device
.SH SYNOPSIS
.nf
#include <asm/dsp56k.h>
.sp
.BI "ssize_t read(int " fd ", void *" data ", size_t " length );
.BI "ssize_t write(int " fd ", void *" data ", size_t " length );

.BI "int ioctl(int " fd ", DSP56K_UPLOAD, struct dsp56k_upload *" program );
.BI "int ioctl(int " fd ", DSP56K_SET_TX_WSIZE, int " wsize );
.BI "int ioctl(int " fd ", DSP56K_SET_RX_WSIZE, int " wsize );
.BI "int ioctl(int " fd ", DSP56K_HOST_FLAGS, struct dsp56k_host_flags *" flags );
.BI "int ioctl(int " fd ", DSP56K_HOST_CMD, int " cmd );
.fi
.SH CONFIGURATION
The dsp56k device is a character device with major number 55 and minor
number 0.
.SH DESCRIPTION
The Motorola DSP56001 is a fully programmable 24-bit digital signal
processor found in Atari Falcon030-compatible computers.
The \fIdsp56k\fP special file is used to control the DSP56001, and
to send and receive data using the bidirectional handshaked host
port.
.PP
To send a data stream to the signal processor, use
.BR write (2)
to the
device, and
.BR read (2)
to receive processed data.
The data can be sent or
received in 8, 16, 24, or 32-bit quantities on the host side, but will
always be seen as 24-bit quantities in the DSP56001.
.PP
The following
.BR ioctl (2)
calls are used to control the
\fIdsp56k\fP device:
.IP \fBDSP56K_UPLOAD\fP
resets the DSP56001 and uploads a program.
The third
.BR ioctl (2)
argument must be a pointer to a \fIstruct dsp56k_binary\fP with members
\fIbin\fP pointing to a DSP56001 binary program, and \fIlen\fP set to
the length of the program, counted in 24-bit words.
.IP \fBDSP56K_SET_TX_WSIZE\fP
sets the transmit word size.
Allowed values are in the range 1 to 4,
and is the number of bytes that will be sent at a time to the
DSP56001.
These data quantities will either be padded with zero
bytes, or truncated to fit the native 24-bit data format of the
DSP56001.
.IP \fBDSP56K_SET_RX_WSIZE\fP
sets the receive word size.
Allowed values are in the range 1 to 4,
and is the number of bytes that will be received at a time from the
DSP56001.
These data quantities will either truncated, or padded with
a null byte (\(aq\\0\(aq) to fit the native 24-bit data format of the DSP56001.
.IP \fBDSP56K_HOST_FLAGS\fP
read and write the host flags.
The host flags are four
general-purpose bits that can be read by both the hosting computer and
the DSP56001.
Bits 0 and 1 can be written by the host, and bits 2 and
3 can be written by the DSP56001.

To access the host flags, the third
.BR ioctl (2)
argument must be a pointer
to a \fIstruct dsp56k_host_flags\fP.
If bit 0 or 1 is set in the
\fIdir\fP member, the corresponding bit in \fIout\fP will be written
to the host flags.
The state of all host flags will be returned in
the lower four bits of the \fIstatus\fP member.
.IP \fBDSP56K_HOST_CMD\fP
sends a host command.
Allowed values are in the range 0 to 31, and is a
user-defined command handled by the program running in the DSP56001.
.SH FILES
/dev/dsp56k
.\" .SH AUTHORS
.\" Fredrik Noring <noring@nocrew.org>, lars brinkhoff <lars@nocrew.org>,
.\" Tomas Berndtsson <tomas@nocrew.org>.
.SH SEE ALSO
.IR linux/include/asm-m68k/dsp56k.h ,
.IR linux/drivers/char/dsp56k.c ,
.UR http://dsp56k.nocrew.org/
.UE ,
DSP56000/DSP56001 Digital Signal Processor User's Manual
