Hi Simon, Patrice,

Am 06.08.2017 um 07:15 schrieb Simon Glass:
Hi Patrice,

On 25 July 2017 at 10:02,  <patrice.chot...@st.com> wrote:
From: Patrice Chotard <patrice.chot...@st.com>

Add i2c driver which can be used on both STM32F7 and STM32H7.
This I2C block supports the following features:
  _ Slave and master modes
  _ Multimaster capability
  _ Standard-mode (up to 100 kHz)
  _ Fast-mode (up to 400 kHz)
  _ Fast-mode Plus (up to 1 MHz)
  _ 7-bit and 10-bit addressing mode
  _ Multiple 7-bit slave addresses (2 addresses, 1 with configurable mask)
  _ All 7-bit addresses acknowledge mode
  _ General call
  _ Programmable setup and hold times
  _ Easy to use event management
  _ Optional clock stretching
  _ Software reset

Signed-off-by: Christophe Kerello <christophe.kere...@st.com>
Signed-off-by: Patrice Chotard <patrice.chot...@st.com>
---
  doc/device-tree-bindings/i2c/i2c-stm32.txt |  30 ++
  drivers/i2c/Kconfig                        |   7 +
  drivers/i2c/Makefile                       |   1 +
  drivers/i2c/stm32f7_i2c.c                  | 839 +++++++++++++++++++++++++++++
  4 files changed, 877 insertions(+)
  create mode 100644 doc/device-tree-bindings/i2c/i2c-stm32.txt
  create mode 100644 drivers/i2c/stm32f7_i2c.c

[...]
diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c
new file mode 100644
index 0000000..255b38a
--- /dev/null
+++ b/drivers/i2c/stm32f7_i2c.c
@@ -0,0 +1,839 @@
+/*
+ * (C) Copyright 2017 STMicroelectronics
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <i2c.h>
+#include <reset.h>
+
+#include <dm/device.h>
+#include <linux/io.h>
+
+/* STM32 I2C registers */
+struct stm32_i2c_regs {
+       u32 cr1;        /* I2C control register 1 */
+       u32 cr2;        /* I2C control register 2 */
+       u32 oar1;       /* I2C own address 1 register */
+       u32 oar2;       /* I2C own address 2 register */
+       u32 timingr;    /* I2C timing register */
+       u32 timeoutr;   /* I2C timeout register */
+       u32 isr;        /* I2C interrupt and status register */
+       u32 icr;        /* I2C interrupt clear register */
+       u32 pecr;       /* I2C packet error checking register */
+       u32 rxdr;       /* I2C receive data register */
+       u32 txdr;       /* I2C transmit data register */
+};
+
+#define STM32_I2C_CR1                          0x00
+#define STM32_I2C_CR2                          0x04

Do you really need these STM32_I2C prefixes?

Why not? I think this makes it clearer reading the drivers code.
Beside of this, I am in sync with Simons comments.

@Patrice: Can you prepare a v2 please? Thanks!

bye,
Heiko
--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to