Root/tools/lib/driver.h

Source at commit 1f003f1c2100f7f3670106fd13df0eaec7a0e4e1 created 4 years 2 months ago.
By Werner Almesberger, atusb/atusb.kicad_pcb: grow RF feed trace to 1.9 mm, for 1.0 mm PCB
1/*
2 * lib/driver.h - ATRF driver API
3 *
4 * Written 2010-2011, 2013 by Werner Almesberger
5 * Copyright 2010-2011, 2013 Werner Almesberger
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13
14#ifndef DRIVER_H
15#define DRIVER_H
16
17#include <stdint.h>
18
19
20struct atrf_driver {
21    const char *name;
22    void *(*open)(const char *arg);
23    void (*close)(void *dsc);
24    const char *(*driver_spec)(void *dsc);
25    int (*error)(void *dsc);
26    int (*clear_error)(void *dsc);
27    void (*reset)(void *dsc);
28    void (*reset_rf)(void *dsc);
29    void (*test_mode)(void *dsc);
30    void (*slp_tr)(void *dsc, int on, int pulse);
31    int (*set_clkm)(void *dsc, int mhz);
32    void (*reg_write)(void *dsc, uint8_t reg, uint8_t value);
33    uint8_t (*reg_read)(void *dsc, uint8_t reg);
34    void (*buf_write)(void *dsc, const void *buf, int size);
35    int (*buf_read)(void *dsc, void *buf, int size);
36    void (*sram_write)(void *dsc, uint8_t addr, uint8_t value);
37    uint8_t (*sram_read)(void *dsc, uint8_t addr);
38    int (*interrupt_wait)(void *dsc, int timeout_ms);
39    void (*rx_mode)(void *dsc, int on);
40    int (*rx)(void *dsc, void *buf, int size, int timeout_ms, uint8_t *lqi);
41    void (*tx)(void *dsc, const void *buf, int size);
42};
43
44
45extern struct atrf_driver atusb_driver;
46extern struct atrf_driver atusb_spi_driver;
47extern struct atrf_driver atben_driver;
48extern struct atrf_driver atnet_driver;
49
50
51int atrf_set_clkm_generic(
52    void (*reg_write)(void *dsc, uint8_t reg, uint8_t value),
53    void *handle, int mhz);
54
55void *atben_regs(void *dsc); /* hack for atrf-xtal */
56void *atusb_dev_handle(void *dsc); /* hack for atrf-id */
57
58#endif /* !DRIVER_H */
59

Archive Download this file



interactive