SysTutorials

Linux Manual Pages › Section 4

dsp56k(4)

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 digital 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 bidirectional handshaked host port.

To send a data stream to the signal processor, use write(2) to the device, and 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.

The following ioctl(2) calls are used to control the dsp56k device:

DSP56K_UPLOAD

resets the DSP56001 and uploads a program. The third ioctl(2) argument must be a pointer to a struct dsp56k_upload 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 bytes containing zero, 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 padded with a null byte (‘