* [PATCH RFC] ARM: clps711x: Partial multiplatform support
@ 2014-05-31 18:00 Alexander Shiyan
2014-05-31 18:12 ` Arnd Bergmann
0 siblings, 1 reply; 4+ messages in thread
From: Alexander Shiyan @ 2014-05-31 18:00 UTC (permalink / raw)
To: linux-arm-kernel
This patch provide initial partial multiplatform support for CLPS711X CPUs.
Not intended for apply, just for comments at now.
---
arch/arm/Kconfig | 10 ++--------
arch/arm/mach-clps711x/Kconfig | 21 +++++++++++++++++++++
arch/arm/mach-clps711x/common.c | 2 +-
arch/arm/mach-clps711x/devices.c | 2 +-
arch/arm/mach-clps711x/include/mach/hardware.h | 2 +-
5 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 899afa4..aced2fb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -385,15 +385,9 @@ config ARCH_AT91
This enables support for systems based on Atmel
AT91RM9200 and AT91SAM9* processors.
-config ARCH_CLPS711X
+config CLPS711X_SINGLE
bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
- select ARCH_REQUIRE_GPIOLIB
- select AUTO_ZRELADDR
- select CLKSRC_MMIO
- select COMMON_CLK
- select CPU_ARM720T
- select GENERIC_CLOCKEVENTS
- select MFD_SYSCON
+ select ARCH_CLPS711X
help
Support for Cirrus Logic 711x/721x/731x based boards.
diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig
index f711498..1802562 100644
--- a/arch/arm/mach-clps711x/Kconfig
+++ b/arch/arm/mach-clps711x/Kconfig
@@ -1,15 +1,34 @@
+config ARCH_CLPS711X
+ bool
+ depends on CLPS711X_SINGLE || CLPS711X_MULTI
+ select ARCH_REQUIRE_GPIOLIB
+ select AUTO_ZRELADDR
+ select CLKSRC_MMIO
+ select COMMON_CLK
+ select CPU_ARM720T
+ select GENERIC_CLOCKEVENTS
+ select MFD_SYSCON
+
+config CLPS711X_MULTI
+ bool "Cirrus Logic CLPS711X" if ARCH_MULTI_V4T
+ select ARCH_CLPS711X
+ help
+ Support for Cirrus Logic CLPS711X-based family of processors.
+
if ARCH_CLPS711X
menu "CLPS711X/EP721X/EP731X Implementations"
config ARCH_AUTCPU12
bool "AUTCPU12"
+ depends on CLPS711X_SINGLE
help
Say Y if you intend to run the kernel on the autronix autcpu12
board. This board is based on a Cirrus Logic CS89712.
config ARCH_CDB89712
bool "CDB89712"
+ depends on CLPS711X_SINGLE
help
This is an evaluation board from Cirrus for the CS89712 processor.
The board includes 2 serial ports, Ethernet, IRDA, and expansion
@@ -22,6 +41,7 @@ config ARCH_CLEP7312
config ARCH_EDB7211
bool "EDB7211"
+ depends on CLPS711X_SINGLE
select ARCH_HAS_HOLES_MEMORYMODEL
help
Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
@@ -29,6 +49,7 @@ config ARCH_EDB7211
config ARCH_P720T
bool "P720T"
+ depends on CLPS711X_SINGLE
help
Say Y here if you intend to run this kernel on the ARM Prospector
720T.
diff --git a/arch/arm/mach-clps711x/common.c b/arch/arm/mach-clps711x/common.c
index 2a6323b..a230989 100644
--- a/arch/arm/mach-clps711x/common.c
+++ b/arch/arm/mach-clps711x/common.c
@@ -35,7 +35,7 @@
#include <asm/mach/time.h>
#include <asm/system_misc.h>
-#include <mach/hardware.h>
+#include "include/mach/hardware.h"
#include "common.h"
diff --git a/arch/arm/mach-clps711x/devices.c b/arch/arm/mach-clps711x/devices.c
index 0c689d3..08562d5 100644
--- a/arch/arm/mach-clps711x/devices.c
+++ b/arch/arm/mach-clps711x/devices.c
@@ -12,7 +12,7 @@
#include <linux/platform_device.h>
#include <linux/sizes.h>
-#include <mach/hardware.h>
+#include "include/mach/hardware.h"
static const struct resource clps711x_cpuidle_res __initconst =
DEFINE_RES_MEM(CLPS711X_PHYS_BASE + HALT, SZ_128);
diff --git a/arch/arm/mach-clps711x/include/mach/hardware.h b/arch/arm/mach-clps711x/include/mach/hardware.h
index 833129c..e507a60 100644
--- a/arch/arm/mach-clps711x/include/mach/hardware.h
+++ b/arch/arm/mach-clps711x/include/mach/hardware.h
@@ -22,7 +22,7 @@
#ifndef __MACH_HARDWARE_H
#define __MACH_HARDWARE_H
-#include <mach/clps711x.h>
+#include "clps711x.h"
#define CLPS711X_VIRT_BASE IOMEM(0xfeff0000)
--
1.8.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH RFC] ARM: clps711x: Partial multiplatform support
2014-05-31 18:00 [PATCH RFC] ARM: clps711x: Partial multiplatform support Alexander Shiyan
@ 2014-05-31 18:12 ` Arnd Bergmann
2014-05-31 18:25 ` Alexander Shiyan
2014-05-31 19:53 ` Alexander Shiyan
0 siblings, 2 replies; 4+ messages in thread
From: Arnd Bergmann @ 2014-05-31 18:12 UTC (permalink / raw)
To: linux-arm-kernel
On Saturday 31 May 2014 22:00:06 Alexander Shiyan wrote:
> This patch provide initial partial multiplatform support for CLPS711X CPUs.
> Not intended for apply, just for comments at now.
It's great to see you are this close now!
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 899afa4..aced2fb 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -385,15 +385,9 @@ config ARCH_AT91
> This enables support for systems based on Atmel
> AT91RM9200 and AT91SAM9* processors.
>
> -config ARCH_CLPS711X
> +config CLPS711X_SINGLE
> bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
> - select ARCH_REQUIRE_GPIOLIB
> - select AUTO_ZRELADDR
> - select CLKSRC_MMIO
> - select COMMON_CLK
> - select CPU_ARM720T
> - select GENERIC_CLOCKEVENTS
> - select MFD_SYSCON
> + select ARCH_CLPS711X
> help
> Support for Cirrus Logic 711x/721x/731x based boards.
>
> diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig
> index f711498..1802562 100644
> --- a/arch/arm/mach-clps711x/Kconfig
> +++ b/arch/arm/mach-clps711x/Kconfig
> @@ -1,15 +1,34 @@
> +config ARCH_CLPS711X
> + bool
> + depends on CLPS711X_SINGLE || CLPS711X_MULTI
> + select ARCH_REQUIRE_GPIOLIB
> + select AUTO_ZRELADDR
> + select CLKSRC_MMIO
> + select COMMON_CLK
> + select CPU_ARM720T
> + select GENERIC_CLOCKEVENTS
> + select MFD_SYSCON
> +
> +config CLPS711X_MULTI
> + bool "Cirrus Logic CLPS711X" if ARCH_MULTI_V4T
> + select ARCH_CLPS711X
> + help
> + Support for Cirrus Logic CLPS711X-based family of processors.
The split between single and multi is just intended to be temporary,
while the framebuffer driver is being sorted out, right?
In general, I'd be happier skipping that stage and going to multiplatform
for all of clps711x when it's ready, but we can also do it like this
if there is a good reason and you have a clear schedule for when to
remove the _SINGLE part.
One technicality: this change breaks all defconfig files and user
.configs. You can avoid that if you keep the name ARCH_CLPS711X for
either the single- or the multiplatform case and name the common
option ARCH_CLPS711X_COMMON.
Arnd
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RFC] ARM: clps711x: Partial multiplatform support
2014-05-31 18:12 ` Arnd Bergmann
@ 2014-05-31 18:25 ` Alexander Shiyan
2014-05-31 19:53 ` Alexander Shiyan
1 sibling, 0 replies; 4+ messages in thread
From: Alexander Shiyan @ 2014-05-31 18:25 UTC (permalink / raw)
To: linux-arm-kernel
Sat, 31 May 2014 20:12:21 +0200 ?? Arnd Bergmann <arnd@arndb.de>:
> On Saturday 31 May 2014 22:00:06 Alexander Shiyan wrote:
> > This patch provide initial partial multiplatform support for CLPS711X CPUs.
> > Not intended for apply, just for comments at now.
>
> It's great to see you are this close now!
>
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > index 899afa4..aced2fb 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -385,15 +385,9 @@ config ARCH_AT91
> > This enables support for systems based on Atmel
> > AT91RM9200 and AT91SAM9* processors.
> >
> > -config ARCH_CLPS711X
> > +config CLPS711X_SINGLE
> > bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
> > - select ARCH_REQUIRE_GPIOLIB
> > - select AUTO_ZRELADDR
> > - select CLKSRC_MMIO
> > - select COMMON_CLK
> > - select CPU_ARM720T
> > - select GENERIC_CLOCKEVENTS
> > - select MFD_SYSCON
> > + select ARCH_CLPS711X
> > help
> > Support for Cirrus Logic 711x/721x/731x based boards.
> >
> > diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig
> > index f711498..1802562 100644
> > --- a/arch/arm/mach-clps711x/Kconfig
> > +++ b/arch/arm/mach-clps711x/Kconfig
> > @@ -1,15 +1,34 @@
> > +config ARCH_CLPS711X
> > + bool
> > + depends on CLPS711X_SINGLE || CLPS711X_MULTI
> > + select ARCH_REQUIRE_GPIOLIB
> > + select AUTO_ZRELADDR
> > + select CLKSRC_MMIO
> > + select COMMON_CLK
> > + select CPU_ARM720T
> > + select GENERIC_CLOCKEVENTS
> > + select MFD_SYSCON
> > +
> > +config CLPS711X_MULTI
> > + bool "Cirrus Logic CLPS711X" if ARCH_MULTI_V4T
> > + select ARCH_CLPS711X
> > + help
> > + Support for Cirrus Logic CLPS711X-based family of processors.
>
> The split between single and multi is just intended to be temporary,
> while the framebuffer driver is being sorted out, right?
Yes. This is a general thing why this patch provides "partial" support.
> In general, I'd be happier skipping that stage and going to multiplatform
> for all of clps711x when it's ready, but we can also do it like this
> if there is a good reason and you have a clear schedule for when to
> remove the _SINGLE part.
>
> One technicality: this change breaks all defconfig files and user
> .configs. You can avoid that if you keep the name ARCH_CLPS711X for
> either the single- or the multiplatform case and name the common
> option ARCH_CLPS711X_COMMON.
Yes, this is a problem. I thought about the best way to solve the problem
of "flip-flop" Kconfig options, but did not come to a good decision.
I'll have to think about this problem. I will look at your solution to the problem.
---
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RFC] ARM: clps711x: Partial multiplatform support
2014-05-31 18:12 ` Arnd Bergmann
2014-05-31 18:25 ` Alexander Shiyan
@ 2014-05-31 19:53 ` Alexander Shiyan
1 sibling, 0 replies; 4+ messages in thread
From: Alexander Shiyan @ 2014-05-31 19:53 UTC (permalink / raw)
To: linux-arm-kernel
Sat, 31 May 2014 20:12:21 +0200 ?? Arnd Bergmann <arnd@arndb.de>:
> On Saturday 31 May 2014 22:00:06 Alexander Shiyan wrote:
> > This patch provide initial partial multiplatform support for CLPS711X CPUs.
> > Not intended for apply, just for comments at now.
...
> One technicality: this change breaks all defconfig files and user
> .configs. You can avoid that if you keep the name ARCH_CLPS711X for
> either the single- or the multiplatform case and name the common
> option ARCH_CLPS711X_COMMON.
arch/arm/Kconfig:303:error: recursive dependency detected!
arch/arm/Kconfig:303: choice <choice> contains symbol ARCH_CLPS711X
arch/arm/Kconfig:388: symbol ARCH_CLPS711X is part of choice CLPS711X_MULTI
arch/arm/mach-clps711x/Kconfig:12: symbol CLPS711X_MULTI depends on ARCH_MULTI_V4T
arch/arm/Kconfig:874: symbol ARCH_MULTI_V4T depends on ARCH_MULTIPLATFORM
arch/arm/Kconfig:308: symbol ARCH_MULTIPLATFORM is part of choice <choice>
So, it is so hard to keep ARCH_CLPS711X in its original state...
---
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-05-31 19:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-31 18:00 [PATCH RFC] ARM: clps711x: Partial multiplatform support Alexander Shiyan
2014-05-31 18:12 ` Arnd Bergmann
2014-05-31 18:25 ` Alexander Shiyan
2014-05-31 19:53 ` Alexander Shiyan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox