Commit e44fdd11 authored by Alexander Stein's avatar Alexander Stein Committed by Stephen Boyd
Browse files

clk: rs9: Add support for 9FGV0441



This model is similar to 9FGV0241, but the DIFx bits start at bit 0.

Signed-off-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: default avatarMarek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20230310075535.3476580-4-alexander.stein@ew.tq-group.com


Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 603df193
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
 *   - 9FGV/9DBV/9DMV/9FGL/9DML/9QXL/9SQ
 * Currently supported:
 *   - 9FGV0241
 *   - 9FGV0441
 *
 * Copyright (C) 2022 Marek Vasut <marex@denx.de>
 */
@@ -51,6 +52,7 @@
/* Supported Renesas 9-series models. */
enum rs9_model {
	RENESAS_9FGV0241,
	RENESAS_9FGV0441,
};

/* Structure to describe features of a particular 9-series model */
@@ -64,7 +66,7 @@ struct rs9_driver_data {
	struct i2c_client	*client;
	struct regmap		*regmap;
	const struct rs9_chip_info *chip_info;
	struct clk_hw		*clk_dif[2];
	struct clk_hw		*clk_dif[4];
	u8			pll_amplitude;
	u8			pll_ssc;
	u8			clk_dif_sr;
@@ -161,6 +163,8 @@ static u8 rs9_calc_dif(const struct rs9_driver_data *rs9, int idx)

	if (model == RENESAS_9FGV0241)
		return BIT(idx) + 1;
	else if (model == RENESAS_9FGV0441)
		return BIT(idx);

	return 0;
}
@@ -380,14 +384,22 @@ static const struct rs9_chip_info renesas_9fgv0241_info = {
	.did		= RS9_REG_DID_TYPE_FGV | 0x02,
};

static const struct rs9_chip_info renesas_9fgv0441_info = {
	.model		= RENESAS_9FGV0441,
	.num_clks	= 4,
	.did		= RS9_REG_DID_TYPE_FGV | 0x04,
};

static const struct i2c_device_id rs9_id[] = {
	{ "9fgv0241", .driver_data = RENESAS_9FGV0241 },
	{ "9fgv0441", .driver_data = RENESAS_9FGV0441 },
	{ }
};
MODULE_DEVICE_TABLE(i2c, rs9_id);

static const struct of_device_id clk_rs9_of_match[] = {
	{ .compatible = "renesas,9fgv0241", .data = &renesas_9fgv0241_info },
	{ .compatible = "renesas,9fgv0441", .data = &renesas_9fgv0441_info },
	{ }
};
MODULE_DEVICE_TABLE(of, clk_rs9_of_match);