From 5686b2eca292c9e96c1f18c5b81848053a782ed2 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Sun, 22 Jul 2018 21:29:02 +0800 Subject: [PATCH] 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 --- drivers/allwinner/sunxi_i2c.c | 28 ++++++++++++++++++++++++++++ maintainers.rst | 1 + 2 files changed, 29 insertions(+) create mode 100644 drivers/allwinner/sunxi_i2c.c 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 + * + * SPDX-License-Identifier: BSD-3-Clause + * https://spdx.org/licenses + */ + +/* This driver provides I2C support for Allwinner sunXi SoCs */ + +#include + +#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" diff --git a/maintainers.rst b/maintainers.rst index 969d5e577..3f64b83fd 100644 --- a/maintainers.rst +++ b/maintainers.rst @@ -24,6 +24,7 @@ Allwinner ARMv8 platform port :G: `smaeul`_ :F: docs/plat/allwinner.rst :F: plat/allwinner/ +:F: drivers/allwinner/ Armv7-A architecture port -------------------------