X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fsipo.h;h=940f85377c7dba38e142cdff59d174191a5252bb;hb=556950c69e7bd7c533c4c18fd49bae8eaafa9709;hp=165c21ed3265767ffcf7268d3c19c854e9754a02;hpb=ee3a4e534d8c013ef12d932e5325f62d128d00d8;p=bertos.git diff --git a/bertos/drv/sipo.h b/bertos/drv/sipo.h index 165c21ed..940f8537 100644 --- a/bertos/drv/sipo.h +++ b/bertos/drv/sipo.h @@ -30,26 +30,73 @@ * * --> * - * \brief Macro for SIPO_H + * \brief Generic Serial-in, Parallel-out implementation (SIPO). * * * \version $Id$ * * \author Andrea Grandi * \author Daniele Basile + * + * $WIZ$ module_name = "sipo" + * $WIZ$ module_depends = "kfile" + * $WIZ$ module_hw = "bertos/hw/hw_sipo.h" */ + + + + #ifndef DRV_SIPO_H #define DRV_SIPO_H +#include "hw/hw_sipo.h" + #include +#define SIPO_DATAORDER_START_LSB 1 +#define SIPO_DATAORDER_START_MSB 0x80 + +/** + * Define enum to set sipo data order. + */ +typedef enum SipoBitOrder +{ + SIPO_DATAORDER_MSB = 0, + SIPO_DATAORDER_LSB = 1 +} SipoBitOrder; + +/** + * Define enum to set the start level of clock. + */ +typedef enum SipoClockPol +{ + SIPO_START_LOW = 0, + SIPO_START_HIGH = 1 + +} SipoClkPol; + +/** + * Define enum to set load signal level. + */ +typedef enum SipoLoadPol +{ + SIPO_LOW_TO_HIGH = 0, + SIPO_HIGH_TO_LOW = 1 + +} SipoLoadPol; + /** * Sipo KFile context structure. */ typedef struct Sipo { - KFile fd; ///< File descriptor. + KFile fd; ///< File descriptor. + SipoMap load_device; ///< Descriptor of the device that we want drive. + SipoLoadPol load_pol; ///< Set polarity of load signal. + SipoClkPol clock_pol; ///< Set polarity of data clock. + SipoBitOrder bit_order; ///< Set the order of pushed bits in sipo. + } Sipo; /**