1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
From 569f320826a2dc4d431ec2cf92d0558caa2d2673 Mon Sep 17 00:00:00 2001
From: Jared Boone <jboone@earfeast.com>
Date: Mon, 10 Nov 2014 14:48:42 -0800
Subject: [PATCH 33/68] SPI: Pull remaining hardware bits out of
MAX2837/5864/W25Q80BV device drivers.
---
firmware/common/hackrf_core.c | 3 +++
firmware/common/max2837.c | 3 ---
firmware/common/max5864.c | 3 ---
firmware/common/rffc5071.c | 2 --
firmware/common/rom_iap.c | 1 +
firmware/common/w25q80bv.c | 3 ---
firmware/hackrf_usb/usb_api_spiflash.c | 2 ++
7 files changed, 6 insertions(+), 11 deletions(-)
--- a/firmware/common/hackrf_core.c
+++ b/firmware/common/hackrf_core.c
@@ -653,6 +653,9 @@
/* GPIO3[6] on P6_10 as output. */
GPIO3_DIR |= PIN_EN1V8;
+ spi_init(&spi_ssp1, &ssp_config_max2837);
+ spi_init(&rffc5071_spi, NULL);
+
rf_path_pin_setup();
/* Configure external clock in */
--- a/firmware/common/max2837.c
+++ b/firmware/common/max2837.c
@@ -33,8 +33,6 @@
#include "max2837.h"
#include "max2837_regs.def" // private register def macros
-#include "hackrf_core.h"
-
/* Default register values. */
static const uint16_t max2837_regs_default[MAX2837_NUM_REGS] = {
0x150, /* 0 */
@@ -78,7 +76,6 @@
/* Set up all registers according to defaults specified in docs. */
static void max2837_init(max2837_driver_t* const drv)
{
- spi_init(drv->spi, &ssp_config_max2837);
drv->target_init(drv);
max2837_set_mode(drv, MAX2837_MODE_SHUTDOWN);
--- a/firmware/common/max5864.c
+++ b/firmware/common/max5864.c
@@ -23,14 +23,11 @@
#include "max5864.h"
-#include "hackrf_core.h"
-
static void max5864_write(max5864_driver_t* const drv, uint8_t value) {
spi_transfer(drv->spi, &value, 1);
}
static void max5864_init(max5864_driver_t* const drv) {
- spi_init(drv->spi, &ssp_config_max5864);
drv->target_init(drv);
}
--- a/firmware/common/rffc5071.c
+++ b/firmware/common/rffc5071.c
@@ -90,8 +90,6 @@
{
rffc5071_init(drv);
- spi_init(drv->spi, NULL);
-
/* initial setup */
/* put zeros in freq contol registers */
set_RFFC5071_P2N(drv, 0);
--- a/firmware/common/rom_iap.c
+++ b/firmware/common/rom_iap.c
@@ -77,6 +77,7 @@
Alternative way to retrieve Part Id on MCU with no IAP
Read Serial No => Read Unique ID in SPIFI (only compatible with W25Q80BV
*/
+ spi_init(spi_flash.spi, &ssp_config_w25q80bv);
w25q80bv_setup(&spi_flash);
switch(iap_cmd_res->cmd_param.command_code)
--- a/firmware/common/w25q80bv.c
+++ b/firmware/common/w25q80bv.c
@@ -32,8 +32,6 @@
#include "w25q80bv.h"
-#include "hackrf_core.h"
-
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#define W25Q80BV_WRITE_ENABLE 0x06
@@ -59,7 +57,6 @@
drv->num_pages = 4096U;
drv->num_bytes = 1048576U;
- spi_init(drv->spi, &ssp_config_w25q80bv);
drv->target_init(drv);
device_id = 0;
--- a/firmware/hackrf_usb/usb_api_spiflash.c
+++ b/firmware/hackrf_usb/usb_api_spiflash.c
@@ -39,6 +39,7 @@
//FIXME This should refuse to run if executing from SPI flash.
if (stage == USB_TRANSFER_STAGE_SETUP) {
+ spi_init(spi_flash.spi, &ssp_config_w25q80bv);
w25q80bv_setup(&spi_flash);
/* only chip erase is implemented */
w25q80bv_chip_erase(&spi_flash);
@@ -65,6 +66,7 @@
} else {
usb_transfer_schedule_block(endpoint->out, &spiflash_buffer[0], len,
NULL, NULL);
+ spi_init(spi_flash.spi, &ssp_config_w25q80bv);
w25q80bv_setup(&spi_flash);
return USB_REQUEST_STATUS_OK;
}
|