diff options
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/as3525/fmradio-i2c-as3525.c | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/firmware/target/arm/as3525/fmradio-i2c-as3525.c b/firmware/target/arm/as3525/fmradio-i2c-as3525.c index 622f339633..c86e3f53ab 100644 --- a/firmware/target/arm/as3525/fmradio-i2c-as3525.c +++ b/firmware/target/arm/as3525/fmradio-i2c-as3525.c | |||
@@ -32,26 +32,34 @@ | |||
32 | #include "fmradio_i2c.h" | 32 | #include "fmradio_i2c.h" |
33 | 33 | ||
34 | #if defined(SANSA_CLIP) || defined(SANSA_C200V2) | 34 | #if defined(SANSA_CLIP) || defined(SANSA_C200V2) |
35 | #define I2C_GPIO(x) GPIOB_PIN(x) | 35 | #define I2C_SCL_GPIO(x) GPIOB_PIN(x) |
36 | #define I2C_GPIO_DIR GPIOB_DIR | 36 | #define I2C_SDA_GPIO(x) GPIOB_PIN(x) |
37 | #define I2C_SCL_GPIO_DIR GPIOB_DIR | ||
38 | #define I2C_SDA_GPIO_DIR GPIOB_DIR | ||
37 | #define I2C_SCL_PIN 4 | 39 | #define I2C_SCL_PIN 4 |
38 | #define I2C_SDA_PIN 5 | 40 | #define I2C_SDA_PIN 5 |
39 | 41 | ||
40 | #elif defined(SANSA_CLIPV2) || defined(SANSA_CLIPPLUS) | 42 | #elif defined(SANSA_CLIPV2) || defined(SANSA_CLIPPLUS) |
41 | #define I2C_GPIO(x) GPIOB_PIN(x) | 43 | #define I2C_SCL_GPIO(x) GPIOB_PIN(x) |
42 | #define I2C_GPIO_DIR GPIOB_DIR | 44 | #define I2C_SDA_GPIO(x) GPIOB_PIN(x) |
45 | #define I2C_SCL_GPIO_DIR GPIOB_DIR | ||
46 | #define I2C_SDA_GPIO_DIR GPIOB_DIR | ||
43 | #define I2C_SCL_PIN 6 | 47 | #define I2C_SCL_PIN 6 |
44 | #define I2C_SDA_PIN 7 | 48 | #define I2C_SDA_PIN 7 |
45 | 49 | ||
46 | #elif defined(SANSA_M200V4) | 50 | #elif defined(SANSA_M200V4) |
47 | #define I2C_GPIO(x) GPIOD_PIN(x) | 51 | #define I2C_SCL_GPIO(x) GPIOD_PIN(x) |
48 | #define I2C_GPIO_DIR GPIOD_DIR | 52 | #define I2C_SDA_GPIO(x) GPIOD_PIN(x) |
53 | #define I2C_SCL_GPIO_DIR GPIOD_DIR | ||
54 | #define I2C_SDA_GPIO_DIR GPIOD_DIR | ||
49 | #define I2C_SCL_PIN 7 | 55 | #define I2C_SCL_PIN 7 |
50 | #define I2C_SDA_PIN 6 | 56 | #define I2C_SDA_PIN 6 |
51 | 57 | ||
52 | #elif defined(SANSA_FUZE) || defined(SANSA_E200V2) | 58 | #elif defined(SANSA_FUZE) || defined(SANSA_E200V2) |
53 | #define I2C_GPIO(x) GPIOA_PIN(x) | 59 | #define I2C_SCL_GPIO(x) GPIOA_PIN(x) |
54 | #define I2C_GPIO_DIR GPIOA_DIR | 60 | #define I2C_SDA_GPIO(x) GPIOA_PIN(x) |
61 | #define I2C_SCL_GPIO_DIR GPIOA_DIR | ||
62 | #define I2C_SDA_GPIO_DIR GPIOA_DIR | ||
55 | #define I2C_SCL_PIN 6 | 63 | #define I2C_SCL_PIN 6 |
56 | #define I2C_SDA_PIN 7 | 64 | #define I2C_SDA_PIN 7 |
57 | 65 | ||
@@ -63,52 +71,52 @@ static int fm_i2c_bus; | |||
63 | 71 | ||
64 | static void fm_scl_hi(void) | 72 | static void fm_scl_hi(void) |
65 | { | 73 | { |
66 | I2C_GPIO(I2C_SCL_PIN) = 1 << I2C_SCL_PIN; | 74 | I2C_SCL_GPIO(I2C_SCL_PIN) = 1 << I2C_SCL_PIN; |
67 | } | 75 | } |
68 | 76 | ||
69 | static void fm_scl_lo(void) | 77 | static void fm_scl_lo(void) |
70 | { | 78 | { |
71 | I2C_GPIO(I2C_SCL_PIN) = 0; | 79 | I2C_SCL_GPIO(I2C_SCL_PIN) = 0; |
72 | } | 80 | } |
73 | 81 | ||
74 | static void fm_sda_hi(void) | 82 | static void fm_sda_hi(void) |
75 | { | 83 | { |
76 | I2C_GPIO(I2C_SDA_PIN) = 1 << I2C_SDA_PIN; | 84 | I2C_SDA_GPIO(I2C_SDA_PIN) = 1 << I2C_SDA_PIN; |
77 | } | 85 | } |
78 | 86 | ||
79 | static void fm_sda_lo(void) | 87 | static void fm_sda_lo(void) |
80 | { | 88 | { |
81 | I2C_GPIO(I2C_SDA_PIN) = 0; | 89 | I2C_SDA_GPIO(I2C_SDA_PIN) = 0; |
82 | } | 90 | } |
83 | 91 | ||
84 | static void fm_sda_input(void) | 92 | static void fm_sda_input(void) |
85 | { | 93 | { |
86 | I2C_GPIO_DIR &= ~(1 << I2C_SDA_PIN); | 94 | I2C_SDA_GPIO_DIR &= ~(1 << I2C_SDA_PIN); |
87 | } | 95 | } |
88 | 96 | ||
89 | static void fm_sda_output(void) | 97 | static void fm_sda_output(void) |
90 | { | 98 | { |
91 | I2C_GPIO_DIR |= 1 << I2C_SDA_PIN; | 99 | I2C_SDA_GPIO_DIR |= 1 << I2C_SDA_PIN; |
92 | } | 100 | } |
93 | 101 | ||
94 | static void fm_scl_input(void) | 102 | static void fm_scl_input(void) |
95 | { | 103 | { |
96 | I2C_GPIO_DIR &= ~(1 << I2C_SCL_PIN); | 104 | I2C_SCL_GPIO_DIR &= ~(1 << I2C_SCL_PIN); |
97 | } | 105 | } |
98 | 106 | ||
99 | static void fm_scl_output(void) | 107 | static void fm_scl_output(void) |
100 | { | 108 | { |
101 | I2C_GPIO_DIR |= 1 << I2C_SCL_PIN; | 109 | I2C_SCL_GPIO_DIR |= 1 << I2C_SCL_PIN; |
102 | } | 110 | } |
103 | 111 | ||
104 | static int fm_sda(void) | 112 | static int fm_sda(void) |
105 | { | 113 | { |
106 | return I2C_GPIO(I2C_SDA_PIN); | 114 | return I2C_SDA_GPIO(I2C_SDA_PIN); |
107 | } | 115 | } |
108 | 116 | ||
109 | static int fm_scl(void) | 117 | static int fm_scl(void) |
110 | { | 118 | { |
111 | return I2C_GPIO(I2C_SCL_PIN); | 119 | return I2C_SCL_GPIO(I2C_SCL_PIN); |
112 | } | 120 | } |
113 | 121 | ||
114 | /* simple and crude delay, used for all delays in the generic i2c driver */ | 122 | /* simple and crude delay, used for all delays in the generic i2c driver */ |