From patchwork Tue Aug 25 06:59:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudiu Beznea X-Patchwork-Id: 11735033 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 7D594722 for ; Tue, 25 Aug 2020 06:59:42 +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 5436020782 for ; Tue, 25 Aug 2020 06:59:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Ibh6QYw8"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="wJAPbYY8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5436020782 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: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=ZZ8YETu6ZYFKMYaqtMQGsULTHmT02CYyOrpLPYoZlT0=; b=Ibh6QYw89ug/ilqS0rsqV6Ajy QyNyNrH+XZbZBJJqoUCmOOleqkYiCBhNMr49nMaci3x1CVI7PGTqkq9In9xmKmMzWtJZ0I2zx3ucH 7tvem1PSj2UCRic0h/80Ke7t65xb6pEhNuyCr8dBsffW0TPbASXWo4rnPXzS7TvRsVRzHPkj4CQBo U05eWL+g4rgyRKfmqYvYgrVfQQgyIEXVzIVrQ11hR/g+l8Mu+8wZg9LKKMCWEMcXK3EpN7ontHpLJ 67iO3POVqmvD22Agf+4woGoKPUN3LfiizW+xvSkQb4DkrP294PSqupUQ4Z95g68jx+Gu2+3maDZfx fIb+n/6cw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kASva-00089v-Fo; Tue, 25 Aug 2020 06:59:30 +0000 Received: from esa4.microchip.iphmx.com ([68.232.154.123]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kASvV-00088Q-I0 for linux-arm-kernel@lists.infradead.org; Tue, 25 Aug 2020 06:59:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1598338765; x=1629874765; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=YLBI2VSPJLXETAxNgEX17p7s44o5bRsrSACE1OZwLZI=; b=wJAPbYY8iHeJlZa3qBdEzg/WbzdlgNokfckf87EfSExYyJL526BGekQk bFUeR+TgGfDBUmwMerB61YXQgMkHI1i3w7PX/GwR/OwrOodl/m4zT1Vto HE+6lovOZP/b2E6kZVoBe1cjkyocLoT3FqOVD9wsN0mVTS8rfcTxupKP8 G1C2Bm+46g2N/UJuk91BZtYmBxJZL8iZz4H0/J7Ug1VooMQGJcJhGIOVM q06pLbjd944I+5iQeKFAR4savLAKawVEpL1IOxruLiTwxPz6PPo9yb7Jr Tg8X+/hRhxzQoXdSxV6D+EAafQllDi28fysCfksm8nF/4ON0h+52czOc8 Q==; IronPort-SDR: sm2A0RzpQIxvooQwr2CT1B5KUIYFkmxp2PHcr0kQ0fRbm573/k/k9MhfpzAiibjqlKUNm6QbtA M6jMOsRm3qpcd+K4XT+w9WttPOW4BBXjVN19w1j9rI9VJJiTFB6jmYWZ1Jn/hnkOSg67PrOvia ry+esOR9m7A5IXU/KqaF3vzH/luqOOhcQI8nJJ9NxyMTHmGnPZ7jQ71mPw+rseQOPT2j5gkmu9 tP9KDsfVVbTnshPuTZjpVY8vvWz1fs4AWIx7oUVMp9GZa0g2hjZMo+m/tFIOIvcsTDc0fJMPJh p4s= X-IronPort-AV: E=Sophos;i="5.76,351,1592895600"; d="scan'208";a="84625126" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa4.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 24 Aug 2020 23:59:22 -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; Mon, 24 Aug 2020 23:59:21 -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; Mon, 24 Aug 2020 23:59:19 -0700 From: Claudiu Beznea To: , , , , Subject: [PATCH v2 2/3] clk: at91: clk-main: update key before writing AT91_CKGR_MOR Date: Tue, 25 Aug 2020 09:59:10 +0300 Message-ID: <1598338751-20607-3-git-send-email-claudiu.beznea@microchip.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1598338751-20607-1-git-send-email-claudiu.beznea@microchip.com> References: <1598338751-20607-1-git-send-email-claudiu.beznea@microchip.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200825_025925_774990_F7EC8FC8 X-CRM114-Status: GOOD ( 11.96 ) 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 [68.232.154.123 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [68.232.154.123 listed in wl.mailspike.net] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 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.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: linux-kernel@vger.kernel.org, Claudiu Beznea , linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, bbrezillon@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();