diff options
| author | QMK Bot <hello@qmk.fm> | 2020-12-06 01:50:41 +0000 |
|---|---|---|
| committer | QMK Bot <hello@qmk.fm> | 2020-12-06 01:50:41 +0000 |
| commit | bb79fbaccf5a787f1d79c6e2d66b8765486d1969 (patch) | |
| tree | d060b3f527a5039912efffae2970fe247500977b /drivers | |
| parent | af8697c85b5d893187c7eb9f3e82997fa172a48a (diff) | |
| parent | 5cf70f3993ceecf24dc46c6791552f268d82ae91 (diff) | |
| download | qmk_firmware-bb79fbaccf5a787f1d79c6e2d66b8765486d1969.tar.gz qmk_firmware-bb79fbaccf5a787f1d79c6e2d66b8765486d1969.zip | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/avr/spi_master.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/avr/spi_master.c b/drivers/avr/spi_master.c index f91baf70b..cbec9f36e 100644 --- a/drivers/avr/spi_master.c +++ b/drivers/avr/spi_master.c | |||
| @@ -140,27 +140,33 @@ spi_status_t spi_read() { | |||
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | spi_status_t spi_transmit(const uint8_t *data, uint16_t length) { | 142 | spi_status_t spi_transmit(const uint8_t *data, uint16_t length) { |
| 143 | spi_status_t status = SPI_STATUS_ERROR; | 143 | spi_status_t status; |
| 144 | 144 | ||
| 145 | for (uint16_t i = 0; i < length; i++) { | 145 | for (uint16_t i = 0; i < length; i++) { |
| 146 | status = spi_write(data[i]); | 146 | status = spi_write(data[i]); |
| 147 | |||
| 148 | if (status < 0) { | ||
| 149 | return status; | ||
| 150 | } | ||
| 147 | } | 151 | } |
| 148 | 152 | ||
| 149 | return status; | 153 | return SPI_STATUS_SUCCESS; |
| 150 | } | 154 | } |
| 151 | 155 | ||
| 152 | spi_status_t spi_receive(uint8_t *data, uint16_t length) { | 156 | spi_status_t spi_receive(uint8_t *data, uint16_t length) { |
| 153 | spi_status_t status = SPI_STATUS_ERROR; | 157 | spi_status_t status; |
| 154 | 158 | ||
| 155 | for (uint16_t i = 0; i < length; i++) { | 159 | for (uint16_t i = 0; i < length; i++) { |
| 156 | status = spi_read(); | 160 | status = spi_read(); |
| 157 | 161 | ||
| 158 | if (status > 0) { | 162 | if (status >= 0) { |
| 159 | data[i] = status; | 163 | data[i] = status; |
| 164 | } else { | ||
| 165 | return status; | ||
| 160 | } | 166 | } |
| 161 | } | 167 | } |
| 162 | 168 | ||
| 163 | return (status < 0) ? status : SPI_STATUS_SUCCESS; | 169 | return SPI_STATUS_SUCCESS; |
| 164 | } | 170 | } |
| 165 | 171 | ||
| 166 | void spi_stop(void) { | 172 | void spi_stop(void) { |
