/*
 * bus.h
 *
 *  Created on: 9 Aug 2012
 *      Author: daniel
 */

#ifndef BUS_H_
#define BUS_H_

#include <stdint.h>

#define out_DATA_LINE 0         /* out data signaled on 0 output of decoder */
#define out_CLOCK_LINE 1        /* out clock signaled on 1 output of decoder */
#define out_STROBE_LINE 2       /* out latch strobe on 2 output of decoder */
#define O_GATE 3                /* gates output */
#define OUTPUT_RELAY 4          /* output enable/disable relay */
#define PW_ENABLE 5             /* TTL enable/disable output */

#define GPIOPIN0BASE 0
#define GPIOPIN1BASE 0
#define GPIOPIN2BASE 0
#define GPIOPIN3BASE 32
#define GPIOPIN4BASE 32
#define GPIOPIN5BASE 0

#define GPIOPIN0PIN 22
#define GPIOPIN1PIN 23
#define GPIOPIN2PIN 26
#define GPIOPIN3PIN 15
#define GPIOPIN4PIN 14
#define GPIOPIN5PIN 27

#define GPMCACCESSTIME 0x07

void bus_init(void); // call this before doing anything
void bus_setpin(int pin, int value); // set the value of a pin
void bus_writebyte(uint8_t address, uint8_t data); // write a byte to the bus
uint8_t bus_readbyte(uint8_t address); // read a pin from the bus
void bus_shutdown(void); // shutdown the bus

#endif /* BUS_H_ */