2016-03-30 11:15:26 +03:00
/*
* Copyright ( C ) 2016 Linaro .
* Viresh Kumar < viresh . kumar @ linaro . org >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# include <linux/err.h>
# include <linux/of.h>
# include <linux/platform_device.h>
2016-04-22 14:28:39 +03:00
static const struct of_device_id machines [ ] __initconst = {
2016-04-22 14:28:45 +03:00
{ . compatible = " allwinner,sun4i-a10 " , } ,
{ . compatible = " allwinner,sun5i-a10s " , } ,
{ . compatible = " allwinner,sun5i-a13 " , } ,
{ . compatible = " allwinner,sun5i-r8 " , } ,
{ . compatible = " allwinner,sun6i-a31 " , } ,
{ . compatible = " allwinner,sun6i-a31s " , } ,
{ . compatible = " allwinner,sun7i-a20 " , } ,
{ . compatible = " allwinner,sun8i-a23 " , } ,
{ . compatible = " allwinner,sun8i-a33 " , } ,
{ . compatible = " allwinner,sun8i-a83t " , } ,
{ . compatible = " allwinner,sun8i-h3 " , } ,
2016-04-22 14:28:47 +03:00
{ . compatible = " hisilicon,hi6220 " , } ,
2016-04-22 14:28:41 +03:00
{ . compatible = " fsl,imx27 " , } ,
{ . compatible = " fsl,imx51 " , } ,
{ . compatible = " fsl,imx53 " , } ,
{ . compatible = " fsl,imx7d " , } ,
2016-04-22 14:28:40 +03:00
{ . compatible = " marvell,berlin " , } ,
2016-03-30 11:15:28 +03:00
{ . compatible = " samsung,exynos3250 " , } ,
{ . compatible = " samsung,exynos4210 " , } ,
{ . compatible = " samsung,exynos4212 " , } ,
{ . compatible = " samsung,exynos4412 " , } ,
{ . compatible = " samsung,exynos5250 " , } ,
# ifndef CONFIG_BL_SWITCHER
{ . compatible = " samsung,exynos5420 " , } ,
{ . compatible = " samsung,exynos5800 " , } ,
# endif
2016-04-22 14:28:42 +03:00
2016-04-22 14:28:44 +03:00
{ . compatible = " renesas,emev2 " , } ,
{ . compatible = " renesas,r7s72100 " , } ,
{ . compatible = " renesas,r8a73a4 " , } ,
{ . compatible = " renesas,r8a7740 " , } ,
{ . compatible = " renesas,r8a7778 " , } ,
{ . compatible = " renesas,r8a7779 " , } ,
{ . compatible = " renesas,r8a7790 " , } ,
{ . compatible = " renesas,r8a7791 " , } ,
{ . compatible = " renesas,r8a7793 " , } ,
{ . compatible = " renesas,r8a7794 " , } ,
{ . compatible = " renesas,sh73a0 " , } ,
2016-04-22 14:28:43 +03:00
{ . compatible = " rockchip,rk2928 " , } ,
{ . compatible = " rockchip,rk3036 " , } ,
{ . compatible = " rockchip,rk3066a " , } ,
{ . compatible = " rockchip,rk3066b " , } ,
{ . compatible = " rockchip,rk3188 " , } ,
{ . compatible = " rockchip,rk3228 " , } ,
{ . compatible = " rockchip,rk3288 " , } ,
{ . compatible = " rockchip,rk3366 " , } ,
{ . compatible = " rockchip,rk3368 " , } ,
{ . compatible = " rockchip,rk3399 " , } ,
2016-05-02 16:39:25 +03:00
{ . compatible = " sigma,tango4 " } ,
2016-04-22 14:28:42 +03:00
{ . compatible = " ti,omap2 " , } ,
{ . compatible = " ti,omap3 " , } ,
{ . compatible = " ti,omap4 " , } ,
{ . compatible = " ti,omap5 " , } ,
2016-04-22 14:28:46 +03:00
{ . compatible = " xlnx,zynq-7000 " , } ,
2016-03-30 11:15:26 +03:00
} ;
static int __init cpufreq_dt_platdev_init ( void )
{
struct device_node * np = of_find_node_by_path ( " / " ) ;
if ( ! np )
return - ENODEV ;
if ( ! of_match_node ( machines , np ) )
return - ENODEV ;
of_node_put ( of_root ) ;
return PTR_ERR_OR_ZERO ( platform_device_register_simple ( " cpufreq-dt " , - 1 ,
NULL , 0 ) ) ;
}
device_initcall ( cpufreq_dt_platdev_init ) ;