File: 0033-SPI-Pull-remaining-hardware-bits-out-of-MAX2837-5864.patch

package info (click to toggle)
hackrf 2015.07.2-11
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 69,764 kB
  • ctags: 9,327
  • sloc: ansic: 13,907; python: 696; vhdl: 218; sh: 32; makefile: 15
file content (122 lines) | stat: -rw-r--r-- 3,511 bytes parent folder | download | duplicates (2)
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;
 		}