Skip to content
Snippets Groups Projects
Unverified Commit 4365d666 authored by Alexandre Abadie's avatar Alexandre Abadie Committed by GitHub
Browse files

Merge pull request #10670 from OTAkeys/pr/cc110x_irq

drivers/cc110x: remove irq_disable/irq_restore around spi transfers
parents 22d59cbb ffc6e4b6
No related branches found
No related tags found
No related merge requests found
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
#include "periph/spi.h" #include "periph/spi.h"
#include "xtimer.h" #include "xtimer.h"
#include "irq.h"
#define SPI_CLK SPI_CLK_5MHZ #define SPI_CLK SPI_CLK_5MHZ
#define SPI_MODE SPI_MODE_0 #define SPI_MODE SPI_MODE_0
...@@ -82,23 +81,18 @@ void cc110x_cs(cc110x_t *dev) ...@@ -82,23 +81,18 @@ void cc110x_cs(cc110x_t *dev)
void cc110x_writeburst_reg(cc110x_t *dev, uint8_t addr, const char *src, uint8_t count) void cc110x_writeburst_reg(cc110x_t *dev, uint8_t addr, const char *src, uint8_t count)
{ {
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
spi_transfer_regs(dev->params.spi, SPI_CS_UNDEF, spi_transfer_regs(dev->params.spi, SPI_CS_UNDEF,
(addr | CC110X_WRITE_BURST), src, NULL, count); (addr | CC110X_WRITE_BURST), src, NULL, count);
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
} }
void cc110x_readburst_reg(cc110x_t *dev, uint8_t addr, char *buffer, uint8_t count) void cc110x_readburst_reg(cc110x_t *dev, uint8_t addr, char *buffer, uint8_t count)
{ {
int i = 0; int i = 0;
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
spi_transfer_byte(dev->params.spi, SPI_CS_UNDEF, false, spi_transfer_byte(dev->params.spi, SPI_CS_UNDEF, false,
(addr | CC110X_READ_BURST)); (addr | CC110X_READ_BURST));
...@@ -108,33 +102,26 @@ void cc110x_readburst_reg(cc110x_t *dev, uint8_t addr, char *buffer, uint8_t cou ...@@ -108,33 +102,26 @@ void cc110x_readburst_reg(cc110x_t *dev, uint8_t addr, char *buffer, uint8_t cou
i++; i++;
} }
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
} }
void cc110x_write_reg(cc110x_t *dev, uint8_t addr, uint8_t value) void cc110x_write_reg(cc110x_t *dev, uint8_t addr, uint8_t value)
{ {
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF, addr, value); spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF, addr, value);
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
} }
uint8_t cc110x_read_reg(cc110x_t *dev, uint8_t addr) uint8_t cc110x_read_reg(cc110x_t *dev, uint8_t addr)
{ {
uint8_t result; uint8_t result;
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
result = spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF, result = spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF,
(addr | CC110X_READ_SINGLE), CC110X_NOBYTE); (addr | CC110X_READ_SINGLE), CC110X_NOBYTE);
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
return result; return result;
} }
...@@ -142,14 +129,11 @@ uint8_t cc110x_read_reg(cc110x_t *dev, uint8_t addr) ...@@ -142,14 +129,11 @@ uint8_t cc110x_read_reg(cc110x_t *dev, uint8_t addr)
uint8_t cc110x_read_status(cc110x_t *dev, uint8_t addr) uint8_t cc110x_read_status(cc110x_t *dev, uint8_t addr)
{ {
uint8_t result; uint8_t result;
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
result = spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF, result = spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF,
(addr | CC110X_READ_BURST), CC110X_NOBYTE); (addr | CC110X_READ_BURST), CC110X_NOBYTE);
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
return (uint8_t) result; return (uint8_t) result;
} }
...@@ -157,9 +141,7 @@ uint8_t cc110x_read_status(cc110x_t *dev, uint8_t addr) ...@@ -157,9 +141,7 @@ uint8_t cc110x_read_status(cc110x_t *dev, uint8_t addr)
uint8_t cc110x_get_reg_robust(cc110x_t *dev, uint8_t addr) uint8_t cc110x_get_reg_robust(cc110x_t *dev, uint8_t addr)
{ {
uint8_t res1, res2; uint8_t res1, res2;
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
do { do {
res1 = spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF, res1 = spi_transfer_reg(dev->params.spi, SPI_CS_UNDEF,
...@@ -168,7 +150,6 @@ uint8_t cc110x_get_reg_robust(cc110x_t *dev, uint8_t addr) ...@@ -168,7 +150,6 @@ uint8_t cc110x_get_reg_robust(cc110x_t *dev, uint8_t addr)
(addr | CC110X_READ_BURST), CC110X_NOBYTE); (addr | CC110X_READ_BURST), CC110X_NOBYTE);
} while (res1 != res2); } while (res1 != res2);
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
return res1; return res1;
} }
...@@ -182,13 +163,10 @@ uint8_t cc110x_strobe(cc110x_t *dev, uint8_t c) ...@@ -182,13 +163,10 @@ uint8_t cc110x_strobe(cc110x_t *dev, uint8_t c)
#endif #endif
uint8_t result; uint8_t result;
unsigned int cpsr;
lock(dev); lock(dev);
cpsr = irq_disable();
cc110x_cs(dev); cc110x_cs(dev);
result = spi_transfer_byte(dev->params.spi, SPI_CS_UNDEF, false, c); result = spi_transfer_byte(dev->params.spi, SPI_CS_UNDEF, false, c);
gpio_set(dev->params.cs); gpio_set(dev->params.cs);
irq_restore(cpsr);
spi_release(dev->params.spi); spi_release(dev->params.spi);
return result; return result;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment