|
@@ -114,10 +114,10 @@
|
|
|
#define VC5_MUX_IN_CLKIN BIT(1)
|
|
|
|
|
|
/* Maximum number of clk_out supported by this driver */
|
|
|
-#define VC5_MAX_CLK_OUT_NUM 3
|
|
|
+#define VC5_MAX_CLK_OUT_NUM 5
|
|
|
|
|
|
/* Maximum number of FODs supported by this driver */
|
|
|
-#define VC5_MAX_FOD_NUM 2
|
|
|
+#define VC5_MAX_FOD_NUM 4
|
|
|
|
|
|
/* flags to describe chip features */
|
|
|
/* chip has built-in oscilator */
|
|
@@ -127,6 +127,7 @@
|
|
|
enum vc5_model {
|
|
|
IDT_VC5_5P49V5923,
|
|
|
IDT_VC5_5P49V5933,
|
|
|
+ IDT_VC5_5P49V5935,
|
|
|
};
|
|
|
|
|
|
/* Structure to describe features of a particular VC5 model */
|
|
@@ -594,6 +595,7 @@ static int vc5_map_index_to_output(const enum vc5_model model,
|
|
|
case IDT_VC5_5P49V5933:
|
|
|
return (n == 0) ? 0 : 3;
|
|
|
case IDT_VC5_5P49V5923:
|
|
|
+ case IDT_VC5_5P49V5935:
|
|
|
default:
|
|
|
return n;
|
|
|
}
|
|
@@ -790,9 +792,17 @@ static const struct vc5_chip_info idt_5p49v5933_info = {
|
|
|
.flags = VC5_HAS_INTERNAL_XTAL,
|
|
|
};
|
|
|
|
|
|
+static const struct vc5_chip_info idt_5p49v5935_info = {
|
|
|
+ .model = IDT_VC5_5P49V5935,
|
|
|
+ .clk_fod_cnt = 4,
|
|
|
+ .clk_out_cnt = 5,
|
|
|
+ .flags = VC5_HAS_INTERNAL_XTAL,
|
|
|
+};
|
|
|
+
|
|
|
static const struct i2c_device_id vc5_id[] = {
|
|
|
{ "5p49v5923", .driver_data = IDT_VC5_5P49V5923 },
|
|
|
{ "5p49v5933", .driver_data = IDT_VC5_5P49V5933 },
|
|
|
+ { "5p49v5935", .driver_data = IDT_VC5_5P49V5935 },
|
|
|
{ }
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(i2c, vc5_id);
|
|
@@ -800,6 +810,7 @@ MODULE_DEVICE_TABLE(i2c, vc5_id);
|
|
|
static const struct of_device_id clk_vc5_of_match[] = {
|
|
|
{ .compatible = "idt,5p49v5923", .data = &idt_5p49v5923_info },
|
|
|
{ .compatible = "idt,5p49v5933", .data = &idt_5p49v5933_info },
|
|
|
+ { .compatible = "idt,5p49v5935", .data = &idt_5p49v5935_info },
|
|
|
{ },
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(of, clk_vc5_of_match);
|