clk: mvebu: ap80x: add AP807 clock support
authorBen Peled <bpeled@marvell.com>
Mon, 5 Aug 2019 10:03:10 +0000 (12:03 +0200)
committerStephen Boyd <sboyd@kernel.org>
Wed, 18 Sep 2019 05:15:41 +0000 (22:15 -0700)
Add driver support for AP807 clock.

Signed-off-by: Ben Peled <bpeled@marvell.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lkml.kernel.org/r/20190805100310.29048-9-miquel.raynal@bootlin.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/mvebu/ap806-system-controller.c

index c64e2cc..948bd1e 100644 (file)
@@ -102,6 +102,30 @@ static int ap806_get_sar_clocks(unsigned int freq_mode,
        return 0;
 }
 
+static int ap807_get_sar_clocks(unsigned int freq_mode,
+                               unsigned int *cpuclk_freq,
+                               unsigned int *dclk_freq)
+{
+       switch (freq_mode) {
+       case 0x0:
+               *cpuclk_freq = 2000;
+               *dclk_freq = 1200;
+               break;
+       case 0x6:
+               *cpuclk_freq = 2200;
+               *dclk_freq = 1200;
+               break;
+       case 0xD:
+               *cpuclk_freq = 1600;
+               *dclk_freq = 1200;
+               break;
+       default:
+               return -EINVAL;
+       }
+
+       return 0;
+}
+
 static int ap806_syscon_common_probe(struct platform_device *pdev,
                                     struct device_node *syscon_node)
 {
@@ -130,6 +154,9 @@ static int ap806_syscon_common_probe(struct platform_device *pdev,
        if (of_device_is_compatible(pdev->dev.of_node,
                                    "marvell,ap806-clock")) {
                ret = ap806_get_sar_clocks(freq_mode, &cpuclk_freq, &dclk_freq);
+       } else if (of_device_is_compatible(pdev->dev.of_node,
+                                          "marvell,ap807-clock")) {
+               ret = ap807_get_sar_clocks(freq_mode, &cpuclk_freq, &dclk_freq);
        } else {
                dev_err(dev, "compatible not supported\n");
                return -EINVAL;
@@ -252,6 +279,7 @@ builtin_platform_driver(ap806_syscon_legacy_driver);
 
 static const struct of_device_id ap806_clock_of_match[] = {
        { .compatible = "marvell,ap806-clock", },
+       { .compatible = "marvell,ap807-clock", },
        { }
 };