Skip to contentSkip to conversation

ARM: vt8500: Convert arch-vt8500 to multiplatform

RFC PATCH Superseded Tony Prisk 3 participants 8 messages Oct 11, 2012 – Oct 13, 2012

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Tony Prisk

author
#0 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

This patch completes the conversion to ARCH_MULTI_V5 for arch-vt8500. Removed /mach/include/ and remaining unneeded files.

---
 arch/arm/Kconfig                                |   18 ++----------
 arch/arm/mach-vt8500/include/mach/debug-macro.S |   31 -------------------
 arch/arm/mach-vt8500/include/mach/timex.h       |   26 ----------------
 arch/arm/mach-vt8500/include/mach/uncompress.h  |   36 -----------------------
 4 files changed, 2 insertions(+), 109 deletions(-)
 delete mode 100644 arch/arm/mach-vt8500/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-vt8500/include/mach/timex.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/uncompress.h
arch/arm/Kconfig +2 -16
index 32b62ac..e71ad2c 100644
@@ -938,22 +938,6 @@ config PLAT_SPEAR
 	help
 	  Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
 
-config ARCH_VT8500
-	bool "VIA/WonderMedia 85xx"
-	select CPU_ARM926T
-	select GENERIC_GPIO
-	select ARCH_HAS_CPUFREQ
-	select GENERIC_CLOCKEVENTS
-	select ARCH_REQUIRE_GPIOLIB
-	select USE_OF
-	select COMMON_CLK
-	select HAVE_CLK
-	select CLKDEV_LOOKUP
-	select MULTI_IRQ_HANDLER
-	select SPARSE_IRQ
-	help
-	  Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
-
 config ARCH_ZYNQ
 	bool "Xilinx Zynq ARM Cortex A9 Platform"
 	select CPU_V7
@@ -1125,6 +1109,8 @@ source "arch/arm/mach-versatile/Kconfig"
 source "arch/arm/mach-vexpress/Kconfig"
 source "arch/arm/plat-versatile/Kconfig"
 
+source "arch/arm/mach-vt8500/Kconfig"
+
 source "arch/arm/mach-w90x900/Kconfig"
 
 # Definitions to make life easier
