Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spi drivers #19820

Draft
wants to merge 29 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
b6f94e0
tests/drivers/adt7310: adapted to the new SPI API
hugueslarrive Jul 3, 2023
e392ec0
drivers/at25xxx: adapted to the new SPI API
hugueslarrive Jul 4, 2023
8810097
drivers/at86rf215: adapted to the new SPI API
hugueslarrive Jul 4, 2023
2d5fd1a
drivers/at86rf2xx: adapted to the new SPI API
hugueslarrive Jul 4, 2023
4da0811
drivers/ata8520e: adapted to the new SPI API
hugueslarrive Jul 4, 2023
d18ff5d
drivers/atwinc15x0: adapted to the new SPI API
hugueslarrive Jul 4, 2023
25d68ab
drivers/bmx280: adapted to the new SPI API
hugueslarrive Jul 9, 2023
f7d38ee
drivers/candev_mcp2515: adapted to the new SPI API
hugueslarrive Jul 9, 2023
23b514b
drivers/cc110x: adapted to the new SPI API
hugueslarrive Jul 2, 2023
9845ea6
drivers/cc2420: adapted to the new SPI API
hugueslarrive Jul 9, 2023
6cd4368
drivers/ds3234: adapted to the new SPI API
hugueslarrive Jul 2, 2023
43b50a5
drivers/enc28j60: adapted to the new SPI API
hugueslarrive Jul 9, 2023
2f557ce
drivers/encx24j600: adapted to the new SPI API
hugueslarrive Jul 9, 2023
42126ee
drivers/epd_bw_spi: adapted to the new SPI API
hugueslarrive Jul 9, 2023
fe743ba
drivers/ili9341: adapted to the new SPI API
hugueslarrive Jul 9, 2023
4e3a99c
drivers/lcd: adapted to the new SPI API
hugueslarrive Jul 9, 2023
31b6c2f
drivers/st7735: adapted to the new SPI API
hugueslarrive Jul 9, 2023
8a0c375
drivers/kw2xrf: adapted to the new SPI API
hugueslarrive Jul 9, 2023
485dc2c
drivers/l3gxxxx: adapted to the new SPI API
hugueslarrive Jul 9, 2023
e03bf87
drivers/lis2dh12: adapted to the new SPI API
hugueslarrive Jul 2, 2023
682c906
drivers/lis3dh: adapted to the new SPI API
hugueslarrive Jul 9, 2023
7bc430b
drivers/mfrc522: adapted to the new SPI API
hugueslarrive Jul 9, 2023
7d281f0
drivers/nrf24l01p_ng: adapted to the new SPI API
hugueslarrive Jul 2, 2023
e716f8f
drivers/sx1280: adapted to the new SPI API
hugueslarrive Jul 3, 2023
74c1c01
pkg/driver_bme680: adapted to the new SPI API
hugueslarrive Jul 12, 2023
52ff99e
pkg/driver_sx126x:: adapted to the new SPI API
hugueslarrive Jul 12, 2023
d88e7df
pkg/mynewt-core: adapted to the new SPI API
hugueslarrive Jul 12, 2023
496a922
pkg/uwb-dw1000: adapted to the new SPI API
hugueslarrive Jul 12, 2023
4bb71b8
periph/spi: printing and testing SPI clock rates
hugueslarrive Aug 12, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
pkg/driver_bme680: adapted to the new SPI API
  • Loading branch information
hugueslarrive committed Jul 12, 2023
commit 74c1c010b0e201fbcafd9ddcca67e2c609ed26bc
22 changes: 19 additions & 3 deletions pkg/driver_bme680/contrib/bme680_hal.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2019 Mesotic SAS
* 2020 Gunar Schorcht
* 2023 Hugues Larrive
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
Expand All @@ -17,6 +18,7 @@
*
* @author Dylan Laduranty <dylan.laduranty@mesotic.com>
* @author Gunar Schorcht <gunar@schorcht.net>
* @author Hugues Larrive <hugues.larrive@pm.me>
*/

#include <assert.h>
Expand All @@ -26,6 +28,7 @@
#include "bme680.h"
#include "bme680_hal.h"
#include "irq.h"
#include "macros/units.h"

#ifdef MODULE_PERIPH_I2C
#include "periph/i2c.h"
Expand All @@ -37,7 +40,7 @@
#include "ztimer.h"

#ifndef BME680_SPI_SPEED
#define BME680_SPI_SPEED (SPI_CLK_1MHZ)
#define BME680_SPI_SPEED MHZ(10)
#endif /* BME680_SPI_SPEED */

#ifndef BME680_SPI_MODE
Expand Down Expand Up @@ -80,6 +83,19 @@ int8_t bme680_i2c_write_hal(uint8_t dev_id, uint8_t reg_addr,
#endif /* MODULE_PERIPH_I2C */

#ifdef MODULE_PERIPH_SPI
static inline spi_clk_t spi_clk_cache(spi_t bus, uint32_t freq)
{
static uint32_t freq_cache;
static spi_clk_t clk_cache;

if (freq != freq_cache) {
freq_cache = freq;
clk_cache = spi_get_clk(bus, freq);
}

return clk_cache;
}

int8_t bme680_spi_read_hal(uint8_t dev_id, uint8_t reg_addr,
uint8_t *data, uint16_t len)
{
Expand All @@ -89,7 +105,7 @@ int8_t bme680_spi_read_hal(uint8_t dev_id, uint8_t reg_addr,
unsigned int cpsr = irq_disable();

gpio_clear(intf->nss_pin);
spi_acquire(intf->dev, SPI_CS_UNDEF, BME680_SPI_MODE, BME680_SPI_SPEED);
spi_acquire(intf->dev, SPI_CS_UNDEF, BME680_SPI_MODE, spi_clk_cache(intf->dev, BME680_SPI_SPEED));
spi_transfer_regs(intf->dev, SPI_CS_UNDEF, reg_addr, NULL, data, len);
gpio_set(intf->nss_pin);

Expand All @@ -107,7 +123,7 @@ int8_t bme680_spi_write_hal(uint8_t dev_id, uint8_t reg_addr,
unsigned int cpsr = irq_disable();

gpio_clear(intf->nss_pin);
spi_acquire(intf->dev, SPI_CS_UNDEF, BME680_SPI_MODE, BME680_SPI_SPEED);
spi_acquire(intf->dev, SPI_CS_UNDEF, BME680_SPI_MODE, spi_clk_cache(intf->dev, BME680_SPI_SPEED));
spi_transfer_regs(intf->dev, SPI_CS_UNDEF, reg_addr, data, NULL, len);
gpio_set(intf->nss_pin);

Expand Down