diff --git a/include/libopencm3/efm32/common/i2c_common.h b/include/libopencm3/efm32/common/i2c_common.h
index 86123c93..c9a53fe9 100644
--- a/include/libopencm3/efm32/common/i2c_common.h
+++ b/include/libopencm3/efm32/common/i2c_common.h
@@ -1,3 +1,5 @@
+/** @addtogroup i2c_defines
+ */
/*
* This file is part of the libopencm3 project.
*
@@ -17,12 +19,13 @@
* along with this library. If not, see .
*/
-#ifndef LIBOPENCM3_EFM32_I2C_H
-#define LIBOPENCM3_EFM32_I2C_H
+#pragma once
#include
#include
+/**@{*/
+
#define I2C_CTRL(base) MMIO32((base) + 0x000)
#define I2C_CMD(base) MMIO32((base) + 0x004)
#define I2C_STATE(base) MMIO32((base) + 0x008)
@@ -265,4 +268,4 @@
#define I2C1_IEN I2C_IEN(I2C1)
#define I2C1_ROUTE I2C_ROUTE(I2C1)
-#endif
+/**@}*/
\ No newline at end of file
diff --git a/include/libopencm3/efm32/ezr32wg/i2c.h b/include/libopencm3/efm32/ezr32wg/i2c.h
index e8a3a9c8..50ea556c 100644
--- a/include/libopencm3/efm32/ezr32wg/i2c.h
+++ b/include/libopencm3/efm32/ezr32wg/i2c.h
@@ -1,3 +1,11 @@
+/** @defgroup i2c_defines I2C Defines
+ *
+ * @brief Defined Constants and Types for the I²C module
+ *
+ * @ingroup EZR32WG_defines
+ *
+ * LGPL License Terms @ref lgpl_license
+ */
/*
* This file is part of the libopencm3 project.
*
@@ -17,9 +25,6 @@
* along with this library. If not, see .
*/
-#ifndef LIBOPENCM3_EFM32_EZR32WG_I2C_H
-#define LIBOPENCM3_EFM32_EZR32WG_I2C_H
+#pragma once
#include
-
-#endif
diff --git a/include/libopencm3/efm32/lg/i2c.h b/include/libopencm3/efm32/lg/i2c.h
index 6d34803d..9ff55f9f 100644
--- a/include/libopencm3/efm32/lg/i2c.h
+++ b/include/libopencm3/efm32/lg/i2c.h
@@ -1,3 +1,11 @@
+/** @defgroup i2c_defines I2C Defines
+ *
+ * @brief Defined Constants and Types for the I²C module
+ *
+ * @ingroup EFM32LG_defines
+ *
+ * LGPL License Terms @ref lgpl_license
+ */
/*
* This file is part of the libopencm3 project.
*
@@ -17,9 +25,6 @@
* along with this library. If not, see .
*/
-#ifndef LIBOPENCM3_EFM32_LG_I2C_H
-#define LIBOPENCM3_EFM32_LG_I2C_H
+#pragma once
#include
-
-#endif
diff --git a/include/libopencm3/efm32/wg/i2c.h b/include/libopencm3/efm32/wg/i2c.h
index 0c40f10e..c137f885 100644
--- a/include/libopencm3/efm32/wg/i2c.h
+++ b/include/libopencm3/efm32/wg/i2c.h
@@ -1,3 +1,11 @@
+/** @defgroup i2c_defines I2C Defines
+ *
+ * @brief Defined Constants and Types for the I²C module
+ *
+ * @ingroup EFM32WG_defines
+ *
+ * LGPL License Terms @ref lgpl_license
+ */
/*
* This file is part of the libopencm3 project.
*
@@ -17,9 +25,6 @@
* along with this library. If not, see .
*/
-#ifndef LIBOPENCM3_EFM32_WG_I2C_H
-#define LIBOPENCM3_EFM32_WG_I2C_H
+#pragma once
#include
-
-#endif
diff --git a/lib/efm32/common/i2c_common.c b/lib/efm32/common/i2c_common.c
new file mode 100644
index 00000000..304f12e6
--- /dev/null
+++ b/lib/efm32/common/i2c_common.c
@@ -0,0 +1,15 @@
+/** @addtogroup i2c_file I2C peripheral API
+ * @ingroup peripheral_apis
+ * @brief I²C helper functions.
+ *
+ * NO helper functions exist. Only header definitions are available.
+ * Delete these lines if/when you add actual helper APIs.
+ * @copyright See @ref lgpl_license
+ */
+
+#include
+
+/**@{*/
+
+/**@}*/
+
diff --git a/lib/efm32/ezr32wg/Makefile b/lib/efm32/ezr32wg/Makefile
index 2ea15784..3f270dbf 100644
--- a/lib/efm32/ezr32wg/Makefile
+++ b/lib/efm32/ezr32wg/Makefile
@@ -45,6 +45,7 @@ OBJS += dac_common.o
OBJS += dma_common.o
OBJS += emu_common.o
OBJS += gpio_common.o
+OBJS += i2c_common.o
OBJS += prs_common.o
OBJS += timer_common.o
diff --git a/lib/efm32/lg/Makefile b/lib/efm32/lg/Makefile
index de10765a..98572eae 100644
--- a/lib/efm32/lg/Makefile
+++ b/lib/efm32/lg/Makefile
@@ -45,6 +45,7 @@ OBJS += dac_common.o
OBJS += dma_common.o
OBJS += emu_common.o
OBJS += gpio_common.o
+OBJS += i2c_common.o
OBJS += prs_common.o
OBJS += timer_common.o
diff --git a/lib/efm32/wg/Makefile b/lib/efm32/wg/Makefile
index ea30bbcd..207be1cf 100644
--- a/lib/efm32/wg/Makefile
+++ b/lib/efm32/wg/Makefile
@@ -45,6 +45,7 @@ OBJS += dac_common.o
OBJS += dma_common.o
OBJS += emu_common.o
OBJS += gpio_common.o
+OBJS += i2c_common.o
OBJS += prs_common.o
OBJS += timer_common.o