Exemplo n.º 1
0
void main(void)
{
    struct spi_config config = { 0 };
    struct device *spi_mst_0 = device_get_binding("SPI_0");
    uint8_t id;
    int err;

    printk("SPI Example application\n");

    if (!spi_mst_0)
        return;

    config.config = SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD(16);
    config.max_sys_freq = 256;

    err = spi_configure(spi_mst_0, &config);
    if (err) {
        printk("Could not configure SPI device\n");
        return;
    }

    err = spi_slave_select(spi_mst_0, 1);
    if (err) {
        printk("Could not select SPI slave\n");
        return;
    }

    id = lsm9ds0_read_whoami_g(spi_mst_0);

    printk("LSM9DS0 Who Am I: 0x%x\n", id);
}
Exemplo n.º 2
0
int main(void)
{
	struct spi_config config = { 0 };
	struct device *spi_mst_0 = device_get_binding("SPI_0");
	uint8_t manufacturer, device_id;
	int err;

	printk("SPI Example application\n");

	if (!spi_mst_0)
		return -EIO;

	config.config = SPI_MODE_CPOL | SPI_MODE_CPHA | SPI_WORD(8);
	config.max_sys_freq = 256;

	err = spi_configure(spi_mst_0, &config);
	if (err) {
		printk("Could not configure SPI device\n");
		return -EIO;
	}

	err = spi_slave_select(spi_mst_0, 1);
	if (err) {
		printk("Could not select SPI slave\n");
		return -EIO;
	}

	err = w25q80bl_read_id(spi_mst_0, &manufacturer, &device_id);
	if (err) {
		printk("Could not get Manufacturer and Device ID from SPI Flash\n");
		return -EIO;
	}

	printk("SPI Flash Manufacturer %x Device Id %x\n", manufacturer,
	       device_id);

	return 0;
}
Exemplo n.º 3
0
static int bmi160_transceive(struct device *dev, uint8_t *tx_buf,
			     uint8_t tx_buf_len, uint8_t *rx_buf,
			     uint8_t rx_buf_len)
{
	struct bmi160_device_config *dev_cfg = dev->config->config_info;
	struct bmi160_device_data *bmi160 = dev->driver_data;
	struct spi_config spi_cfg;

	spi_cfg.config = SPI_WORD(8);
	spi_cfg.max_sys_freq = dev_cfg->spi_freq;

	if (spi_configure(bmi160->spi, &spi_cfg) < 0) {
		SYS_LOG_DBG("Cannot configure SPI bus.");
		return -EIO;
	}

	if (spi_slave_select(bmi160->spi, dev_cfg->spi_slave) < 0) {
		SYS_LOG_DBG("Cannot select slave.");
		return -EIO;
	}

	return spi_transceive(bmi160->spi, tx_buf, tx_buf_len,
			      rx_buf, rx_buf_len);
}
Exemplo n.º 4
0
#if defined(CONFIG_BLUETOOTH_SPI_BLUENRG)
static struct device		*cs_dev;
#endif /* CONFIG_BLUETOOTH_SPI_BLUENRG */
static struct device		*irq_dev;
static struct device		*rst_dev;

static struct gpio_callback	gpio_cb;

static K_SEM_DEFINE(sem_initialised, 0, 1);
static K_SEM_DEFINE(sem_request, 0, 1);
static K_SEM_DEFINE(sem_busy, 1, 1);

static BT_STACK_NOINIT(rx_stack, 448);

static struct spi_config spi_conf = {
	.config = SPI_WORD(8),
	.max_sys_freq = CONFIG_BLUETOOTH_SPI_MAX_CLK_FREQ,
};

#if defined(CONFIG_BLUETOOTH_DEBUG_HCI_DRIVER)
#include <misc/printk.h>
static inline void spi_dump_message(const u8_t *pre, u8_t *buf,
				    u8_t size)
{
	u8_t i, c;

	printk("%s (%d): ", pre, size);
	for (i = 0; i < size; i++) {
		c = buf[i];
		printk("%x ", c);
		if (c >= 31 && c <= 126) {