Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp3915905pxu; Sun, 20 Dec 2020 21:58:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJwUc+OTglDyHVJtoQ/z8o8fBy4vXFVVur7DxH9xci/x9NbzfqsvevkRx1dNUmznJ7HlSm6e X-Received: by 2002:a50:c053:: with SMTP id u19mr14576030edd.109.1608530328436; Sun, 20 Dec 2020 21:58:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608530328; cv=none; d=google.com; s=arc-20160816; b=DkhnqD31iAt1u/mJMXSyaxQiyt+8uK6SwzHe3F6wNKkT9Xa14N9fMflA+5dw48E1D5 BiSapgdcicorUUunZDOcriib2cQltm5cR6Y4LMIxJEn4yb+av/jC5DEypJ41qFbC9Ywy cEGc8fIsjhMVoYQxG8F/h4QjBlcG/2C7B0/WgZGI/xMGhxFQUcpdRR7cJQS0kT0xhFjW 2qT5DN9XgjTBdjvocXDGP1kOkh+hVjmMwsnI4fVXnw8Qu7Qntxbdpk2kRGnR3wzbSkrH +xn2Yiu7w8vs01MXzwOs76Zv0jhI2NJAuuwJTI+XbLhfQWEjlNZq3/d72jatZXnMRjDY 7SSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=3SsUnqxVU4OBI9H3ePoTyt8s14rlc4vbiVJiLKmF4T8=; b=nGsScsqh324bXDvHiTs4Pit0KcIfDd4Svoe3f96ttY8OrWu2cq9x00/oRn+uUOL46C gSRueGCEj3sSReDDfokQsuAM4up3R6lQTiMXSai9mkdWzbQ/vc4NfQOmk8lfmS1X2AAq PdUSEIsQ/tnS3FTIOEV9rDpppEFxkiP6iLkouTZ27SV8sf9y7SYEZ5VIe5dNX+zlZWpf U0Bou9JxfDkxcVj7zLNfQ2rhNXp9187YNFhKPrg+7zevnLXVsGNEJkVhK9Pa4ygSnb4X QY9IwW0IwHBsycHb4F7p6K9pRR3fq68kA1Z33Xend/KTrhzLlDckhSMgbHLENd47VnbP 5INg== 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 q4si9993718edg.1.2020.12.20.21.58.25; Sun, 20 Dec 2020 21:58:48 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728449AbgLUF5S (ORCPT + 99 others); Mon, 21 Dec 2020 00:57:18 -0500 Received: from twspam01.aspeedtech.com ([211.20.114.71]:59038 "EHLO twspam01.aspeedtech.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727328AbgLUF5R (ORCPT ); Mon, 21 Dec 2020 00:57:17 -0500 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 0BL5qWvD013664; Mon, 21 Dec 2020 13:52:36 +0800 (GMT-8) (envelope-from chiawei_wang@aspeedtech.com) Received: from ChiaWeiWang-PC.aspeed.com (192.168.2.66) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 21 Dec 2020 13:56:09 +0800 From: "Chia-Wei, Wang" To: , , , , , , , , , , CC: , , , Subject: [PATCH v3 3/5] ipmi: kcs: aspeed: Adapt to new LPC DTS layout Date: Mon, 21 Dec 2020 13:56:21 +0800 Message-ID: <20201221055623.31463-4-chiawei_wang@aspeedtech.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201221055623.31463-1-chiawei_wang@aspeedtech.com> References: <20201221055623.31463-1-chiawei_wang@aspeedtech.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.168.2.66] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 0BL5qWvD013664 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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; - 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; -- 2.17.1