DSP56K(4) Special files DSP56K(4)
NAME
dsp56k - DSP56001 interface device
SYNOPSIS
#include <asm/dsp56k.h>
ssize_t read (int fd, void * data, size_t length);
ssize_t write (int fd, void * data, size_t length);
int ioctl (int fd, DSP56K_UPLOAD, struct dsp56k_upload *program);
int ioctl (int fd, DSP56K_SET_TX_WSIZE, int wsize);
int ioctl (int fd, DSP56K_SET_RX_WSIZE, int wsize);
int ioctl (int fd, DSP56K_HOST_FLAGS, struct dsp56k_host_flags *flags);
int ioctl (int fd, DSP56K_HOST_CMD, int cmd);
CONFIGURATION
The dsp56k device is a character device with major number
55 and minor number 0.
DESCRIPTION
The Motorola DSP56001 is a fully programmable 24-bit digi-
tal signal processor found in Atari Falcon030-compatible
computers. The dsp56k special file is used to control the
DSP56001, and to send and receive data using the bi-direc-
tional handshaked host port.
To send a data stream to the signal processor, use write()
to the device, and read() to receive processed data. The
data can be sent or received in 8, 16, 24, or 32-bit quan-
tities on the host side, but will always be seen as 24-bit
quantities in the DSP56001.
The following ioctl(2) calls are used to control the
dsp56k device:
DSP56K_UPLOAD
resets the DSP56001 and uploads a program. The
third ioctl() argument must be a pointer to a
struct dsp56k_binary with members bin pointing to a
DSP56001 binary program, and len set to the length
of the program, counted in 24-bit words.
DSP56K_SET_TX_WSIZE
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.
DSP56K_SET_RX_WSIZE
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
Linux March 1, 2000 1
DSP56K(4) Special files DSP56K(4)
padded with a zero byte to fit the native 24-bit
data format of the DSP56001.
DSP56K_HOST_FLAGS
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 ioctl() argu-
ment must be a pointer to a struct
dsp56k_host_flags. If bit 0 or 1 is set in the dir
member, the corresponding bit in out will be writ-
ten to the host flags. The state of all host flags
will be returned in the lower four bits of the sta-
tus member.
DSP56K_HOST_CMD
sends a host command. Allowed values are in the
range 0 to 31, and is a user-defined command han-
dled by the program running in the DSP56001.
FILES
/dev/dsp56k
AUTHORS
Fredrik Noring <noring@nocrew.org>, lars brinkhoff
<lars@nocrew.org>, Tomas Berndtsson <tomas@nocrew.org>.
SEE ALSO
linux/include/asm-m68k/dsp56k.h,
linux/drivers/char/dsp56k.c, http://dsp56k.nocrew.org/,
DSP56000/DSP56001 Digital Signal Processor User's Manual
Linux March 1, 2000 2