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

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.comSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 603df193
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* - 9FGV/9DBV/9DMV/9FGL/9DML/9QXL/9SQ * - 9FGV/9DBV/9DMV/9FGL/9DML/9QXL/9SQ
* Currently supported: * Currently supported:
* - 9FGV0241 * - 9FGV0241
* - 9FGV0441
* *
* Copyright (C) 2022 Marek Vasut <marex@denx.de> * Copyright (C) 2022 Marek Vasut <marex@denx.de>
*/ */
...@@ -51,6 +52,7 @@ ...@@ -51,6 +52,7 @@
/* Supported Renesas 9-series models. */ /* Supported Renesas 9-series models. */
enum rs9_model { enum rs9_model {
RENESAS_9FGV0241, RENESAS_9FGV0241,
RENESAS_9FGV0441,
}; };
/* Structure to describe features of a particular 9-series model */ /* Structure to describe features of a particular 9-series model */
...@@ -64,7 +66,7 @@ struct rs9_driver_data { ...@@ -64,7 +66,7 @@ struct rs9_driver_data {
struct i2c_client *client; struct i2c_client *client;
struct regmap *regmap; struct regmap *regmap;
const struct rs9_chip_info *chip_info; const struct rs9_chip_info *chip_info;
struct clk_hw *clk_dif[2]; struct clk_hw *clk_dif[4];
u8 pll_amplitude; u8 pll_amplitude;
u8 pll_ssc; u8 pll_ssc;
u8 clk_dif_sr; u8 clk_dif_sr;
...@@ -161,6 +163,8 @@ static u8 rs9_calc_dif(const struct rs9_driver_data *rs9, int idx) ...@@ -161,6 +163,8 @@ static u8 rs9_calc_dif(const struct rs9_driver_data *rs9, int idx)
if (model == RENESAS_9FGV0241) if (model == RENESAS_9FGV0241)
return BIT(idx) + 1; return BIT(idx) + 1;
else if (model == RENESAS_9FGV0441)
return BIT(idx);
return 0; return 0;
} }
...@@ -380,14 +384,22 @@ static const struct rs9_chip_info renesas_9fgv0241_info = { ...@@ -380,14 +384,22 @@ static const struct rs9_chip_info renesas_9fgv0241_info = {
.did = RS9_REG_DID_TYPE_FGV | 0x02, .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[] = { static const struct i2c_device_id rs9_id[] = {
{ "9fgv0241", .driver_data = RENESAS_9FGV0241 }, { "9fgv0241", .driver_data = RENESAS_9FGV0241 },
{ "9fgv0441", .driver_data = RENESAS_9FGV0441 },
{ } { }
}; };
MODULE_DEVICE_TABLE(i2c, rs9_id); MODULE_DEVICE_TABLE(i2c, rs9_id);
static const struct of_device_id clk_rs9_of_match[] = { static const struct of_device_id clk_rs9_of_match[] = {
{ .compatible = "renesas,9fgv0241", .data = &renesas_9fgv0241_info }, { .compatible = "renesas,9fgv0241", .data = &renesas_9fgv0241_info },
{ .compatible = "renesas,9fgv0441", .data = &renesas_9fgv0441_info },
{ } { }
}; };
MODULE_DEVICE_TABLE(of, clk_rs9_of_match); MODULE_DEVICE_TABLE(of, clk_rs9_of_match);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment