# phpman > man > DSP56K(4)

[DSP56K(4)](https://www.chedong.com/phpMan.php/man/DSP56K/4/markdown)                             Linux Programmer's Manual                            [DSP56K(4)](https://www.chedong.com/phpMan.php/man/DSP56K/4/markdown)



## 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 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)](https://www.chedong.com/phpMan.php/man/write/2/markdown) to the device, and [**read**(2)](https://www.chedong.com/phpMan.php/man/read/2/markdown) to re‐
       ceive 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)](https://www.chedong.com/phpMan.php/man/ioctl/2/markdown) calls are used to control the _dsp56k_ device:

       **DSP56K**___**UPLOAD**
              resets  the  DSP56001  and  uploads  a program.  The third [**ioctl**(2)](https://www.chedong.com/phpMan.php/man/ioctl/2/markdown) argument must be a
              pointer to a _struct_ _dsp56k_upload_ with members _bin_ pointing to a DSP56001 binary  pro‐
              gram, 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 num‐
              ber 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 ('\0') 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**(2)](https://www.chedong.com/phpMan.php/man/ioctl/2/markdown) argument 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 written to the host flags.  The state of all host flags will be returned
              in the lower four bits of the _status_ member.

       **DSP56K**___**HOST**___**CMD**
              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.

## FILES
       _/dev/dsp56k_

## 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

## COLOPHON
       This page is part of release 5.10 of the Linux  _man-pages_  project.   A  description  of  the
       project,  information about reporting bugs, and the latest version of this page, can be found
       at <https://www.kernel.org/doc/man-pages/>.



Linux                                        2020-08-13                                    [DSP56K(4)](https://www.chedong.com/phpMan.php/man/DSP56K/4/markdown)
