[RFC PATCH dev-5.1 3/6] irqchip/aspeed-i2c-ic: add I2C SRAM enabling control
Jae Hyun Yoo
jae.hyun.yoo at linux.intel.com
Fri Jun 21 05:49:19 AEST 2019
This commit adds I2C SRAM enabling control for AST2500 SoC to
support buffer mode and DMA mode transfer. The SRAM is enabled by
default in AST2400 SoC.
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo at linux.intel.com>
---
drivers/irqchip/irq-aspeed-i2c-ic.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/irqchip/irq-aspeed-i2c-ic.c b/drivers/irqchip/irq-aspeed-i2c-ic.c
index f20200af0992..99985b22a9fa 100644
--- a/drivers/irqchip/irq-aspeed-i2c-ic.c
+++ b/drivers/irqchip/irq-aspeed-i2c-ic.c
@@ -18,6 +18,9 @@
#include <linux/of_irq.h>
#include <linux/io.h>
+/* I2C Global Control Register (AST2500) */
+#define ASPEED_I2C_GLOBAL_CTRL_REG 0xc
+#define ASPEED_I2C_SRAM_BUFFER_EN BIT(0)
#define ASPEED_I2C_IC_NUM_BUS 14
@@ -100,6 +103,11 @@ static int __init aspeed_i2c_ic_of_init(struct device_node *node,
irq_set_chained_handler_and_data(i2c_ic->parent_irq,
aspeed_i2c_ic_irq_handler, i2c_ic);
+ /* Enable I2C SRAM buffer in case of AST2500 */
+ if (of_device_is_compatible(node, "aspeed,ast2500-i2c-ic"))
+ writel(ASPEED_I2C_SRAM_BUFFER_EN,
+ i2c_ic->base + ASPEED_I2C_GLOBAL_CTRL_REG);
+
pr_info("i2c controller registered, irq %d\n", i2c_ic->parent_irq);
return 0;
--
2.22.0
More information about the openbmc
mailing list