File: 0043-I2C-Interface-Rename-init-start-add-stop.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 (125 lines) | stat: -rw-r--r-- 3,797 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
123
124
125
From 02cc5814b15dfc666d6a0bcdedaec4583a659550 Mon Sep 17 00:00:00 2001
From: Jared Boone <jboone@earfeast.com>
Date: Thu, 13 Nov 2014 10:32:38 -0800
Subject: [PATCH 43/68] I2C: Interface: Rename init()->start(), add stop().

---
 firmware/common/hackrf_core.c | 10 ++++++----
 firmware/common/i2c_bus.c     |  8 ++++++--
 firmware/common/i2c_bus.h     |  6 ++++--
 firmware/common/i2c_lpc.c     |  7 ++++++-
 firmware/common/i2c_lpc.h     |  3 ++-
 firmware/libopencm3           |  2 +-
 6 files changed, 25 insertions(+), 11 deletions(-)

--- a/firmware/common/hackrf_core.c
+++ b/firmware/common/hackrf_core.c
@@ -45,13 +45,15 @@
 
 i2c_bus_t i2c0 = {
 	.obj = (void*)I2C0_BASE,
-	.init = i2c_lpc_init,
+	.start = i2c_lpc_start,
+	.stop = i2c_lpc_stop,
 	.transfer = i2c_lpc_transfer,
 };
 
 i2c_bus_t i2c1 = {
 	.obj = (void*)I2C1_BASE,
-	.init = i2c_lpc_init,
+	.start = i2c_lpc_start,
+	.stop = i2c_lpc_stop,
 	.transfer = i2c_lpc_transfer,
 };
 
@@ -381,7 +383,7 @@
 	/* use IRC as clock source for APB3 */
 	CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_CLK_SEL(CGU_SRC_IRC);
 
-	i2c_bus_init(clock_gen.bus, &i2c_config_si5351c_slow_clock);
+	i2c_bus_start(clock_gen.bus, &i2c_config_si5351c_slow_clock);
 
 	si5351c_disable_all_outputs(&clock_gen);
 	si5351c_disable_oeb_pin_control(&clock_gen);
@@ -453,7 +455,7 @@
 
 	//FIXME disable I2C
 	/* Kick I2C0 down to 400kHz when we switch over to APB1 clock = 204MHz */
-	i2c_bus_init(clock_gen.bus, &i2c_config_si5351c_fast_clock);
+	i2c_bus_start(clock_gen.bus, &i2c_config_si5351c_fast_clock);
 
 	/*
 	 * 12MHz clock is entering LPC XTAL1/OSC input now.  On
--- a/firmware/common/i2c_bus.c
+++ b/firmware/common/i2c_bus.c
@@ -21,8 +21,12 @@
 
 #include "i2c_bus.h"
 
-void i2c_bus_init(i2c_bus_t* const bus, const void* const config) {
-	bus->init(bus, config);
+void i2c_bus_start(i2c_bus_t* const bus, const void* const config) {
+	bus->start(bus, config);
+}
+
+void i2c_bus_stop(i2c_bus_t* const bus) {
+	bus->stop(bus);
 }
 
 void i2c_bus_transfer(
--- a/firmware/common/i2c_bus.h
+++ b/firmware/common/i2c_bus.h
@@ -30,7 +30,8 @@
 
 struct i2c_bus_t {
 	void* const obj;
-	void (*init)(i2c_bus_t* const bus, const void* const config);
+	void (*start)(i2c_bus_t* const bus, const void* const config);
+	void (*stop)(i2c_bus_t* const bus);
 	void (*transfer)(
 		i2c_bus_t* const bus,
 		const uint_fast8_t slave_address,
@@ -39,7 +40,8 @@
 	);
 };
 
-void i2c_bus_init(i2c_bus_t* const bus, const void* const config);
+void i2c_bus_start(i2c_bus_t* const bus, const void* const config);
+void i2c_bus_stop(i2c_bus_t* const bus);
 void i2c_bus_transfer(
 	i2c_bus_t* const bus,
 	const uint_fast8_t slave_address,
--- a/firmware/common/i2c_lpc.c
+++ b/firmware/common/i2c_lpc.c
@@ -26,13 +26,18 @@
 
 /* FIXME return i2c0 status from each function */
 
-void i2c_lpc_init(i2c_bus_t* const bus, const void* const _config) {
+void i2c_lpc_start(i2c_bus_t* const bus, const void* const _config) {
 	const i2c_lpc_config_t* const config = _config;
 
 	const uint32_t port = (uint32_t)bus->obj;
 	i2c_init(port, config->duty_cycle_count);
 }
 
+void i2c_lpc_stop(i2c_bus_t* const bus) {
+	const uint32_t port = (uint32_t)bus->obj;
+	i2c_disable(port);
+}
+
 void i2c_lpc_transfer(i2c_bus_t* const bus,
 	const uint_fast8_t slave_address,
 	const uint8_t* const data_tx, const size_t count_tx,
--- a/firmware/common/i2c_lpc.h
+++ b/firmware/common/i2c_lpc.h
@@ -31,7 +31,8 @@
 	const uint16_t duty_cycle_count;
 } i2c_lpc_config_t;
 
-void i2c_lpc_init(i2c_bus_t* const bus, const void* const config);
+void i2c_lpc_start(i2c_bus_t* const bus, const void* const config);
+void i2c_lpc_stop(i2c_bus_t* const bus);
 void i2c_lpc_transfer(i2c_bus_t* const bus,
 	const uint_fast8_t slave_address,
 	const uint8_t* const data_tx, const size_t count_tx,