From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93667C43460 for ; Wed, 19 May 2021 08:27:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7236E60FE8 for ; Wed, 19 May 2021 08:27:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244955AbhESI2t (ORCPT ); Wed, 19 May 2021 04:28:49 -0400 Received: from twspam01.aspeedtech.com ([211.20.114.71]:46530 "EHLO twspam01.aspeedtech.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237950AbhESI2s (ORCPT ); Wed, 19 May 2021 04:28:48 -0400 X-Greylist: delayed 1191 seconds by postgrey-1.27 at vger.kernel.org; Wed, 19 May 2021 04:28:47 EDT Received: from twspam01.aspeedtech.com (localhost [127.0.0.2] (may be forged)) by twspam01.aspeedtech.com with ESMTP id 14J7t2qm033984; Wed, 19 May 2021 15:55:02 +0800 (GMT-8) (envelope-from jamin_lin@aspeedtech.com) Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 14J7q99e033711; Wed, 19 May 2021 15:52:09 +0800 (GMT-8) (envelope-from jamin_lin@aspeedtech.com) Received: from localhost.localdomain (192.168.100.253) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 19 May 2021 16:04:46 +0800 From: Jamin Lin To: Rob Herring , Joel Stanley , "Andrew Jeffery" , Brendan Higgins , Benjamin Herrenschmidt , Rayn Chen , "open list:I2C SUBSYSTEM HOST DRIVERS" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "moderated list:ARM/ASPEED MACHINE SUPPORT" , "moderated list:ARM/ASPEED MACHINE SUPPORT" , open list , "moderated list:ARM/ASPEED I2C DRIVER" CC: , , , , Subject: [PATCH 1/3] i2c: aspeed: avoid new registers definition of AST2600 Date: Wed, 19 May 2021 16:04:27 +0800 Message-ID: <20210519080436.18975-2-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210519080436.18975-1-jamin_lin@aspeedtech.com> References: <20210519080436.18975-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.168.100.253] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 14J7q99e033711 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The register definition between AST2600 A2 and A3 is different. This patch avoid new registers definition of AST2600 to use this driver. We will submit the path for the new registers definition of AST2600. Signed-off-by: Jamin Lin --- drivers/i2c/busses/i2c-aspeed.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c index 724bf30600d6..007309077d9f 100644 --- a/drivers/i2c/busses/i2c-aspeed.c +++ b/drivers/i2c/busses/i2c-aspeed.c @@ -19,14 +19,20 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include +/* I2C Global Registers */ +/* 0x0c : I2CG Global Control Register (AST2500) */ +#define ASPEED_I2CG_GLOBAL_CTRL_REG 0x0c + /* I2C Register */ #define ASPEED_I2C_FUN_CTRL_REG 0x00 #define ASPEED_I2C_AC_TIMING_REG1 0x04 @@ -973,6 +979,22 @@ static int aspeed_i2c_probe_bus(struct platform_device *pdev) struct resource *res; int irq, ret; + if (of_device_is_compatible(pdev->dev.of_node, + "aspeed,ast2600-i2c-bus")) { + u32 global_ctrl; + struct regmap *gr_regmap; + + gr_regmap = syscon_regmap_lookup_by_compatible("aspeed,ast2600-i2c-global"); + + if (IS_ERR(gr_regmap)) { + ret = PTR_ERR(gr_regmap); + } else { + regmap_read(gr_regmap, ASPEED_I2CG_GLOBAL_CTRL_REG, &global_ctrl); + if (global_ctrl & BIT(2)) + return -EIO; + } + } + bus = devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL); if (!bus) return -ENOMEM; -- 2.17.1