From: Alexander Dahl <ada@thorsis.com>
To: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>,
Ryan Wanner <ryan.wanner@microchip.com>,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH v2 15/16] nvmem: microchip-otpc: Enable necessary clocks
Date: Tue, 11 Feb 2025 07:53:03 +0100 [thread overview]
Message-ID: <20250211065304.5019-3-ada@thorsis.com> (raw)
In-Reply-To: <20250211065304.5019-1-ada@thorsis.com>
Without enabling the main rc clock, initializing the packet list leads
to a read timeout on the first packet, at least on sam9x60.
According to SAM9X60 datasheet (DS60001579G) section "23.4 Product
Dependencies" the clock must be enabled for reading and writing.
Tested on sam9x60-curiosity board.
Link: https://lore.kernel.org/linux-clk/ec34efc2-2051-4b8a-b5d8-6e2fd5e08c28@microchip.com/T/#u
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
Notes:
v2:
- Rewrite to enable _all_ clocks defined in dts
drivers/nvmem/microchip-otpc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/nvmem/microchip-otpc.c b/drivers/nvmem/microchip-otpc.c
index d39f2d57e5f5e..2c524c163b7e2 100644
--- a/drivers/nvmem/microchip-otpc.c
+++ b/drivers/nvmem/microchip-otpc.c
@@ -8,6 +8,7 @@
*/
#include <linux/bitfield.h>
+#include <linux/clk.h>
#include <linux/iopoll.h>
#include <linux/module.h>
#include <linux/nvmem-provider.h>
@@ -241,6 +242,7 @@ static struct nvmem_config mchp_nvmem_config = {
static int mchp_otpc_probe(struct platform_device *pdev)
{
struct nvmem_device *nvmem;
+ struct clk_bulk_data *clks;
struct mchp_otpc *otpc;
u32 size;
int ret;
@@ -253,6 +255,11 @@ static int mchp_otpc_probe(struct platform_device *pdev)
if (IS_ERR(otpc->base))
return PTR_ERR(otpc->base);
+ ret = devm_clk_bulk_get_all_enabled(&pdev->dev, &clks);
+ if (ret < 0)
+ return dev_err_probe(&pdev->dev, ret,
+ "Error getting clocks!\n");
+
otpc->dev = &pdev->dev;
ret = mchp_otpc_init_packets_list(otpc, &size);
if (ret)
--
2.39.5
next prev parent reply other threads:[~2025-02-11 6:53 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-10 16:44 [PATCH v2 00/16] Microchip OTPC driver on SAM9X60 exposing UIDxR as additional nvmem device Alexander Dahl
2025-02-10 16:44 ` [PATCH v2 01/16] dt-bindings: clock: at91: Split up per SoC partially Alexander Dahl
2025-02-10 17:05 ` Krzysztof Kozlowski
2025-02-11 7:16 ` Alexander Dahl
2025-02-11 7:47 ` Krzysztof Kozlowski
2025-02-17 9:11 ` Claudiu Beznea
2025-02-17 9:47 ` Alexander Dahl
2025-02-19 8:51 ` Claudiu Beznea
2025-02-19 9:08 ` Alexander Dahl
2025-02-10 16:44 ` [PATCH v2 02/16] ARM: dts: microchip: Use new PMC bindings Alexander Dahl
2025-02-10 16:44 ` [PATCH v2 03/16] clk: at91: " Alexander Dahl
2025-02-10 16:44 ` [PATCH v2 04/16] dt-bindings: clock: at91: Allow referencing main rc oscillator in DT Alexander Dahl
2025-02-10 17:07 ` Krzysztof Kozlowski
2025-02-11 7:26 ` Alexander Dahl
2025-02-11 8:01 ` Krzysztof Kozlowski
2025-02-10 16:44 ` [PATCH v2 05/16] clk: at91: Allow enabling main_rc_osc through DT Alexander Dahl
2025-02-10 16:44 ` [PATCH v2 06/16] clk: at91: Add peripheral id for OTPC Alexander Dahl
2025-02-10 16:44 ` [PATCH v2 07/16] dt-bindings: nvmem: microchip-otpc: Add compatible for SAM9X60 Alexander Dahl
2025-02-12 9:13 ` Krzysztof Kozlowski
2025-02-10 16:44 ` [PATCH v2 08/16] dt-bindings: nvmem: microchip-otpc: Add required clocks Alexander Dahl
2025-02-10 16:59 ` Krzysztof Kozlowski
2025-02-11 7:05 ` Alexander Dahl
2025-02-11 7:50 ` Krzysztof Kozlowski
2025-02-10 16:50 ` [PATCH v2 09/16] nvmem: microchip-otpc: Avoid reading a write-only register Alexander Dahl
2025-02-11 6:47 ` Greg Kroah-Hartman
2025-02-17 9:10 ` Claudiu Beznea
2025-02-11 6:52 ` [PATCH v2 10/16] nvmem: microchip-otpc: Fix swapped 'sleep' and 'timeout' parameters Alexander Dahl
2025-02-11 6:52 ` [PATCH v2 11/16] nvmem: microchip-otpc: Add SAM9X60 support Alexander Dahl
2025-02-11 6:52 ` [PATCH v2 12/16] ARM: dts: microchip: sama7g5: Add OTPC clocks Alexander Dahl
2025-02-17 9:10 ` [PATCH v2 10/16] nvmem: microchip-otpc: Fix swapped 'sleep' and 'timeout' parameters Claudiu Beznea
2025-02-11 6:53 ` [PATCH v2 13/16] ARM: dts: microchip: sam9x60: Add OTPC node Alexander Dahl
2025-02-11 6:53 ` [PATCH v2 14/16] ARM: dts: microchip: sam9x60_curiosity: Enable OTP Controller Alexander Dahl
2025-02-11 6:53 ` Alexander Dahl [this message]
2025-02-17 9:10 ` [PATCH v2 15/16] nvmem: microchip-otpc: Enable necessary clocks Claudiu Beznea
2025-02-11 6:53 ` [PATCH v2 16/16] nvmem: microchip-otpc: Expose UID registers as 2nd nvmem device Alexander Dahl
2025-02-17 9:10 ` [PATCH v2 13/16] ARM: dts: microchip: sam9x60: Add OTPC node Claudiu Beznea
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250211065304.5019-3-ada@thorsis.com \
--to=ada@thorsis.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=ryan.wanner@microchip.com \
--cc=srinivas.kandagatla@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).