From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA361C2D0DB for ; Fri, 24 Jan 2020 10:00:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 91907208C4 for ; Fri, 24 Jan 2020 10:00:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579860045; bh=qjRaUF6rF2gylEZgTF/220Ah5kc2TWJb/myooLD5+sM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=m3/xZY/n2dtqqLjFPM5WQgfalqvHAw6SbPomiYeRF9SzpY0UpH6IfN3eAjnPx+MyY lMSDHs2paHEUrtpS2WLf+NJOi1kSZmYI3JdYPZARvEAOIR7krhmxfpyqUSTLMmMuOP vJAEHCHrHvBI7jUFs8QKYvUOjARIrhUp+3dNPvcY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388301AbgAXKAo (ORCPT ); Fri, 24 Jan 2020 05:00:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:36148 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733301AbgAXKAo (ORCPT ); Fri, 24 Jan 2020 05:00:44 -0500 Received: from localhost (unknown [145.15.244.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5F0D52075D; Fri, 24 Jan 2020 10:00:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579860043; bh=qjRaUF6rF2gylEZgTF/220Ah5kc2TWJb/myooLD5+sM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k1Qxr07Y/RsId0hB3WoJKtllJMy4Lw7Mwek3ErizxFlEtc9RPEHZXcigP1tjsbNa9 kNWmkPo9VUdTMu3/F0JQ8Y8d3xvq5NAl7kX04fToC1WwJ4wPpbzUbBvt2CCXXzrMTq sK4g0UFVVcuYGfOPwVraVMHECMnm8XxKt7OL3OPc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bryan ODonoghue , Leonard Crestez , Srinivas Kandagatla , Sasha Levin Subject: [PATCH 4.14 246/343] nvmem: imx-ocotp: Ensure WAIT bits are preserved when setting timing Date: Fri, 24 Jan 2020 10:31:04 +0100 Message-Id: <20200124092952.447203110@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200124092919.490687572@linuxfoundation.org> References: <20200124092919.490687572@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Bryan O'Donoghue [ Upstream commit 0493c4792b4eb260441e57f52cc11a9ded48b5a7 ] The i.MX6 and i.MX8 both have a bit-field spanning bits 27:22 called the WAIT field. The WAIT field according to the documentation for both parts "specifies time interval between auto read and write access in one time program. It is given in number of ipg_clk periods." This patch ensures that the relevant field is read and written back to the timing register. Fixes: 0642bac7da42 ("nvmem: imx-ocotp: add write support") Signed-off-by: Bryan O'Donoghue Reviewed-by: Leonard Crestez Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/nvmem/imx-ocotp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c index 193ca8fd350a4..0c8c3b9bb6a7a 100644 --- a/drivers/nvmem/imx-ocotp.c +++ b/drivers/nvmem/imx-ocotp.c @@ -199,7 +199,8 @@ static int imx_ocotp_write(void *context, unsigned int offset, void *val, strobe_prog = clk_rate / (1000000000 / 10000) + 2 * (DEF_RELAX + 1) - 1; strobe_read = clk_rate / (1000000000 / 40) + 2 * (DEF_RELAX + 1) - 1; - timing = strobe_prog & 0x00000FFF; + timing = readl(priv->base + IMX_OCOTP_ADDR_TIMING) & 0x0FC00000; + timing |= strobe_prog & 0x00000FFF; timing |= (relax << 12) & 0x0000F000; timing |= (strobe_read << 16) & 0x003F0000; -- 2.20.1