From patchwork Tue Jan 9 08:30:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacky Bai X-Patchwork-Id: 857284 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Aq0D5Yis"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="LVUNu7h6"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zG4zr5vjTz9s7v for ; Tue, 9 Jan 2018 19:28:56 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version: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:In-Reply-To:References: List-Owner; bh=ryzWtXVKg6m5DfKb/M1GGLpQmJdlMGXbMp3ogretkgE=; b=Aq0D5YisBGAJXz CByTJzOI5odDZAs1k60f71DC7PjSUcZUo3AYQX3vRedCDzdvJ5+8b8uRoxKD/EF3sFvndVMJX2qLF 5w2z3swpUoZtsUz9BsQ4SOj1CMAn7dUmXaiN1O4vyFE6L7OYubfUHn9OIGKBL5ZGBFhcReDWfRdbM hgBOXq0EopxQ7sCMoyEY1CgS+6iL2xBjiA5kuy29O/WaI0tac/DvDMDQwawtDQ4yQ4kw44L44k03E WHZhPt5pdt+sYq555zgnfLGn0OUlTuBgKqiNUxiKTRLYc6A7GQbVhR/cpylpg0lk6NkeGSf8uUrid cL4U8OqHUiHsNrAWm7fQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eYpHB-0006Qk-90; Tue, 09 Jan 2018 08:28:53 +0000 Received: from mail-ve1eur01on0061.outbound.protection.outlook.com ([104.47.1.61] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eYpH7-0006PQ-0i for linux-arm-kernel@lists.infradead.org; Tue, 09 Jan 2018 08:28:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=jg9s3doKLRFKx59S5AuA02y28aTN9XE3FdJOcQX4JG8=; b=LVUNu7h61UGhH/t5NsEztnAaLwFSO+hL2uZUT4ke9F8OUmh7MbwAx3K2PYYyImkqlikjXtCQegOMYnsIHlzL3lY0qwOT6JcoUc6d7eiKoKnOO3hV0zAMIWAqWEfXq2wjsVPfkm2IVQ3GAkTZcPqBfSr3+kZZ+8CcBwr2/rY+fCA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ping.bai@nxp.com; Received: from localhost.localdomain (92.121.68.129) by DB6PR04MB3109.eurprd04.prod.outlook.com (2603:10a6:6:c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Tue, 9 Jan 2018 08:28:29 +0000 From: Bai Ping To: shawnguo@kernel.org, kernel@pengutronix.de, fabio.estevam@nxp.com Subject: [PATCH] ARM: imx: Improve the soc revision calculation flow Date: Tue, 9 Jan 2018 16:30:32 +0800 Message-Id: <1515486632-18488-1-git-send-email-ping.bai@nxp.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [92.121.68.129] X-ClientProxiedBy: HK2PR0302CA0008.apcprd03.prod.outlook.com (2603:1096:202::18) To DB6PR04MB3109.eurprd04.prod.outlook.com (2603:10a6:6:c::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 82f42d99-acaf-49cd-caba-08d5573af829 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DB6PR04MB3109; X-Microsoft-Exchange-Diagnostics: 1; DB6PR04MB3109; 3:a5eIuDCTfJCx1KxQ49SNnlSIPFowbJoN2Bicff4gZGk4wkJz6cVW8F4a6lwbtZJ38CDheXd7Kk5CsTQz82Vcq5R+OJEECBxsfkBUgJ1RMP2sp4vWKjwhMYP/YZWoqg9YCP+FgrS4kUGzRIBTt+tXA/VXe/FhfbfiffyMAk04G9KHJZzpMcwSJ7SUkdYj8zySSSyDFjR5SePgcKPYhG9rPoYB+uYS2NQUTrx+Y39Mgn1sONgrWHyJm8JZYXV2iv7h; 25:pxhh0ztbsJ7hW7F1zJIqEmT3X2qYx5bsx30BQdby4Ynos3ZXx5eu/ZsdylX6Pd3jXboMx7NRmTidC0ReSJLNfYY6W7Vj1OwD3VSPtzwgfWLSFbD7uq5RZHC+KkPFbA5ORh/E9pNMV8/o4UE8HFWq0v/9GMAv9HVj+qaJca7jZiKtfbKEjx6JFJqE67dNu41mFKovzoyCuqVKRCRJ/UvY1L17Jb/9Ue/pYWK1hhkLSGlgzH81x6BbemjavIDVjyN5fcLbulx0aI6Ge9cy3lcLoN02zI+nMWOrdfY2Hyh5r+YJL+UEdHfQPcK6v5KoNtxiGHYXLzewdO+70SIvHuzDpA==; 31:Dfw4W9jQYzt3jv7gA2CfHwMwBb/9WzXr6teOSP+Ej50VUt3XAC6yRgU/OcDpkIvrgm8AM03ALRhvYNyOgKgrcQFd0p+9FImDW3UiHAaSMYi8ByFrxh5t8ZE4V39hfhCV2fZ0bqEsuRd9P6HhSC7JuhvXnV6Pk4f0uUysZ89TVX/j4z4TuPq/6XebgVWtZAGiWD86d3RDfbfS2SnS915VrxmRwRXUFWqlygulFgnhTfE= X-MS-TrafficTypeDiagnostic: DB6PR04MB3109: X-Microsoft-Exchange-Diagnostics: 1; DB6PR04MB3109; 20:AcRjieuc+m1k//rmk6oUy/f9TIQX2WUEyXxFmJl1YkEqyiL+Ec9TnsYJPf6zXkwz0gzSAEsQqor+YoLgNXpFZT2PSw9AQ7MUnovfanVO1AGy2dZCY0hRlCDtqc33xB/6z8R6W5Xr9zz9nJj/2CP0n9uxIFkExDfwhdPfbv0nykpAvjKxHyMmeOCHHaPSqYIoaFYKtYMzYiV3CSrLVCqCxsKxd7HeXfK7C6qlM3cNrxgycEAZ6qiEJtLfhIpaHoWzeIcXzwzsTFyAaHc4cVwOt8mOluDNyPuDL0emtyHMPj6/bt3ILX3TaIhCnzF/UESOe8OHs1Yp4F84MbZwhnXn9ZzR9aL7hhw1jlRlUd03ZZJ4/5U8AjpIPSzhfkO4kTkjFgh/UDc5CWPmcfayJkuKL8HyulXvdFa3UmwRGtcj+Oj7gV0pPThOu1ccnWMMDE39vURnn16oQ8RVVYX4Ew+n9BC6kK231Kp/Ne9bvTJHzDKhD1h9Pl+4TTyUytEviw4m; 4:E74zwtSRQFkzk+fG+IoRITAsuv9n5G8BlDZFwYjtQUyiE12vYa6hZ6HI4vvVcBNyhN4cUHwW1mgTzvyOJjpIsGgiIIFbSJiLnAxO3DGJO+DeKTVYLvXHLfTzLQTTeS0z/Dk8YFF3/141fzUIkr2FdYXT/tRv0ByNvAHDRzZP+D7igZgrTjh4uz+CeoweRxn91Bpw7052BCpEadS0e89ro8c59nUpv1/0dD8NXIbzCtr9mdscTOPfUKAsF4/IZTr5SPaR5nOPpZogmEW8SPZr1JpZSgbubWdl78qmEEQtb/7gP/R4yrlpLkffmllIloBv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(944501075)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041268)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DB6PR04MB3109; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:DB6PR04MB3109; X-Forefront-PRVS: 0547116B72 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(396003)(39860400002)(376002)(346002)(39380400002)(366004)(189003)(199004)(43544003)(8936002)(50466002)(81166006)(6116002)(25786009)(52116002)(2906002)(97736004)(3846002)(50226002)(6512007)(81156014)(6486002)(48376002)(51416003)(68736007)(4326008)(8676002)(36756003)(7736002)(305945005)(16526018)(105586002)(106356001)(316002)(39060400002)(478600001)(66066001)(86362001)(16586007)(6636002)(53936002)(47776003)(6506007)(6666003)(5660300001)(386003)(25903002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR04MB3109; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR04MB3109; 23:wDzj/48Zige001uzGu0IS1IzHRTYec5EP3s2tKp/Q?= F295NNbKi0YvIiQgmh5ZW0a8DgDba0ks8h5P95R8qHev3d99xRozBVfJvdW+e1il4QzBXuKahgZBloR6VZ/hae3ywwdRYULkiYw4ilyXvQfx78nQ3yuwLua+TrQNvu2YUywy/QTh2Nr4ex+H7UiKSFDf5GHuj1QAsOizmWgJquRfbkEZ2llX/uSAdXdpijJ2sAOd+ii8Bh/Y+/bm9l+2apjEVMt3eK3zW/r+TzCGgwdQp8yABe2btTpKPnil23G+rETunTaaECQn1QxbLJCJn4fuQOhAPobTCpfrO3SfIWjGIe5PFRGhB5t9H8g3hv2hp1GtCPBiEm6UyNreqNJM+PGU0guEKvjzJ5L81niNpU4KXtHXfriaGPmq8+fKwjq2SHRWykvUn+sW/1rb5le6gS2EI23PWQVd4E59yikOwXupozsj6JMhCAMdYzuPN6MIjk+TVZqMjtX+5nAKOESi7dnlc2S3oEYpwBBnXF40VhlfsWTQjOSLWYg+PL3SsbeFzbLpUVwgdYjItdivl5wQgmoFoA4vbSHqnXjKl3dGCmTJjleE2+PuBliw+SaD6Rb7xlhrfZLRGAK7xrso+CuuztvywdB9XGDaYqh9M0Z6Rm2R8S5Vjv6SLCfYNkAvgLTuf5bkwORZlmYF2gn3DMMWMtqldxyKRZoO5k5VMWAtry3FpJHxhpgRxigQ7Gwseoi+POdIGe50Tccqz3BFkJcmduaZ6VLpSwp8QfE4ebTc7hEdqSMUKADJjD24VUEzu79iJgpDstRXsDnBcB+I3M6b3rOPMQqkL6ql1u49/mfug+uyWeSVtGOBls2Sfgvf3ui270lw4KLet2vjOadujFwm4dYmwHIwZGvnRtwar0zHAMGAtoh01UzkFsCC/+ct2+jHE91D9ymZlAr+1k0DW9nnrdlzfGI1TU/UfGSlaARXt08wOfrOmX6JaTnSLV6WTSY6EDzSGYhtEVdrgGC6c5uwQFdwCX+0jrzcd3TtEEshDtHwR6osvwNuodn2M0f/duyFTDhR3esWRD8ApLKvRTcjiRZThVXQzpwN+d1LbezI4mZX16OiB556SLEAVK8ilv7R5k= X-Microsoft-Exchange-Diagnostics: 1; DB6PR04MB3109; 6:Fb8xCdzn6X6ZslLacvQQ/ZAy5wIvVAmFEPAaY/CM+o0+904YA7CidJT6cPP1FeBuMCOMHytl9zG3CsJZ5qAR7n3xq4LSbY63xalF2n+/1mYwsJ/j1waGNjXsng7Q314GdOaNQWivLLN7hnWw90TTF+Y190suM42HQcx+53i3LawULL7X4bhwktnVMe0qyOOeCEXQ+41IE52eg9D9AyYzuYYW/pLVzbojr0Z247+8AIercaFOnA3DVcoJo1tAww0cx/rf/081sf1XMFwpxb9w+myUnGgjFwvH8mMtcgI6wKSGHeajhoNy5MBx3jd8jeiK4mAP9iVFrFwK10/rYirz7hk9EpVMPOmbg71IZHH3fQE=; 5:jGab2YcGgGJWs3NMpe+rkYfkswlubFuOsey29UokkcdiAP7bKWSdhWosdi9RGIb+RCX2R235kOd28T0JD40s5WaS0IJU4xtmhrb5pRBElAbkh85LdH67Jq4xN3/2ZwjTCj5RH8SXzpDmXADbKEfa+m9EiyQFORJKuJ/BY1LYStQ=; 24:ygPmIuW03eETrjNgPPSKqosOTxUfLmOHpA80jljx6FURuWZNPnVxeGCAwDLbcBiWp3tUBeeNFlA6qaRJBhrNmrpZ47GR5oRedxXJQvu8iok=; 7:gTkPxHVqUEJbAieXBjoJH6Gh4tdFADs8GcBc9IfkvU2wmO6tqVl/80ZhrLQ2lfY0/sKFbAjoOLcG0kgAOD7B+argDOfFInimV4E2zudoU+pwCxUemRImmLoXE1e1iPSKcMLAqFQEbOVoCPkpgOPmRI/SZaWr7f6u7n7s3cdBKMrwK5xS5cQVMZiVFuVSwPZf2jDBd9C+MDIDGVnZ9bw5a3R60fEsfGbItfCce4yc1m+RMWc7FeORWSiIQPSZ+wzx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2018 08:28:29.2563 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 82f42d99-acaf-49cd-caba-08d5573af829 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR04MB3109 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180109_002849_300305_9009F4C9 X-CRM114-Status: GOOD ( 14.96 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.1.61 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [104.47.1.61 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: aisheng.dong@nxp.com, linux-imx@nxp.com, linux-arm-kernel@lists.infradead.org, jacky.baip@gmail.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org On our i.MX6 SOC, the DIGPROG register is used for representing the SOC ID and silicon revision. The revision has two part: MAJOR and MINOR. each is represented in 8 bits in the register. bits [15:8]: reflect the MAJOR part of the revision; bits [7:0]: reflect the MINOR part of the revision; In our linux kernel, the soc revision is represented in 8 bits. MAJOR part and MINOR each occupy 4 bits. previous method does NOT take care about the MAJOR part in DIGPROG register. So reformat the revision read from the HW to be compatible with the revision format used in kernel. Signed-off-by: Bai Ping Acked-by: Dong Aisheng --- arch/arm/mach-imx/anatop.c | 58 +++++++++++++++++----------------------------- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/arch/arm/mach-imx/anatop.c b/arch/arm/mach-imx/anatop.c index 649a84c..170cb30 100644 --- a/arch/arm/mach-imx/anatop.c +++ b/arch/arm/mach-imx/anatop.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2013-2015 Freescale Semiconductor, Inc. + * Copyright NXP 2017. * * The code contained herein is licensed under the GNU General Public * License. You may obtain a copy of the GNU General Public License @@ -116,6 +117,8 @@ void __init imx_init_revision_from_anatop(void) unsigned int revision; u32 digprog; u16 offset = ANADIG_DIGPROG; + u16 major_part, minor_part; + np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop"); anatop_base = of_iomap(np, 0); @@ -127,45 +130,26 @@ void __init imx_init_revision_from_anatop(void) digprog = readl_relaxed(anatop_base + offset); iounmap(anatop_base); - switch (digprog & 0xff) { - case 0: - /* - * For i.MX6QP, most of the code for i.MX6Q can be resued, - * so internally, we identify it as i.MX6Q Rev 2.0 - */ - if (digprog >> 8 & 0x01) - revision = IMX_CHIP_REVISION_2_0; - else - revision = IMX_CHIP_REVISION_1_0; - break; - case 1: - revision = IMX_CHIP_REVISION_1_1; - break; - case 2: - revision = IMX_CHIP_REVISION_1_2; - break; - case 3: - revision = IMX_CHIP_REVISION_1_3; - break; - case 4: - revision = IMX_CHIP_REVISION_1_4; - break; - case 5: - /* - * i.MX6DQ TO1.5 is defined as Rev 1.3 in Data Sheet, marked - * as 'D' in Part Number last character. - */ - revision = IMX_CHIP_REVISION_1_5; - break; - default: - /* - * Fail back to return raw register value instead of 0xff. - * It will be easy to know version information in SOC if it - * can't be recognized by known version. And some chip's (i.MX7D) - * digprog value match linux version format, so it needn't map - * again and we can use register value directly. + /* + * On i.MX7D digprog value match linux version format, so + * it needn't map again and we can use register value directly. + */ + if (of_device_is_compatible(np, "fsl,imx7d-anatop")) { + revision = digprog & 0xff; + } else { + + /* MAJOR: [15:8], the major silicon revison; + * MINOR: [7: 0], the minor silicon revison; + * + * please refer to the i.MX RM for the detailed + * silicon revison bit define. + * format the major part and minor part to match the + * linux kernel soc version format. */ revision = digprog & 0xff; + major_part = (digprog >> 8) & 0xf; + minor_part = digprog & 0xf; + revision = ((major_part + 1) << 4) | minor_part; } mxc_set_cpu_type(digprog >> 16 & 0xff);