From patchwork Mon Apr 7 16:51:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041323 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CFA420FA9D; Mon, 7 Apr 2025 16:52:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044740; cv=none; b=B2ncfL21V5gEP0BsJ7C01Gq816zqqVR8cqxYP7cf+xuOZV8pWrGelT90yHlEuOyNe6vv8HdFkMznvn+IghrxXhy44vIrxrFglRDTeTUFnQIxC51aI1OJ5Z70x53svltrXkJtg7XWoKdlC9/hYz2LSQ+wzcqGzkO5Xl1RWWRuysM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044740; c=relaxed/simple; bh=y1ssDW805hD1ymCg9MqTgsf7SgsYfu2J/040iWIq5X4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C8yVW9yoqnPCN15vvqnMJ9vc72c6tcaz7bp5VuaM/nMzeJSBADft10ruNCUgswBoc6KgW2p794vmPFQRNRAP3BQVJQvUH77t9DTTnXmwwsfkDXc7e2GvXc/XvSqbdnj5+LJFneEaK4nnkigXfCx+toHxO6+CitS73Hx9/Q9AR5c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HOhWP7ER; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HOhWP7ER" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-3913b539aabso2694213f8f.2; Mon, 07 Apr 2025 09:52:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044737; x=1744649537; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4RGDTaHfqw+GeGX9NhwRoLTw/SVHtjJ8B6EHuQFvtzc=; b=HOhWP7EROzSDM5sOvnrSJuksd4nvu1+R30dk/67p0IwPU07WZLoHHgc2a9RuiMZ46R 32QbXq1nFOaz9C6qUndNQPzlzd2a2dP9xgncA09J2hsyy7VdKyczMnfEQxd+F/LA0hgG YftwU9i0UMGg8RL237/6M0Q5t1QOVWxYhmhRE7Wgkfjq3bNjJN0Z/ef9cXJp50SaaxoI WXuW/l5ziBUYCJvrq1P3YEqDVrxBNygYO6Vlo8WlcVaiijGZffrKv3q6rX9HSzh7TST0 13xrpCejbOgbHyQcUHyUpAi3hhltjzc3wxJxOK5WwVJQWP7M9L4bAepGW5KFzSeMhda9 vJEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044737; x=1744649537; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4RGDTaHfqw+GeGX9NhwRoLTw/SVHtjJ8B6EHuQFvtzc=; b=daEoaTNLDwKWzpNFq75YIO3IZRn6X53o7f/YZyM0+yhB0EQlec/ivZgef1iB9egvzM b93nGSVyMVUEYqgjhm6ccDVEKO7eg9U3KhTwJbzEXL4oQWzzy9Ph79qFMIbOR6G6WZS7 ZBlMikYDq/0ISU5TYqum2DirDIHVp2NzTBn1hm3vysPcPmkRODeWfUDfsAkqMr1H3dSv duS8xCpfGnEUNSVfhaf6ZqTymSOQSpa4sh/icYhwDaHOOZv0huoHpyvdhpQfwYGRXArq d4bLd8/bnMAgkG/6o4MXMCnHsSS/p7yecQ96/Yjav+YXEecbjRxCAJBhqPumTkPPdP+h xMPQ== X-Forwarded-Encrypted: i=1; AJvYcCU/Kkr018FCz7SYe5AH6usjEczj6QRNPl9jpp0bdJVmPqD6lrR4yj7iNPhCpaBKZlTjrjMjgak1X0ZQ@vger.kernel.org, AJvYcCWAdQZop/kcgpkr5hdizFOGEvwxLGPUHTVWJOZ3NT3kyRzbDdX5yR9xp29QSFlV0ZEG+jjZANWwfJ9V@vger.kernel.org, AJvYcCXbj3y3u3CmGANNWF7RXf+/cCHtmqHmsabqVJ5QMvblMl49YAhhCStOg38tPOwfD8/RBegnOx7zlgvfBXQu@vger.kernel.org X-Gm-Message-State: AOJu0YyQ/ANlPO4/65x+ej99BrO4jmSawRo1406pp6gafBOCyCESGwFU UIDa3VjUjwMI/t1/k/UjeJps2qECw54alvqVdmsqisRjkz5bJi7f X-Gm-Gg: ASbGnctKLLYsqWPMATJG34byWH9Sb6l8ObIfK1dD6mdTT5nNfHf6jsiYKcgwM4Ex4GC TbJS1TyMnLbw2zxX7JrbYdH5xRCbtzA5CMSmxK8/g73ucJ4PIfO/1h0yKlKAPITnNH+xF6UJtpb OG0HMBqdKtb/iMeA1VM8xnbkMcl5O0SM9/HZTryEQzYvxNQcun6WvbJFcHit34erh2irpjj9L/I DmIh80wDmOEHQp2mrkJBm3+SoXqwOpRBSKBTzKTZPwp8eSVWL6qkgwluXA5FkyaS6FoWB2nYyGq YSMdQ5ceTw8bgLnBAtDxmm8T2zcXx9FzOzaWmiPtdlsSpxo/Sv95Nc3DncjeF77fuuTleA== X-Google-Smtp-Source: AGHT+IHQBeA9vj0XPx0p+LWVx4eXKcWEDzInfGlXpAIIkouzU/1Xq17FJcdB26PWP3zxtBmj2dXalw== X-Received: by 2002:a5d:64e9:0:b0:39c:1257:c7a3 with SMTP id ffacd0b85a97d-39cba93d9eamr12100936f8f.59.1744044737253; Mon, 07 Apr 2025 09:52:17 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:16 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 1/9] clk: renesas: rzv2h-cpg: Add support for static mux clocks Date: Mon, 7 Apr 2025 17:51:54 +0100 Message-ID: <20250407165202.197570-2-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Add support for `CLK_TYPE_SMUX` to register static muxed clocks on the Renesas RZ/V2H(P) SoC. Extend `cpg_core_clk` to include parent names, mux flags, and a new `smuxed` struct. Update clock registration to handle static mux clocks. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- drivers/clk/renesas/rzv2h-cpg.c | 21 +++++++++++++++++++++ drivers/clk/renesas/rzv2h-cpg.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c index b8bed0c1d918..4cda36d7f0a7 100644 --- a/drivers/clk/renesas/rzv2h-cpg.c +++ b/drivers/clk/renesas/rzv2h-cpg.c @@ -399,6 +399,24 @@ rzv2h_cpg_ddiv_clk_register(const struct cpg_core_clk *core, return div->hw.clk; } +static struct clk * __init +rzv2h_cpg_mux_clk_register(const struct cpg_core_clk *core, + struct rzv2h_cpg_priv *priv) +{ + struct smuxed mux = core->cfg.smux; + const struct clk_hw *clk_hw; + + clk_hw = devm_clk_hw_register_mux(priv->dev, core->name, + core->parent_names, core->num_parents, + core->flag, priv->base + mux.offset, + mux.shift, mux.width, + core->mux_flags, &priv->rmw_lock); + if (IS_ERR(clk_hw)) + return ERR_CAST(clk_hw); + + return clk_hw->clk; +} + static struct clk *rzv2h_cpg_clk_src_twocell_get(struct of_phandle_args *clkspec, void *data) @@ -483,6 +501,9 @@ rzv2h_cpg_register_core_clk(const struct cpg_core_clk *core, case CLK_TYPE_DDIV: clk = rzv2h_cpg_ddiv_clk_register(core, priv); break; + case CLK_TYPE_SMUX: + clk = rzv2h_cpg_mux_clk_register(core, priv); + break; default: goto fail; } diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h index 59f72fbed133..03e602d70f69 100644 --- a/drivers/clk/renesas/rzv2h-cpg.h +++ b/drivers/clk/renesas/rzv2h-cpg.h @@ -53,6 +53,26 @@ struct ddiv { .monbit = _monbit \ }) +/** + * struct smuxed - Structure for static muxed clocks + * + * @offset: register offset + * @shift: position of the divider field + * @width: width of the divider field + */ +struct smuxed { + unsigned int offset:11; + unsigned int shift:4; + unsigned int width:4; +}; + +#define SMUX_PACK(_offset, _shift, _width) \ + ((struct smuxed){ \ + .offset = (_offset), \ + .shift = (_shift), \ + .width = (_width), \ + }) + #define CPG_CDDIV0 (0x400) #define CPG_CDDIV1 (0x404) #define CPG_CDDIV3 (0x40C) @@ -96,8 +116,12 @@ struct cpg_core_clk { unsigned int conf; struct ddiv ddiv; struct pll pll; + struct smuxed smux; } cfg; const struct clk_div_table *dtable; + const char * const *parent_names; + unsigned int num_parents; + u8 mux_flags; u32 flag; }; @@ -107,6 +131,7 @@ enum clk_types { CLK_TYPE_FF, /* Fixed Factor Clock */ CLK_TYPE_PLL, CLK_TYPE_DDIV, /* Dynamic Switching Divider */ + CLK_TYPE_SMUX, /* Static Mux */ }; #define DEF_TYPE(_name, _id, _type...) \ @@ -125,6 +150,13 @@ enum clk_types { .parent = _parent, \ .dtable = _dtable, \ .flag = CLK_DIVIDER_HIWORD_MASK) +#define DEF_SMUX(_name, _id, _smux_packed, _parent_names) \ + DEF_TYPE(_name, _id, CLK_TYPE_SMUX, \ + .cfg.smux = _smux_packed, \ + .parent_names = _parent_names, \ + .num_parents = ARRAY_SIZE(_parent_names), \ + .flag = CLK_SET_RATE_PARENT, \ + .mux_flags = CLK_MUX_HIWORD_MASK) /** * struct rzv2h_mod_clk - Module Clocks definitions From patchwork Mon Apr 7 16:51:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041324 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4161919C56C; Mon, 7 Apr 2025 16:52:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044742; cv=none; b=koTiF/7L+7aaAFemQK23MO7msNBXsgVcnkGOwPVt36YrU2iSJ3IC9P4Ve6BmZaap31wtq4NZH1YqHPcbv+1jps5kH99rYSXp9YR4jFpR68S9aRpQ0gdZAqf+qImcaIWQcT2uG2J2v6YlySlVDLb+JvbrTkiDOMPIKG0ouisRHFw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044742; c=relaxed/simple; bh=zbgJ6mg3C+/MKnz8M4eNny/MvicKYv6+ykizFwE9XRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mMqI55P/CsAYnmNFw7J1ocA9+GM71v6kwAN/FiFFHsGKcgsUe0m4GVHFU4mg0tL90zPo3rh/MOXoAs8BNXFvr3NMUZeV4cLDkGOxYi6EEjYWRz/UYY4/GDgVujfNwtIeQXWo3nLatN9ZmixtQ/QRRFQqnKNWE+i1gMbrs25tN5w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=H2kNzDb5; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="H2kNzDb5" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-3913b539aabso2694227f8f.2; Mon, 07 Apr 2025 09:52:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044738; x=1744649538; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xktnEXXKtQ396AGgEmOxLxFn+tjVbH2T7f18cyqhW5c=; b=H2kNzDb5G9Mt73PyweIcDq0AyRc8ylIJSt+u9WTh832rnF7qlBErZimG81FOop0bDm tWe1RzcWODXex9iWXmH4XMbBUv+/p5tO9ftK7hIAuZt706Rg2TEnlpxSID5sI/PR0Y8Z 4cGL+mYW0/i4i1DWYAp5QuLwh9IKKXh0+uG8km0kUB4D5fFKnwrkpU1TXg5796mn+M9J E2ub8vsCNahEJck3HpkakYrmSkvTurLnNbapT8ar9LHklAHXJxVpdg6pnoBbQISEzQVz 02DJjJPEY1mXlE7QP38gwCLZm8vgNUsR/Q43DoYmx/b7CxRQU2Tz1Pm8S1t4+XPLgj/i TOUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044738; x=1744649538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xktnEXXKtQ396AGgEmOxLxFn+tjVbH2T7f18cyqhW5c=; b=QNN70PfDR+1rrPbofGryr8+HfghgQB+zh4F/mVZ2/SuVY3o3NP0vVBaa9+00Hrc4Eq R0zXVA25pmTnrameE050Qa60u2PqCZNhbGS+bO7Mj9tybb6LP7AFN4I5nmYCt4FcOEvH tATxQ5L7BrMl5PH+JS80YDe4+1+WYZW3RkFeWeIKAwZ9Ha+8Pbo0A10qmDVQUJgRaQdS xCnRtCBVozHOFHQa3ZvlkjSob9sQVtkgbPmVl0ZJSBK1eNjkHJHkbwi5EYqTcZixGhqr 10/ii8J84IrHBkKaAp7uNZVNr16NNGN8hxtPZ+GVsbinR5+Ed/1J9BRvXTf4mgPuQ/Yv 6cVg== X-Forwarded-Encrypted: i=1; AJvYcCUdPBAY1dAby1uRFQZVBFysSSY+ZuDkSsNIuu+Qe7MVj7iSuWGqNGZ3eAcvICFm548nnjEIkoMmQRPP@vger.kernel.org, AJvYcCVUwOKnAwMUMwCDOLM+n6Jyn/KFjcc4+Z1zAHrdbBdLkHWNfSzj+LJsvDUSTglH132kErX6VL0kTqWd@vger.kernel.org, AJvYcCWzWkiix8/gjhRNp/8Fy/6d2zWJ+Rnnq5ksFa4/DMrnx3HnuFmNaAV+A8yQdVDmfWjkiCAoddCpTiiBQJUq@vger.kernel.org X-Gm-Message-State: AOJu0YxGgypE1qrkh/+uLDL8Pr690C9ruERy60SEYL7RadceMQbAUZBb M5wUg1EYtXsiQJJjC/W3CHmT2YMvtkzTSWLuEbjlkIASmOfCmKWs X-Gm-Gg: ASbGncvOz07BDN8V671isSyipJpHpJBxIFM+k2d+NN9yM8MhCp7SxuIB0YhG+mfP/AW Y6J08on1V676LPD6Q92MylFUv1KTaF+wKwaPxlI/p3uU3+CRFNTMxg4KokxHPEEji3DtrBWUJzk MhYIDhNjo7VYI+ox7CyplbBye93J4oh4VXDwmiaSAnsYPUH21b26x9LULY+d5EvbnwTmZ9YkW4q kNkjN9fyU0toV4jkLYQ9qDoMUXTlh0EulxToe4UuT9Tb27W0zj70WA2mnPsi8Opt5AOfhvrKK2W oP83zh0un606WZBQ5zRoh83QL74vJfqSffLcpGKyoDNt1vJK8tnpbzXR+JgXxoFkJggyKw== X-Google-Smtp-Source: AGHT+IE5Z0IG5PtFIIratWuAfb+xmtIzwhj56I4d3k4JvKf97Mvmg3LXofnC2+ZKqj4te/8TOmYLqQ== X-Received: by 2002:a5d:584c:0:b0:38d:e401:fd61 with SMTP id ffacd0b85a97d-39cba93cef6mr9886746f8f.49.1744044738390; Mon, 07 Apr 2025 09:52:18 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:17 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 2/9] clk: renesas: rzv2h-cpg: Add macro for defining static dividers Date: Mon, 7 Apr 2025 17:51:55 +0100 Message-ID: <20250407165202.197570-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Unlike dynamic dividers, static dividers do not have a monitor bit. Introduce the `DEF_CSDIV()` macro for defining static dividers, ensuring consistency with existing dynamic divider macros. Additionally, introduce the `CSDIV_NO_MON` macro to indicate the absence of a monitor bit, allowing the monitoring step to be skipped when `mon` is set to `CSDIV_NO_MON`. Note, `rzv2h_cpg_ddiv_clk_register()` will be re-used instead of generic `clk_hw_register_divider_table()` for registering satic dividers as some of the static dividers require RMW operations. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- drivers/clk/renesas/rzv2h-cpg.c | 3 +++ drivers/clk/renesas/rzv2h-cpg.h | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c index 4cda36d7f0a7..4123c30e8663 100644 --- a/drivers/clk/renesas/rzv2h-cpg.c +++ b/drivers/clk/renesas/rzv2h-cpg.c @@ -298,6 +298,9 @@ static inline int rzv2h_cpg_wait_ddiv_clk_update_done(void __iomem *base, u8 mon u32 bitmask = BIT(mon); u32 val; + if (mon == CSDIV_NO_MON) + return 0; + return readl_poll_timeout_atomic(base + CPG_CLKSTATUS0, val, !(val & bitmask), 10, 200); } diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h index 03e602d70f69..00b52b459aad 100644 --- a/drivers/clk/renesas/rzv2h-cpg.h +++ b/drivers/clk/renesas/rzv2h-cpg.h @@ -45,6 +45,14 @@ struct ddiv { unsigned int monbit:5; }; +/* + * On RZ/V2H(P), the dynamic divider clock supports up to 19 monitor bits, + * while on RZ/G3E, it supports up to 16 monitor bits. Use the maximum value + * `0x1f` to indicate that monitor bits are not supported for static divider + * clocks. + */ +#define CSDIV_NO_MON (0x1f) + #define DDIV_PACK(_offset, _shift, _width, _monbit) \ ((struct ddiv){ \ .offset = _offset, \ @@ -150,6 +158,8 @@ enum clk_types { .parent = _parent, \ .dtable = _dtable, \ .flag = CLK_DIVIDER_HIWORD_MASK) +#define DEF_CSDIV(_name, _id, _parent, _ddiv_packed, _dtable) \ + DEF_DDIV(_name, _id, _parent, _ddiv_packed, _dtable) #define DEF_SMUX(_name, _id, _smux_packed, _parent_names) \ DEF_TYPE(_name, _id, CLK_TYPE_SMUX, \ .cfg.smux = _smux_packed, \ From patchwork Mon Apr 7 16:51:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041325 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D925213E9E; Mon, 7 Apr 2025 16:52:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044743; cv=none; b=RTh8V2mMa1jz8ZqEML9so4CNSgtjNDT0EAs5QjBXPOx1vs80ZMntttp9x6sfGmqB5udbEd14t5Zp7NsWbGKc0ltRywachsi2oOTPHWBgvPCrFb2afyYwaMpvEyoTJEo/vNgpoephXgb526GnLmPtiOrQBjTpoDEUBuT2/dZHHsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044743; c=relaxed/simple; bh=t23BigdHXTVLwdoDkMWMAn1WR1DFwTXnH8PIGUd0HWQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k5qTzpRR8lLy8GSxSh4q5PnskZjL3/Mp8urPOUF42DweVcjh0yYjqNY7CsGHXFLTn0wjVE4guN32MlDFlIWIXbWu2UJVu44r4M+C3HP/UL+z9dXCeSC0oTmdiL2+Y3M1WEXWivcTli7UfCKPRhYPAlzqAFBn/ilS9k76MuQsi+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PXKbRxHU; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PXKbRxHU" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-43d0359b1fcso29454275e9.0; Mon, 07 Apr 2025 09:52:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044740; x=1744649540; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hic8lAphkKhUOBEdKa+KxeuQM+tNn6kxbBP9aFXKdok=; b=PXKbRxHUzi2p7SUswoNIoyw3+KBD++RrvvDIje3Z3Q6BpgSXvv9Hi2/MBYpXfYVR0D s7cKFMlrbDQlBmp6WC1DDcK+stmNJB+js75NM+kVo7WxDxGfP6RqN3Usq0vdT/5s5xEU 70byVflZeNoK+j+V7Na7qo75uEEz/tK54rUk1xcFrYfF2H/isbjUM9UcU3FHs0/rY20g cRnogEoF0MSKeUDP/89q+HVW7wJoi5d/C7RNOM4plPqQqG3DONb47X3YSAQbaibyL/3b cpZCm6x4T5e27lTjxcgooIrUahNKO8KysDP3L9+wcrldkPJe4EuezI0HwG/oT6Wd1Fzk 5DTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044740; x=1744649540; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hic8lAphkKhUOBEdKa+KxeuQM+tNn6kxbBP9aFXKdok=; b=llc4GB57gTGpyzNCK2nvhb51Ekda4KaTkG6xJldC01pYxDDIrRgp3B3Ilsq5Pgdi2m y8BrjFDN5vvUJrcU7Tpj/DiwvSYvogVz9K19EQkw2ccqGeC/BY9cNJeIQ5ytjffKptUZ Zt5uU7x+0ooZI2Me3T87Deg8DtmE3nl/6W69Wyj5aomuebmtExcUvYiIDtwcKhSpyE8i nDHVXNH7gfcd0o0BXN93450+1Q39/iGBdWXmT1t6hvu0MGbpl6M33tC3L3mrxWWYsqWT ufEOhvVLZLs0hfR6iVihzAYPwWpJh2xwMJEl/v6n6zZGjO3/hJVlXaqG5umhuqserxlE px9w== X-Forwarded-Encrypted: i=1; AJvYcCUAixwz7Filfzr7nUfREdwJSWTLA7hZCYdKDpFjea+WO4Y3fYNhljcB3MqQNnzHGQj2qChe7ITrisoe@vger.kernel.org, AJvYcCUa2D1oPPWqqWgrdT+etSIO3hnj6ERxRp6dmJIs6NkZcPnSVtiaUT2QyHWuWKNLORJyrOxqnuWV0jwG@vger.kernel.org, AJvYcCXbraHenS7cQPfZLtu8yR8P5rLo6pzhLTKa83lBNYYmESKIOmvPfulvuhad6UIjpusc/+gMoJgJXojwhJFL@vger.kernel.org X-Gm-Message-State: AOJu0YzxVHqfBAe0T9OFrSA4ifDdDpEBXNg5Q9bI/+ztQtWhEUUidJfj yoeB8IWCdPMlfALoXOZnEZnkQb8au0xdz42WFEhWwn7tinufDA8/ X-Gm-Gg: ASbGncsvQmYmQuUUSmGMQNpXVMENeKktfzQNEN89z0OGeR5LqN2DJt8mUBOtt+o6/YF rEgrVDag1LrduMwayKIl8dZqBVPbLWsQ21r0QwA27eP74YI4PrUmtjIwx/jm0O7YpJAUuJocizW zEYF1js74nbAIyIWH/bsSBLsn1s39iZ6356CpNzOnwjImfyGkhFCxEoXhd44/n+FCnlawCqtEN3 kKQo0xobE+QvQmCsyVmo8dlv8t90KPqZfYjFnhXbXfwa+UMj60b13C5SNsE3cGXzaodK1O9WAaH oQREKs2/WkWbi2s418Vmn4hc3y+9x9+E30uhim88HvTMHftWbQFKv8Lq2/GZkbAz63m+kQ== X-Google-Smtp-Source: AGHT+IGxECAOPlisZzoRyl5ma5z1rpqqMgA27pGjUKS53MT+25NNgxJlX60ILBGhaQlT53O1ANTexw== X-Received: by 2002:a05:600c:34c7:b0:439:4b23:9e8e with SMTP id 5b1f17b1804b1-43f0e55b4e6mr1718695e9.3.1744044739508; Mon, 07 Apr 2025 09:52:19 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:18 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 3/9] clk: renesas: rzv2h-cpg: Support static dividers without RMW Date: Mon, 7 Apr 2025 17:51:56 +0100 Message-ID: <20250407165202.197570-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Biju Das Add support for static dividers that do not require read-modify-write (RMW) operations. This enables the use of the generic clk_divider_ops instead of the custom RMW-based implementation. Signed-off-by: Biju Das Co-developed-by: Lad Prabhakar Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- drivers/clk/renesas/rzv2h-cpg.c | 5 ++++- drivers/clk/renesas/rzv2h-cpg.h | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c index 4123c30e8663..e53cd31c218e 100644 --- a/drivers/clk/renesas/rzv2h-cpg.c +++ b/drivers/clk/renesas/rzv2h-cpg.c @@ -380,7 +380,10 @@ rzv2h_cpg_ddiv_clk_register(const struct cpg_core_clk *core, return ERR_PTR(-ENOMEM); init.name = core->name; - init.ops = &rzv2h_ddiv_clk_divider_ops; + if (cfg_ddiv.no_rmw) + init.ops = &clk_divider_ops; + else + init.ops = &rzv2h_ddiv_clk_divider_ops; init.parent_names = &parent_name; init.num_parents = 1; diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h index 00b52b459aad..97054f207113 100644 --- a/drivers/clk/renesas/rzv2h-cpg.h +++ b/drivers/clk/renesas/rzv2h-cpg.h @@ -37,12 +37,15 @@ struct pll { * @shift: position of the divider bit * @width: width of the divider * @monbit: monitor bit in CPG_CLKSTATUS0 register + * @no_rmw: flag to indicate if the register is read-modify-write + * (1: no RMW, 0: RMW) */ struct ddiv { unsigned int offset:11; unsigned int shift:4; unsigned int width:4; unsigned int monbit:5; + unsigned int no_rmw:1; }; /* @@ -61,6 +64,15 @@ struct ddiv { .monbit = _monbit \ }) +#define DDIV_PACK_NO_RMW(_offset, _shift, _width, _monbit) \ + ((struct ddiv){ \ + .offset = (_offset), \ + .shift = (_shift), \ + .width = (_width), \ + .monbit = (_monbit), \ + .no_rmw = 1 \ + }) + /** * struct smuxed - Structure for static muxed clocks * From patchwork Mon Apr 7 16:51:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041326 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B0C42144D4; Mon, 7 Apr 2025 16:52:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044744; cv=none; b=h04/6whd9D7tyAPBe2hc/hngMRsmX7vdEB2JkvCNth1F2CbQvz7p5fE1D0ZYydE18fT/yCD+DHZdTfVVeVQeCG6YsbYgTNjyl6O0ahXoZfh7tYVFoEtEovt3C5k03Bo8KYcw7PHbQ0s8/9xKS/NazCjBrNrgu9eCGha+iP6Gm6w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044744; c=relaxed/simple; bh=Y4X817r9lOH+nu/l8eZMT49CT0dQ5P+l5GIy7tR+tOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XhuOqL1WwuBXOQ/eqA5pfSwchiD+1SWLvnux6FeiitL2KPGsh7MECJbDduAurnj2bxZx3iC/qEGC1A1bwUw0691LkBvwaF1v5J8xDfRlvgAQ4hMvnuGp7dYf4Uqte/brqOHbtQ0f9dE3fUOOTUUnYZmip7MDEO33lIqwJgoFVkE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Hp6qScNM; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Hp6qScNM" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-39141ffa9fcso5142246f8f.0; Mon, 07 Apr 2025 09:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044741; x=1744649541; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PcR+RDHa/c9bdAloFl0/VrmlGz9ASr2rJYe2R0+evjQ=; b=Hp6qScNMTVhXKO7V1svDkifp8sq1bPsn1z43P49pJX+9jkI2Pqx8r4DfG+g6tVMaXi 6WCNupkM71B/xt5xlwYf3fBQdeHy6kwoMBWQBUbPoaHH0SyIVz/rbC4wIN7UFy80orY1 FVde9fmvv7Rb6IrnsWPRmp+MwuLn3TLwC6/aILB9zauelWDm3g9xlsD+ax3extZ9eq40 kNRLrbAheBGjulVpNlbTPz1UQQ3DfpTllNyXYA/lXNTKvsVc5OFrnUUFJzlgz56OoxFr lujYkF6Oa8fI3THOEZBwT0svZcU6r5sXerWMN5KTl1fCP3RW/ZiRjdNhUOwYdxPwPuUp wiTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044741; x=1744649541; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PcR+RDHa/c9bdAloFl0/VrmlGz9ASr2rJYe2R0+evjQ=; b=kLYwOqJoaLSVgUylz9yZCdNXYitnzEushKxswo44SS4YC1VvLzVsvr+C4gqnWI/UPh DiDcuft2CuwMhaOwbtFcu+6R6ncXojOwfgRkbZTV40khJoNJpZn0MQE41O5AfF9EcytJ z4h/egq/HOMZK/8oEUEsAH5VyD2dsAVslAFGeCHZomJKGsUiMd1CJkK2dWREtTBZ4bTx Z5lZGbFkXDvINIYX9iXScitVEGjmbwcgSsNZK04Y9Y4wst39kQtHdiBMsUyShpsH0kzE P1ai0BoaozfChaNPcYH6iHNgqdTBL0KEUR4SJJTuqam6o5roSW7zag4ggsO8zCbMxeij UwtA== X-Forwarded-Encrypted: i=1; AJvYcCUwTu4Yzc+iCAFzql1K0Jc1rBKHGUOwjFflNKUfTJYb72fBrtsR7ts6qN1Cd91NRD56tvvX9T9BARz2CitB@vger.kernel.org, AJvYcCVxpUpH55wiCPB5gPC3L4tw4IjpNf5Kc/6Qeui/ZMMSbq67DoAgKprCIYI64+Y5VwEdr4603hTr0Cvh@vger.kernel.org, AJvYcCX1EiC+4wg1pVTwXQzHdFHQUUGmdAuqo2FVQWg3vBejE1BqM6Pr+d8CCE+VqyauGwMSw/JYU6RtkMLL@vger.kernel.org X-Gm-Message-State: AOJu0YwUtZcYHSdOYbEyrfZTTHBFoi+Fj2lRx1ueooNVuyNi0yBRxdjy XK1avs3ZlLpSqdW/FlQiYduI/7QP4nz/9I3CeBqk3SLZI7fUXyVK X-Gm-Gg: ASbGncsIBkXlteKGMZDeOZDtrg0MK+ag8M5PRy7ESnCfOCYb90+WozgV7x63K1u0T1I wyV4Tn23zAMAtcafuo7qpl+NmiEz32d0Nnmc0kv3sXWvXrLUPcESMB2AmTuKZEHBr6EdzD7EvU8 TRqmCDfJRiz7nGxlPenkLMzFNylyuzCaxpfbYVx6pH4p6z9LEPyPVNWxNvXnhr/EuHCEDvrK+SI O4F24WXAOKGgvnQDWCNUJhwbC8k4HtDnDbmPpI0SC9GtsMKPifCDgzoYF012pbXvZ8KKjvIP0Xv uopbLrz1o2WUbSAqiJ0Zzwpui/3SYHbXDzml+85tG0e1eW8P62pfXUwkVXUn1EmEj+tKUg== X-Google-Smtp-Source: AGHT+IHpEGWVIF/bp906RcMZRBJ/ovFacgN6CrJBOWBhVoe3g8ehx9wcRKQtUWbO9LDbYzxU5iYjhg== X-Received: by 2002:a05:6000:4312:b0:391:48d4:bd02 with SMTP id ffacd0b85a97d-39d6fc79e98mr6939851f8f.29.1744044740440; Mon, 07 Apr 2025 09:52:20 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:19 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 4/9] clk: renesas: rzv2h-cpg: Use str_on_off() helper in rzv2h_mod_clock_endisable() Date: Mon, 7 Apr 2025 17:51:57 +0100 Message-ID: <20250407165202.197570-5-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Replace hard-coded "ON"/"OFF" strings with the `str_on_off()` helper in `rzv2h_mod_clock_endisable()`. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- drivers/clk/renesas/rzv2h-cpg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c index e53cd31c218e..39d81da096b2 100644 --- a/drivers/clk/renesas/rzv2h-cpg.c +++ b/drivers/clk/renesas/rzv2h-cpg.c @@ -25,6 +25,7 @@ #include #include #include +#include #include @@ -598,7 +599,7 @@ static int rzv2h_mod_clock_endisable(struct clk_hw *hw, bool enable) int error; dev_dbg(dev, "CLK_ON 0x%x/%pC %s\n", reg, hw->clk, - enable ? "ON" : "OFF"); + str_on_off(enable)); if (enabled == enable) return 0; From patchwork Mon Apr 7 16:51:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041327 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 815D5214A98; Mon, 7 Apr 2025 16:52:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044745; cv=none; b=t9JG9QR8XNAVYHXQLMPun4/5aE5ECriOCopgsTiuZeGGm73LoCTIt8UNgfM5YJmhTMCvIOAcPJi/A01CNTburkr3PKIkQlHovmz8Ook+H++5qLpWtpOqf5j/w8+sYN58HOl4+ovxzl8tfO8rYayWAzD0jQVYP40w383V2WehGGg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044745; c=relaxed/simple; bh=Ub2mvo9zKIlgRBlGZjgd8ofnSXpYWLKr/D8XkYyZR/Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DZOQklszIslmbf3wwP+JZ/3aV7lhGmfGnc9OteYtymOzaWxzpTMrWuA76cGXmNMRy3qyXZcAEBJDybF/gleQ8HFaJ1L81jGbqcDi9YCL4YlKzNCbeI6E4pDLTTLWJIbguEh32/ThB52/iOo1wGCsws15Bg9PHp1c2wgy+Z9+byM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Fz9TFMXh; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Fz9TFMXh" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-43ea40a6e98so40674055e9.1; Mon, 07 Apr 2025 09:52:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044742; x=1744649542; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HiDR7rX6RIlKdZ13B552gPCTK5zpa56+tmg07upsKtA=; b=Fz9TFMXh1VFbVSn8Dp+UUL+SAPBsvYYvaeGAz8EYOWGE9IvZIv3NxEGhPg5kMpcxhz VGAd6Cy/p7aIO8k4XLR1RmPZby6qbiIMo0kdAfGMBu8m3qjITg1M+KDmyfZMOQflkhiB 5g7qto3E3ft0mjkKbAagwi0pjboP2GTDxUYH3MXUiXfrinn+2XnaBGy01CQmh3/x51LB UsrURqMthhP/H1zyDPdeg/WKm/XMB+fhqjvjhXTRo21QDWMBzk2JM5b+bmitmhednHCi RZGdhmEAvz1TrWDxTodI1OQEuDzDyVls8f/hZEGNFLBoNVcP1glMVljZ+fqgHsTD/qBp dajg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044742; x=1744649542; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HiDR7rX6RIlKdZ13B552gPCTK5zpa56+tmg07upsKtA=; b=dfEgxzAGNYpa0PB5lwKNyXK0cUnyP71yI4r84XGmGXat1wdMVxvWaupPlD9dFTEpfK tsAs1JrBVMzhP8Sult3Nfjp4voNXPchyLrvnw5v4HfoYYCzHNWMHrYi3llSg04N7eSMD L2ScIaLIfpA7R6z8NZ31yZsjSmDMrReLsJCy5rlDhDss6lsSHKX4T9BujSbMlU1hCEr2 1/reUc54ocLlQwagkbwjqNh6Tn9U2odZ6+Q+7BGvG2yrv1bUF3Hhs7sgYuPWQMUGKbPn IFJ/rqdAHpR1jNxbAJvw9Q0eii8hlpfONngqgEHDwreowgXFkk2vQz4Wt++Ph5c0ufzx x9ZQ== X-Forwarded-Encrypted: i=1; AJvYcCUI/zXqyi7vlxy0sQU2mXPV2793o/P5/2F7G2qoewxT85JJZngmWVaDiRgkr2p0MBkaFiTTdvc1r2yE@vger.kernel.org, AJvYcCUOv7TcHaJc/vOkDhU4bCNcp5hQbJdbZLno8oHOpzqgxQCccVTgxs4GWwy1bTGY8Vbtxglk6wbeImVi@vger.kernel.org, AJvYcCUVRLa6bRY/6wNf9qbIYACYPC6bUE6l2cj1j23RjPkoGhqLJMDd1NjNoBhv59dAyLULQmAAf9aoL8BRrGco@vger.kernel.org X-Gm-Message-State: AOJu0Yy/gFi4UPskWK4HyB40zJwzBwQyESzsI7SGcqubaUwIK2D9OGJ/ 57E+p4EZ4+l+jFAeHowhx0zKIyvm3iT5Rhm9+PbEErJjpmKx/fiM X-Gm-Gg: ASbGncuOo7kULOqVJ7Fl3mgx9cVp/mfb/pOu7SevBcjEVEaV+Ak/5wLeekZpS/tEgGS IP94LIGC4KS04jdax+IxLx6J2k/5m7JjMqbWJUgO9LLrrFy/zNJD7rzgOujH1yc2U+lgQIkIsly FZ5bneuhUqOGXWEH9mqk6wUKHEaOQzhIUgo/HBgXtTaSLPajuCkgsq/E9C+TkAxK4kcVMGcc2xm Z1h3uNxX0fetDI+QM0CM1NkE43IFs0WW6eyd/kgOksnQFHsPWu3FdUTCoHFQLPvKSxR6Y3UnDTp GIhP/CyOfuWmmS/R+HI1MYE9QQujUBYAWdIfe2T1y66E+bq0q2k7eJsFzvUdwatXO8ZjyQ== X-Google-Smtp-Source: AGHT+IH3l37FY9n9inkoMFozbQMK4VElTyZU3T9RMvlqXU3pafdrWgbx6dLGrFkm+Fn5uJp4Z3WlQA== X-Received: by 2002:a05:600c:3d17:b0:43d:7bfa:2739 with SMTP id 5b1f17b1804b1-43ee0768c11mr83877185e9.23.1744044741594; Mon, 07 Apr 2025 09:52:21 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:20 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 5/9] clk: renesas: rzv2h-cpg: Use both CLK_ON and CLK_MON bits for clock state validation Date: Mon, 7 Apr 2025 17:51:58 +0100 Message-ID: <20250407165202.197570-6-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Update the clock enable/disable logic to follow the latest hardware manual's guidelines, ensuring that both CLK_ON and CLK_MON bits are used to confirm the clock state. According to the manual, enabling a clock requires setting the CPG_CLK_ON bit and verifying the clock has started using the CPG_CLK_MON bit. Similarly, disabling a clock requires clearing the CPG_CLK_ON bit and confirming the clock has stopped via the CPG_CLK_MON bit. Modify `rzv2h_mod_clock_is_enabled()` to check CLK_MON first and then validate CLK_ON for a more accurate clock status evaluation. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- drivers/clk/renesas/rzv2h-cpg.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c index 39d81da096b2..c75ed6ed087b 100644 --- a/drivers/clk/renesas/rzv2h-cpg.c +++ b/drivers/clk/renesas/rzv2h-cpg.c @@ -579,11 +579,14 @@ static int rzv2h_mod_clock_is_enabled(struct clk_hw *hw) if (clock->mon_index >= 0) { offset = GET_CLK_MON_OFFSET(clock->mon_index); bitmask = BIT(clock->mon_bit); - } else { - offset = GET_CLK_ON_OFFSET(clock->on_index); - bitmask = BIT(clock->on_bit); + + if (!(readl(priv->base + offset) & bitmask)) + return 0; } + offset = GET_CLK_ON_OFFSET(clock->on_index); + bitmask = BIT(clock->on_bit); + return readl(priv->base + offset) & bitmask; } From patchwork Mon Apr 7 16:51:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041328 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7ECD2153CD; Mon, 7 Apr 2025 16:52:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044746; cv=none; b=WT0gj6zGR9ja7LYIUFBRPUuEYMuehQnown6Ou0lF0+YJKg11GB7RQxIF4ngJeDHzUOOozm6Dx5LRVkcLR9A5vKYxqhaccTg5t67Wr3rFd+R34fn07C6PLSmzAl/IOAOzbo7cFhVQwhiQ12Ga9jsNV3LheCnSSpjlrKlLwfWA7Vo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044746; c=relaxed/simple; bh=NQqAKFm9lKP4gKj4A7p5ufJ0g2L0vgPUQhihTL6aYN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=koIHkMZVzWh3cKXsY+gcK0nP06OgsvHWULkxwydZRNpMmUtB+ZIAcOCESdcY2sAeFWvpipO7YEqOunP7xb6qtgXatwglaHp2chM6LZxxDAmh0THWM6/r5eIL5iPmmFGXA48nnjwvxsJUqd6ciCsK+x+y4h4GhJyt624Sf7PXFZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NdUfIu1F; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NdUfIu1F" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-43cebe06e9eso30636665e9.3; Mon, 07 Apr 2025 09:52:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044743; x=1744649543; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uvh1Yu//hOtLM62iUyig+O2y+lyb19F5KR0IJmRabvE=; b=NdUfIu1Fvyl9qgbYS7Uwt1vKD8S5eGPTz2pPmcKR/em6uJc6x/LQQakG88TclB+E/y rDUH0CNOnlwxdscwtZbA9rBv1VIr9GghPGSsuDZ/7pTR7ATD9q/+gL3X9YKsezpBxhkz wfNtt+Fx/5S2ZjqaRK6PpZyMCRSKoNbjrkoHZQq00u5C6dkhkNTJuFcLL9lx31Hpgdbu UhTsmg9Hvhd+yhtqF5YOP2Sb5PPsq9/hc1qUKkAtUQwNSaZ8Kf5CpEKZBiua1bjUMJgx 3Nu+S/Z+mXOxMaZpmQctSdmxaICXB4n7eZwp6Kl/2XJG8Hf9bG63PLj+3M0j6k9JO5lH NEEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044743; x=1744649543; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uvh1Yu//hOtLM62iUyig+O2y+lyb19F5KR0IJmRabvE=; b=UFZBuLFOM2ryvI/SUrfMJLuq+HHEKFNA59atO+uKy2VKaTVa6obZrLDCTZyY3EUhAl U/+vZgWW/h0jNOsmV4XUSrFWRHOnZFEzxCgKTJ+QXjEMrdgbbaX/EEL6F6bRNzfjtGMg TSHF6Zpyd9idSVnVPG5MK4SvaK59FUkdP1D+aRl6ABjofN6MqGbe/FnQirUYOHGdskbY IB7gCTchPVUnbFuwkrRPAus9nrRIY5o1XEU+ZGfIabLyvbdaXDn9TyyUt+RZnxALm9U4 bEdeq0JfXb5oA2E1P0/Wr66rFi5mfEHewQfraaENIWs0ODdih2jwvQcLmkOSiKOkdGtP MFMg== X-Forwarded-Encrypted: i=1; AJvYcCUqxTkqmLpLAqw3LZm5cL0uolM3hHl5cA3IG2R6AtSCArYHnVmP8zg6pr9YpuSdwr07ff4AeJ3wzjcH@vger.kernel.org, AJvYcCUy1ryr99pCimDK0w6l/Os0XdNyBXG3Zer88rYw2OuNKNznNlj+Ge+B16VsNb1yrLN0OS+UgCzlwhVbulyC@vger.kernel.org, AJvYcCVf2uOxwtLlGBvZaWt3J56LOA/9OagF2a3/tgw9Odfn/L6Kc/NPg5iehvxOzlXUVAbq6rmmpFHlV7p9@vger.kernel.org X-Gm-Message-State: AOJu0Yzmy4+NybEycIjIyn2wqqlXf052liXdROXelWFs7nSkCOikzJe+ ro7gog9kxB33468AVKE8h7LsrpDLC1Y29M/LWxFlNltSiOe1R4B6 X-Gm-Gg: ASbGnctkGml6czsZ9volw3y7czZsrXT44DM5qXKyK5YKl+x7yMUWLbRPfzf3KHr7mg5 vARiFRi86Y6/szcEiuN//NgYfUTpVm+Z/G/O2dYjKN7dYyNDPLh1KW+qjgymrYNmpaeFoDuT45t cmbZSGoiq2ZYXEhHU+C+ksO332A0Cm1Zk8ytLTPyTE7Su6nEGzxqLewllTUWsNAi6bparU7Ly/V dhA+aaN7OIw0DtglfqG7xZLjGjS2V+DoxHcHbotr9MvKaJb2NsBWeqD812ghpg6DFh2lpK2fM8A AInv2xgEWm7l1QO3os0Mhh8yU1dfPIh3i5WpWopqBsFo60BaKlZ5xhoJIQTKHZTGXXjpDlip993 ba0Gu X-Google-Smtp-Source: AGHT+IHNPfqOadPG/QcoOX+PkR/zOStrzQCU66Xm3vpJbYQMwZZPipQ99y+TS5nYIeIgDzVU9ubw7w== X-Received: by 2002:a05:600c:4713:b0:43d:b3:f95 with SMTP id 5b1f17b1804b1-43ecfa35e5dmr96826025e9.28.1744044742694; Mon, 07 Apr 2025 09:52:22 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:22 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 6/9] clk: renesas: rzv2h-cpg: Ignore monitoring CLK_MON bits for external clocks Date: Mon, 7 Apr 2025 17:51:59 +0100 Message-ID: <20250407165202.197570-7-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Ignore CLK_MON bits when turning on/off module clocks that use an external clock source. Introduce the `DEF_MOD_EXTERNAL()` macro for defining module clocks that may have an external clock source. Update `rzv2h_cpg_register_mod_clk()` to update mon_index. Signed-off-by: Lad Prabhakar --- drivers/clk/renesas/rzv2h-cpg.c | 24 ++++++++++++++++++++++++ drivers/clk/renesas/rzv2h-cpg.h | 28 ++++++++++++++++++++++++---- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c index c75ed6ed087b..dca0940b3df9 100644 --- a/drivers/clk/renesas/rzv2h-cpg.c +++ b/drivers/clk/renesas/rzv2h-cpg.c @@ -569,6 +569,25 @@ static void rzv2h_mod_clock_mstop_disable(struct rzv2h_cpg_priv *priv, spin_unlock_irqrestore(&priv->rmw_lock, flags); } +static bool rzv2h_mod_clock_is_external(struct rzv2h_cpg_priv *priv, + u16 ext_clk_offset, + u8 ext_clk_bit, + u8 ext_cond) +{ + u32 value; + + if (!ext_clk_offset) + return false; + + value = readl(priv->base + ext_clk_offset) & BIT(ext_clk_bit); + value >>= ext_clk_bit; + + if (value == ext_cond) + return true; + + return false; +} + static int rzv2h_mod_clock_is_enabled(struct clk_hw *hw) { struct mod_clock *clock = to_mod_clock(hw); @@ -691,6 +710,11 @@ rzv2h_cpg_register_mod_clk(const struct rzv2h_mod_clk *mod, clock->on_index = mod->on_index; clock->on_bit = mod->on_bit; clock->mon_index = mod->mon_index; + /* If clock is coming from external source ignore the monitor bit for it */ + if (rzv2h_mod_clock_is_external(priv, mod->external_clk_offset, + mod->external_clk_bit, + mod->external_cond)) + clock->mon_index = -1; clock->mon_bit = mod->mon_bit; clock->no_pm = mod->no_pm; clock->priv = priv; diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h index 97054f207113..c64cfead6dc1 100644 --- a/drivers/clk/renesas/rzv2h-cpg.h +++ b/drivers/clk/renesas/rzv2h-cpg.h @@ -192,6 +192,10 @@ enum clk_types { * @on_bit: ON bit * @mon_index: monitor register index * @mon_bit: monitor bit + * @external_clk_offset: Offset to check to determine if the clock is external + * @external_clk_bit: Bit to check to determine if the clock is external + * @external_cond: Condition to determine whether a given clock source is external; + * it can be either 0 or 1. */ struct rzv2h_mod_clk { const char *name; @@ -203,9 +207,14 @@ struct rzv2h_mod_clk { u8 on_bit; s8 mon_index; u8 mon_bit; + u16 external_clk_offset:10; + u8 external_clk_bit:5; + u8 external_cond:1; }; -#define DEF_MOD_BASE(_name, _mstop, _parent, _critical, _no_pm, _onindex, _onbit, _monindex, _monbit) \ +#define DEF_MOD_BASE(_name, _mstop, _parent, _critical, _no_pm, _onindex, \ + _onbit, _monindex, _monbit, _external_clk_offset, \ + _external_clk_bit, _external_cond) \ { \ .name = (_name), \ .mstop_data = (_mstop), \ @@ -216,16 +225,27 @@ struct rzv2h_mod_clk { .on_bit = (_onbit), \ .mon_index = (_monindex), \ .mon_bit = (_monbit), \ + .external_clk_offset = (_external_clk_offset), \ + .external_clk_bit = (_external_clk_bit), \ + .external_cond = (_external_cond), \ } #define DEF_MOD(_name, _parent, _onindex, _onbit, _monindex, _monbit, _mstop) \ - DEF_MOD_BASE(_name, _mstop, _parent, false, false, _onindex, _onbit, _monindex, _monbit) + DEF_MOD_BASE(_name, _mstop, _parent, false, false, _onindex, _onbit, _monindex, _monbit, \ + 0, 0, 0) #define DEF_MOD_CRITICAL(_name, _parent, _onindex, _onbit, _monindex, _monbit, _mstop) \ - DEF_MOD_BASE(_name, _mstop, _parent, true, false, _onindex, _onbit, _monindex, _monbit) + DEF_MOD_BASE(_name, _mstop, _parent, true, false, _onindex, _onbit, _monindex, _monbit, \ + 0, 0, 0) #define DEF_MOD_NO_PM(_name, _parent, _onindex, _onbit, _monindex, _monbit, _mstop) \ - DEF_MOD_BASE(_name, _mstop, _parent, false, true, _onindex, _onbit, _monindex, _monbit) + DEF_MOD_BASE(_name, _mstop, _parent, false, true, _onindex, _onbit, _monindex, _monbit, \ + 0, 0, 0) + +#define DEF_MOD_EXTERNAL(_name, _parent, _onindex, _onbit, _monindex, _monbit, _mstop, \ + _external_clk_offset, _external_clk_bit, _external_cond) \ + DEF_MOD_BASE(_name, _mstop, _parent, false, false, _onindex, _onbit, _monindex, _monbit, \ + _external_clk_offset, _external_clk_bit, _external_cond) /** * struct rzv2h_reset - Reset definitions From patchwork Mon Apr 7 16:52:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041329 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB10F215772; Mon, 7 Apr 2025 16:52:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044747; cv=none; b=R7vroH9bp+DlqU3t4KWt8abElgcu76/cj/ADJ6n0oVFAUzlSu7uOiloxR4ccBLhS/x6ecg8sE7nsntSTQoqdADjLbr+PWeqTKN4/H2vm9xWEMBVN5XNlO92QQ3y6QOW4s75Qw5kLI84NkoKaHXuY1NG0fyWy7lVvDp9WGjuygIY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044747; c=relaxed/simple; bh=ela736EWUHBiQpuiYcDtOCJ8PCECCMnDysvL0xSC+cU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ftYMh52o4SYSw6CNBN3xe1NepyVKpW4EfUec33ZTOuKWYCp0cXUCijBCEVmNghxVzjDBC/oKfFhNn2uX44yYnk+pBjCD1iGWNTFmlw7kDDB/aLm5unrsMFAkB1S+BcVvxcH2GJctFlsGH5of8/NtqVXe3krejsKAGmxyxYIL73Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GLinblI+; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GLinblI+" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43ede096d73so17612965e9.2; Mon, 07 Apr 2025 09:52:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044744; x=1744649544; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IXU7b+hw2K35mM44+WPm89Yl9SFCQNywBx9Tt2FHqig=; b=GLinblI+XYtuRH/O5eZUTLna1VUF5Ti9TJraBkX1npqDFHjvn59msCc6uawR8AUUvx qxKTBvsdENP1Z/dEA83d3Vr0XyWqCzgts+VotwKwyCfBWSe34b+b1z57aSUPQp2NFi4K fnJ21tOTLpltaxSxnsQ5COz/myFaobr2oi5RLtQWf6YMpaUA2BWGCb9rbHWYiiGfkYTg Bmtw/Ed1c53Ma4zarTMeoNO2FHRd8+ijqTMmc40EiWBLwThqn+s5KON9H1uTxmS66Q6E uCHIJ9CU2wOB2sRZtMZ3L52Hlf3n3SklK/DUCEZ1OpUW/Tkwuf7VzBx1nU7jJmgCtKQN pgeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044744; x=1744649544; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IXU7b+hw2K35mM44+WPm89Yl9SFCQNywBx9Tt2FHqig=; b=vL1pY4pnqbwOGNSmA+RfOn2ifutxxHMHhn7HpTep2BhiIi1MbjzbYRZ52JZniICjlD hfm00cKk7Uha+cOkFHaCTghGcIZ8mDzpMSFjJcSI8Lpr43wwECmwQLXgNn7o9KIQC/vN 67lypdsedzIvIWoxDQyJf1+u17pe0xBJYAxl1RYiC5K0FoKgtzuO3G5T626RL85FmpwB J4O07SKlPnau5RS5LPiSQUyGEO5SgYdeXF33YJgASWerWRoLS04U2xyjFFgILdP6T3p1 aibhThs8nfw2XCQ3RZ9vsMRIloW45i8leGFjG2ERfYWeQGJuH1KM+NFHG2K0eLuV/gXO 9X0A== X-Forwarded-Encrypted: i=1; AJvYcCUCiduY1wmPQO4wqmwUnSWAzNEnHEwFu/3y3YupjEND5PPteEi2B+9JX5f5Nl1OGRWRWNuNJTBIRSEQ@vger.kernel.org, AJvYcCUKnBAymwDVsmJWTcRwOdVdGL1e2yFitWGRFVtEe7JgUgqEWJyI2d9iVMH9CEsQIia1RxRQppeXIZd7@vger.kernel.org, AJvYcCVs0Vh1RlEHODuunndrsO19jUK6hWMlPVzcBVBqe5+gEnSFM5+Qg/XdBoNalJHA1Husc1hpcUKZeP6CLNFy@vger.kernel.org X-Gm-Message-State: AOJu0YytPk/hoIKqqqGCym9leHz2budvY4QXWmLzS1bLa33awGAGAR+o ZB/qJIEnxQGUp8QTqpoiFgAPzikF4gSfsrBezt3VRmXkZPcKdQdg X-Gm-Gg: ASbGncsPMEdof+WzJP1kCraY84kOBuiKHRFm45xBperpQnEBgM6nbHkbkVxJme7Yelw UTj/GFYqtRUwFy7rUlt9w4MezID7ShPD5aJvgJlVBmtIZ19Q5GyQmyieY/Kw8exOmYRALpOlhLe Kl24Rd8UwKurUky/QCclECsv8KlcWChv3lKAeprdF74lAR5Hw7L+3y57gK9ocaNqgsk1UC3ucVX 5oC1+m3d6J0jy5sZ+hnTfCwhuEeE6c4LmXUZpQNSJkzcK3PuIImGLkNXDVfPndaVcoRHxEcommF n253PeJMsYyNIQA2aIKE/SByTMsXmtqj97wBOMWnLJ08jt59Dd8YOjua4X0mceyRh7D1AQ== X-Google-Smtp-Source: AGHT+IGHO2eNUgOEgAq+3R0aNl/OuUk9Q1ZBb5Nk21vyCkFSTgd9accY8BKt+8Wdb8TreOumwnr/Qg== X-Received: by 2002:a05:600c:1d12:b0:43c:fd72:f028 with SMTP id 5b1f17b1804b1-43ed0db3ba4mr123936715e9.29.1744044743920; Mon, 07 Apr 2025 09:52:23 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:23 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar , Krzysztof Kozlowski Subject: [PATCH v2 7/9] dt-bindings: clock: renesas,r9a09g057-cpg: Add USB2 PHY and GBETH PTP core clocks Date: Mon, 7 Apr 2025 17:52:00 +0100 Message-ID: <20250407165202.197570-8-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Add definitions for USB2 PHY core clocks and Gigabit Ethernet PTP reference core clocks in the R9A09G057 CPG bindings header file. Signed-off-by: Lad Prabhakar Acked-by: Krzysztof Kozlowski Reviewed-by: Geert Uytterhoeven --- include/dt-bindings/clock/renesas,r9a09g057-cpg.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/dt-bindings/clock/renesas,r9a09g057-cpg.h b/include/dt-bindings/clock/renesas,r9a09g057-cpg.h index 541e6d719bd6..884dbeb1e139 100644 --- a/include/dt-bindings/clock/renesas,r9a09g057-cpg.h +++ b/include/dt-bindings/clock/renesas,r9a09g057-cpg.h @@ -17,5 +17,9 @@ #define R9A09G057_CM33_CLK0 6 #define R9A09G057_CST_0_SWCLKTCK 7 #define R9A09G057_IOTOP_0_SHCLK 8 +#define R9A09G057_USB2_0_CLK_CORE0 9 +#define R9A09G057_USB2_0_CLK_CORE1 10 +#define R9A09G057_GBETH_0_CLK_PTP_REF_I 11 +#define R9A09G057_GBETH_1_CLK_PTP_REF_I 12 #endif /* __DT_BINDINGS_CLOCK_RENESAS_R9A09G057_CPG_H__ */ From patchwork Mon Apr 7 16:52:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041330 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6ABE9217673; Mon, 7 Apr 2025 16:52:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044749; cv=none; b=TFgu+D5P7qmm98Ibvp+16jQkxpEtUNntsyBe1lI4DcS+Ej8TPWPeZQVRi4hp3q0B4HOHEn8sGsV1e22S7JkPQbj5qiVNBQWsZGLlV/qCqHxhbPvojvWGcTZnnYjzYydZV8QuZIkO22hmNtln0ToeOiFmdmIckUZlP4LlpOAmjDc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044749; c=relaxed/simple; bh=ugyqHTFe5dAIP8w+jtcX3EeXua5/7kTcCP6vhlCOgAQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J8JWwUTcRpZi16KDdVJZaqICs5e5J25jgy4zo22nXM0ZZy9Nqcvv8ji8Ri5eaO1kayJyBBS5N7pf/00LbCvYSVRpHa37aTdTNpf/LGzKv1PEGPG9ulOnSo2a6lV7aWsNs4D5Nhe+pbslHT4kbr/SRLdYFkarT7Ogs8wKiz1KnC4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WwQ0Hxgu; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WwQ0Hxgu" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-3912d2c89ecso4092514f8f.2; Mon, 07 Apr 2025 09:52:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044746; x=1744649546; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pWPeody0yl6K0oerpL14uBR8W8cRKVcUF0FRIWM0S0M=; b=WwQ0Hxgubxbn+p8UmPWcZcZ8pNkD+v2aZlOgx1y6HSMapVvyETvDooxC0OM0iUR/ba kUMVCu0F7kHkjRwXFKlDCui21kSMoejgHPTOeVKhqPCw03zniPfoz4H2vRikCUgMBM3o dtKjEFS0Us/CVZwK22HI0NiwSmBfQTp6flK5eC89aElts1atS4vyYWGo9j533+eGHALL FnEq0uUEwDOZnCo9iPCcDPr4ioCDmnMDTgJYkBZQ9CuhPy4mi21SmE+cgWKVe114K1C0 yM1iRqwroW3zUUv1XemBSgRTmfaMdGZW05BkJvzNVc6wAQt+9syw4KlHZt3bHJwP8oox dY0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044746; x=1744649546; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pWPeody0yl6K0oerpL14uBR8W8cRKVcUF0FRIWM0S0M=; b=KC6ihdQrMPaybTQ9VttyIyEOn6dGnYRAjeDlh0WR/fLhV/q7p2DdJ83VcNUV0DfRKE HQAFNvOV51c9Zvk2+uk/dUHNzF2/6YKmFlaBs6EJc0NtCHHifEKNQJyFKwxcJVvT9NXS K5GT6k/RBZKwKMgEEng0swmKnm5hviXIPqTKNcX7RIhfQr1sQipKLr3sLTrzcMZ+X3De PRguoBWTc8oEnVMzHXd2AvesY6TPKkogAKM7TqNiwk/ZeJs0/8IKtnbptecjsrs70ZSE cMeCnQO4w4zAoq5noJdto1kVXlUMd0jBuz7PlTpK8Upiaz20aYCIwRNoiW66Hs/E6b7o utVQ== X-Forwarded-Encrypted: i=1; AJvYcCUcVYzs1I5dBm6XywZ+2mFcwmEKtkn2KiKsk3nZ1LardLoujsHjGV7E7opBut+ur9W0i1J2i+hbsT99@vger.kernel.org, AJvYcCWnGG3aO2AUJw4J/LwqKUHOfhgYMUi/yLDcCUJhRAAhMWpyXvrWf7At/wmka1VI6AbLMX50QBzYec/yk/fh@vger.kernel.org, AJvYcCXOsmRiOYm0Yp1a/4lIPAUc3w3lNeCNSAOwr/ugvdd/hEhZQcxnkMQO+HTtm4lBY9tYyp0SBm6VLzj2@vger.kernel.org X-Gm-Message-State: AOJu0YyIwYW1k43R6AIBSvYmheBg6gkDFJv2/LbVI1tJmefqf/wXkpLi AT6aEfPgKSFbouVikvdgLaBV2LmI00QlFLe43BwhMnb3J6UgDJxpPH1Jmg== X-Gm-Gg: ASbGncuxWJWOSNEGE+HTGHs9ffEsgS+XNkAWLhpylxYe/HKtllBvp57sPW4+GHjAxVF 2RTqLcrBQ7yDMf5/ntjKFtQPxyM2QQxL7oWi4CvyRcMQ5101Q99vVDRbQ8O3AK1+CNGJbsv7bRc 3vUvwf9hWwzeuBD7EUQXZnscovcazI9quen8fVfDG881SjwMJl+7URmSMMYF7ClWI6/acldm1Nd qnVAhs4eq/AnGSAn0D0yK4f9KAyd9sLcNE4+d/LN7rk3h3tG16BsdBk8AaKVfE6gsoK24Pa1slW hb93+WTghHlqnpsJDHRjZxaoxKnZGnlkPQrHj4Pv0OY5MmwuZ5xEpAQgvll+4F/+njTz6g== X-Google-Smtp-Source: AGHT+IHXxY6ovM0ZG5qYlKQeiJq4ZMYZM1+03/DypHLXY5/PcbT/ACLyqKWWwwfBJtc+hiUy5ej0EA== X-Received: by 2002:a05:6000:1449:b0:39c:30f9:1e57 with SMTP id ffacd0b85a97d-39d0de14297mr11481272f8f.18.1744044745583; Mon, 07 Apr 2025 09:52:25 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:25 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 8/9] clk: renesas: r9a09g057: Add clock and reset entries for USB2 Date: Mon, 7 Apr 2025 17:52:01 +0100 Message-ID: <20250407165202.197570-9-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Add clock and reset entries for USB2. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- drivers/clk/renesas/r9a09g057-cpg.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/clk/renesas/r9a09g057-cpg.c b/drivers/clk/renesas/r9a09g057-cpg.c index da20dbaead1f..3c40e36259fe 100644 --- a/drivers/clk/renesas/r9a09g057-cpg.c +++ b/drivers/clk/renesas/r9a09g057-cpg.c @@ -16,7 +16,7 @@ enum clk_ids { /* Core Clock Outputs exported to DT */ - LAST_DT_CORE_CLK = R9A09G057_IOTOP_0_SHCLK, + LAST_DT_CORE_CLK = R9A09G057_GBETH_1_CLK_PTP_REF_I, /* External Input Clocks */ CLK_AUDIO_EXTAL, @@ -41,6 +41,7 @@ enum clk_ids { CLK_PLLDTY_ACPU, CLK_PLLDTY_ACPU_DIV2, CLK_PLLDTY_ACPU_DIV4, + CLK_PLLDTY_DIV8, CLK_PLLDTY_DIV16, CLK_PLLDTY_RCPU, CLK_PLLDTY_RCPU_DIV4, @@ -104,6 +105,7 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { DEF_DDIV(".plldty_acpu", CLK_PLLDTY_ACPU, CLK_PLLDTY, CDDIV0_DIVCTL2, dtable_2_64), DEF_FIXED(".plldty_acpu_div2", CLK_PLLDTY_ACPU_DIV2, CLK_PLLDTY_ACPU, 1, 2), DEF_FIXED(".plldty_acpu_div4", CLK_PLLDTY_ACPU_DIV4, CLK_PLLDTY_ACPU, 1, 4), + DEF_FIXED(".plldty_div8", CLK_PLLDTY_DIV8, CLK_PLLDTY, 1, 8), DEF_FIXED(".plldty_div16", CLK_PLLDTY_DIV16, CLK_PLLDTY, 1, 16), DEF_DDIV(".plldty_rcpu", CLK_PLLDTY_RCPU, CLK_PLLDTY, CDDIV3_DIVCTL2, dtable_2_64), DEF_FIXED(".plldty_rcpu_div4", CLK_PLLDTY_RCPU_DIV4, CLK_PLLDTY_RCPU, 1, 4), @@ -126,6 +128,8 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { DEF_DDIV("ca55_0_coreclk3", R9A09G057_CA55_0_CORE_CLK3, CLK_PLLCA55, CDDIV1_DIVCTL3, dtable_1_8), DEF_FIXED("iotop_0_shclk", R9A09G057_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1), + DEF_FIXED("usb2_0_clk_core0", R9A09G057_USB2_0_CLK_CORE0, CLK_QEXTAL, 1, 1), + DEF_FIXED("usb2_0_clk_core1", R9A09G057_USB2_0_CLK_CORE1, CLK_QEXTAL, 1, 1), }; static const struct rzv2h_mod_clk r9a09g057_mod_clks[] __initconst = { @@ -219,6 +223,16 @@ static const struct rzv2h_mod_clk r9a09g057_mod_clks[] __initconst = { BUS_MSTOP(8, BIT(4))), DEF_MOD("sdhi_2_aclk", CLK_PLLDTY_ACPU_DIV4, 10, 14, 5, 14, BUS_MSTOP(8, BIT(4))), + DEF_MOD("usb2_0_u2h0_hclk", CLK_PLLDTY_DIV8, 11, 3, 5, 19, + BUS_MSTOP(7, BIT(7))), + DEF_MOD("usb2_0_u2h1_hclk", CLK_PLLDTY_DIV8, 11, 4, 5, 20, + BUS_MSTOP(7, BIT(8))), + DEF_MOD("usb2_0_u2p_exr_cpuclk", CLK_PLLDTY_ACPU_DIV4, 11, 5, 5, 21, + BUS_MSTOP(7, BIT(9))), + DEF_MOD("usb2_0_pclk_usbtst0", CLK_PLLDTY_ACPU_DIV4, 11, 6, 5, 22, + BUS_MSTOP(7, BIT(10))), + DEF_MOD("usb2_0_pclk_usbtst1", CLK_PLLDTY_ACPU_DIV4, 11, 7, 5, 23, + BUS_MSTOP(7, BIT(11))), DEF_MOD("cru_0_aclk", CLK_PLLDTY_ACPU_DIV2, 13, 2, 6, 18, BUS_MSTOP(9, BIT(4))), DEF_MOD_NO_PM("cru_0_vclk", CLK_PLLVDO_CRU0, 13, 3, 6, 19, @@ -286,6 +300,10 @@ static const struct rzv2h_reset r9a09g057_resets[] __initconst = { DEF_RST(10, 7, 4, 24), /* SDHI_0_IXRST */ DEF_RST(10, 8, 4, 25), /* SDHI_1_IXRST */ DEF_RST(10, 9, 4, 26), /* SDHI_2_IXRST */ + DEF_RST(10, 12, 4, 29), /* USB2_0_U2H0_HRESETN */ + DEF_RST(10, 13, 4, 30), /* USB2_0_U2H1_HRESETN */ + DEF_RST(10, 14, 4, 31), /* USB2_0_U2P_EXL_SYSRST */ + DEF_RST(10, 15, 5, 0), /* USB2_0_PRESETN */ DEF_RST(12, 5, 5, 22), /* CRU_0_PRESETN */ DEF_RST(12, 6, 5, 23), /* CRU_0_ARESETN */ DEF_RST(12, 7, 5, 24), /* CRU_0_S_RESETN */ From patchwork Mon Apr 7 16:52:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar X-Patchwork-Id: 14041331 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EE082165EA; Mon, 7 Apr 2025 16:52:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044750; cv=none; b=QBS2IcZh9vk9paHFsdQ9HQZCPpRFHpFvjXKVRtvnPH165DNatOdMxySFY7FtpVUjV+lecVPPW6xqkDRrRnevyXiqDJgt5T9og8xycbzeNYZkEUAgTGb21/nZPBGuR40HUqLPVte9XvqwI+Hsd13ORfeBaGQFErNKTcJzcoLLT8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744044750; c=relaxed/simple; bh=zBmztjqaLSQ8FjjYALCB3BVxmox429bkI2uo/uzjB6M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PpG6UGBVB0ER7BCcAaCMcWli551RHwGpS0RwYgWbTyO/KpEdGV7ZBSyLCCyRQgbuniVuTC4GfktW6R4kkYZM71wk478nUWz75So280IT765f7xHEL47VbMFLYk/H4YMV2ICXpl7ZKuoYNEdqFGXNiMUZMeP1kePou5GsmKH56Ys= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DfT/r8YO; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DfT/r8YO" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-43cfba466b2so46047625e9.3; Mon, 07 Apr 2025 09:52:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744044747; x=1744649547; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=THekJI9YUzNNtdWRmefKg2uKRp0jBqvId+F8Fzl+4HY=; b=DfT/r8YO79zerh3r/LjunBvDp6PVnS6w+HtqMLUl+l1oZ8AdDuCt6wF1pPu+hTWTVu ept2RWUe/M4O7Hargc2q6hAaw8DFmEK/beAoPkq5iuRb6hxCClIZAC+SBuuAbFsliseu 3DvMW+YRlOQfyIHdjXALPsXb/tEBhMa0z7kofXNPJeVnKRV2SAw0SsbX5N46wPpYn1fn HxYzaKRkcHErftmzMv3gNi9VpR8ezklnnG3Ju0XO1qZysgamajeeDn3D2EJJxtE1A+3z xZ+UhhtKD97+K7vcAnV2shgEGh7RVQJlUlgM9dJVVPdzcs2hlm4rl08+ObSOSJDCszMX eDrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744044747; x=1744649547; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=THekJI9YUzNNtdWRmefKg2uKRp0jBqvId+F8Fzl+4HY=; b=Fn1ynlebabUb3WagReR4hI0DOVcpaTbbDOJnivxznATCjrT5KvmuW05TDVcZZ7Fkjt lk4Jh8GzOdGsM4sV1+JqsfddXaDwfBQh/ahDoxxAd5eUeaWru/MViBVlvL3Fvgw4uIs7 qVJy2XOssYfysV/eZ6Bm9D8IfIt8CmGoNmdOucRH/7VmUS5iKPjzfHNPsVMx1BWxKLAB S7lcKVQj3pAmiAngpdrGkyMlSUiE61kh2lDfodtstNsU4DyAIppRxJ7gFXLy6rfo5eWT I6LkFoWgV6l91SV0yT5gBQCtGmoP/xlP2bZsJ7831GuqJ8srzg0sN6stZSR4J8ERimV2 TXcg== X-Forwarded-Encrypted: i=1; AJvYcCUHwf0sZVWQkYmWyz+rGgYBJBhmeSeOXgwge3JXlAmda4WRUDqFkBwovjtelvAExAbpCzg08C1f1Xj0T5Ra@vger.kernel.org, AJvYcCVh01U54uBL0QYmmvUqSu1YktU2mHfL+SDXnljS5Id8Dn4B8HtuQ87BCQvBgpNX1og+INgmWCJW7WCp@vger.kernel.org, AJvYcCXzP7n4y4dfrrJ/e27o7m9aPX06E5U1QBPhNLxjbem28UaAk73ZdBYh1Z7+pWHgKBp8aZWQRXv/mD+l@vger.kernel.org X-Gm-Message-State: AOJu0YzeGVbFXKnirSFb7gHroI8OkdthVVCTC9GYV/8DoAHu8LOm11of /6su0veEOb6ViLGiVb/ZhTn6QDJPnYN3dpYKpQui3G2wqTnPFNYv X-Gm-Gg: ASbGncvSnWzl7xoMZLTO/SrAEBntKu1a/s6KcraX5H1e5FskHlLjLZi3Wb7a94nJPF7 bfHdeJcD3OmxX2vZ+xpa9MD1zDDsogrygXufJXM1HtSX9gbIIC/Ly5n2WsDp7qOclFrrrCYZm0G yJtzgCSl9S4iDoarz2MPhhxlCuf0eg1SNMtQ8yneWSAScnR5vf8a7aiFkb7T9S8Ke0tSSQPMFcy e5Ir1s+LfxYKpJyKAWYvxc3wzPRG8gGNOttDM3fGrc+8eiOJe6KWQoBIcWuU7tjk5CmPJq8lj43 2DtWGtsRKCFpXbwz+Qe2AsKvVIFRaXvX4zbb+O3ExfidbWjLLVDypqwtBazZTA/C68v2fcsAHkC UUrkc X-Google-Smtp-Source: AGHT+IH38nxrx51hlfO0odZaRY9B9aNs0+tJwFUxHQFmNQ1mD4yd8oltYm3RpK5U+Mch14mMo8WKOg== X-Received: by 2002:a05:600c:3549:b0:43c:e481:3353 with SMTP id 5b1f17b1804b1-43ecf90aae2mr142732175e9.17.1744044746713; Mon, 07 Apr 2025 09:52:26 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:78b9:80c2:5373:1b49]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43ec16ba978sm139272305e9.23.2025.04.07.09.52.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 09:52:26 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 9/9] clk: renesas: r9a09g057: Add clock and reset entries for GBETH0/1 Date: Mon, 7 Apr 2025 17:52:02 +0100 Message-ID: <20250407165202.197570-10-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250407165202.197570-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Lad Prabhakar Add clock and reset entries for GBETH instances. Include core clocks for PTP, sourced from PLLETH, and add PLLs, dividers, and static mux clocks used as clock sources for the GBETH IP. Signed-off-by: Lad Prabhakar --- drivers/clk/renesas/r9a09g057-cpg.c | 72 +++++++++++++++++++++++++++++ drivers/clk/renesas/rzv2h-cpg.h | 11 +++++ 2 files changed, 83 insertions(+) diff --git a/drivers/clk/renesas/r9a09g057-cpg.c b/drivers/clk/renesas/r9a09g057-cpg.c index 3c40e36259fe..057bfa0e2a57 100644 --- a/drivers/clk/renesas/r9a09g057-cpg.c +++ b/drivers/clk/renesas/r9a09g057-cpg.c @@ -29,6 +29,7 @@ enum clk_ids { CLK_PLLDTY, CLK_PLLCA55, CLK_PLLVDO, + CLK_PLLETH, CLK_PLLGPU, /* Internal Core Clocks */ @@ -49,6 +50,14 @@ enum clk_ids { CLK_PLLVDO_CRU1, CLK_PLLVDO_CRU2, CLK_PLLVDO_CRU3, + CLK_PLLETH_DIV_250_FIX, + CLK_PLLETH_DIV_125_FIX, + CLK_CSDIV_PLLETH_GBE0, + CLK_CSDIV_PLLETH_GBE1, + CLK_SMUX2_GBE0_TXCLK, + CLK_SMUX2_GBE0_RXCLK, + CLK_SMUX2_GBE1_TXCLK, + CLK_SMUX2_GBE1_RXCLK, CLK_PLLGPU_GEAR, /* Module Clocks */ @@ -78,6 +87,19 @@ static const struct clk_div_table dtable_2_64[] = { {0, 0}, }; +static const struct clk_div_table dtable_2_100[] = { + {0, 2}, + {1, 10}, + {2, 100}, + {0, 0}, +}; + +/* Mux clock tables */ +static const char * const smux2_gbe0_rxclk[] = { ".plleth_gbe0", "et0-rxc-rxclk" }; +static const char * const smux2_gbe0_txclk[] = { ".plleth_gbe0", "et0-txc-txclk" }; +static const char * const smux2_gbe1_rxclk[] = { ".plleth_gbe1", "et1-rxc-rxclk" }; +static const char * const smux2_gbe1_txclk[] = { ".plleth_gbe1", "et1-txc-txclk" }; + static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { /* External Clock Inputs */ DEF_INPUT("audio_extal", CLK_AUDIO_EXTAL), @@ -90,6 +112,7 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { DEF_FIXED(".plldty", CLK_PLLDTY, CLK_QEXTAL, 200, 3), DEF_PLL(".pllca55", CLK_PLLCA55, CLK_QEXTAL, PLLCA55), DEF_FIXED(".pllvdo", CLK_PLLVDO, CLK_QEXTAL, 105, 2), + DEF_FIXED(".plleth", CLK_PLLETH, CLK_QEXTAL, 125, 3), DEF_PLL(".pllgpu", CLK_PLLGPU, CLK_QEXTAL, PLLGPU), /* Internal Core Clocks */ @@ -115,6 +138,17 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { DEF_DDIV(".pllvdo_cru2", CLK_PLLVDO_CRU2, CLK_PLLVDO, CDDIV4_DIVCTL1, dtable_2_4), DEF_DDIV(".pllvdo_cru3", CLK_PLLVDO_CRU3, CLK_PLLVDO, CDDIV4_DIVCTL2, dtable_2_4), + DEF_FIXED(".plleth_250_fix", CLK_PLLETH_DIV_250_FIX, CLK_PLLETH, 1, 4), + DEF_FIXED(".plleth_125_fix", CLK_PLLETH_DIV_125_FIX, CLK_PLLETH_DIV_250_FIX, 1, 2), + DEF_CSDIV(".plleth_gbe0", CLK_CSDIV_PLLETH_GBE0, + CLK_PLLETH_DIV_250_FIX, CSDIV0_DIVCTL0, dtable_2_100), + DEF_CSDIV(".plleth_gbe1", CLK_CSDIV_PLLETH_GBE1, + CLK_PLLETH_DIV_250_FIX, CSDIV0_DIVCTL1, dtable_2_100), + DEF_SMUX(".smux2_gbe0_txclk", CLK_SMUX2_GBE0_TXCLK, SSEL0_SELCTL2, smux2_gbe0_txclk), + DEF_SMUX(".smux2_gbe0_rxclk", CLK_SMUX2_GBE0_RXCLK, SSEL0_SELCTL3, smux2_gbe0_rxclk), + DEF_SMUX(".smux2_gbe1_txclk", CLK_SMUX2_GBE1_TXCLK, SSEL1_SELCTL0, smux2_gbe1_txclk), + DEF_SMUX(".smux2_gbe1_rxclk", CLK_SMUX2_GBE1_RXCLK, SSEL1_SELCTL1, smux2_gbe1_rxclk), + DEF_DDIV(".pllgpu_gear", CLK_PLLGPU_GEAR, CLK_PLLGPU, CDDIV3_DIVCTL1, dtable_2_64), /* Core Clocks */ @@ -130,6 +164,10 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { DEF_FIXED("iotop_0_shclk", R9A09G057_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1), DEF_FIXED("usb2_0_clk_core0", R9A09G057_USB2_0_CLK_CORE0, CLK_QEXTAL, 1, 1), DEF_FIXED("usb2_0_clk_core1", R9A09G057_USB2_0_CLK_CORE1, CLK_QEXTAL, 1, 1), + DEF_FIXED("gbeth_0_clk_ptp_ref_i", R9A09G057_GBETH_0_CLK_PTP_REF_I, + CLK_PLLETH_DIV_125_FIX, 1, 1), + DEF_FIXED("gbeth_1_clk_ptp_ref_i", R9A09G057_GBETH_1_CLK_PTP_REF_I, + CLK_PLLETH_DIV_125_FIX, 1, 1), }; static const struct rzv2h_mod_clk r9a09g057_mod_clks[] __initconst = { @@ -233,6 +271,38 @@ static const struct rzv2h_mod_clk r9a09g057_mod_clks[] __initconst = { BUS_MSTOP(7, BIT(10))), DEF_MOD("usb2_0_pclk_usbtst1", CLK_PLLDTY_ACPU_DIV4, 11, 7, 5, 23, BUS_MSTOP(7, BIT(11))), + DEF_MOD_EXTERNAL("gbeth_0_clk_tx_i", CLK_SMUX2_GBE0_TXCLK, 11, 8, 5, 24, + BUS_MSTOP(8, BIT(5)), + 0x300, 8, 1), + DEF_MOD_EXTERNAL("gbeth_0_clk_rx_i", CLK_SMUX2_GBE0_RXCLK, 11, 9, 5, 25, + BUS_MSTOP(8, BIT(5)), + 0x300, 12, 1), + DEF_MOD_EXTERNAL("gbeth_0_clk_tx_180_i", CLK_SMUX2_GBE0_TXCLK, 11, 10, 5, 26, + BUS_MSTOP(8, BIT(5)), + 0x300, 8, 1), + DEF_MOD_EXTERNAL("gbeth_0_clk_rx_180_i", CLK_SMUX2_GBE0_RXCLK, 11, 11, 5, 27, + BUS_MSTOP(8, BIT(5)), + 0x300, 12, 1), + DEF_MOD("gbeth_0_aclk_csr_i", CLK_PLLDTY_DIV8, 11, 12, 5, 28, + BUS_MSTOP(8, BIT(5))), + DEF_MOD("gbeth_0_aclk_i", CLK_PLLDTY_DIV8, 11, 13, 5, 29, + BUS_MSTOP(8, BIT(5))), + DEF_MOD_EXTERNAL("gbeth_1_clk_tx_i", CLK_SMUX2_GBE1_TXCLK, 11, 14, 5, 30, + BUS_MSTOP(8, BIT(6)), + 0x304, 8, 1), + DEF_MOD_EXTERNAL("gbeth_1_clk_rx_i", CLK_SMUX2_GBE1_RXCLK, 11, 15, 5, 31, + BUS_MSTOP(8, BIT(6)), + 0x304, 12, 1), + DEF_MOD_EXTERNAL("gbeth_1_clk_tx_180_i", CLK_SMUX2_GBE1_TXCLK, 12, 0, 6, 0, + BUS_MSTOP(8, BIT(6)), + 0x304, 8, 1), + DEF_MOD_EXTERNAL("gbeth_1_clk_rx_180_i", CLK_SMUX2_GBE1_RXCLK, 12, 1, 6, 1, + BUS_MSTOP(8, BIT(6)), + 0x304, 12, 1), + DEF_MOD("gbeth_1_aclk_csr_i", CLK_PLLDTY_DIV8, 12, 2, 6, 2, + BUS_MSTOP(8, BIT(6))), + DEF_MOD("gbeth_1_aclk_i", CLK_PLLDTY_DIV8, 12, 3, 6, 3, + BUS_MSTOP(8, BIT(6))), DEF_MOD("cru_0_aclk", CLK_PLLDTY_ACPU_DIV2, 13, 2, 6, 18, BUS_MSTOP(9, BIT(4))), DEF_MOD_NO_PM("cru_0_vclk", CLK_PLLVDO_CRU0, 13, 3, 6, 19, @@ -304,6 +374,8 @@ static const struct rzv2h_reset r9a09g057_resets[] __initconst = { DEF_RST(10, 13, 4, 30), /* USB2_0_U2H1_HRESETN */ DEF_RST(10, 14, 4, 31), /* USB2_0_U2P_EXL_SYSRST */ DEF_RST(10, 15, 5, 0), /* USB2_0_PRESETN */ + DEF_RST(11, 0, 5, 1), /* GBETH_0_ARESETN_I */ + DEF_RST(11, 1, 5, 2), /* GBETH_1_ARESETN_I */ DEF_RST(12, 5, 5, 22), /* CRU_0_PRESETN */ DEF_RST(12, 6, 5, 23), /* CRU_0_ARESETN */ DEF_RST(12, 7, 5, 24), /* CRU_0_S_RESETN */ diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h index c64cfead6dc1..e730179d92aa 100644 --- a/drivers/clk/renesas/rzv2h-cpg.h +++ b/drivers/clk/renesas/rzv2h-cpg.h @@ -93,10 +93,13 @@ struct smuxed { .width = (_width), \ }) +#define CPG_SSEL0 (0x300) +#define CPG_SSEL1 (0x304) #define CPG_CDDIV0 (0x400) #define CPG_CDDIV1 (0x404) #define CPG_CDDIV3 (0x40C) #define CPG_CDDIV4 (0x410) +#define CPG_CSDIV0 (0x500) #define CDDIV0_DIVCTL1 DDIV_PACK(CPG_CDDIV0, 4, 3, 1) #define CDDIV0_DIVCTL2 DDIV_PACK(CPG_CDDIV0, 8, 3, 2) @@ -111,6 +114,14 @@ struct smuxed { #define CDDIV4_DIVCTL1 DDIV_PACK(CPG_CDDIV4, 4, 1, 17) #define CDDIV4_DIVCTL2 DDIV_PACK(CPG_CDDIV4, 8, 1, 18) +#define CSDIV0_DIVCTL0 DDIV_PACK(CPG_CSDIV0, 0, 2, CSDIV_NO_MON) +#define CSDIV0_DIVCTL1 DDIV_PACK(CPG_CSDIV0, 4, 2, CSDIV_NO_MON) + +#define SSEL0_SELCTL2 SMUX_PACK(CPG_SSEL0, 8, 1) +#define SSEL0_SELCTL3 SMUX_PACK(CPG_SSEL0, 12, 1) +#define SSEL1_SELCTL0 SMUX_PACK(CPG_SSEL1, 0, 1) +#define SSEL1_SELCTL1 SMUX_PACK(CPG_SSEL1, 4, 1) + #define BUS_MSTOP_IDX_MASK GENMASK(31, 16) #define BUS_MSTOP_BITS_MASK GENMASK(15, 0) #define BUS_MSTOP(idx, mask) (FIELD_PREP_CONST(BUS_MSTOP_IDX_MASK, (idx)) | \