From patchwork Sun Oct 31 17:53:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Virag X-Patchwork-Id: 12595413 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17EF8C433F5 for ; Sun, 31 Oct 2021 17:56:27 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 BEC6B6108F for ; Sun, 31 Oct 2021 17:56:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org BEC6B6108F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=6AUj3g3GyYcVw4/A/tbFUpu41EYU+tJuYTpxDcTwQ2E=; b=PDG9O9Xnamggda abxGpyheopQTy8NwDa59Z8RRNRk/S/Ifv/Jv9XItm2Jie/eviG0rGz3KV9CodtpFxAeC6mRtkgvAw Ci5c+M+eJjzvbSU+bd35b361yVEu7B8BrrO7p/3bSb+iW22yZGrpwDZI6ej9PiWOhtL4FfIsiZXGl 6Rw19W4X2lYtGHwdv3JPgz+wTKVkZeq0TPg4/o2QqmYLCFniPhuM5sHd0f5yMxdScMe+bef4tDRsU H2WhWErtj+pjyjBqvtGRQ/oFgbRdWqti2+pMGoWOUFWXJuSyjFsjG1ysomYA5lAlDR22zZz/fULRD ExOuWncvMZi+eOEsLYIw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mhF2N-00EUfd-DC; Sun, 31 Oct 2021 17:54:31 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mhF2J-00EUeM-36 for linux-arm-kernel@lists.infradead.org; Sun, 31 Oct 2021 17:54:28 +0000 Received: by mail-ed1-x52d.google.com with SMTP id m17so55656559edc.12 for ; Sun, 31 Oct 2021 10:54:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1iAI21X6r8lOvu6IMD//lyW5AueJtXMjsVhWS1XSI7s=; b=P4Y6pGdY1kCCdlxUfYxN4cn+cnbp2EYtYyUMaR2fdI75Z75I9xWLEJ4FDu4XdYYT1i jRrI/ejB/z63ubbA9ix8MIE89eI8uT9gL82T209mZPz41PN66FytsLO7oGCwjF0g83PM zW1HDrmtCqG/6mGXi24wZsSdg7Up4BXcHjUZq3ULU5a+s2zegFYtd2+6SP+5F5lvYaDy 0vDclfWVbMUSiGX8RXUL3S5loIZlrrxtFv30w9k9B9BzpRs8S3Vq6yPHNP7731HVKsAF pawyKegtCn4fifBbquCZSMj+OxsJTdH78jMv4sOyKRVWyJq1G7abmS+vGhaYSRXsj7my 7Y+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1iAI21X6r8lOvu6IMD//lyW5AueJtXMjsVhWS1XSI7s=; b=1llBWTLCOutLgn3SKPEzl9e2Xo4RxuD+/hHXYFJSt+aWBl12rOs3IQawWW3kzhYZYs GgHRtiz8SXakMAzx7MeRIb6AEPVykEQTzVkk1OQmcWkaacLggPbgUB6HBX1Ai+2ikjA2 I1nYE0QeDtqSLtmyMaGkF4wjdx+tfYfS7Fal+PcVpD/xLuFT2302/5WrG4eTtxikIqa9 fZRnyfRQD5gvk/GC0OXGndr7mnD2Nf36B4YOAYNmcZaTTfN6Zozpfh4ooFHIWzItTyod qGzR1tK6xJIvwgkGh60j9cwWs/grf1gza+0knDMqdWlR4nUIAreIwvZZAfLJMBRNrJQ0 1T7Q== X-Gm-Message-State: AOAM532u2Woh/MPKI7TvKXD+y/XwZEW3FT/paEspzOieXWi1rdD6NnbT kzT5PkBE6Hg7DGyyfykA6XU= X-Google-Smtp-Source: ABdhPJylON3W+t6x4QKpdZ1ZTKyzua3+6/PDrTQvrCkk2dZZqhzaTZFX2SoHaqZQj7/vIbACptW/+g== X-Received: by 2002:a50:d8cf:: with SMTP id y15mr34414191edj.66.1635702865644; Sun, 31 Oct 2021 10:54:25 -0700 (PDT) Received: from localhost.localdomain ([2a02:ab88:368f:2080:eab:126a:947d:3008]) by smtp.googlemail.com with ESMTPSA id r26sm5986917ejd.85.2021.10.31.10.54.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 Oct 2021 10:54:25 -0700 (PDT) From: David Virag To: Cc: David Virag , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] samsung: exynos-chipid: add Exynos7885 SoC support Date: Sun, 31 Oct 2021 18:53:29 +0100 Message-Id: <20211031175329.27843-1-virag.david003@gmail.com> X-Mailer: git-send-email 2.33.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211031_105427_174336_54FBA1A0 X-CRM114-Status: GOOD ( 16.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Exynos 7885 has product id "0xE7885000". Add this id to the ids with the name. The downstream driver sets sub_rev to 2 if we are on Exynos 7885, we detected sub_rev 1 and the 27th bit of the revision register is set. This is presumably because Samsung might have set the wrong bits on rev2 of the SoC in the chipid, but we may never know as we have no manual. Both the SM-A530F/jackpotlte with Exynos7885 and the SM-M305/m30lte with Exynos7904 (rebranded Exynos7885 with lower clock speeds) seem to have this bit set to 1 and have a sub_rev of 1 otherwise, but the downstream driver corrects it to 2. Let's replicate this behaviour in upstream too! Signed-off-by: David Virag --- drivers/soc/samsung/exynos-chipid.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/soc/samsung/exynos-chipid.c b/drivers/soc/samsung/exynos-chipid.c index a28053ec7e6a..ec8c76275aec 100644 --- a/drivers/soc/samsung/exynos-chipid.c +++ b/drivers/soc/samsung/exynos-chipid.c @@ -55,6 +55,7 @@ static const struct exynos_soc_id { { "EXYNOS5440", 0xE5440000 }, { "EXYNOS5800", 0xE5422000 }, { "EXYNOS7420", 0xE7420000 }, + { "EXYNOS7885", 0xE7885000 }, { "EXYNOS850", 0xE3830000 }, { "EXYNOSAUTOV9", 0xAAA80000 }, }; @@ -88,6 +89,14 @@ static int exynos_chipid_get_chipid_info(struct regmap *regmap, } main_rev = (val >> data->main_rev_shift) & EXYNOS_REV_PART_MASK; sub_rev = (val >> data->sub_rev_shift) & EXYNOS_REV_PART_MASK; + + //Exynos 7885 revision 2 apparently has the 27th bit set instead of having + //a sub_rev of 2. Correct for this! + if (soc_info->product_id == 0xE7885000) { + if ((sub_rev == 1) && (val & 0x04000000)) + sub_rev = 2; + } + soc_info->revision = (main_rev << EXYNOS_REV_PART_SHIFT) | sub_rev; return 0;