Initial commit
[csrprogrammer:csrremote.git] / usbprogrammer.h
1 #ifndef USBPROGRAMMER_H
2 #define USBPROGRAMMER_H
3
4 #include "programmer.h"
5 #include "usbdriver.h"
6 #include "stdint.h"
7
8 /* This file servers as usbspi.dll programmer interface
9  * and partially as pttransport.dll transport layer
10  */
11
12 #define CSRVENDOR 0x0a12
13 #define CSRDEVICE 0x0042
14
15 class UsbProgrammer : public Programmer
16 {
17 public:
18     UsbProgrammer();
19     bool ReadBlock(uint16_t addr, int size, uint16_t buffer[]);
20     bool WriteBlock(uint16_t addr, int size, uint16_t buffer[]);
21     bool SetTransferSpeed(uint16_t speedkhz);
22     bool IsXAPStopped(void);
23     bool IsConnected(void);
24
25 private:
26     bool SetMode(bool spi);
27     bool ClearCmdBits();
28
29 private:
30     UsbDriver usb;
31     bool progInit;
32 };
33
34 #endif // USBPROGRAMMER_H