clk: vc5: Add support for IDT VersaClock 5P49V5925

Update IDT VersaClock 5 driver to support 5P49V5925. This chip has only
external clock input, four fractional dividers (FODs) and five clock
outputs (four universal clock outputs and one reference clock output at
OUT0_SELB_I2C).

Signed-off-by: Vladimir Barinov <vladimir.barinov+renesas@cogentembedded.com>
Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
Vladimir Barinov 2017-07-09 20:39:57 +03:00 коммит произвёл Stephen Boyd
Родитель dbf6b16f56
Коммит b191155541
1 изменённых файлов: 11 добавлений и 0 удалений

Просмотреть файл

@ -129,6 +129,7 @@
/* Supported IDT VC5 models. */ /* Supported IDT VC5 models. */
enum vc5_model { enum vc5_model {
IDT_VC5_5P49V5923, IDT_VC5_5P49V5923,
IDT_VC5_5P49V5925,
IDT_VC5_5P49V5933, IDT_VC5_5P49V5933,
IDT_VC5_5P49V5935, IDT_VC5_5P49V5935,
IDT_VC6_5P49V6901, IDT_VC6_5P49V6901,
@ -686,6 +687,7 @@ static int vc5_map_index_to_output(const enum vc5_model model,
case IDT_VC5_5P49V5933: case IDT_VC5_5P49V5933:
return (n == 0) ? 0 : 3; return (n == 0) ? 0 : 3;
case IDT_VC5_5P49V5923: case IDT_VC5_5P49V5923:
case IDT_VC5_5P49V5925:
case IDT_VC5_5P49V5935: case IDT_VC5_5P49V5935:
case IDT_VC6_5P49V6901: case IDT_VC6_5P49V6901:
default: default:
@ -911,6 +913,13 @@ static const struct vc5_chip_info idt_5p49v5923_info = {
.flags = 0, .flags = 0,
}; };
static const struct vc5_chip_info idt_5p49v5925_info = {
.model = IDT_VC5_5P49V5925,
.clk_fod_cnt = 4,
.clk_out_cnt = 5,
.flags = 0,
};
static const struct vc5_chip_info idt_5p49v5933_info = { static const struct vc5_chip_info idt_5p49v5933_info = {
.model = IDT_VC5_5P49V5933, .model = IDT_VC5_5P49V5933,
.clk_fod_cnt = 2, .clk_fod_cnt = 2,
@ -934,6 +943,7 @@ static const struct vc5_chip_info idt_5p49v6901_info = {
static const struct i2c_device_id vc5_id[] = { static const struct i2c_device_id vc5_id[] = {
{ "5p49v5923", .driver_data = IDT_VC5_5P49V5923 }, { "5p49v5923", .driver_data = IDT_VC5_5P49V5923 },
{ "5p49v5925", .driver_data = IDT_VC5_5P49V5925 },
{ "5p49v5933", .driver_data = IDT_VC5_5P49V5933 }, { "5p49v5933", .driver_data = IDT_VC5_5P49V5933 },
{ "5p49v5935", .driver_data = IDT_VC5_5P49V5935 }, { "5p49v5935", .driver_data = IDT_VC5_5P49V5935 },
{ "5p49v6901", .driver_data = IDT_VC6_5P49V6901 }, { "5p49v6901", .driver_data = IDT_VC6_5P49V6901 },
@ -943,6 +953,7 @@ MODULE_DEVICE_TABLE(i2c, vc5_id);
static const struct of_device_id clk_vc5_of_match[] = { static const struct of_device_id clk_vc5_of_match[] = {
{ .compatible = "idt,5p49v5923", .data = &idt_5p49v5923_info }, { .compatible = "idt,5p49v5923", .data = &idt_5p49v5923_info },
{ .compatible = "idt,5p49v5925", .data = &idt_5p49v5925_info },
{ .compatible = "idt,5p49v5933", .data = &idt_5p49v5933_info }, { .compatible = "idt,5p49v5933", .data = &idt_5p49v5933_info },
{ .compatible = "idt,5p49v5935", .data = &idt_5p49v5935_info }, { .compatible = "idt,5p49v5935", .data = &idt_5p49v5935_info },
{ .compatible = "idt,5p49v6901", .data = &idt_5p49v6901_info }, { .compatible = "idt,5p49v6901", .data = &idt_5p49v6901_info },