From patchwork Thu Jul 30 09:03:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudiu Beznea X-Patchwork-Id: 11692547 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 698F013B1 for ; Thu, 30 Jul 2020 09:05:01 +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 425C52072A for ; Thu, 30 Jul 2020 09:05:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="i4oDvTQT"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="eg37ndfY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 425C52072A Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=microchip.com 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: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=8OyRxEhdB6Ow5MMxLGbJwzOa2mwNoOJSOb8oUVEdE2o=; b=i4oDvTQT1F3dy7AomYBU/L9gG4 wg5eHn/AnAXbKXHwD2sKwCpy/dWiO5s0RzEV+fZ1Y7Ly704DLS0bDjngZSEe000qHqvR1p/FWlAVH FpDF7gDEMNc1UGE8Cod7vXJBSYu0+brzrOjBdLAaz+liqXzbyxtefSgr+CHwHP7ywp/JAI0WEASvg P7e1xAGHNdl3RbvI8OVYZI6hmQcmqk1jB8wYiQ0hdu9opiXI7j32oOOEr44kDQmNUbCUJBGq8PSCU 3pr/IPL2wMfNZFNRBtccdQlsHIFPAKyIK3I/zMrpwpLPVwUnKyGdfmmlF9GAb378iJ+C/dWefILwV hHOwuPiA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k14TQ-0001Yz-Oe; Thu, 30 Jul 2020 09:03:36 +0000 Received: from esa6.microchip.iphmx.com ([216.71.154.253]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k14TN-0001Xv-Vu for linux-arm-kernel@lists.infradead.org; Thu, 30 Jul 2020 09:03:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1596099813; x=1627635813; h=from:to:cc:subject:date:message-id:mime-version; bh=wG0qc9Qe3PmllwLgrljUElhepPvWWpfYNaS3kbDUyic=; b=eg37ndfYVUsRcN/W6JmLY4gp9AmNINV9Y2Ar9hdq5mgoyrb1tHpqVw/A qtDrIwNab545liYOzi0Sp/+hwej6294BFDYA9A+i7nlqznWdhXdcurONu C5t1K+iHUPcTZ7KWSNVyr/Wn4NsAzV9vOQHAjayXz5DOIuNwgYvSfqzTf nZIJAyteX+il5QzCufbzFSe5DkzQM4DqWxTDDAlwLwJXftLCnYtC6s21O /rr1hWc1HSIIDHEyu9u419lIhFTjAzpP3kWM/hkv2y1nPZDdC+KP9H9EN FRtwCtPWC+VXNzc0uwlSoI0cUO4Mo0S1h6t28wf6W48eibePB1Yf8S+OJ w==; IronPort-SDR: /LnkmD0fcoQxRE5257n9DoPutsYPD8XlBWm6digJP66ACvdxM74XPMzlytKlYpjnMrRA93ypUC JXRwfIqabsQ7nb+HaVxXrEZ/+CM+xOvpE+063JYq9StAxiWt1/hRHNFIplY0trc1nqKpxEiXgx jlxMjL+PW+7HipneCPkmp5mBhtHtsDV1AvtHkxWSf76i1dQFUW0Utd30PCFJ85u3GJKv38hRvO FvVn9LJT9bVlLqHKeEAdHqUp14VcCWViGm4zWDhD4xgfaA/fW0NhTE3eQBs8XEaazqwhEXwt9X ixA= X-IronPort-AV: E=Sophos;i="5.75,413,1589266800"; d="scan'208";a="21081936" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa6.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 30 Jul 2020 02:03:30 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Thu, 30 Jul 2020 02:03:30 -0700 Received: from m18063-ThinkPad-T460p.microchip.com (10.10.115.15) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server id 15.1.1979.3 via Frontend Transport; Thu, 30 Jul 2020 02:03:27 -0700 From: Claudiu Beznea To: , , , , , , Subject: [PATCH] clk: at91: clk-main: update key before writing AT91_CKGR_MOR Date: Thu, 30 Jul 2020 12:03:23 +0300 Message-ID: <1596099803-1393-1-git-send-email-claudiu.beznea@microchip.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200730_050334_910792_D3B657BF X-CRM114-Status: GOOD ( 11.59 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [216.71.154.253 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [216.71.154.253 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -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 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: Claudiu Beznea , linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org SAMA5D2 datasheet specifies on chapter 33.22.8 (PMC Clock Generator Main Oscillator Register) that writing any value other than 0x37 on KEY field aborts the write operation. Use the key when selecting main clock parent. Fixes: 27cb1c2083373 ("clk: at91: rework main clk implementation") Signed-off-by: Claudiu Beznea Reviewed-by: Alexandre Belloni --- drivers/clk/at91/clk-main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/clk/at91/clk-main.c b/drivers/clk/at91/clk-main.c index 5c83e899084f..cfae2f59df66 100644 --- a/drivers/clk/at91/clk-main.c +++ b/drivers/clk/at91/clk-main.c @@ -437,12 +437,17 @@ static int clk_sam9x5_main_set_parent(struct clk_hw *hw, u8 index) return -EINVAL; regmap_read(regmap, AT91_CKGR_MOR, &tmp); - tmp &= ~MOR_KEY_MASK; if (index && !(tmp & AT91_PMC_MOSCSEL)) - regmap_write(regmap, AT91_CKGR_MOR, tmp | AT91_PMC_MOSCSEL); + tmp = AT91_PMC_MOSCSEL; else if (!index && (tmp & AT91_PMC_MOSCSEL)) - regmap_write(regmap, AT91_CKGR_MOR, tmp & ~AT91_PMC_MOSCSEL); + tmp = 0; + else + return 0; + + regmap_update_bits(regmap, AT91_CKGR_MOR, + AT91_PMC_MOSCSEL | MOR_KEY_MASK, + tmp | AT91_PMC_KEY); while (!clk_sam9x5_main_ready(regmap)) cpu_relax();