From patchwork Mon Jul 26 03:51:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 12398403 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=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, 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 6D30AC4338F for ; Mon, 26 Jul 2021 03:54:19 +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 35EEF60C41 for ; Mon, 26 Jul 2021 03:54:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 35EEF60C41 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sholland.org 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=R3cJ2N2EJgPyw0MD3jX94A9z1+Mh8HEj7QHAMDD+0mQ=; b=w/tx/cDbD1pd+8 m5wX9cOI4eDOT+9oKujKMxP5v4BT1N7PcGxP7mdI79BbERkYZa0/ANLvTUsHP70FKJkRx4dg5Sgt7 5oA/noVIGLw1SdTKoxRLv1OkgnJe6gKzRaz4eDY3atmhE7ja4wt5Ip0PyONOebXAU6Rq20k5ikZDS 3is+HGH/EVq06woyRdA9zoi0hUYFcdAYP/lHJgh10c75zzJPqaRPcNxuPtacrdESDQsJt5qFwEyka W6hqV1zQApHf/0r9qPLCwgBJSM3exOZYkn5lEY0+s+lkMKBEdwgwRzdUOxE9VIB5Y+v3anEhqJgNI mzscWq1VXUjT6kVSkfiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7rex-009USq-4m; Mon, 26 Jul 2021 03:52:07 +0000 Received: from new2-smtp.messagingengine.com ([66.111.4.224]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7rei-009UQD-Sx for linux-arm-kernel@lists.infradead.org; Mon, 26 Jul 2021 03:51:55 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id B6720580457; Sun, 25 Jul 2021 23:51:46 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Sun, 25 Jul 2021 23:51:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; s=fm3; bh=H3jwiRFGXqJPvuv7Y4q/rPalVp 61u1Fw/7F6aOr79LI=; b=DEnQEUhxbmdScDeubloC1ND86h8tYv8bVxrPn1LwGc 9ZQxGFMjHYpjLl8dO31XXc6CzHhsAqYXz4gJcuC+67Q+7n0qXurdxsvl1O57/7Dn hNXNrLkjW3YUPrgnqnDzWVt2GIchjvIUSKpIIvHCUyJjtJ3yMUx5cSsEngjDO6pw xG0D3hxOkuJHqqzPUvfl+vCr2PfZMB108kbZbScILPv3LBb6nZk9RHk3lbbIfTSB 6P/Urs9UztRG7UWbDtY3fhdMOJpGCVzMFFgYH3GH0zBm5yZIh/QaRzDB6uuYkOAI 7QF5Q62Qijsp25LPD6j4awKBNTHJVBsiKHcHRRf0u7DA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=H3jwiRFGXqJPvuv7Y 4q/rPalVp61u1Fw/7F6aOr79LI=; b=jAiPfcuGN3j+8SGBwkGLvBedOFfeEpr3Y 2HvcuQkNm7rrwj8T+yBEb3SL5Mvez1y++G/grk+yCaqIagvoO7xZlZKtFQ3kAzIr KK//onyqKn4k4/iVVLtqpTDJ7pfWgSZBT2ie32E86aCv2WfzzU8loOcoKFkdYiWP 5do7oqIPZ8EKpfjOKB9T6Pp8H+IL+UYxTQlzyy9XQbjuczBNkkQWSkDPXqloCOAI zM2KAu++JL5rHn5RUsVILlLkO0Ak8nlKxM5wajuBXlZMPJrloA6qXoYVY7f+RbSM Y5bPQFR1BrcwG2m8nqLVUr5sn7Vfrr1a7EEMcYo9ZWZ0gj6KUnjKg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrgeeggdejvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgggfestdekredtredttdenucfhrhhomhepufgrmhhuvghlucfj ohhllhgrnhguuceoshgrmhhuvghlsehshhholhhlrghnugdrohhrgheqnecuggftrfgrth htvghrnhepieetkefhheduudfgledtudefjeejfeegveehkeeufffhhfejkeehiefftdev tdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsh grmhhuvghlsehshhholhhlrghnugdrohhrgh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 25 Jul 2021 23:51:43 -0400 (EDT) From: Samuel Holland To: Wim Van Sebroeck , Guenter Roeck , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, Samuel Holland Subject: [PATCH 1/3] dt-bindings: watchdog: sunxi: Add compatible for R329 Date: Sun, 25 Jul 2021 22:51:41 -0500 Message-Id: <20210726035143.53132-1-samuel@sholland.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210725_205153_060590_28625365 X-CRM114-Status: GOOD ( 11.96 ) 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 On existing SoCs, the watchdog has a single clock input: HOSC (OSC24M) divided by 750. However, starting with R329, LOSC (OSC32k) is added as an alternative clock source, with a bit to switch between them. Since 24 MHz / 750 == 32 kHz, not 32.768 kHz, the hardware adjusts the cycle counts to keep the timeouts independent of the clock source. This keeps the programming interface backward-compatible. R329 also adds two new registers, to allow software to immediately drive the SoC reset signal. Signed-off-by: Samuel Holland --- .../watchdog/allwinner,sun4i-a10-wdt.yaml | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml b/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml index 9aa3c313c49f..853ceb1b7c0f 100644 --- a/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml @@ -24,6 +24,7 @@ properties: - allwinner,sun50i-a100-wdt - allwinner,sun50i-h6-wdt - allwinner,sun50i-h616-wdt + - allwinner,sun50i-r329-wdt - const: allwinner,sun6i-a31-wdt - items: - const: allwinner,suniv-f1c100s-wdt @@ -33,7 +34,16 @@ properties: maxItems: 1 clocks: - maxItems: 1 + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + maxItems: 2 + items: + enum: + - hosc + - losc interrupts: maxItems: 1 @@ -44,6 +54,24 @@ required: - clocks - interrupts +if: + properties: + compatible: + contains: + enum: + - allwinner,sun50i-r329-wdt + +then: + properties: + clocks: + minItems: 2 + + clock-names: + minItems: 2 + + required: + - clock-names + unevaluatedProperties: false examples: From patchwork Mon Jul 26 03:51:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 12398405 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=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, 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 9DA05C4338F for ; Mon, 26 Jul 2021 03:54:21 +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 656CE60C41 for ; Mon, 26 Jul 2021 03:54:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 656CE60C41 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sholland.org 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:References:In-Reply-To: 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: List-Owner; bh=x7rkNJiEnWmKmgFUUOQVDbJaXTnHwGqXedf7cn5tOCY=; b=rJ7+aO1rr0HZ11 pkMUp+aJqjkXT+D8Nj0UlFFPXmfFRoT5LBPrBiLyeAplISBxt6cyoWR2QEulu0vHylFpAEYOUCfu/ n5fM4mBHlLhgTG4lyOLqJVwKqD1VvPB8I9r4Rwl8OATzo2TMzdt8T6LLaKbefJkUx6+rKdIgOV9Yp iHORrLAO58MnRRTOLBmuSF1kIc7Kwt8i1DWA1uQghlJxZNblV1rSOodIG0FjKPAuwsuwBAcYpS+uW RWOyZzLkJzKDbbhGOSaw/n6eTo1rWiow6GEcS53nLxk+tVm5sLAdJn2stmchOjY/X+IaQOJW0DUQE pmFx1ndIg5OhTO7V66nw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7rf7-009UTx-N3; Mon, 26 Jul 2021 03:52:17 +0000 Received: from new2-smtp.messagingengine.com ([66.111.4.224]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7rei-009UQH-UW for linux-arm-kernel@lists.infradead.org; Mon, 26 Jul 2021 03:51:55 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id 662D9580459; Sun, 25 Jul 2021 23:51:47 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Sun, 25 Jul 2021 23:51:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=dL2RNdEFfB0CS xPuX7MdY2R8OOMX4hoFvSZkqBvBGH0=; b=oOtd0tfigbM00v0lFNv9Ni04KgC5H qMpvXFCm9AWFOWVv+WJUxZ8JVa7JBi5dRdPlH4OAsXPgOWP/uayt4v13h+XwPRSE oQG8q6rvZSXP4R8Oi4w6N7mwGJ2U144Be3UIubs6xQc9lsANgflOMQd1xfkNbLXi VFM/9itGDD9MoHnWUUafI4Tg5uNZ0RcM2DIskAkWkXGILHoiLw5oo5FKh2j+Fz46 9H4jBmQLn5bQIxaDLPOo5WogMSvZsznMN3uUzCZbEfRpBNJVbp2c5vq55N/QozH7 ctNwseBzR6kHtZQBB731IqTKZX20CNyAAokXxua5OJIYVz6/XQVBYXtkg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=dL2RNdEFfB0CSxPuX7MdY2R8OOMX4hoFvSZkqBvBGH0=; b=TSobTx6f IsRz3GnbZjS7lnSso4qnZpwq6ceixRzioqO8D8C4mrVVK5QdM7jjSDZw4yt3didM f7c8GKCsiV6noT7GeyOhzY+SsIDaPEEIgQevvA7Xi4wjvRNlVDkC5I7+kkRtXhad 4LrXB0LVaYs7r3dswRepeY16avIrZ9fVlly06OLaCRVifk+RZLE//nwPlQGT+gXQ Pa/cOZBeNwF9V8Wb/qkNWVvof3jeIS6EeiDvjsf3E0YvK0FHihZ3Vse5irfdRdcT kz5d7nAn9MUJ+pdN6lraB41+d/8/rKJDbpD9epF9SLKt9eyChcxJVdikAfGdHDk4 OBJJwEvbres9eA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrgeeggdejvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgrmhhuvghl ucfjohhllhgrnhguuceoshgrmhhuvghlsehshhholhhlrghnugdrohhrgheqnecuggftrf grthhtvghrnhepudfhjeefvdfhgfefheetgffhieeigfefhefgvddvveefgeejheejvdfg jeehueeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epshgrmhhuvghlsehshhholhhlrghnugdrohhrgh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 25 Jul 2021 23:51:46 -0400 (EDT) From: Samuel Holland To: Wim Van Sebroeck , Guenter Roeck , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, Samuel Holland Subject: [PATCH 2/3] dt-bindings: watchdog: sunxi: Add compatible for D1 Date: Sun, 25 Jul 2021 22:51:42 -0500 Message-Id: <20210726035143.53132-2-samuel@sholland.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210726035143.53132-1-samuel@sholland.org> References: <20210726035143.53132-1-samuel@sholland.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210725_205153_120727_51735402 X-CRM114-Status: GOOD ( 10.73 ) 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 D1 keeps the same register layout and clock sources as the R329, but it adds a key field which must be set to update the watchdog's "CFG" and "MODE" registers. Therefore it is not backward-compatible. Signed-off-by: Samuel Holland Reviewed-by: Rob Herring --- .../devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml b/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml index 853ceb1b7c0f..756e6ab99860 100644 --- a/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml @@ -29,6 +29,7 @@ properties: - items: - const: allwinner,suniv-f1c100s-wdt - const: allwinner,sun4i-a10-wdt + - const: allwinner,sun20i-d1-wdt reg: maxItems: 1 @@ -59,6 +60,7 @@ if: compatible: contains: enum: + - allwinner,sun20i-d1-wdt - allwinner,sun50i-r329-wdt then: From patchwork Mon Jul 26 03:51:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 12398407 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=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable 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 A6168C4320A for ; Mon, 26 Jul 2021 03:54:21 +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 7045660E0C for ; Mon, 26 Jul 2021 03:54:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 7045660E0C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sholland.org 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:References:In-Reply-To: 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: List-Owner; bh=yRZxHECbWmk+iXPkfZCWq1dUyJFYcdwEeNtXVfyO0Uw=; b=EFXUANrscE12dr 1wJeErSknV5ZYKv+pQrOZa8/vN5u0CUd1thSnulbAyQRLLUeqkZOm13XRS55fl0x9WDB3hyuZ+IFG hqfgym96KdaPcb8LMKd1tbMBVy/djs7e7ejAT+DHB4Mu4LOqsNP2a+Tms8ASk5U7GrgHZ069xy7QZ 7bxBPa5JUk9ebrxwH85WlygtP3pOGUfqTDG37vM9GQ8IIn79eoyMIxLumvrBCN+cz5f2vC1cS9WVU O75iGlAlGnC0a7yveKFA3bgBQaSBr0f3bOB71r99uNciGMo3dTvE5A1EseWeO6i+4sqyyRtgxqQx7 Uc8hEwM7w+y0UvwG0YBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7rem-009URu-Hi; Mon, 26 Jul 2021 03:51:56 +0000 Received: from new2-smtp.messagingengine.com ([66.111.4.224]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7rei-009UQJ-Lj for linux-arm-kernel@lists.infradead.org; Mon, 26 Jul 2021 03:51:54 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id 096CE58045A; Sun, 25 Jul 2021 23:51:48 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Sun, 25 Jul 2021 23:51:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=k3FFcPhqCAND3 XKLb3s8dDhV8GC8RamGsODpXFVE8Dw=; b=pTX19j08oUdGotxPXYgxd6Cs+HKU8 QZYwEWdvHt8umRXgHCc+6sptWlNbjwsSMSN1qhnsFCumHFt6HYPptJOAtoL4dm85 TPqb5X0tH1Kca4Gb542/caL79Q8AJ1xkQSe6SghSCQOyE5t1QhaWiO0Ay9ZMxonp BIi/Cx1gdfCPBQs21VBA9NCYNgpjt/5m1aSpF4E0dTgfX9M/+hI5CC9Zp92Ugncx 9407m74pCd1Wiu+WoXm1wkCcRbxiiMbyRJKicAXwenff/N/JTQAwKCE3KB+PxUwE jTvH8OMGn0lylqEDYJFOmSxneBD3/XONXeKkYZo5/RqkE5ToYT6JfltjA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=k3FFcPhqCAND3XKLb3s8dDhV8GC8RamGsODpXFVE8Dw=; b=GPFr+3QV lSoyrNsxZx4LUJaVv3rW76DWfSJZ4NB/JdQgaQAHIJUXnEiKIR9nlD8aBlQfZYSH 3eKNCeCOycsxHISOyd4WdjLwOOCiR6FOejfdgxlXtcOUMW93G1K+KN5PHM2JlFJJ iHDSyNsy+T/XXePGO54B01f2zVzGC0P2iLWOVqhCcNIqX8cczfgVUOAdh3PdEtwA zzzFCvYYoBNPq63Sq9AC6X9pPQp+nXJnXQN6xNdDl6OuLJqeQy0bZF6gqXkHuy/v AJIRQBokF4S4WrUfHGnWtamuhHZ0++oq6ja/JrSJbeid9Av7PK4GFdT99ffnxfNo QfTi8ddunBQnug== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrgeeggdejvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgrmhhuvghl ucfjohhllhgrnhguuceoshgrmhhuvghlsehshhholhhlrghnugdrohhrgheqnecuggftrf grthhtvghrnhepudfhjeefvdfhgfefheetgffhieeigfefhefgvddvveefgeejheejvdfg jeehueeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epshgrmhhuvghlsehshhholhhlrghnugdrohhrgh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 25 Jul 2021 23:51:47 -0400 (EDT) From: Samuel Holland To: Wim Van Sebroeck , Guenter Roeck , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, Samuel Holland Subject: [PATCH 3/3] watchdog: sunxi_wdt: Add support for D1 Date: Sun, 25 Jul 2021 22:51:43 -0500 Message-Id: <20210726035143.53132-3-samuel@sholland.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210726035143.53132-1-samuel@sholland.org> References: <20210726035143.53132-1-samuel@sholland.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210725_205152_926979_71C430B3 X-CRM114-Status: GOOD ( 14.69 ) 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 D1 adds a key field to the "CFG" and "MODE" registers, that must be set to change the other bits. Add logic to set the key when updating those registers. Signed-off-by: Samuel Holland Reviewed-by: Guenter Roeck --- drivers/watchdog/sunxi_wdt.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c index b50757882a98..6cf82922d3fb 100644 --- a/drivers/watchdog/sunxi_wdt.c +++ b/drivers/watchdog/sunxi_wdt.c @@ -48,6 +48,7 @@ struct sunxi_wdt_reg { u8 wdt_timeout_shift; u8 wdt_reset_mask; u8 wdt_reset_val; + u32 wdt_key_val; }; struct sunxi_wdt_dev { @@ -91,12 +92,14 @@ static int sunxi_wdt_restart(struct watchdog_device *wdt_dev, val = readl(wdt_base + regs->wdt_cfg); val &= ~(regs->wdt_reset_mask); val |= regs->wdt_reset_val; + val |= regs->wdt_key_val; writel(val, wdt_base + regs->wdt_cfg); /* Set lowest timeout and enable watchdog */ val = readl(wdt_base + regs->wdt_mode); val &= ~(WDT_TIMEOUT_MASK << regs->wdt_timeout_shift); val |= WDT_MODE_EN; + val |= regs->wdt_key_val; writel(val, wdt_base + regs->wdt_mode); /* @@ -109,6 +112,7 @@ static int sunxi_wdt_restart(struct watchdog_device *wdt_dev, mdelay(5); val = readl(wdt_base + regs->wdt_mode); val |= WDT_MODE_EN; + val |= regs->wdt_key_val; writel(val, wdt_base + regs->wdt_mode); } return 0; @@ -141,6 +145,7 @@ static int sunxi_wdt_set_timeout(struct watchdog_device *wdt_dev, reg = readl(wdt_base + regs->wdt_mode); reg &= ~(WDT_TIMEOUT_MASK << regs->wdt_timeout_shift); reg |= wdt_timeout_map[timeout] << regs->wdt_timeout_shift; + reg |= regs->wdt_key_val; writel(reg, wdt_base + regs->wdt_mode); sunxi_wdt_ping(wdt_dev); @@ -154,7 +159,7 @@ static int sunxi_wdt_stop(struct watchdog_device *wdt_dev) void __iomem *wdt_base = sunxi_wdt->wdt_base; const struct sunxi_wdt_reg *regs = sunxi_wdt->wdt_regs; - writel(0, wdt_base + regs->wdt_mode); + writel(regs->wdt_key_val, wdt_base + regs->wdt_mode); return 0; } @@ -176,11 +181,13 @@ static int sunxi_wdt_start(struct watchdog_device *wdt_dev) reg = readl(wdt_base + regs->wdt_cfg); reg &= ~(regs->wdt_reset_mask); reg |= regs->wdt_reset_val; + reg |= regs->wdt_key_val; writel(reg, wdt_base + regs->wdt_cfg); /* Enable watchdog */ reg = readl(wdt_base + regs->wdt_mode); reg |= WDT_MODE_EN; + reg |= regs->wdt_key_val; writel(reg, wdt_base + regs->wdt_mode); return 0; @@ -220,9 +227,20 @@ static const struct sunxi_wdt_reg sun6i_wdt_reg = { .wdt_reset_val = 0x01, }; +static const struct sunxi_wdt_reg sun20i_wdt_reg = { + .wdt_ctrl = 0x10, + .wdt_cfg = 0x14, + .wdt_mode = 0x18, + .wdt_timeout_shift = 4, + .wdt_reset_mask = 0x03, + .wdt_reset_val = 0x01, + .wdt_key_val = 0x16aa0000, +}; + static const struct of_device_id sunxi_wdt_dt_ids[] = { { .compatible = "allwinner,sun4i-a10-wdt", .data = &sun4i_wdt_reg }, { .compatible = "allwinner,sun6i-a31-wdt", .data = &sun6i_wdt_reg }, + { .compatible = "allwinner,sun20i-d1-wdt", .data = &sun20i_wdt_reg }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, sunxi_wdt_dt_ids);