Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2010784pxj; Wed, 19 May 2021 20:39:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwKaT6XkQBjo01MK9BM1pINxWrPFUodUQTXNvPUph+lQC/6IWJ9HF0SOSjtWmEJhOb056Mn X-Received: by 2002:a17:906:1c8b:: with SMTP id g11mr2573696ejh.158.1621481965215; Wed, 19 May 2021 20:39:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621481965; cv=none; d=google.com; s=arc-20160816; b=BwHDduBFQ+RSlNfWrOywz14RsdCDWbZmmtgpwUFSvYqMG/3U17pr3jJN1Z+z+enzPS q0zUVCaDSjVn9pwUKjD8XvHgBu2MJMpQcqEX0+97erJ0ELlAqaPh7Vrff0lURKsoimzS 0XyL8DCqTXXfpNtpfbc0703jrduTUx8+zIlGaaxYHjlWGFWCNsDbdGnGPGFtcnyAcXbW b/PvVDANeTEETHERTSrBqzi26SxJAMvIhQQA2Y8/vj3UgvK0JcIjWSGofjtZO/zizMQt kyv8K+wbzTQzYmeE+YqsT4a5Dt3kJOkNMrpCaj8FhYfSLw7t7qnX2yvCEiag5rr+FKKa CKrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=PJTB0ogSNbQ1x0GicdBDpr6yhbswha4ZYg+HsPWhCLA=; b=Ll1pEkJlv0wzsEHV48FXQSLh1J/+xZD/LoPDSaBV/y24D1U0ZPxI3jJlHH5uhl0cdq XeXnevnUiqwZ4QpINR1rOL/WFaoj0on3PHQ+uIrvBqdViuJDCE9rPM7qo42hh8TOZQAn FlZH+qfixMh3w6LNpo9PFwzshStNewp8ZiY31EhxiC6Epeay6D2ET7EOakDUm3VkjDhW 1WUTVAtyK/FKLkrRIdweJnJ4fggj3J3OH8y/LLxkwyDwvhIOOl+pGG6AUvMs9ehlZX/B TTnxghgrCs+cleZLyU9mppuimpJJlrz2w2ux65Jb3xgcJ3ZN8HoE6dPmtz+iNbKAYuaD 4dlA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hs11si1974055ejc.583.2021.05.19.20.39.01; Wed, 19 May 2021 20:39:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230315AbhETDgi (ORCPT + 99 others); Wed, 19 May 2021 23:36:38 -0400 Received: from twspam01.aspeedtech.com ([211.20.114.71]:45066 "EHLO twspam01.aspeedtech.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229531AbhETDgi (ORCPT ); Wed, 19 May 2021 23:36:38 -0400 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 14K3JA4S041222; Thu, 20 May 2021 11:19:11 +0800 (GMT-8) (envelope-from jamin_lin@aspeedtech.com) Received: from aspeedtech.com (192.168.100.253) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 20 May 2021 11:31:48 +0800 Date: Thu, 20 May 2021 11:31:41 +0800 From: Jamin Lin To: Joel Stanley CC: Rob Herring , 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" , Ryan Chen , "ChiaWei Wang" , Troy Lee , Steven Lee Subject: Re: [PATCH 1/3] i2c: aspeed: avoid new registers definition of AST2600 Message-ID: <20210520033140.GA3656@aspeedtech.com> References: <20210519080436.18975-1-jamin_lin@aspeedtech.com> <20210519080436.18975-2-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) 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 14K3JA4S041222 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The 05/19/2021 22:59, Joel Stanley wrote: > On Wed, 19 May 2021 at 08:05, Jamin Lin wrote: > > > > 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. > > The AST2600 v9 datasheet says that bit 2 selects between old and new > register sets, and that the old register set is the default. > > Has the default changed for the A3?, and the datasheet is incorrect? > > Does the A3 still support the old register set? > We suggest user to use the new i2c driver for AST2600 and we will sumbit it. This driver is used to AST2500 and AST2400 SOCs. Change this driver to check global register of i2c to avoid user build the wrong driver. > > > > 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 > >