]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
cpufreq: mediatek: Add support for MT8176 and MT817x
authorDaniel Kurtz <djkurtz@chromium.org>
Thu, 2 Mar 2017 11:03:45 +0000 (19:03 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 12 Mar 2017 22:10:53 +0000 (23:10 +0100)
The Mediatek MT8173 is just one of several SOCs from the same MT817x
family, including the 6-core (4-little/2-big) MT8176.

The mt8173-cpufreq driver supports all of these SOCs, however,
machines using them may use a different machine compatible.

Since this driver checks explicitly for the machine compatible
string, add support for the whole family.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/mt8173-cpufreq.c

index 72bc1192bd3019f831ad8ef23b1f3f540c11f672..fd1886faf33abcfbd1bc1fe22a36a4dfa92e8865 100644 (file)
@@ -573,14 +573,33 @@ static struct platform_driver mt8173_cpufreq_platdrv = {
        .probe          = mt8173_cpufreq_probe,
 };
 
+/* List of machines supported by this driver */
+static const struct of_device_id mt8173_cpufreq_machines[] __initconst = {
+       { .compatible = "mediatek,mt817x", },
+       { .compatible = "mediatek,mt8173", },
+       { .compatible = "mediatek,mt8176", },
+
+       { }
+};
+
 static int __init mt8173_cpufreq_driver_init(void)
 {
+       struct device_node *np;
+       const struct of_device_id *match;
        struct platform_device *pdev;
        int err;
 
-       if (!of_machine_is_compatible("mediatek,mt8173"))
+       np = of_find_node_by_path("/");
+       if (!np)
                return -ENODEV;
 
+       match = of_match_node(mt8173_cpufreq_machines, np);
+       of_node_put(np);
+       if (!match) {
+               pr_warn("Machine is not compatible with mt8173-cpufreq\n");
+               return -ENODEV;
+       }
+
        err = platform_driver_register(&mt8173_cpufreq_platdrv);
        if (err)
                return err;