On Sun, 2015-03-01 at 14:44 +0200, Mikko Perttunen wrote: > --- a/drivers/cpufreq/Kconfig.arm > +++ b/drivers/cpufreq/Kconfig.arm > @@ -256,6 +256,13 @@ config ARM_TEGRA20_CPUFREQ > help > This adds the CPUFreq driver support for Tegra20 SOCs. > > +config ARM_TEGRA124_CPUFREQ > + bool "Tegra124 CPUFreq support" This adds a bool Kconfig symbol... > + depends on ARCH_TEGRA && CPUFREQ_DT > + default y > + help > + This adds the CPUFreq driver support for Tegra124 SOCs. > + > config ARM_PXA2xx_CPUFREQ > tristate "Intel PXA2xx CPUfreq driver" > depends on PXA27x || PXA25x > diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile > index 312d9c3..d478b83 100644 > --- a/drivers/cpufreq/Makefile > +++ b/drivers/cpufreq/Makefile > @@ -77,6 +77,7 @@ obj-$(CONFIG_ARM_SA1100_CPUFREQ) += sa1100-cpufreq.o > obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o > obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o > obj-$(CONFIG_ARM_TEGRA20_CPUFREQ) += tegra20-cpufreq.o > +obj-$(CONFIG_ARM_TEGRA124_CPUFREQ) += tegra124-cpufreq.o ... so this object will either not be built or be built-in. > obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ) += vexpress-spc-cpufreq.o > > ################################################################################## > diff --git a/drivers/cpufreq/tegra124-cpufreq.c b/drivers/cpufreq/tegra124-cpufreq.c > new file mode 100644 > index 0000000..45778ce > --- /dev/null > +++ b/drivers/cpufreq/tegra124-cpufreq.c > @@ -0,0 +1,217 @@ > +/* > + * Tegra 124 cpufreq driver > + * > + * This software is licensed under the terms of the GNU General Public > + * License version 2, as published by the Free Software Foundation, and > + * may be copied, distributed, and modified under those terms. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + */ > + > +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > + > +#include <linux/clk.h> > +#include <linux/cpufreq-dt.h> > +#include <linux/err.h> > +#include <linux/init.h> > +#include <linux/kernel.h> > +#include <linux/module.h> Is linux/module.h needed? > +#include <linux/of_device.h> > +#include <linux/of.h> > +#include <linux/platform_device.h> > +#include <linux/pm_opp.h> > +#include <linux/regulator/consumer.h> > +#include <linux/types.h> [...] > +static struct platform_driver tegra124_cpufreq_platdrv = { > + .driver = { > + .name = "cpufreq-tegra124", > + .owner = THIS_MODULE, .owner will always be, in short, NULL. > + }, > + .probe = tegra124_cpufreq_probe, > + .remove = tegra124_cpufreq_remove, > +}; [...] > +module_init(tegra_cpufreq_init); This might as well be, I think, device_initcall(). > +MODULE_AUTHOR("Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>"); > +MODULE_DESCRIPTION("cpufreq driver for NVIDIA Tegra124"); > +MODULE_LICENSE("GPL v2"); The strings in these macros will always be preprocessed away, because this driver cannot become a module. Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html