clk: clk-axiclkgen: add ZynqMP PFD and VCO limits
authorAlexandru Ardelean <alexandru.ardelean@analog.com>
Mon, 1 Feb 2021 15:12:43 +0000 (17:12 +0200)
committerStephen Boyd <sboyd@kernel.org>
Tue, 9 Feb 2021 02:13:12 +0000 (18:13 -0800)
For ZynqMP (Ultrascale) the PFD and VCO limits are different. In order to
support these, this change adds a compatible string (i.e.
'adi,zynqmp-axi-clkgen-2.00.a')  which will take into account for these
limits and apply them.

Signed-off-by: Dragos Bogdan <dragos.bogdan@analog.com>
Signed-off-by: Mathias Tausen <mta@gomspace.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210201151245.21845-3-alexandru.ardelean@analog.com
Acked-by: Moritz Fischer <mdf@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-axi-clkgen.c

index ad86e03..9d1b0fc 100644 (file)
@@ -108,6 +108,13 @@ static uint32_t axi_clkgen_lookup_lock(unsigned int m)
        return 0x1f1f00fa;
 }
 
+static const struct axi_clkgen_limits axi_clkgen_zynqmp_default_limits = {
+       .fpfd_min = 10000,
+       .fpfd_max = 450000,
+       .fvco_min = 800000,
+       .fvco_max = 1600000,
+};
+
 static const struct axi_clkgen_limits axi_clkgen_zynq_default_limits = {
        .fpfd_min = 10000,
        .fpfd_max = 300000,
@@ -561,6 +568,10 @@ static int axi_clkgen_remove(struct platform_device *pdev)
 
 static const struct of_device_id axi_clkgen_ids[] = {
        {
+               .compatible = "adi,zynqmp-axi-clkgen-2.00.a",
+               .data = &axi_clkgen_zynqmp_default_limits,
+       },
+       {
                .compatible = "adi,axi-clkgen-2.00.a",
                .data = &axi_clkgen_zynq_default_limits,
        },