Skip to content

Commit eaafc74

Browse files
committed
Merge pull request #83 from arebert/lpc4088
[LPC4088] Bugfixes related to I2C and Port implementations
2 parents 330e59f + a0a6cbe commit eaafc74

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC408X/i2c_api.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,15 @@ void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
122122

123123
pinmap_pinout(sda, PinMap_I2C_SDA);
124124
pinmap_pinout(scl, PinMap_I2C_SCL);
125+
126+
// OpenDrain must explicitly be enabled for p0.0 and p0.1
127+
if (sda == P0_0) {
128+
pin_mode(sda, OpenDrain);
129+
}
130+
if (scl == P0_1) {
131+
pin_mode(scl, OpenDrain);
132+
}
133+
125134
}
126135

127136
inline int i2c_start(i2c_t *obj) {

libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC408X/port_api.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717
#include "pinmap.h"
1818
#include "gpio_api.h"
1919

20+
2021
PinName port_pin(PortName port, int pin_n) {
21-
return (PinName)(LPC_GPIO0_BASE + ((port << PORT_SHIFT) | pin_n));
22+
return (PinName)(((port << PORT_SHIFT) | pin_n));
2223
}
2324

2425
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {

0 commit comments

Comments
 (0)