arch/arm/mach-vt8500/include/mach/debug-macro.S deleted +0 -31
deleted file mode 100644
index ca292f2..0000000
@@ -1,31 +0,0 @@
-/*
- * arch/arm/mach-vt8500/include/mach/debug-macro.S
- *
- *  Copyright (C) 2010 Alexey Charkov <[email protected]>
- *
- * Debugging macro include header
- *
- * 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.
- *
-*/
-
-	.macro	addruart, rp, rv, tmp
-	mov	\rp,      #0x00200000
-	orr	\rv, \rp, #0xf8000000
-	orr	\rp, \rp, #0xd8000000
-	.endm
-
-	.macro	senduart,rd,rx
-	strb	\rd, [\rx, #0]
-	.endm
-
-	.macro	busyuart,rd,rx
-1001:	ldr	\rd, [\rx, #0x1c]
-	ands	\rd, \rd, #0x2
-	bne	1001b
-	.endm
-
-	.macro	waituart,rd,rx
-	.endm
arch/arm/mach-vt8500/include/mach/timex.h deleted +0 -26
deleted file mode 100644
index 8487e4c..0000000
@@ -1,26 +0,0 @@
-/*
- *  arch/arm/mach-vt8500/include/mach/timex.h
- *
- *  Copyright (C) 2010 Alexey Charkov <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef MACH_TIMEX_H
-#define MACH_TIMEX_H
-
-#define CLOCK_TICK_RATE		(3000000)
-
-#endif /* MACH_TIMEX_H */
arch/arm/mach-vt8500/include/mach/uncompress.h deleted +0 -36
deleted file mode 100644
index a9b6cae..0000000
@@ -1,36 +0,0 @@
-/* arch/arm/mach-vt8500/include/mach/uncompress.h
- *
- * Copyright (C) 2010 Alexey Charkov <[email protected]>
- *
- * Based on arch/arm/mach-dove/include/mach/uncompress.h
- *
- * 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 UART0_PHYS     0xd8200000
-#define UART0_ADDR(x)  *(volatile unsigned char *)(UART0_PHYS + x)
-
-static void putc(const char c)
-{
-	while (UART0_ADDR(0x1c) & 0x2)
-		/* Tx busy, wait and poll */;
-
-	UART0_ADDR(0) = c;
-}
-
-static void flush(void)
-{
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()
-#define arch_decomp_wdog()
Signature · 1 line
1.7.9.5
maintainer
#1 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

2012/10/11 Tony Prisk <[email protected]>:

Quoted 77 lines

This patch completes the conversion to ARCH_MULTI_V5 for arch-vt8500. Removed /mach/include/ and remaining unneeded files.

---
 arch/arm/Kconfig                                |   18 ++----------
 arch/arm/mach-vt8500/include/mach/debug-macro.S |   31 -------------------
 arch/arm/mach-vt8500/include/mach/timex.h       |   26 ----------------
 arch/arm/mach-vt8500/include/mach/uncompress.h  |   36 -----------------------
 4 files changed, 2 insertions(+), 109 deletions(-)
 delete mode 100644 arch/arm/mach-vt8500/include/mach/debug-macro.S
 delete mode 100644 arch/arm/mach-vt8500/include/mach/timex.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/uncompress.h
arch/arm/Kconfig +2 -16
index 32b62ac..e71ad2c 100644
@@ -938,22 +938,6 @@ config PLAT_SPEAR
        help
          Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
 
-config ARCH_VT8500
-       bool "VIA/WonderMedia 85xx"
-       select CPU_ARM926T
-       select GENERIC_GPIO
-       select ARCH_HAS_CPUFREQ
-       select GENERIC_CLOCKEVENTS
-       select ARCH_REQUIRE_GPIOLIB
-       select USE_OF
-       select COMMON_CLK
-       select HAVE_CLK
-       select CLKDEV_LOOKUP
-       select MULTI_IRQ_HANDLER
-       select SPARSE_IRQ
-       help
-         Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
-
 config ARCH_ZYNQ
        bool "Xilinx Zynq ARM Cortex A9 Platform"
        select CPU_V7
@@ -1125,6 +1109,8 @@ source "arch/arm/mach-versatile/Kconfig"
 source "arch/arm/mach-vexpress/Kconfig"
 source "arch/arm/plat-versatile/Kconfig"
 
+source "arch/arm/mach-vt8500/Kconfig"
+
 source "arch/arm/mach-w90x900/Kconfig"
 
 # Definitions to make life easier
arch/arm/mach-vt8500/include/mach/debug-macro.S deleted +0 -21
deleted file mode 100644
index ca292f2..0000000
@@ -1,31 +0,0 @@
-/*
- * arch/arm/mach-vt8500/include/mach/debug-macro.S
- *
- *  Copyright (C) 2010 Alexey Charkov <[email protected]>
- *
- * Debugging macro include header
- *
- * 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.
- *
-*/
-
-       .macro  addruart, rp, rv, tmp
-       mov     \rp,      #0x00200000
-       orr     \rv, \rp, #0xf8000000
-       orr     \rp, \rp, #0xd8000000
-       .endm
-
-       .macro  senduart,rd,rx
-       strb    \rd, [\rx, #0]

arch/arm/mach-vt8500/include/mach/debug-macro.S line 31

Quoted 10 lines
arch/arm/mach-vt8500/include/mach/debug-macro.S deleted +0 -10
-       .endm
-
-       .macro  busyuart,rd,rx
-1001:  ldr     \rd, [\rx, #0x1c]
-       ands    \rd, \rd, #0x2
-       bne     1001b
-       .endm
-
-       .macro  waituart,rd,rx
-       .endm

Does this imply that early printk won't be supported any longer, or am I missing something?

Thanks,
Alexey

#2 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

Quoted 2 lines · Alexey Charkov

Does this imply that early printk won't be supported any longer, or am I missing something?

You are correct. However, there is work under way to bring it back. If you want to keep it around in the meantime, you could let the user enable VT8500 either in MULTIPLATFORM or standalone using some Kconfig logic like:

choice "Platform selection"

...

config VT8500_SINGLE

	bool "Via/Wondermedia VT8500 / WM8505 / WM8650"

...

endchoice

...

config VT8500

	bool "Via/Wondermedia VT8500 / WM8505 / WM8650" if ARCH_MULTIPLATFORM
	default VT8500_SINGLE

	Arnd
author
#3 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

Quoted 20 lines · Arnd Bergmann
Quoted 2 lines · Alexey Charkov

Does this imply that early printk won't be supported any longer, or am I missing something?

You are correct. However, there is work under way to bring it back. If you want to keep it around in the meantime, you could let the user enable VT8500 either in MULTIPLATFORM or standalone using some Kconfig logic like:

choice "Platform selection"

...

config VT8500_SINGLE

	bool "Via/Wondermedia VT8500 / WM8505 / WM8650"

...

endchoice

Quoted 7 lines

...

config VT8500

	bool "Via/Wondermedia VT8500 / WM8505 / WM8650" if ARCH_MULTIPLATFORM
	default VT8500_SINGLE

	Arnd

Alexey (or anyone else),

Do you want it kept in the meantime?

I think the easiest way to add/keep it would be to create:

ARCH_VT8500_SINGLE (arm/Kconfig) and ARCH_VT8500_MULTI (arch-vt8500/Kconfig) and have them both select ARCH_VT8500 as an option to make drivers available.

Regards
Tony P

#4 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

Quoted 8 lines · Tony Prisk
Quoted 5 lines

config VT8500

      bool "Via/Wondermedia VT8500 / WM8505 / WM8650" if ARCH_MULTIPLATFORM
      default VT8500_SINGLE

      Arnd

Alexey (or anyone else),

Quoted 7 lines

Do you want it kept in the meantime?

I think the easiest way to add/keep it would be to create:

ARCH_VT8500_SINGLE (arm/Kconfig) and ARCH_VT8500_MULTI (arch-vt8500/Kconfig) and have them both select ARCH_VT8500 as an option to make drivers available.

You only need one new symbol, not too. Keeping CONFIG_VT8500 as the user-selectable option as I outlined in the example means that existing .config files keep working, which is sometimes useful.

Arnd

#5 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

Quoted 17 lines · Tony Prisk
Quoted 8 lines
Quoted 5 lines

config VT8500

      bool "Via/Wondermedia VT8500 / WM8505 / WM8650" if ARCH_MULTIPLATFORM
      default VT8500_SINGLE

      Arnd

Alexey (or anyone else),

Quoted 7 lines

Do you want it kept in the meantime?

I think the easiest way to add/keep it would be to create:

ARCH_VT8500_SINGLE (arm/Kconfig) and ARCH_VT8500_MULTI (arch-vt8500/Kconfig) and have them both select ARCH_VT8500 as an option to make drivers available.

Quoted 6 lines

You only need one new symbol, not too. Keeping CONFIG_VT8500 as the user-selectable option as I outlined in the example means that existing .config files keep working, which is sometimes useful.

Arnd

To clarify what you said (because I'm not sure I got it the first time)...

Keep ARCH_VT8500 as the single-platform Kconfig option.
Add a new ARCH_VT8500_MULTI (for example) as the multiplatform Kconfig option.

Have ARCH_VT8500_MULTI select ARCH_VT8500??

The last bit confuses me (and seems a little backwards, although I suspect it would work since none of the options would cause conflicts). Without ARCH_VT8500 selected, we have no driver options without changing all the Kconfig's.

If this is correct, we are basically using _MULTI to add more options on top of _VT8500.

Am I close or did I completely misunderstand? :)

Regards
Tony P

#6 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

Quoted 5 lines · linux at prisktech.co.nz

To clarify what you said (because I'm not sure I got it the first time)...

Keep ARCH_VT8500 as the single-platform Kconfig option.
Add a new ARCH_VT8500_MULTI (for example) as the multiplatform Kconfig option.

Quoted 8 lines

Have ARCH_VT8500_MULTI select ARCH_VT8500??

The last bit confuses me (and seems a little backwards, although I suspect it would work since none of the options would cause conflicts). Without ARCH_VT8500 selected, we have no driver options without changing all the Kconfig's.

If this is correct, we are basically using _MULTI to add more options on top of _VT8500.

No, this would not work, because Kconfig does not let you 'select' a symbol that is inside of a 'choice' list.

The other way round works though: rename the existing ARCH_VT8500 to ARCH_VT8500_SINGLE, and add a new symbol in arch/arm/mach-vt8500/Kconfig like

config VT8500

       bool "Via/Wondermedia VT8500 / WM8505 / WM8650" if ARCH_MULTI_V5
       default ARCH_VT8500_SINGLE

This one becomes visible when ARCH_MULTI_V5 is set but invisible in a other cases. The 'default ARCH_VT8500_SINGLE' statement means it is automatically enabled (but still invisible) if ARCH_VT8500_SINGLE is selected in the 'choice', and it's invisible and disabled in all other cases.

Arnd

author
#7 lore raw

RFC PATCH 1/1 ARM: vt8500: Convert arch-vt8500 to multiplatform

Quoted 26 lines · Arnd Bergmann
Quoted 5 lines · linux at prisktech.co.nz

To clarify what you said (because I'm not sure I got it the first time)...

Keep ARCH_VT8500 as the single-platform Kconfig option.
Add a new ARCH_VT8500_MULTI (for example) as the multiplatform Kconfig option.

Quoted 8 lines

Have ARCH_VT8500_MULTI select ARCH_VT8500??

The last bit confuses me (and seems a little backwards, although I suspect it would work since none of the options would cause conflicts). Without ARCH_VT8500 selected, we have no driver options without changing all the Kconfig's.

If this is correct, we are basically using _MULTI to add more options on top of _VT8500.

No, this would not work, because Kconfig does not let you 'select' a symbol that is inside of a 'choice' list.

The other way round works though: rename the existing ARCH_VT8500 to ARCH_VT8500_SINGLE, and add a new symbol in arch/arm/mach-vt8500/Kconfig like

config VT8500

       bool "Via/Wondermedia VT8500 / WM8505 / WM8650" if ARCH_MULTI_V5
       default ARCH_VT8500_SINGLE
Quoted 7 lines

This one becomes visible when ARCH_MULTI_V5 is set but invisible in a other cases. The 'default ARCH_VT8500_SINGLE' statement means it is automatically enabled (but still invisible) if ARCH_VT8500_SINGLE is selected in the 'choice', and it's invisible and disabled in all other cases.

Arnd

I will leave the patch as is unless someone specifically needs earlyprintk in the mean time - at the moment, I don't need it again until we look to add WM8750 and WM8850 (Framebuffer problems at the moment).

There is plenty of other stuff to do for the existing platforms, and earlyprintk will be re-enabled once the support is readded.

Tony P