162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2009 Lemote Inc. 462306a36Sopenharmony_ci * Author: Wu Zhangjin, wuzhangjin@gmail.com 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/err.h> 862306a36Sopenharmony_ci#include <linux/smp.h> 962306a36Sopenharmony_ci#include <linux/platform_device.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cistatic struct platform_device loongson2_cpufreq_device = { 1262306a36Sopenharmony_ci .name = "loongson2_cpufreq", 1362306a36Sopenharmony_ci .id = -1, 1462306a36Sopenharmony_ci}; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistatic int __init loongson2_cpufreq_init(void) 1762306a36Sopenharmony_ci{ 1862306a36Sopenharmony_ci struct cpuinfo_mips *c = ¤t_cpu_data; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci /* Only 2F revision and it's successors support CPUFreq */ 2162306a36Sopenharmony_ci if ((c->processor_id & PRID_REV_MASK) >= PRID_REV_LOONGSON2F) 2262306a36Sopenharmony_ci return platform_device_register(&loongson2_cpufreq_device); 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci return -ENODEV; 2562306a36Sopenharmony_ci} 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciarch_initcall(loongson2_cpufreq_init); 28