From patchwork Tue Jun 23 02:50:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 11619653 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 40FE713A0 for ; Tue, 23 Jun 2020 02:59:39 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1A7952078E for ; Tue, 23 Jun 2020 02:59:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="JJYwXE71" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1A7952078E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=KDRNAYmmBsNg2xOSaOOL9y1de031AMLXA9Oe2IfBtzE=; b=JJYwXE71O+ku7Cq2WM8rEina0 RkMeG2x6NaGCgT3XRdqmhg/pkJHN6Ug/BlLHys7AAL+feOL3lAq5xcwRDZptgVYK+M2/E7bsSMovr RWLGcJ0sCpofRYVKgxB4UZ7DRM+thkby2xwtWgVOdMoq51g2rkhGErucpGFVgL46H775sHIwQilrq o3LTIyyqwy4K4KuSHvdoq17vE+KepcDUieUtQB9VNWMr5uCrW0wQLYp4dcLbt08uyfP7PzKDQE1Du DQe4UC0RzlxRHhXlcddEctTxbRl5pNEI+WO06QqxDnRwdsWhRfVxXz/lf7mFcthYr1GGyeWybhhD1 8AqxjpsNg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jnZ7J-0005f4-Cu; Tue, 23 Jun 2020 02:56:57 +0000 Received: from mx2.suse.de ([195.135.220.15]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jnZ36-0002KY-29; Tue, 23 Jun 2020 02:52:36 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 3925CAE84; Tue, 23 Jun 2020 02:51:32 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-realtek-soc@lists.infradead.org Subject: [PATCH v2 06/29] soc: realtek: chip: Detect RTD1296 Date: Tue, 23 Jun 2020 04:50:43 +0200 Message-Id: <20200623025106.31273-7-afaerber@suse.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200623025106.31273-1-afaerber@suse.de> References: <20200623025106.31273-1-afaerber@suse.de> MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [195.135.220.15 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?SmFtZXMgVGFpIFvmiLTlv5fls7Bd?= , Edgar Lee , linux-kernel@vger.kernel.org, =?utf-8?b?U3RhbmxleSBDaGFuZyBb5piM6IKy5b63XQ==?= , =?utf-8?q?Andreas_F=C3=A4rber?= , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Detection logic from downstream drivers/soc/realtek/rtd129x/rtk_chip.c. Acked-by: James Tai Signed-off-by: Andreas Färber Reviewed-by: Stanley Chang --- TODO: Name the bit in ISO_CHIP_INFO1:bound_opts. v1 -> v2: * Instead of direct iso register access use the new syscon regmap drivers/soc/realtek/chip.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/drivers/soc/realtek/chip.c b/drivers/soc/realtek/chip.c index c4650d512c91..103f564aad7f 100644 --- a/drivers/soc/realtek/chip.c +++ b/drivers/soc/realtek/chip.c @@ -23,6 +23,8 @@ #define SB2_CHIP_INFO_REVISE_ID GENMASK(31, 16) +#define REG_ISO_CHIP_INFO1 0x028 + struct dhc_soc_revision { const char *name; u16 chip_rev; @@ -57,9 +59,32 @@ static const char *default_name(struct device *dev, const struct dhc_soc *s) return s->family; } +static const char *rtd1295_name(struct device *dev, const struct dhc_soc *s) +{ + struct regmap *regmap; + unsigned int val; + int ret; + + regmap = syscon_regmap_lookup_by_phandle(dev->of_node, "iso-syscon"); + if (IS_ERR(regmap)) { + ret = PTR_ERR(regmap); + if (ret == -EPROBE_DEFER) + return ERR_PTR(ret); + dev_warn(dev, "Could not check iso (%d)\n", ret); + } else { + ret = regmap_read(regmap, REG_ISO_CHIP_INFO1, &val); + if (ret) + dev_warn(dev, "Could not read chip_info1 (%d)\n", ret); + else if (val & BIT(11)) + return "RTD1296"; + } + + return "RTD1295"; +} + static const struct dhc_soc dhc_soc_families[] = { { 0x6329, "RTD1195", default_name, rtd1195_revisions, "Phoenix" }, - { 0x6421, "RTD1295", default_name, rtd1295_revisions, "Kylin" }, + { 0x6421, "RTD1295", rtd1295_name, rtd1295_revisions, "Kylin" }, }; static const struct dhc_soc *dhc_soc_by_chip_id(u16 chip_id)