|
@@ -201,19 +201,28 @@ static const struct of_device_id ti_cpufreq_of_match[] = {
|
|
|
{},
|
|
|
};
|
|
|
|
|
|
+static const struct of_device_id *ti_cpufreq_match_node(void)
|
|
|
+{
|
|
|
+ struct device_node *np;
|
|
|
+ const struct of_device_id *match;
|
|
|
+
|
|
|
+ np = of_find_node_by_path("/");
|
|
|
+ match = of_match_node(ti_cpufreq_of_match, np);
|
|
|
+ of_node_put(np);
|
|
|
+
|
|
|
+ return match;
|
|
|
+}
|
|
|
+
|
|
|
static int ti_cpufreq_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
u32 version[VERSION_COUNT];
|
|
|
- struct device_node *np;
|
|
|
const struct of_device_id *match;
|
|
|
struct opp_table *ti_opp_table;
|
|
|
struct ti_cpufreq_data *opp_data;
|
|
|
const char * const reg_names[] = {"vdd", "vbb"};
|
|
|
int ret;
|
|
|
|
|
|
- np = of_find_node_by_path("/");
|
|
|
- match = of_match_node(ti_cpufreq_of_match, np);
|
|
|
- of_node_put(np);
|
|
|
+ match = dev_get_platdata(&pdev->dev);
|
|
|
if (!match)
|
|
|
return -ENODEV;
|
|
|
|
|
@@ -290,7 +299,14 @@ fail_put_node:
|
|
|
|
|
|
static int ti_cpufreq_init(void)
|
|
|
{
|
|
|
- platform_device_register_simple("ti-cpufreq", -1, NULL, 0);
|
|
|
+ const struct of_device_id *match;
|
|
|
+
|
|
|
+ /* Check to ensure we are on a compatible platform */
|
|
|
+ match = ti_cpufreq_match_node();
|
|
|
+ if (match)
|
|
|
+ platform_device_register_data(NULL, "ti-cpufreq", -1, match,
|
|
|
+ sizeof(*match));
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
module_init(ti_cpufreq_init);
|