Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp3961754pxu; Sun, 20 Dec 2020 23:57:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJzBt1QNbe66k3iWC52TqzEjBDjZsoAT0Fa+so+eTRJHO2CfJhBXatH0A6Q1dwiFoPrOgJRG X-Received: by 2002:a17:906:660b:: with SMTP id b11mr1440350ejp.458.1608537429880; Sun, 20 Dec 2020 23:57:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608537429; cv=none; d=google.com; s=arc-20160816; b=W29CPuXysfdN1nZneuri4j8Vrg4/u4ieDPV6Y5CURZVjVapeqfjRfcM3OJ7TZb1wDG umxyb2mulhMUVKoYeqOEuXsbg1J2s/ID8pcfCvq7ALID+1xpDFnIVfEaDfblsPKVq/ui 8o38Dy2HmFhTOm9aPe9PbZIrAaPAirTnKAZ8H3YlAqKmrVr/jGDQrRfGFWxzRgJa2KJ3 DYBdJWsP9+oOp69r+uj4Z0OLLqGW7XPuBUFX7kG/V19GWB3J8QlZ0quxb6LbsU3UApSo 4Gfbk87i1TewTCtK0FJTNU4rUGqVwIH+b8es7d0HPaI+epZs6M3YEyyrGYCUokR6XZRT SOkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:cc:to :subject:ironport-sdr:ironport-sdr; bh=pXc3gBHkrpEMcnR8z3/JRR3SVvj3OWknFd1WmXcdC7Y=; b=a9Eu3Ri46zhq1+NNfD9GooUska+dDwoO0CyHfhp284rFD/8gn4XvSIlgvZhraAOI0O 3n5FFUzJPWTqaSahfEj5qII6AbfFBhRCYhn//yJKKbzF8lWj9850MmpWRXqoF5HhypBv PVRgJ8/kjkZBpnjW+UW0oRgUP20X/4+zXAUyulTMww6IvugvGYbGmipBHs3Ftliw3e0l S+4pQEtbhmHRG2JdzlNkJY+BLMCPH6mTjRSeGSpSmfedEUlY03UPbKZGWIvmi1uSUl0T Ye0BCfh8z6Oq7ttXndVglV5OErPp06CyiAa0+FEdPhxoCibjG6+abHZsSVbECE7x3Rs1 a0QQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r3si10616942edy.595.2020.12.20.23.56.47; Sun, 20 Dec 2020 23:57:09 -0800 (PST) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727284AbgLUHzx (ORCPT + 99 others); Mon, 21 Dec 2020 02:55:53 -0500 Received: from mga01.intel.com ([192.55.52.88]:49501 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726671AbgLUHzw (ORCPT ); Mon, 21 Dec 2020 02:55:52 -0500 IronPort-SDR: vs5yyYUrsD9wAIQMZBUiv1V1RP1tk5j+VSMWZ/3pwGGegn/egHtnUDPUYsxDtA8b3dRoUAWQt6 3GAIP8RCLgPQ== X-IronPort-AV: E=McAfee;i="6000,8403,9841"; a="194118659" X-IronPort-AV: E=Sophos;i="5.78,436,1599548400"; d="scan'208";a="194118659" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Dec 2020 23:54:04 -0800 IronPort-SDR: 3YZFBbHJQgZ0sUp81t+n3fSzD+Roiww3AEymwF3PgrT79xjDhA865R7xHBDXUQQigeTkzhHmoQ eHCHef0dR8bw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,436,1599548400"; d="scan'208";a="415701255" Received: from shwdenpg096.ccr.corp.intel.com (HELO [10.67.104.88]) ([10.67.104.88]) by orsmga001.jf.intel.com with ESMTP; 20 Dec 2020 23:53:45 -0800 Subject: Re: [PATCH v3 3/5] ipmi: kcs: aspeed: Adapt to new LPC DTS layout To: "Chia-Wei, Wang" , lee.jones@linaro.org, robh+dt@kernel.org, joel@jms.id.au, andrew@aj.id.au, linus.walleij@linaro.org, minyard@acm.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org Cc: BMC-SW@aspeedtech.com, cyrilbur@gmail.com, rlippert@google.com References: <20201221055623.31463-1-chiawei_wang@aspeedtech.com> <20201221055623.31463-4-chiawei_wang@aspeedtech.com> From: Haiyue Wang Message-ID: <12d347b6-168b-11d2-b906-18164afb1724@linux.intel.com> Date: Mon, 21 Dec 2020 15:53:44 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <20201221055623.31463-4-chiawei_wang@aspeedtech.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/21/2020 13:56, Chia-Wei, Wang wrote: > Add check against LPC device v2 compatible string to > ensure that the fixed device tree layout is adopted. > The LPC register offsets are also fixed accordingly. > > Signed-off-by: Chia-Wei, Wang > --- > drivers/char/ipmi/kcs_bmc_aspeed.c | 35 ++++++++++++++++++------------ > 1 file changed, 21 insertions(+), 14 deletions(-) > > diff --git a/drivers/char/ipmi/kcs_bmc_aspeed.c b/drivers/char/ipmi/kcs_bmc_aspeed.c > index a140203c079b..6283bfef4ea7 100644 > --- a/drivers/char/ipmi/kcs_bmc_aspeed.c > +++ b/drivers/char/ipmi/kcs_bmc_aspeed.c > @@ -27,7 +27,6 @@ > > #define KCS_CHANNEL_MAX 4 > > -/* mapped to lpc-bmc@0 IO space */ > #define LPC_HICR0 0x000 > #define LPC_HICR0_LPC3E BIT(7) > #define LPC_HICR0_LPC2E BIT(6) > @@ -52,15 +51,13 @@ > #define LPC_STR1 0x03C > #define LPC_STR2 0x040 > #define LPC_STR3 0x044 > - > -/* mapped to lpc-host@80 IO space */ > -#define LPC_HICRB 0x080 > +#define LPC_HICRB 0x100 > #define LPC_HICRB_IBFIF4 BIT(1) > #define LPC_HICRB_LPC4E BIT(0) > -#define LPC_LADR4 0x090 > -#define LPC_IDR4 0x094 > -#define LPC_ODR4 0x098 > -#define LPC_STR4 0x09C > +#define LPC_LADR4 0x110 > +#define LPC_IDR4 0x114 > +#define LPC_ODR4 0x118 > +#define LPC_STR4 0x11C > > struct aspeed_kcs_bmc { > struct regmap *map; > @@ -345,15 +342,25 @@ static int aspeed_kcs_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct kcs_bmc *kcs_bmc; > - struct device_node *np; > + struct device_node *kcs_np; > + struct device_node *lpc_np; > int rc; > I think you can just use 'np' to do LPC compatible checking: np = pdev->dev.of_node->parent; if (!of_device_is_compatible(lpc_np, "aspeed,ast2400-lpc-v2") && !of_device_is_compatible(lpc_np, "aspeed,ast2500-lpc-v2") && !of_device_is_compatible(lpc_np, "aspeed,ast2600-lpc-v2")) { dev_err(dev, "unsupported LPC device binding\n"); return -ENODEV; } before: np = pdev->dev.of_node; if (of_device_is_compatible(np, "aspeed,ast2400-kcs-bmc") || of_device_is_compatible(np, "aspeed,ast2500-kcs-bmc")) Then the patch is clear. ;-) > - np = pdev->dev.of_node; > - if (of_device_is_compatible(np, "aspeed,ast2400-kcs-bmc") || > - of_device_is_compatible(np, "aspeed,ast2500-kcs-bmc")) > + kcs_np = dev->of_node; > + lpc_np = kcs_np->parent; > + > + if (!of_device_is_compatible(lpc_np, "aspeed,ast2400-lpc-v2") && > + !of_device_is_compatible(lpc_np, "aspeed,ast2500-lpc-v2") && > + !of_device_is_compatible(lpc_np, "aspeed,ast2600-lpc-v2")) { > + dev_err(dev, "unsupported LPC device binding\n"); > + return -ENODEV; > + } > + > + if (of_device_is_compatible(kcs_np, "aspeed,ast2400-kcs-bmc") || > + of_device_is_compatible(kcs_np, "aspeed,ast2500-kcs-bmc")) > kcs_bmc = aspeed_kcs_probe_of_v1(pdev); > - else if (of_device_is_compatible(np, "aspeed,ast2400-kcs-bmc-v2") || > - of_device_is_compatible(np, "aspeed,ast2500-kcs-bmc-v2")) > + else if (of_device_is_compatible(kcs_np, "aspeed,ast2400-kcs-bmc-v2") || > + of_device_is_compatible(kcs_np, "aspeed,ast2500-kcs-bmc-v2")) > kcs_bmc = aspeed_kcs_probe_of_v2(pdev); > else > return -EINVAL;