From nobody Mon Feb 9 03:05:17 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.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 38A85326948 for ; Tue, 3 Feb 2026 11:02:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116547; cv=none; b=akvVsNGlOoy0CqK9ZfOQddR6nJfnK8HS5gfRkM2/DSihhA5PYryv9piA74l5V3o8BP8LrR1OgYFGGM5IeyHg9wDOqrWqG/UxK8twIUYMFLqjvjppi8dJdobHuan2372DoslBfqwV9Og3O5CkxMvdD/cFEXX/hr/MO9ymYQITAiY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116547; c=relaxed/simple; bh=vOflt+atRten/Nqst1jjUTFAZH6JuJBciL+/IDQ7kto=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=siaAjosd0AOI9mP+RUx6wK7JBu1bVWrBBF+9SqAPz0LmvsxXqbpJ5QnY+CBDFJMtAQo/kI0kEddJKcBJZ1oW61zgOKmqSJDl6Kc9YDde0GS+QDh8Q03Jjq+HM0oW1+OlkCKhZTIH6QrTeWDPq9yVahoCJo//Mv8UrzvxK2k7qZ4= 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=E3Fx09ia; arc=none smtp.client-ip=209.85.128.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="E3Fx09ia" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4806ce0f97bso46555615e9.0 for ; Tue, 03 Feb 2026 03:02:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770116544; x=1770721344; 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=KTOB99JSWbdOr4Zx2FpEkBOJM3Ss0Vn+3hSwsBCxk+E=; b=E3Fx09iah366lXACKYr5/Z4PFlHVFCFRtki11D+uj7pSPtWyz8FXgr0h1jg5sxtyl7 MQ+4NIv+G5wGR/8GPDtg42xeS5/3kfCCcSRsqVJI5sBpVhsUkIR6+xg58Dtm+0Wo0RWJ qcit3rPPXbAmJmDqs3wLxrFa9WEuPh6MONII/2oz1u7M1cbPtlbpdfRm4a0KBOh9sk4t vYnCGSj6crVE60gCLh4mCsxgs5TaU7L7k/f2VBJvo1E2KuUvntDGnAWYBMBg6ZB46WHa 05bsGCRPXb2L9sC/s7VfDmnxh5OMyl2/FNAAKskv73QPNEbkkZyE0cLtlgE8qFgs7CH5 ehzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770116544; x=1770721344; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KTOB99JSWbdOr4Zx2FpEkBOJM3Ss0Vn+3hSwsBCxk+E=; b=WQRIQtgmRd+xPAm9zswkOGPs5TQgOwEgJCQ40A+k2dpLtS1pYMY+dh7XwUxK0BCjH2 6xqUP5llJZfSuN69nfUY+Omm/STmc7h2quHPXgACt8Nfkadev+Wv9CFoaW7+kEYZ3wea wNICtIOG7R3/xPM36d+0OOwP27u264+ktycoH+ldDd3XBhRtyNLNO7Y6uuvBeek8z2Qu at8wtuAJclP8wSjpAsqXFcyx1eYkDitea+qgtjofO+VNaVjDKAsDbAExFE+OmTT8ScWr 0FJJd25XhYAzK50auhPISn9iBiowZTYNzP4LvXv5RGlzjNTo9uvXosQaHfvoUzdFdnRK 2gOg== X-Forwarded-Encrypted: i=1; AJvYcCXFmZ9pbokbdcBecz3jmZWS8TAofxWddfZ4E6AYhPJuwJF9h24J5KAeVaf5m92msVSoCMRBXKVcHY27uUM=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0DPeONN+i+NfhrxX0SYKOBqqFXZ2MYoKRiKsxm3Nj/jgAJVkn TPesvZobVyOaZg91/cNkfAMhS8T8akIRnYeyrNGLuacqu1E/Vicr8QZp X-Gm-Gg: AZuq6aJDzkq2J0pG6Fz3xm7rYzBp2hT8fy+oDfgJaSfd7uuEZc6bpJR9aALgOd41kvh l1NVTH0SlwEHhwcUjnkJ5vvab+bmsGs6J5+67lDG3Xoja6lwluCEjXCWHziwkdYaXev2t2fLP9g PYXQc023D2qLCoPnAmxtZ0TmdN69MjJwWnOTkRf+ILwnxx/ENpoIZkZ4mAtmZ4T9gEr7oAbAqpt vxXsVuwb0DwUUkpc6SJ6o1ANCbEW/P16fOMxfb4Cfagro8X7pOhQRtHyenleHs/mC6h+lI5Z3Fi rzRL2NkmVonFzchfEPLqqo29crmW8HYFfnJXFkLaneNbVlS0sVMGlSmd5RixMYdC9qYJ+cNFngk LjuABgSVCIvD8Tv5ek7dwjbHN6TkxXylk6SRROGxwhQe8qDhlRD2NKbjEixFLlSGUq0XFhIJx8o 57t8LamiGEfxasZnbndQ== X-Received: by 2002:a05:600c:474f:b0:480:6ab1:ed0d with SMTP id 5b1f17b1804b1-482db452587mr188088265e9.9.1770116544355; Tue, 03 Feb 2026 03:02:24 -0800 (PST) Received: from biju.lan ([2a00:23c4:a758:8a01:9cd9:f748:166d:55fc]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e132356dsm54110495f8f.33.2026.02.03.03.02.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 03:02:23 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd Cc: Biju Das , linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das , Claudiu Beznea Subject: [PATCH v3 1/4] clk: renesas: rzg2l: Drop a check in rzg3s_cpg_pll_clk_recalc_rate() Date: Tue, 3 Feb 2026 11:02:12 +0000 Message-ID: <20260203110220.265748-2-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> References: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das Drop the unwanted check in rzg3s_cpg_pll_clk_recalc_rate() as the function is SoC specific. Signed-off-by: Biju Das Reviewed-by: Claudiu Beznea --- v2->v3: * Collected tag v1->v2: * No change --- drivers/clk/renesas/rzg2l-cpg.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cp= g.c index f4deb5d3b837..945e31c8f161 100644 --- a/drivers/clk/renesas/rzg2l-cpg.c +++ b/drivers/clk/renesas/rzg2l-cpg.c @@ -1107,9 +1107,6 @@ static unsigned long rzg3s_cpg_pll_clk_recalc_rate(st= ruct clk_hw *hw, u32 nir, nfr, mr, pr, val, setting; u64 rate; =20 - if (pll_clk->type !=3D CLK_TYPE_G3S_PLL) - return parent_rate; - setting =3D GET_REG_SAMPLL_SETTING(pll_clk->conf); if (setting) { val =3D readl(priv->base + setting); --=20 2.43.0 From nobody Mon Feb 9 03:05:17 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 D025E318B8F for ; Tue, 3 Feb 2026 11:02:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116549; cv=none; b=p5XW0O+Gw9SSeZFiaJMOGLLHfTD/Jxb5wP5HJUZaUvIWhErI9Vwq61E6vsNeugx2FePfaLk60B7yhlH1TXdHm/Jn7vYGraBChH+9k7oAZ9WVyCKlSXI3N9SqTpiSLHoeTBXn2u8FGMwWU0OPZbESEw/N0DWKaxHl+D6c59mGvq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116549; c=relaxed/simple; bh=nEqdBKz4VECTzqwClXZN5WqVryPx/I7ErTRAmroET1A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gAVzMDZhvHbUYMKueb4skozsR6H0tAzRZ9mO6mGAei8GnbYyAaGcMrvlFTgbAaA2ZBq/QqncebhrAhw7ZCs+yuHkXrIkZdHMI8hHu7FYYiEowy+zGMwQM68n7+VGbHNvQK3RnHr1oaZ5PryE7uOGMhjTf/8wtVjle5ngIMV4TeY= 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=lKnhzpF2; arc=none smtp.client-ip=209.85.128.49 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="lKnhzpF2" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4806dffc64cso42055085e9.1 for ; Tue, 03 Feb 2026 03:02:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770116546; x=1770721346; 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=wOhOjnDFHcw5y9HMijd81gXYk/b2guKR+KyKpVfgXFM=; b=lKnhzpF2eD5JMzcFRZM05etRyz4jMX5EmcmFM44YcPKfWKTMjj/zYqB+ileTnTVHSY PTX8rdf50C9Aiuj+17BUnBTTYsvs9S6COXuWgZCOpC8BOuL/OroJpCyjdMtFvQEHb5Tb fiBR2bPpUEbDaMXsp74otk+p6fr39h26sKTjIOFAJXO3G1/p2QW4zGGhbpCfiiwN8GRQ owVhNC0KbcAtmQ47+aLRRI+3HD7b4ChX2ByiuLiHfUn2AntRrD5r2jaeTxnpn5QEub0Z z2T7Hy0MBqTBS+nmHo/CFntCfnVJnVoVGir4vRH3W4iaYwjXWUth+9JQDB//DBvt9Rzb zclw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770116546; x=1770721346; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wOhOjnDFHcw5y9HMijd81gXYk/b2guKR+KyKpVfgXFM=; b=ZtU9KrBoN5R+gkpyrfTYkqUXgmOkcMG5YSL9+vJiLE7nhqakS+fkA2N4QEiAoE03PO WBW8NjN1UOk5ymVWbi5Hkti7Oy1sNb94Bws4cRSFryNb4VPC8H8VCgXpsrYc3S+m2Tcw mr5YQoJmIbcvzyjJ96Ud3vcYbI1S6MUeRSF9es+/EED7DMeMtGJ+oA/oGEdk8QpzxUI2 b90dl/wRzhYWTxaXY+31+4NnohV2huMH9mIJeIztr6TxS+QnKy1794+zD9Lw/qrbIkus wIgPVIPmgyhzlpj3wsoArOGBjZItUbQuMpVcIsmHBvqPbCEBueokbgCXLYcB8C+sU3AY MUPg== X-Forwarded-Encrypted: i=1; AJvYcCX1crVLF8oYYLbc9wdGMf05GLGNyKGnw1/pe6EOyKCztVHvSBqucToe72JJVWe3UbQLcf7mGnnDnY6IHzk=@vger.kernel.org X-Gm-Message-State: AOJu0YwSwCRHKeZnAy6duJoGcn1pRtopF2SsZtxFETsSmAZs47FJW2KK VXer9bESgwUN46NSX3BTk30Hw9MjMt/8m+GW/xyBJl1CB9ZHN9yOv2lt X-Gm-Gg: AZuq6aLl6sAPQSbZBibv7FqwlzzemDoeeGzJLSUmy0hTl6cVBRmDn80/dQjzFznrLTs 6Pktcb4qIjz8WCou/aL0SGXA+yZmp5+kZCWqdu/C62ahcEI1rH+C2G+coVnA6Q+IZa43UP6wf0c 2cnNRymolFkH872ZgRrF7IJphIjQWASLUIb+ELIn7LR0+/jQGF88g/0O6FnxFNhrh/c+oq/ZjjA vsP4KGb2mIs3LLZfh4G0CM7E/TyEA4dYPsvytJ4rVTeGJebsP1576pxdwFK0QMWQXjIV57BVJoI ivwuAU1mFYoRKNTUa17W9afSY/Z4O+mNXpGL2V8R0OTCH4ZT9b3smmwbHGY+jwCjsJxkUcnpaqE 7w+0tjJxzope5q3Iu/9K8xuxKacW0P9PrePI0o3O+z6a1mv5xGBFBdW02eXkA6R6ZzIzVQDtJuN TUgywK8NrkZ6jvQTtnTEa7nj3P3w+N X-Received: by 2002:a05:600c:b99:b0:47a:8154:33e3 with SMTP id 5b1f17b1804b1-482db49a483mr192887165e9.28.1770116546128; Tue, 03 Feb 2026 03:02:26 -0800 (PST) Received: from biju.lan ([2a00:23c4:a758:8a01:9cd9:f748:166d:55fc]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e132356dsm54110495f8f.33.2026.02.03.03.02.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 03:02:24 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd Cc: Biju Das , linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH v3 2/4] clk: renesas: rzg2l: Add support for enabling PLLs Date: Tue, 3 Feb 2026 11:02:13 +0000 Message-ID: <20260203110220.265748-3-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> References: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das Add support for enabling PLL clocks in the RZ/G3L CPG driver to turn off some PLLs, if they are not in use(eg: PLL6, PLL7) Introduce `is_enabled` and `enable` callbacks to handle PLL state transitions. With the `enable` callback, PLL will be turned ON only when the PLL consumer device is enabled; otherwise, it will remain off. Define new macros for PLL standby and monitor registers to facilitate this process. Signed-off-by: Biju Das --- v2->v3: * No change v1->v2: * No change --- drivers/clk/renesas/rzg2l-cpg.c | 67 +++++++++++++++++++++++++++++++++ drivers/clk/renesas/rzg2l-cpg.h | 4 ++ 2 files changed, 71 insertions(+) diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cp= g.c index 945e31c8f161..7e569a7c8fc2 100644 --- a/drivers/clk/renesas/rzg2l-cpg.c +++ b/drivers/clk/renesas/rzg2l-cpg.c @@ -58,6 +58,13 @@ #define RZG3S_DIV_NF GENMASK(12, 1) #define RZG3S_SEL_PLL BIT(0) =20 +#define RZG3L_PLL_STBY_OFFSET(x) (GET_REG_SAMPLL_CLK1(x) - 0x4) +#define RZG3L_PLL_STBY_RESETB BIT(0) +#define RZG3L_PLL_STBY_RESETB_WEN BIT(16) +#define RZG3L_PLL_MON_OFFSET(x) (GET_REG_SAMPLL_CLK1(x) + 0x8) +#define RZG3L_PLL_MON_RESETB BIT(0) +#define RZG3L_PLL_MON_LOCK BIT(4) + #define CLK_ON_R(reg) (reg) #define CLK_MON_R(reg) (0x180 + (reg)) #define CLK_RST_R(reg) (reg) @@ -1175,6 +1182,63 @@ rzg2l_cpg_pll_clk_register(const struct cpg_core_clk= *core, return pll_clk->hw.clk; } =20 +static int rzg3l_cpg_pll_clk_is_enabled(struct clk_hw *hw) +{ + struct pll_clk *pll_clk =3D to_pll(hw); + struct rzg2l_cpg_priv *priv =3D pll_clk->priv; + u32 val =3D readl(priv->base + RZG3L_PLL_MON_OFFSET(pll_clk->conf)); + u32 mon_val =3D RZG3L_PLL_MON_RESETB | RZG3L_PLL_MON_LOCK; + + /* Ensure both RESETB and LOCK bits are set */ + return (mon_val =3D=3D (val & mon_val)); +} + +static int rzg3l_cpg_pll_clk_endisable(struct clk_hw *hw, bool enable) +{ + struct pll_clk *pll_clk =3D to_pll(hw); + struct rzg2l_cpg_priv *priv =3D pll_clk->priv; + u32 stby_offset, mon_offset; + u32 val, mon_val; + int ret; + + stby_offset =3D RZG3L_PLL_STBY_OFFSET(pll_clk->conf); + mon_offset =3D RZG3L_PLL_MON_OFFSET(pll_clk->conf); + + if (enable) { + val =3D RZG3L_PLL_STBY_RESETB_WEN | RZG3L_PLL_STBY_RESETB; + mon_val =3D RZG3L_PLL_MON_RESETB | RZG3L_PLL_MON_LOCK; + } else { + val =3D RZG3L_PLL_STBY_RESETB_WEN; + mon_val =3D 0; + } + + writel(val, priv->base + stby_offset); + + /* ensure PLL is in normal/stanby mode */ + ret =3D readl_poll_timeout_atomic(priv->base + mon_offset, val, mon_val = =3D=3D + (val & (RZG3L_PLL_MON_RESETB | RZG3L_PLL_MON_LOCK)), + 10, 100); + if (ret) + dev_err(priv->dev, "Failed to %s PLL 0x%x/%pC\n", enable ? + "enable" : "disable", stby_offset, hw->clk); + + return ret; +} + +static int rzg3l_cpg_pll_clk_enable(struct clk_hw *hw) +{ + if (rzg3l_cpg_pll_clk_is_enabled(hw)) + return 0; + + return rzg3l_cpg_pll_clk_endisable(hw, true); +} + +static const struct clk_ops rzg3l_cpg_pll_ops =3D { + .is_enabled =3D rzg3l_cpg_pll_clk_is_enabled, + .enable =3D rzg3l_cpg_pll_clk_enable, + .recalc_rate =3D rzg3s_cpg_pll_clk_recalc_rate, +}; + static struct clk *rzg2l_cpg_clk_src_twocell_get(struct of_phandle_args *clkspec, void *data) @@ -1258,6 +1322,9 @@ rzg2l_cpg_register_core_clk(const struct cpg_core_clk= *core, case CLK_TYPE_SAM_PLL: clk =3D rzg2l_cpg_pll_clk_register(core, priv, &rzg2l_cpg_pll_ops); break; + case CLK_TYPE_G3L_PLL: + clk =3D rzg2l_cpg_pll_clk_register(core, priv, &rzg3l_cpg_pll_ops); + break; case CLK_TYPE_G3S_PLL: clk =3D rzg2l_cpg_pll_clk_register(core, priv, &rzg3s_cpg_pll_ops); break; diff --git a/drivers/clk/renesas/rzg2l-cpg.h b/drivers/clk/renesas/rzg2l-cp= g.h index 1db413bb433d..7de4cb7af1cc 100644 --- a/drivers/clk/renesas/rzg2l-cpg.h +++ b/drivers/clk/renesas/rzg2l-cpg.h @@ -123,6 +123,7 @@ enum clk_types { CLK_TYPE_IN, /* External Clock Input */ CLK_TYPE_FF, /* Fixed Factor Clock */ CLK_TYPE_SAM_PLL, + CLK_TYPE_G3L_PLL, CLK_TYPE_G3S_PLL, =20 /* Clock with divider */ @@ -152,6 +153,9 @@ enum clk_types { DEF_TYPE(_name, _id, _type, .parent =3D _parent) #define DEF_SAMPLL(_name, _id, _parent, _conf) \ DEF_TYPE(_name, _id, CLK_TYPE_SAM_PLL, .parent =3D _parent, .conf =3D _co= nf) +#define DEF_G3L_PLL(_name, _id, _parent, _conf, _default_rate) \ + DEF_TYPE(_name, _id, CLK_TYPE_G3L_PLL, .parent =3D _parent, .conf =3D _co= nf, \ + .default_rate =3D _default_rate) #define DEF_G3S_PLL(_name, _id, _parent, _conf, _default_rate) \ DEF_TYPE(_name, _id, CLK_TYPE_G3S_PLL, .parent =3D _parent, .conf =3D _co= nf, \ .default_rate =3D _default_rate) --=20 2.43.0 From nobody Mon Feb 9 03:05:17 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 A10A132E6AC for ; Tue, 3 Feb 2026 11:02:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116551; cv=none; b=XDDDo7Hv4KH43ApjaRaC3n2iAyQVhrgApn40epTmmAtMOd8/gd1qjiybYTJGmt1Don1hQpE+E8xEMOeB8aRAPHL/TEtFO6ZeyNKP8JgF9YW14LaAJxb/25P0dAEWdzl3hfWTL43ssXMxQeB5gtYn2ET5gvih2nfEDtuUZQIUooQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116551; c=relaxed/simple; bh=+YFdaMDpXhd1kssNROsVNnfestvy44gFsrxkDIl/BJY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=txw2pImwjJI+Z4tP7evT+Cpp4VXjYuNsL3P4QztKzCo8TOl4400I2N44T79ae+ZONV27YOGeHgpuInpy8JGUM/EshhCtOI3S7simZvrrePOCSw55AboaKc8JxrhSazVnqv3C4smCDz1cffFFG8g8R+S1BBPQ9FEs2vSDCZfrhJk= 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=TWKbD9M2; arc=none smtp.client-ip=209.85.128.45 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="TWKbD9M2" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-48068ed1eccso50548665e9.2 for ; Tue, 03 Feb 2026 03:02:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770116548; x=1770721348; 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=WE6s3RzlI9MLhSRJI6UuaRnNdQS5iQ3GZwPe8O0765I=; b=TWKbD9M2tXwI6WjuRs+p/XESNmPWgFYdUFwr1Z63M/ZuoB9ZKj5d/I3ZYO7tNk9LI5 /Yij2SNZUo3qxQWe6l/+zRPabU7pyGWwYWRxZb5i+ITfNJkMywMbu8tXhSHa256FjbJD IDOAqr9rYegfFll+v8KOYTWS5GIg17/xEJUXyh4VOzEZeoxFBfwXZqCdmd9oFUyPoUaC lk1r2maF6wyZcvE53ZjRgWdQaYZ6CMKcQs0qg2yl0JoPcQlBOaZVYcKcsgdt2RenEbgX 73Z9dluoLSnQNC65N0Djrdfd7MCMTVPqVtgEGeJavdk4JV2GwF1A/Uxf+axtnooPn5Y3 tFow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770116548; x=1770721348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WE6s3RzlI9MLhSRJI6UuaRnNdQS5iQ3GZwPe8O0765I=; b=oOzB3Uhalr09ro2LM1+Qqr0iL9j/RgcBtxV0UZV6Hbc5Z9XJ72V48213lwkuQTBEZK bHvpvSEZqIlIhzj0F6FaYsZ4ZkgIC+YtXt14O2rfqeYtc1ENS8iK2xm4PNTFzUqHAME3 z5ki3QGX4gWSYudwpyXhyk3U6ZUHE2ooos8qP0fRlhl2bh+EgYNNkCYzMDZOarJJtK8y zwDE+ygoVlXS7TO5kH1qRUqrFoF5AibAemt4tC/bUdc7DvIdOw4lgjsndotURFBPK9g+ P69+YCKXHYs5Jaq4+XThmDUu4rZn1X7z8Treb2T3z3V+T/cYUNFImC1+3kjt+a8IA7Bw OTKQ== X-Forwarded-Encrypted: i=1; AJvYcCW5ZQp6DqKps6jeKK9NLDmNrENJ2brKoLoT2KFokPQKe60xzaXo2Lc1opHVjoH/Ug1sc9jhZg445vRSmbI=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9opW8anOQb0szhN4a6BLc1uNFkXljoD43/xps4fViiIsPCBu8 khcA5zSUaAMpEohXUW9xpRaWnU3KMst4RGdw3jdIzwkvZWimvwaef4cg X-Gm-Gg: AZuq6aKE2TbUawFo17xX41VX2mIwTAsUdc1fxzMyG2MAO4oQm2Pg5VpN7j6OzTVFcx8 04E1eDnEvDynxAwp9fSJZ9tcNwdBlXAOCuoad+H6nDkfCckGwIHkeSMxsI+3ht+0yEzWeqb6ALF pwLw6s8QF2E2itGgHIMhPdCR0te5qFborTI9xx4KttyyF//gy0/zTbEKWnFDnTmoHlwyMzHklWs yqFItK1FbnxLuLHTbBSn8sIAzkzQCm9WHs+iySX+AYxdOVPoSf/VQKcwvi6a4bRCWiqDJfLpeV4 mlmPXYM5k9GU/9RTVMp1WWQOQ+sxy1wIQYO19KLvyd5YyPHEmDf7Jp0ZVBW2bXubMLXojKKRcof LQQ0fIsZhSuIPOfrK1VMyf+wrn8QK42zYAh/gavMzEMK8P5enwpMjiQEIYmDXJtfsxes7VCQocL /5mMkqUmWMo6vTI0vqTg== X-Received: by 2002:a05:600c:8b12:b0:47d:5e02:14e5 with SMTP id 5b1f17b1804b1-482db44e7f7mr192967875e9.5.1770116547996; Tue, 03 Feb 2026 03:02:27 -0800 (PST) Received: from biju.lan ([2a00:23c4:a758:8a01:9cd9:f748:166d:55fc]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e132356dsm54110495f8f.33.2026.02.03.03.02.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 03:02:26 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd Cc: Biju Das , linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH v3 3/4] clk: renesas: r8a08g046: Add support for PLL6 clk Date: Tue, 3 Feb 2026 11:02:14 +0000 Message-ID: <20260203110220.265748-4-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> References: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das Add support for PLL6 clk by registering with rzg2l-cpg driver. Signed-off-by: Biju Das --- v2->v3: * No change v1->v2: * No change --- drivers/clk/renesas/r9a08g046-cpg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/clk/renesas/r9a08g046-cpg.c b/drivers/clk/renesas/r9a0= 8g046-cpg.c index d77934872cf4..cc7d3872e9e4 100644 --- a/drivers/clk/renesas/r9a08g046-cpg.c +++ b/drivers/clk/renesas/r9a08g046-cpg.c @@ -29,6 +29,9 @@ #define G3L_DIVPL2B_STS DDIV_PACK(G3L_CLKDIVSTATUS, 5, 1) #define G3L_DIVPL3A_STS DDIV_PACK(G3L_CLKDIVSTATUS, 8, 1) =20 +/* PLL 1/4/6/7 configuration registers macro. */ +#define G3L_PLL1467_CONF(clk1, clk2, setting) ((clk1) << 22 | (clk2) << 12= | (setting)) + enum clk_ids { /* Core Clock Outputs exported to DT */ LAST_DT_CORE_CLK =3D R9A08G046_CLK_P4_DIV2, @@ -45,6 +48,7 @@ enum clk_ids { CLK_PLL2_DIV2, CLK_PLL3, CLK_PLL3_DIV2, + CLK_PLL6, =20 /* Module Clocks */ MOD_CLK_BASE, @@ -78,6 +82,8 @@ static const struct cpg_core_clk r9a08g046_core_clks[] __= initconst =3D { /* Internal Core Clocks */ DEF_FIXED(".pll2", CLK_PLL2, CLK_EXTAL, 200, 3), DEF_FIXED(".pll3", CLK_PLL3, CLK_EXTAL, 200, 3), + DEF_G3L_PLL(".pll6", CLK_PLL6, CLK_EXTAL, G3L_PLL1467_CONF(0x54, 0x58, 0), + 500000000UL), DEF_FIXED(".pll2_div2", CLK_PLL2_DIV2, CLK_PLL2, 1, 2), DEF_FIXED(".pll3_div2", CLK_PLL3_DIV2, CLK_PLL3, 1, 2), =20 --=20 2.43.0 From nobody Mon Feb 9 03:05:17 2026 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 A1570331A52 for ; Tue, 3 Feb 2026 11:02:31 +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=1770116553; cv=none; b=gDEGs1I9r1Q3P018n+r00TxzU45mcB3JFI2JjJwPUykN150R5z2r8bmdwxw13p+A6IY/Yv0Qz/H6fB/z19P42V3Pn2earKWYe6FUW28a/5sWlR+Y1/iaN5BLRlBkZT4jQ8FjDc09o6yTfPuUniPpH2cAQnBq17ltlcOw+yOcBMM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770116553; c=relaxed/simple; bh=ZO5xcBEfcc/rHQSu7nz+YpVqTTZrrSqIzDKcIkquPlw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JboUdj62TdKK46xFBU/LHM65ammwCyE9BkIxnWfCi2SQYt3/IMxJ+el5+4qbPZC9ywFsOh6TzAlBPP9ez5WncokagIeR2x8DcVdP58Kg+P8ke2cDkzWchYCoPlSjlIdZASsCjOKkJqpbMLr5BZgxTRpzNj1Eo+WfW3w31+IPo0o= 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=JmV/mC78; 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="JmV/mC78" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-47ee07570deso45808595e9.1 for ; Tue, 03 Feb 2026 03:02:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770116550; x=1770721350; 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=mEjILZi3ulXYHuzWFkaeXqiFf7n7+KLU07vsd4Xtpq0=; b=JmV/mC78iqhFRm7GXURQ4xqp3l6Yo7PmJHJwZFhsiy9UIiy0jI5buO2y5gKog5C/OU BVgOJYHMBrYbWJQ9YXZZe4+OGc42J+LcwdERXNl4rjU3r85NBk3CLRjWtWUadeBOoPmA 3JKZUixtKaWbI+KLc4YyfQzMGh638DvrtT2W97iE+vNhp1Vi9PMXGe1Y/pOfVXdRECLp XnJVv5LIi5Z6M7c/3nkRPM6x6OlxlvsnfCoQNxR9Qec7z7j5E4aJGP7jNT4brKvwd0q4 gYYWf70p9weFI1Goj7EtXbgFSJ81rgOprgMINKKbdb/HQxtAEAxHCVFqYcZKlg1Ckhvh IUVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770116550; x=1770721350; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mEjILZi3ulXYHuzWFkaeXqiFf7n7+KLU07vsd4Xtpq0=; b=w85L2I5+CgFwSK0vQzLaAOmenSIsF11WCmsIeGkCPxjKHU4rfhEkMCF8YXjjR9bmoJ Gj7VJE4OMVBTSfbfanpHpQR450rTQaioybemacTgAI5EDgMmoy/KwqQX9RQw+yRTkH5j vHHKSCclh4ZOGbGPzy9R7WsBvL+cP8AQlGCi/c9bKH7aRKkEobFnaoTpP56NHp4tLida YxmbMg06nFuk/1ZNWAADHgrc0gd3RfB6PUFH+WvMit8HbKWjwXFe03Ho0y2UvFEfvCVS NSauVxuaYrtsfWem6rXIYxGReVZnbtXmPYDwlZHg1hQWI9hePhIA4iEgQtiZHlgeJFOD 8JTA== X-Forwarded-Encrypted: i=1; AJvYcCVKDMJ5j74MY3nuuK4Ki/LhH7RQH+lK+rGCQejX+T/IAjoG6GGQtN0NtCdZeg1RrWXiC+e3y917p3fmo2s=@vger.kernel.org X-Gm-Message-State: AOJu0YyCxNM8awsu2B6Sw/3ftv5bC94dFvD/NGQpQEBN0otovU2qh/L+ UrRbbh9WGgxTCSjnaQaF0tBPGFcm6NcZglfh9yce98ZwLoixVhOlf4pO X-Gm-Gg: AZuq6aKQdBuxPuZr9dgqDWih9fYm5wSIXnhUvwrzFjWr63ci4L0uqyYOGlmpJkqc47q C/e+d7FBd9u/jZGZLCy0RgmvticENc9SNRQrUNW5nTJrbD/249onjKmH2YPUy26KVLMoUJnOon1 SJ3RbpuCZot5O7vsSoSJV558Uu3+exnJJMu0ClCBHDzkvH5SiTadL3/lkUGmcrVNgA4kGF5cSP4 8LT9KzqP6buzfYtbBqLHUhALu14pkkhcvcHFz7VXK+UfhDvwsu3YmCoKtsea6kbquyXFXFRFi1r hxhlrWhzbVmhepjS3NQOXA5iFiQymrHgVOe6TAB/Cf38EygSxGc+ASj43XTtVsWoC6pX399uORN 7jGt0wYpEYoOYW76DLh2jbAcIJ1I0E1ur2zj1JM1CWZfITheDt6nqlhMYBwRNWAzBS0S3m/FwsD YrifsxkCjhCHnMMseYLg== X-Received: by 2002:a05:600c:8b12:b0:47e:e20e:bbb7 with SMTP id 5b1f17b1804b1-482db499535mr204096865e9.25.1770116549760; Tue, 03 Feb 2026 03:02:29 -0800 (PST) Received: from biju.lan ([2a00:23c4:a758:8a01:9cd9:f748:166d:55fc]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435e132356dsm54110495f8f.33.2026.02.03.03.02.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 03:02:28 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd Cc: Biju Das , linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH v3 4/4] clk: renesas: r9a08g046: Add clock and reset signals for the GBETH IPs Date: Tue, 3 Feb 2026 11:02:15 +0000 Message-ID: <20260203110220.265748-5-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> References: <20260203110220.265748-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das Add clock and reset entries for the Gigabit Ethernet Interfaces (GBETH 0-1) IPs found on the RZ/G3L SoC. This includes various dividers and mux clocks needed by these two GBETH IPs. Signed-off-by: Biju Das --- v2->v3: * Added eth{0,1}_{tx,rx}_i_rmii clocks. v1->v2: * No change --- drivers/clk/renesas/r9a08g046-cpg.c | 122 ++++++++++++++++++++++++++++ drivers/clk/renesas/rzg2l-cpg.h | 6 ++ 2 files changed, 128 insertions(+) diff --git a/drivers/clk/renesas/r9a08g046-cpg.c b/drivers/clk/renesas/r9a0= 8g046-cpg.c index cc7d3872e9e4..a2856d8fa95b 100644 --- a/drivers/clk/renesas/r9a08g046-cpg.c +++ b/drivers/clk/renesas/r9a08g046-cpg.c @@ -18,17 +18,35 @@ #define G3L_CPG_PL2_DDIV (0x204) #define G3L_CPG_PL3_DDIV (0x208) #define G3L_CLKDIVSTATUS (0x280) +#define G3L_CPG_ETH_SSEL (0x410) +#define G3L_CPG_ETH_SDIV (0x434) =20 /* RZ/G3L Specific division configuration. */ #define G3L_DIVPL2A DDIV_PACK(G3L_CPG_PL2_DDIV, 0, 2) #define G3L_DIVPL2B DDIV_PACK(G3L_CPG_PL2_DDIV, 4, 2) #define G3L_DIVPL3A DDIV_PACK(G3L_CPG_PL3_DDIV, 0, 2) +#define G3L_SDIV_ETH_A DDIV_PACK(G3L_CPG_ETH_SDIV, 0, 2) +#define G3L_SDIV_ETH_B DDIV_PACK(G3L_CPG_ETH_SDIV, 4, 1) +#define G3L_SDIV_ETH_C DDIV_PACK(G3L_CPG_ETH_SDIV, 8, 2) +#define G3L_SDIV_ETH_D DDIV_PACK(G3L_CPG_ETH_SDIV, 12, 1) =20 /* RZ/G3L Clock status configuration. */ #define G3L_DIVPL2A_STS DDIV_PACK(G3L_CLKDIVSTATUS, 4, 1) #define G3L_DIVPL2B_STS DDIV_PACK(G3L_CLKDIVSTATUS, 5, 1) #define G3L_DIVPL3A_STS DDIV_PACK(G3L_CLKDIVSTATUS, 8, 1) =20 +/* RZ/G3L Specific clocks select. */ +#define G3L_SEL_ETH0_TX SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 0, 1) +#define G3L_SEL_ETH0_RX SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 1, 1) +#define G3L_SEL_ETH0_RM SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 2, 1) +#define G3L_SEL_ETH0_CLK_TX_I SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 3, 1) +#define G3L_SEL_ETH0_CLK_RX_I SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 4, 1) +#define G3L_SEL_ETH1_TX SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 8, 1) +#define G3L_SEL_ETH1_RX SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 9, 1) +#define G3L_SEL_ETH1_RM SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 10, 1) +#define G3L_SEL_ETH1_CLK_TX_I SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 11, 1) +#define G3L_SEL_ETH1_CLK_RX_I SEL_PLL_PACK(G3L_CPG_ETH_SSEL, 12, 1) + /* PLL 1/4/6/7 configuration registers macro. */ #define G3L_PLL1467_CONF(clk1, clk2, setting) ((clk1) << 22 | (clk2) << 12= | (setting)) =20 @@ -49,12 +67,29 @@ enum clk_ids { CLK_PLL3, CLK_PLL3_DIV2, CLK_PLL6, + CLK_PLL6_DIV10, + CLK_SEL_ETH0_TX, + CLK_SEL_ETH0_RX, + CLK_SEL_ETH0_RM, + CLK_SEL_ETH1_TX, + CLK_SEL_ETH1_RX, + CLK_SEL_ETH1_RM, + CLK_ETH0_TR, + CLK_ETH0_RM, + CLK_ETH1_TR, + CLK_ETH1_RM, =20 /* Module Clocks */ MOD_CLK_BASE, }; =20 /* Divider tables */ +static const struct clk_div_table dtable_2_20[] =3D { + { 0, 2 }, + { 1, 20 }, + { 0, 0 }, +}; + static const struct clk_div_table dtable_4_128[] =3D { { 0, 4 }, { 1, 2 }, @@ -63,6 +98,13 @@ static const struct clk_div_table dtable_4_128[] =3D { { 0, 0 }, }; =20 +static const struct clk_div_table dtable_4_200[] =3D { + { 0, 4 }, + { 1, 20 }, + { 2, 200 }, + { 0, 0 }, +}; + static const struct clk_div_table dtable_8_256[] =3D { { 0, 8 }, { 1, 16 }, @@ -71,6 +113,18 @@ static const struct clk_div_table dtable_8_256[] =3D { { 0, 0 }, }; =20 +/* Mux clock names tables. */ +static const char * const sel_eth0_tx[] =3D { ".div_eth0_tr", "eth0_txc_tx= _clk" }; +static const char * const sel_eth0_rx[] =3D { ".div_eth0_tr", "eth0_rxc_rx= _clk" }; +static const char * const sel_eth0_rm[] =3D { ".pll6_div10", "eth0_rxc_rx_= clk" }; +static const char * const sel_eth1_tx[] =3D { ".div_eth1_tr", "eth1_txc_tx= _clk" }; +static const char * const sel_eth1_rx[] =3D { ".div_eth1_tr", "eth1_rxc_rx= _clk" }; +static const char * const sel_eth1_rm[] =3D { ".pll6_div10", "eth1_rxc_rx_= clk" }; +static const char * const sel_eth0_clk_tx_i[] =3D { ".sel_eth0_tx", ".div_= eth0_rm" }; +static const char * const sel_eth0_clk_rx_i[] =3D { ".sel_eth0_rx", ".div_= eth0_rm" }; +static const char * const sel_eth1_clk_tx_i[] =3D { ".sel_eth1_tx", ".div_= eth1_rm" }; +static const char * const sel_eth1_clk_rx_i[] =3D { ".sel_eth1_rx", ".div_= eth1_rm" }; + static const struct cpg_core_clk r9a08g046_core_clks[] __initconst =3D { /* External Clock Inputs */ DEF_INPUT("extal", CLK_EXTAL), @@ -86,6 +140,17 @@ static const struct cpg_core_clk r9a08g046_core_clks[] = __initconst =3D { 500000000UL), DEF_FIXED(".pll2_div2", CLK_PLL2_DIV2, CLK_PLL2, 1, 2), DEF_FIXED(".pll3_div2", CLK_PLL3_DIV2, CLK_PLL3, 1, 2), + DEF_FIXED(".pll6_div10", CLK_PLL6_DIV10, CLK_PLL6, 1, 10), + DEF_MUX(".sel_eth0_tx", CLK_SEL_ETH0_TX, G3L_SEL_ETH0_TX, sel_eth0_tx), + DEF_MUX(".sel_eth0_rx", CLK_SEL_ETH0_RX, G3L_SEL_ETH0_RX, sel_eth0_rx), + DEF_MUX(".sel_eth0_rm", CLK_SEL_ETH0_RM, G3L_SEL_ETH0_RM, sel_eth0_rm), + DEF_MUX(".sel_eth1_tx", CLK_SEL_ETH1_TX, G3L_SEL_ETH1_TX, sel_eth1_tx), + DEF_MUX(".sel_eth1_rx", CLK_SEL_ETH1_RX, G3L_SEL_ETH1_RX, sel_eth1_rx), + DEF_MUX(".sel_eth1_rm", CLK_SEL_ETH1_RM, G3L_SEL_ETH1_RM, sel_eth1_rm), + DEF_DIV(".div_eth0_tr", CLK_ETH0_TR, CLK_PLL6, G3L_SDIV_ETH_A, dtable_4_2= 00), + DEF_DIV(".div_eth1_tr", CLK_ETH1_TR, CLK_PLL6, G3L_SDIV_ETH_C, dtable_4_2= 00), + DEF_DIV(".div_eth0_rm", CLK_ETH0_RM, CLK_SEL_ETH0_RM, G3L_SDIV_ETH_B, dta= ble_2_20), + DEF_DIV(".div_eth1_rm", CLK_ETH1_RM, CLK_SEL_ETH1_RM, G3L_SDIV_ETH_D, dta= ble_2_20), =20 /* Core output clk */ DEF_G3S_DIV("P0", R9A08G046_CLK_P0, CLK_PLL2_DIV2, G3L_DIVPL2B, G3L_DIVPL= 2B_STS, @@ -94,6 +159,21 @@ static const struct cpg_core_clk r9a08g046_core_clks[] = __initconst =3D { dtable_4_128, 0, 0, 0, NULL), DEF_G3S_DIV("P3", R9A08G046_CLK_P3, CLK_PLL2_DIV2, G3L_DIVPL2A, G3L_DIVPL= 2A_STS, dtable_4_128, 0, 0, 0, NULL), + DEF_FIXED("HP", R9A08G046_CLK_HP, CLK_PLL6_DIV10, 1, 1), + DEF_MUX_FLAGS("ETHTX01", R9A08G046_CLK_ETHTX01, G3L_SEL_ETH0_CLK_TX_I, se= l_eth0_clk_tx_i, + CLK_SET_RATE_PARENT), + DEF_MUX_FLAGS("ETHRX01", R9A08G046_CLK_ETHRX01, G3L_SEL_ETH0_CLK_RX_I, se= l_eth0_clk_rx_i, + CLK_SET_RATE_PARENT), + DEF_MUX_FLAGS("ETHTX11", R9A08G046_CLK_ETHTX11, G3L_SEL_ETH1_CLK_TX_I, se= l_eth1_clk_tx_i, + CLK_SET_RATE_PARENT), + DEF_MUX_FLAGS("ETHRX11", R9A08G046_CLK_ETHRX11, G3L_SEL_ETH1_CLK_RX_I, se= l_eth1_clk_rx_i, + CLK_SET_RATE_PARENT), + DEF_FIXED("ETHRM0", R9A08G046_CLK_ETHRM0, CLK_ETH0_RM, 1, 1), + DEF_FIXED("ETHTX02", R9A08G046_CLK_ETHTX02, CLK_SEL_ETH0_TX, 1, 1), + DEF_FIXED("ETHRX02", R9A08G046_CLK_ETHRX02, CLK_SEL_ETH0_RX, 1, 1), + DEF_FIXED("ETHRM1", R9A08G046_CLK_ETHRM1, CLK_ETH1_RM, 1, 1), + DEF_FIXED("ETHTX12", R9A08G046_CLK_ETHTX12, CLK_SEL_ETH1_TX, 1, 1), + DEF_FIXED("ETHRX12", R9A08G046_CLK_ETHRX12, CLK_SEL_ETH1_RX, 1, 1), }; =20 static const struct rzg2l_mod_clk r9a08g046_mod_clks[] =3D { @@ -107,6 +187,46 @@ static const struct rzg2l_mod_clk r9a08g046_mod_clks[]= =3D { MSTOP(BUS_REG1, BIT(2))), DEF_MOD("dmac_pclk", R9A08G046_DMAC_PCLK, R9A08G046_CLK_P3, 0x52c, 1, MSTOP(BUS_REG1, BIT(3))), + DEF_MOD("eth0_clk_axi", R9A08G046_ETH0_CLK_AXI, R9A08G046_CLK_P1, 0x57c,= 0, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_MOD("eth1_clk_axi", R9A08G046_ETH1_CLK_AXI, R9A08G046_CLK_P1, 0x57c,= 1, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_MOD("eth0_clk_chi", R9A08G046_ETH0_CLK_CHI, R9A08G046_CLK_P1, 0x57c,= 2, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_MOD("eth1_clk_chi", R9A08G046_ETH1_CLK_CHI, R9A08G046_CLK_P1, 0x57c,= 3, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_COUPLED("eth0_tx_i", R9A08G046_ETH0_CLK_TX_I, R9A08G046_CLK_ETHTX01, = 0x57c, 4, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_COUPLED("eth0_tx_180_i", R9A08G046_ETH0_CLK_TX_180_I, R9A08G046_CLK_E= THTX02, 0x57c, 4, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_COUPLED("eth1_tx_i", R9A08G046_ETH1_CLK_TX_I, R9A08G046_CLK_ETHTX11, = 0x57c, 5, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth1_tx_180_i", R9A08G046_ETH1_CLK_TX_180_I, R9A08G046_CLK_E= THTX12, 0x57c, 5, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth0_rx_i", R9A08G046_ETH0_CLK_RX_I, R9A08G046_CLK_ETHRX01, = 0x57c, 6, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_COUPLED("eth0_rx_180_i", R9A08G046_ETH0_CLK_RX_180_I, R9A08G046_CLK_E= THRX02, 0x57c, 6, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_COUPLED("eth1_rx_i", R9A08G046_ETH1_CLK_RX_I, R9A08G046_CLK_ETHRX11, = 0x57c, 7, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth1_rx_180_i", R9A08G046_ETH1_CLK_RX_180_I, R9A08G046_CLK_E= THRX12, 0x57c, 7, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_MOD("eth0_ptp_ref_i", R9A08G046_ETH0_CLK_PTP_REF_I, R9A08G046_CLK_HP,= 0x57c, 8, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_MOD("eth1_ptp_ref_i", R9A08G046_ETH1_CLK_PTP_REF_I, R9A08G046_CLK_HP,= 0x57c, 9, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_MOD("eth0_rmii_i", R9A08G046_ETH0_CLK_RMII_I, R9A08G046_CLK_ETHRM0, = 0x57c, 10, + MSTOP(BUS_PERI_COM, BIT(2))), + DEF_MOD("eth1_rmii_i", R9A08G046_ETH1_CLK_RMII_I, R9A08G046_CLK_ETHRM1, = 0x57c, 11, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth0_tx_i_rmii", R9A08G046_ETH0_CLK_TX_I_RMII, R9A08G046_CLK= _ETHTX01, 0x57c, 12, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth0_rx_i_rmii", R9A08G046_ETH0_CLK_RX_I_RMII, R9A08G046_CLK= _ETHRX01, 0x57c, 12, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth1_tx_i_rmii", R9A08G046_ETH1_CLK_TX_I_RMII, R9A08G046_CLK= _ETHTX11, 0x57c, 13, + MSTOP(BUS_PERI_COM, BIT(3))), + DEF_COUPLED("eth1_rx_i_rmii", R9A08G046_ETH1_CLK_RX_I_RMII, R9A08G046_CLK= _ETHRX11, 0x57c, 13, + MSTOP(BUS_PERI_COM, BIT(3))), DEF_MOD("scif0_clk_pck", R9A08G046_SCIF0_CLK_PCK, R9A08G046_CLK_P0, 0x584= , 0, MSTOP(BUS_MCPU2, BIT(1))), }; @@ -117,6 +237,8 @@ static const struct rzg2l_reset r9a08g046_resets[] =3D { DEF_RST(R9A08G046_IA55_RESETN, 0x818, 0), DEF_RST(R9A08G046_DMAC_ARESETN, 0x82c, 0), DEF_RST(R9A08G046_DMAC_RST_ASYNC, 0x82c, 1), + DEF_RST(R9A08G046_ETH0_ARESET_N, 0x87c, 0), + DEF_RST(R9A08G046_ETH1_ARESET_N, 0x87c, 1), DEF_RST(R9A08G046_SCIF0_RST_SYSTEM_N, 0x884, 0), }; =20 diff --git a/drivers/clk/renesas/rzg2l-cpg.h b/drivers/clk/renesas/rzg2l-cp= g.h index 7de4cb7af1cc..9abb53483759 100644 --- a/drivers/clk/renesas/rzg2l-cpg.h +++ b/drivers/clk/renesas/rzg2l-cpg.h @@ -188,6 +188,12 @@ enum clk_types { .parent_names =3D _parent_names, \ .num_parents =3D ARRAY_SIZE(_parent_names), \ .mux_flags =3D CLK_MUX_READ_ONLY) +#define DEF_MUX_FLAGS(_name, _id, _conf, _parent_names, _flag) \ + DEF_TYPE(_name, _id, CLK_TYPE_MUX, .conf =3D _conf, \ + .parent_names =3D _parent_names, \ + .num_parents =3D ARRAY_SIZE(_parent_names), \ + .mux_flags =3D CLK_MUX_HIWORD_MASK, \ + .flag =3D _flag) #define DEF_SD_MUX(_name, _id, _conf, _sconf, _parent_names, _mtable, _clk= _flags, _notifier) \ DEF_TYPE(_name, _id, CLK_TYPE_SD_MUX, .conf =3D _conf, .sconf =3D _sconf,= \ .parent_names =3D _parent_names, \ --=20 2.43.0