Skip to content

Commit be587cb

Browse files
committed
Merge tag 'renesas-clk-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-renesas
Pull Renesas clk driver updates from Geert Uytterhoeven: - Add EtherNet TSN and PCIe clocks on the Renesas R-Car V4H SoC - Reuse reset functionality in the Renesas RZ/G2L clock driver * tag 'renesas-clk-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers: clk: renesas: rzg2l-cpg: Reuse code in rzg2l_cpg_reset() clk: renesas: r8a779g0: Add PCIe clocks clk: renesas: r8a779g0: Add EtherTSN clock
2 parents b85ea95 + 5f9e29b commit be587cb

File tree

2 files changed

+18
-23
lines changed

2 files changed

+18
-23
lines changed

drivers/clk/renesas/r8a779g0-cpg-mssr.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ static const struct mssr_mod_clk r8a779g0_mod_clks[] __initconst = {
192192
DEF_MOD("msi3", 621, R8A779G0_CLK_MSO),
193193
DEF_MOD("msi4", 622, R8A779G0_CLK_MSO),
194194
DEF_MOD("msi5", 623, R8A779G0_CLK_MSO),
195+
DEF_MOD("pciec0", 624, R8A779G0_CLK_S0D2_HSC),
196+
DEF_MOD("pscie1", 625, R8A779G0_CLK_S0D2_HSC),
195197
DEF_MOD("pwm", 628, R8A779G0_CLK_SASYNCPERD4),
196198
DEF_MOD("rpc-if", 629, R8A779G0_CLK_RPCD2),
197199
DEF_MOD("scif0", 702, R8A779G0_CLK_SASYNCPERD4),
@@ -235,6 +237,7 @@ static const struct mssr_mod_clk r8a779g0_mod_clks[] __initconst = {
235237
DEF_MOD("pfc2", 917, R8A779G0_CLK_CL16M),
236238
DEF_MOD("pfc3", 918, R8A779G0_CLK_CL16M),
237239
DEF_MOD("tsc", 919, R8A779G0_CLK_CL16M),
240+
DEF_MOD("tsn", 2723, R8A779G0_CLK_S0D4_HSC),
238241
DEF_MOD("ssiu", 2926, R8A779G0_CLK_S0D6_PER),
239242
DEF_MOD("ssi", 2927, R8A779G0_CLK_S0D6_PER),
240243
};

drivers/clk/renesas/rzg2l-cpg.c

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,29 +1410,6 @@ rzg2l_cpg_register_mod_clk(const struct rzg2l_mod_clk *mod,
14101410

14111411
#define rcdev_to_priv(x) container_of(x, struct rzg2l_cpg_priv, rcdev)
14121412

1413-
static int rzg2l_cpg_reset(struct reset_controller_dev *rcdev,
1414-
unsigned long id)
1415-
{
1416-
struct rzg2l_cpg_priv *priv = rcdev_to_priv(rcdev);
1417-
const struct rzg2l_cpg_info *info = priv->info;
1418-
unsigned int reg = info->resets[id].off;
1419-
u32 dis = BIT(info->resets[id].bit);
1420-
u32 we = dis << 16;
1421-
1422-
dev_dbg(rcdev->dev, "reset id:%ld offset:0x%x\n", id, CLK_RST_R(reg));
1423-
1424-
/* Reset module */
1425-
writel(we, priv->base + CLK_RST_R(reg));
1426-
1427-
/* Wait for at least one cycle of the RCLK clock (@ ca. 32 kHz) */
1428-
udelay(35);
1429-
1430-
/* Release module from reset state */
1431-
writel(we | dis, priv->base + CLK_RST_R(reg));
1432-
1433-
return 0;
1434-
}
1435-
14361413
static int rzg2l_cpg_assert(struct reset_controller_dev *rcdev,
14371414
unsigned long id)
14381415
{
@@ -1463,6 +1440,21 @@ static int rzg2l_cpg_deassert(struct reset_controller_dev *rcdev,
14631440
return 0;
14641441
}
14651442

1443+
static int rzg2l_cpg_reset(struct reset_controller_dev *rcdev,
1444+
unsigned long id)
1445+
{
1446+
int ret;
1447+
1448+
ret = rzg2l_cpg_assert(rcdev, id);
1449+
if (ret)
1450+
return ret;
1451+
1452+
/* Wait for at least one cycle of the RCLK clock (@ ca. 32 kHz) */
1453+
udelay(35);
1454+
1455+
return rzg2l_cpg_deassert(rcdev, id);
1456+
}
1457+
14661458
static int rzg2l_cpg_status(struct reset_controller_dev *rcdev,
14671459
unsigned long id)
14681460
{

0 commit comments

Comments
 (0)