diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-01-11 16:14:47 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-01-11 16:14:47 +0000 |
commit | fe83cef6831e46410c6095033fe53c2750340099 (patch) | |
tree | e2ef1fc15c9aa918513c07d3171df140a2f65c29 /c/src/lib/libcpu/bfin/serial/spi.h | |
parent | Update. (diff) | |
download | rtems-fe83cef6831e46410c6095033fe53c2750340099.tar.bz2 |
2010-01-11 Allan Hessenflow <allanh@kallisti.com>
* serial/spi.c, serial/spi.h:
Fill in skeleton with functional SPI master code.
* include/spiRegs.h:
Correct spi shadow register declaration.
Diffstat (limited to 'c/src/lib/libcpu/bfin/serial/spi.h')
-rw-r--r-- | c/src/lib/libcpu/bfin/serial/spi.h | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/c/src/lib/libcpu/bfin/serial/spi.h b/c/src/lib/libcpu/bfin/serial/spi.h index a656f44c29..63609a3ccb 100644 --- a/c/src/lib/libcpu/bfin/serial/spi.h +++ b/c/src/lib/libcpu/bfin/serial/spi.h @@ -1,9 +1,7 @@ -/* placeholder (just a shell) */ - /* * RTEMS driver for Blackfin SPI * - * COPYRIGHT (c) 2008 Kallisti Labs, Los Gatos, CA, USA + * COPYRIGHT (c) 2010 Kallisti Labs, Los Gatos, CA, USA * written by Allan Hessenflow <allanh@kallisti.com> * * The license and distribution terms for this file may be @@ -13,40 +11,45 @@ * $Id$ */ - -#ifndef _spi_h_ -#define _spi_h_ - +#ifndef _spi_h +#define _spi_h #ifdef __cplusplus extern "C" { #endif - typedef struct { - /* parameters provided by bsp */ - uint32_t freq; - void *base; - bool fast; - /* internal use */ - rtems_id irq_sema_id; -} bfin_spi_softc_t; + void *base; + /* remaining entries are for internal use */ + rtems_id sem; + int bytes_per_word; + uint16_t idle_pattern; + uint8_t *rd_ptr; + const uint8_t *wr_ptr; + int len; +} bfin_spi_state_t; typedef struct { rtems_libi2c_bus_t bus; - bfin_spi_softc_t softc; -} bfin_spi_desc_t; + bfin_spi_state_t p; +} bfin_spi_bus_t; + + +void bfin_spi_isr(int v); +rtems_status_code bfin_spi_init(rtems_libi2c_bus_t *bus); -extern rtems_libi2c_bus_ops_t bfin_spi_libi2c_bus_ops; +rtems_status_code bfin_spi_send_start(rtems_libi2c_bus_t *bus); +int bfin_spi_read_bytes(rtems_libi2c_bus_t *bus, unsigned char *buf, int len); -void bfin_spi_isr(int source); +int bfin_spi_write_bytes(rtems_libi2c_bus_t *bus, unsigned char *buf, int len); +int bfin_spi_ioctl(rtems_libi2c_bus_t *bus, int cmd, void *arg); #ifdef __cplusplus } #endif -#endif /* _spi_h_ */ +#endif /* _spi_h */ |