2016-03-30 13:45:26 +05:30
/*
* 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-09-09 16:48:08 +05:30
# include "cpufreq-dt.h"
2016-04-22 16:58:39 +05:30
static const struct of_device_id machines [ ] __initconst = {
2016-04-22 16:58:45 +05:30
{ . 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-12-15 14:55:00 -08:00
{ . compatible = " apm,xgene-shadowcat " , } ,
2016-10-25 09:21:24 +02:00
{ . compatible = " arm,integrator-ap " , } ,
{ . compatible = " arm,integrator-cp " , } ,
2016-04-22 16:58:47 +05:30
{ . compatible = " hisilicon,hi6220 " , } ,
2016-04-22 16:58:41 +05:30
{ . compatible = " fsl,imx27 " , } ,
{ . compatible = " fsl,imx51 " , } ,
{ . compatible = " fsl,imx53 " , } ,
{ . compatible = " fsl,imx7d " , } ,
2016-04-22 16:58:40 +05:30
{ . compatible = " marvell,berlin " , } ,
2016-10-31 20:54:53 +01:00
{ . compatible = " marvell,pxa250 " , } ,
{ . compatible = " marvell,pxa270 " , } ,
2016-04-22 16:58:40 +05:30
2016-03-30 13:45:28 +05:30
{ . compatible = " samsung,exynos3250 " , } ,
{ . compatible = " samsung,exynos4210 " , } ,
{ . compatible = " samsung,exynos4212 " , } ,
{ . compatible = " samsung,exynos4412 " , } ,
{ . compatible = " samsung,exynos5250 " , } ,
# ifndef CONFIG_BL_SWITCHER
{ . compatible = " samsung,exynos5420 " , } ,
2016-08-16 15:27:19 +09:00
{ . compatible = " samsung,exynos5433 " , } ,
2016-03-30 13:45:28 +05:30
{ . compatible = " samsung,exynos5800 " , } ,
# endif
2016-04-22 16:58:42 +05:30
2016-04-22 16:58:44 +05:30
{ . compatible = " renesas,emev2 " , } ,
{ . compatible = " renesas,r7s72100 " , } ,
{ . compatible = " renesas,r8a73a4 " , } ,
{ . compatible = " renesas,r8a7740 " , } ,
2016-11-16 11:05:51 +01:00
{ . compatible = " renesas,r8a7743 " , } ,
{ . compatible = " renesas,r8a7745 " , } ,
2016-04-22 16:58:44 +05:30
{ . compatible = " renesas,r8a7778 " , } ,
{ . compatible = " renesas,r8a7779 " , } ,
{ . compatible = " renesas,r8a7790 " , } ,
{ . compatible = " renesas,r8a7791 " , } ,
2016-09-06 14:18:20 +02:00
{ . compatible = " renesas,r8a7792 " , } ,
2016-04-22 16:58:44 +05:30
{ . compatible = " renesas,r8a7793 " , } ,
{ . compatible = " renesas,r8a7794 " , } ,
{ . compatible = " renesas,sh73a0 " , } ,
2016-04-22 16:58:43 +05:30
{ . 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 15:39:25 +02:00
{ . compatible = " sigma,tango4 " } ,
2016-10-27 01:41:33 +09:00
{ . compatible = " socionext,uniphier-pro5 " , } ,
{ . compatible = " socionext,uniphier-pxs2 " , } ,
{ . compatible = " socionext,uniphier-ld6b " , } ,
{ . compatible = " socionext,uniphier-ld11 " , } ,
{ . compatible = " socionext,uniphier-ld20 " , } ,
2016-09-14 15:41:37 -05:00
{ . compatible = " ti,am33xx " , } ,
{ . compatible = " ti,dra7 " , } ,
2016-04-22 16:58:42 +05:30
{ . compatible = " ti,omap2 " , } ,
{ . compatible = " ti,omap3 " , } ,
{ . compatible = " ti,omap4 " , } ,
{ . compatible = " ti,omap5 " , } ,
2016-04-22 16:58:46 +05:30
{ . compatible = " xlnx,zynq-7000 " , } ,
2016-08-21 15:41:44 +00:00
2016-11-30 15:35:29 +08:00
{ . compatible = " zte,zx296718 " , } ,
2016-08-21 15:41:44 +00:00
{ }
2016-03-30 13:45:26 +05:30
} ;
static int __init cpufreq_dt_platdev_init ( void )
{
struct device_node * np = of_find_node_by_path ( " / " ) ;
2016-06-27 14:50:13 +09:00
const struct of_device_id * match ;
2016-03-30 13:45:26 +05:30
if ( ! np )
return - ENODEV ;
2016-06-27 14:50:13 +09:00
match = of_match_node ( machines , np ) ;
of_node_put ( np ) ;
if ( ! match )
2016-03-30 13:45:26 +05:30
return - ENODEV ;
2016-09-09 16:48:08 +05:30
return PTR_ERR_OR_ZERO ( platform_device_register_data ( NULL , " cpufreq-dt " ,
- 1 , match - > data ,
sizeof ( struct cpufreq_dt_platform_data ) ) ) ;
2016-03-30 13:45:26 +05:30
}
device_initcall ( cpufreq_dt_platdev_init ) ;