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
drivers/lis2dh12: adapted to the new SPI API
  • Loading branch information
hugueslarrive committed Jul 11, 2023
commit e03bf87487935bd1cec915548898d6e9ade8a869
17 changes: 14 additions & 3 deletions drivers/lis2dh12/lis2dh12.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2018 Freie Universität Berlin
* 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 directory for more
Expand All @@ -16,11 +17,13 @@
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
* @author Jan Mohr <jan.mohr@ml-pa.com>
* @author Benjamin Valentin <benjamin.valentin@ml-pa.com>
* @author Hugues Larrive <hugues.larrive@pm.me>
* @}
*/

#include "assert.h"
#include "byteorder.h"
#include "macros/units.h"
#include "mutex.h"
#include "timex.h"
#include "ztimer.h"
Expand All @@ -36,7 +39,7 @@
#ifdef MODULE_LIS2DH12_SPI

/* SPI bus speed and mode */
#define BUS_CLK SPI_CLK_5MHZ
#define BUS_CLK MHZ(10)
#define BUS_MODE SPI_MODE_0
#define BUS_OK SPI_OK
/* shortcuts for SPI bus parameters */
Expand All @@ -47,18 +50,26 @@
/* flag to enable address auto incrementation on read or write */
#define FLAG_AINC (0x40)

/* SPI clock configuration cache */
static spi_clk_t bus_clk;

static int _init_bus(const lis2dh12_t *dev)
{
/* for SPI, we only need to initialize the chip select pin */
/* initialize the chip select pin */
if (spi_init_cs(BUS, BUS_CS) != SPI_OK) {
return LIS2DH12_NOBUS;
}
/* cache the spi_clk_t value corresponding to BUS_CLK */
bus_clk = spi_get_clk(BUS, BUS_CLK);
if (bus_clk.err) {
return LIS2DH12_NOBUS;
}
return LIS2DH12_OK;
}

static int _acquire(const lis2dh12_t *dev)
{
spi_acquire(BUS, BUS_CS, BUS_MODE, BUS_CLK);
spi_acquire(BUS, BUS_CS, BUS_MODE, bus_clk);
return BUS_OK;
}

Expand Down