[RFC PATCH dev-5.1 3/6] irqchip/aspeed-i2c-ic: add I2C SRAM enabling control
Ryan Chen
ryan_chen at aspeedtech.com
Fri Jun 21 10:33:18 AEST 2019
Hello Jae,
The i2c register setting must after scu reset. - APEED_I2C_SRAM_BUFFER_EN
My recommend aspeed-i2c-ic.c need be probe after scu reset. And all others i2c bus is no needed for scu reset.
Ryan
-----Original Message-----
From: openbmc [mailto:openbmc-bounces+ryan_chen=aspeedtech.com at lists.ozlabs.org] On Behalf Of Jae Hyun Yoo
Sent: Friday, June 21, 2019 3:49 AM
To: Brendan Higgins <brendanhiggins at google.com>; Benjamin Herrenschmidt <benh at kernel.crashing.org>; C?ric Le Goater <clg at kaod.org>; Joel Stanley <joel at jms.id.au>; Andrew Jeffery <andrew at aj.id.au>
Cc: openbmc at lists.ozlabs.org; Jae Hyun Yoo <jae.hyun.yoo at linux.intel.com>
Subject: [RFC PATCH dev-5.1 3/6] irqchip/aspeed-i2c-ic: add I2C SRAM enabling control
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