diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2016-11-09 08:13:49 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-11-11 08:57:25 +0100 |
commit | d08d788930ff693e89d3cefb7bdbc9b8e228a1bf (patch) | |
tree | a5115f59559ba580b5ff587054a59aecf34ac6af | |
parent | 047ee22b894c15a01ed40f358d5c933b6807d880 (diff) | |
download | barebox-d08d788930ff693e89d3cefb7bdbc9b8e228a1bf.tar.gz barebox-d08d788930ff693e89d3cefb7bdbc9b8e228a1bf.tar.xz |
i.MX: Add primitive functions for VF610 family
Add very basic functions to support VF610 family.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 10 | ||||
-rw-r--r-- | arch/arm/mach-imx/cpu_init.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-imx/imx.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/generic.h | 13 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/imx_cpu_types.h | 1 |
5 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index f23af99c11..cfbaaa2cd4 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -149,6 +149,16 @@ config ARCH_IMX6SX select OFTREE select COMMON_CLK_OF_PROVIDER +config ARCH_VF610 + bool + select ARCH_HAS_L2X0 + select ARCH_HAS_FEC_IMX + select CPU_V7 + select PINCTRL + select OFTREE + select COMMON_CLK + select COMMON_CLK_OF_PROVIDER + config IMX_MULTI_BOARDS bool "Allow multiple boards to be selected" select HAVE_PBL_MULTI_IMAGES diff --git a/arch/arm/mach-imx/cpu_init.c b/arch/arm/mach-imx/cpu_init.c index 7603883d8e..6971d89d9e 100644 --- a/arch/arm/mach-imx/cpu_init.c +++ b/arch/arm/mach-imx/cpu_init.c @@ -33,3 +33,8 @@ void imx6_cpu_lowlevel_init(void) enable_arm_errata_794072_war(); enable_arm_errata_845369_war(); } + +void vf610_cpu_lowlevel_init(void) +{ + arm_cpu_lowlevel_init(); +} diff --git a/arch/arm/mach-imx/imx.c b/arch/arm/mach-imx/imx.c index 5ab6afc9bf..eb2adcde41 100644 --- a/arch/arm/mach-imx/imx.c +++ b/arch/arm/mach-imx/imx.c @@ -63,6 +63,8 @@ static int imx_soc_from_dt(void) return IMX_CPU_IMX6; if (of_machine_is_compatible("fsl,imx6qp")) return IMX_CPU_IMX6; + if (of_machine_is_compatible("fsl,vf610")) + return IMX_CPU_VF610; return 0; } @@ -99,6 +101,8 @@ static int imx_init(void) ret = imx53_init(); else if (cpu_is_mx6()) ret = imx6_init(); + else if (cpu_is_vf610()) + ret = 0; else return -EINVAL; diff --git a/arch/arm/mach-imx/include/mach/generic.h b/arch/arm/mach-imx/include/mach/generic.h index 7c275dff84..34194509e8 100644 --- a/arch/arm/mach-imx/include/mach/generic.h +++ b/arch/arm/mach-imx/include/mach/generic.h @@ -45,6 +45,7 @@ int imx6_devices_init(void); void imx5_cpu_lowlevel_init(void); void imx6_cpu_lowlevel_init(void); +void vf610_cpu_lowlevel_init(void); /* There's a off-by-one betweem the gpio bank number and the gpiochip */ /* range e.g. GPIO_1_5 is gpio 5 under linux */ @@ -173,6 +174,18 @@ extern unsigned int __imx_cpu_type; # define cpu_is_mx6() (0) #endif +#ifdef CONFIG_ARCH_VF610 +# ifdef imx_cpu_type +# undef imx_cpu_type +# define imx_cpu_type __imx_cpu_type +# else +# define imx_cpu_type IMX_CPU_VF610 +# endif +# define cpu_is_vf610() (imx_cpu_type == IMX_CPU_VF610) +#else +# define cpu_is_vf610() (0) +#endif + #define cpu_is_mx23() (0) #define cpu_is_mx28() (0) diff --git a/arch/arm/mach-imx/include/mach/imx_cpu_types.h b/arch/arm/mach-imx/include/mach/imx_cpu_types.h index 84724883b5..50be0b6b5e 100644 --- a/arch/arm/mach-imx/include/mach/imx_cpu_types.h +++ b/arch/arm/mach-imx/include/mach/imx_cpu_types.h @@ -11,5 +11,6 @@ #define IMX_CPU_IMX51 51 #define IMX_CPU_IMX53 53 #define IMX_CPU_IMX6 6 +#define IMX_CPU_VF610 610 #endif /* __MACH_IMX_CPU_TYPES_H */ |