aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/allwinner
diff options
context:
space:
mode:
authorIcenowy Zheng <icenowy@aosc.io>2018-07-22 21:29:02 +0800
committerIcenowy Zheng <icenowy@aosc.io>2018-09-07 22:13:06 +0800
commit5686b2eca292c9e96c1f18c5b81848053a782ed2 (patch)
treeee5d7c666bdd6f41fb779ff1b4252023b653b261 /drivers/allwinner
parent207199141312018cf9560fba32ae421324f041cb (diff)
downloadplatform_external_arm-trusted-firmware-5686b2eca292c9e96c1f18c5b81848053a782ed2.tar.gz
platform_external_arm-trusted-firmware-5686b2eca292c9e96c1f18c5b81848053a782ed2.tar.bz2
platform_external_arm-trusted-firmware-5686b2eca292c9e96c1f18c5b81848053a782ed2.zip
allwinner: add I2C glue driver
Allwinner 64-bit SoCs all use the Mentor Graphics MI2CV I2C controller core, with inverted clear quirk. Add a glue driver for this. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Diffstat (limited to 'drivers/allwinner')
-rw-r--r--drivers/allwinner/sunxi_i2c.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/allwinner/sunxi_i2c.c b/drivers/allwinner/sunxi_i2c.c
new file mode 100644
index 000000000..cc91ca58a
--- /dev/null
+++ b/drivers/allwinner/sunxi_i2c.c
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2018 Icenowy Zheng <icenowy@aosc.io>
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ * https://spdx.org/licenses
+ */
+
+/* This driver provides I2C support for Allwinner sunXi SoCs */
+
+#include <mmio.h>
+
+#define CONFIG_SYS_TCLK 24000000
+#define CONFIG_SYS_I2C_SPEED 100000
+#define CONFIG_SYS_I2C_SLAVE 0
+
+#define I2C_INTERRUPT_CLEAR_INVERTED
+
+struct mentor_i2c_regs {
+ uint32_t slave_address;
+ uint32_t xtnd_slave_addr;
+ uint32_t data;
+ uint32_t control;
+ uint32_t status;
+ uint32_t baudrate;
+ uint32_t soft_reset;
+};
+
+#include "../mentor/i2c/mi2cv.c"