arm: vt8500: Add support for Wondermedia WM8750/WM8850
cover arm: vt8500: Add support for Wondermedia WM8750/WM8850
The following changes since commit a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565:
Linux 3.8-rc1 (2012-12-21 17:19:00 -0800)
are available in the git repository at:
git://server.prisktech.co.nz/git/linuxwmt.git tags/armsoc-3.9
for you to fetch changes up to 82c8f175662873f7f7f4c78698888ee963d7d967:
arm: vt8500: Remove remaining mach includes (2012-12-28 21:05:19 +1300)
----------------------------------------------------------------
arm: vt8500: Add support for WM8750/WM8850. Cleanup multiplatform changes
This patchset adds support for the WM8750 (ARMv6) and WM8850 (ARMv7), and cleans up changes for multiplatform configuration.
Single platform Kconfig options are removed, along with the remaining mach/includes.
The debug-macro.s is moved to arm/include/debug/ to allow DEBUG_LL on multi-platform.
----------------------------------------------------------------
Tony Prisk (4):
arm: vt8500: Add support for Wondermedia WM8750/WM8850
arm: vt8500: Remove single platform Kconfig options
arm: vt8500: Convert debug-macro.S to be multiplatform friendly
arm: vt8500: Remove remaining mach includes
Documentation/devicetree/bindings/arm/vt8500.txt | 8 +++++
arch/arm/Kconfig | 16 ---------
arch/arm/Kconfig.debug | 8 +++++
.../mach/debug-macro.S => include/debug/vt8500.S} | 24 ++++++++-----
arch/arm/mach-vt8500/Kconfig | 26 ++++++++++++--
arch/arm/mach-vt8500/include/mach/timex.h | 26 --------------
arch/arm/mach-vt8500/include/mach/uncompress.h | 37 --------------------
arch/arm/mach-vt8500/vt8500.c | 2 ++
8 files changed, 56 insertions(+), 91 deletions(-)
rename arch/arm/{mach-vt8500/include/mach/debug-macro.S => include/debug/vt8500.S} (56%)
delete mode 100644 arch/arm/mach-vt8500/include/mach/timex.h
delete mode 100644 arch/arm/mach-vt8500/include/mach/uncompress.hPATCH 1/4 arm: vt8500: Add support for Wondermedia WM8750/WM8850
This patch adds support for the WM8750 (ARMv6) and WM8850 (ARMv7).
Common features across all SoCs are split into ARCH_VT8500 and unique features are specified by each SoC option.
--- Documentation/devicetree/bindings/arm/vt8500.txt | 8 ++++++ arch/arm/Kconfig | 17 +++++++---- arch/arm/mach-vt8500/Kconfig | 33 ++++++++++++++++++++-- arch/arm/mach-vt8500/vt8500.c | 2 ++ 4 files changed, 51 insertions(+), 9 deletions(-)
Documentation/devicetree/bindings/arm/vt8500.txt +8 -0
@@ -12,3 +12,11 @@ compatible = "wm,wm8505"; Boards with the Wondermedia WM8650 SoC shall have the following properties: Required root node property: compatible = "wm,wm8650"; + +Boards with the Wondermedia WM8750 SoC shall have the following properties: +Required root node property: +compatible = "wm,wm8750"; + +Boards with the Wondermedia WM8850 SoC shall have the following properties: +Required root node property: +compatible = "wm,wm8850";
arch/arm/Kconfig +11 -6
@@ -952,20 +952,25 @@ config ARCH_OMAP config ARCH_VT8500_SINGLE bool "VIA/WonderMedia 85xx" - select ARCH_HAS_CPUFREQ - select ARCH_REQUIRE_GPIOLIB - select CLKDEV_LOOKUP + select ARCH_VT8500 select COMMON_CLK select CPU_ARM926T - select GENERIC_CLOCKEVENTS - select GENERIC_GPIO - select HAVE_CLK select MULTI_IRQ_HANDLER select SPARSE_IRQ select USE_OF help Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip. +config ARCH_WM8750_SINGLE + bool "WonderMedia WM8750/WM8850" + select ARCH_VT8500 + select COMMON_CLK + select MULTI_IRQ_HANDLER + select SPARSE_IRQ + select USE_OF + help + Support for WonderMedia WM8750/WM8850 System-on-Chip. + endchoice menu "Multiple platform selection"
arch/arm/mach-vt8500/Kconfig +30 -3
@@ -1,12 +1,39 @@ config ARCH_VT8500 - bool "VIA/WonderMedia 85xx" if ARCH_MULTI_V5 - default ARCH_VT8500_SINGLE + bool select ARCH_HAS_CPUFREQ select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP - select CPU_ARM926T select GENERIC_CLOCKEVENTS select GENERIC_GPIO select HAVE_CLK + +config ARCH_WM8505 + bool "VIA/WonderMedia 85xx" if !ARCH_VT8500_SINGLE + depends on ARCH_MULTI_V5 + default ARCH_VT8500_SINGLE + select ARCH_VT8500 + select CPU_ARM926T help Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip. + +config ARCH_WM8750 + bool "WonderMedia WM8750" + depends on ARCH_MULTI_V6 || ARCH_WM8750_SINGLE + select ARCH_VT8500 + select CPU_V6 + help + Support for WonderMedia WM8750 System-on-Chip. + +config ARCH_WM8850 + bool "WonderMedia WM8850" + depends on ARCH_MULTI_V7 || ARCH_WM8750_SINGLE + select ARCH_VT8500 + select CPU_V7 + help + Support for WonderMedia WM8850 System-on-Chip. + +# ensure that ARCH_WM8850 is on if ARCH_WM8750 is off +config ARCH_WM8850_AUTO + def_bool y + depends on ARCH_WM8750_SINGLE && !ARCH_WM8750 + select ARCH_WM8850
arch/arm/mach-vt8500/vt8500.c +2 -0
@@ -183,6 +183,8 @@ static const char * const vt8500_dt_compat[] = {"via,vt8500" ,"wm,wm8650" ,"wm,wm8505" , +"wm,wm8750" , +"wm,wm8850" , };DT_MACHINE_START (WMT_DT ,"VIA/Wondermedia SoC (Device Tree Support)" )
Signature · 1 line
1.7.9.5
PATCH 2/4 arm: vt8500: Remove single platform Kconfig options
In reply to Tony PriskThis patch completes the move of arch-vt8500 to multiplatform only.
The remaining single-image Kconfig options are removed from arch/arm/Kconfig and the options in arch/arm/mach-vt8500/Kconfig are updated.
--- arch/arm/Kconfig | 21 --------------------- arch/arm/mach-vt8500/Kconfig | 13 +++---------- 2 files changed, 3 insertions(+), 31 deletions(-)
arch/arm/Kconfig +0 -21
@@ -950,27 +950,6 @@ config ARCH_OMAP help Support for TI's OMAP platform (OMAP1/2/3/4). -config ARCH_VT8500_SINGLE - bool "VIA/WonderMedia 85xx" - select ARCH_VT8500 - select COMMON_CLK - select CPU_ARM926T - select MULTI_IRQ_HANDLER - select SPARSE_IRQ - select USE_OF - help - Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip. - -config ARCH_WM8750_SINGLE - bool "WonderMedia WM8750/WM8850" - select ARCH_VT8500 - select COMMON_CLK - select MULTI_IRQ_HANDLER - select SPARSE_IRQ - select USE_OF - help - Support for WonderMedia WM8750/WM8850 System-on-Chip. - endchoice menu "Multiple platform selection"
arch/arm/mach-vt8500/Kconfig +3 -10
@@ -8,9 +8,8 @@ config ARCH_VT8500 select HAVE_CLK config ARCH_WM8505 - bool "VIA/WonderMedia 85xx" if !ARCH_VT8500_SINGLE + bool "VIA/WonderMedia 85xx" depends on ARCH_MULTI_V5 - default ARCH_VT8500_SINGLE select ARCH_VT8500 select CPU_ARM926T help
@@ -18,7 +17,7 @@ config ARCH_WM8505 config ARCH_WM8750 bool "WonderMedia WM8750" - depends on ARCH_MULTI_V6 || ARCH_WM8750_SINGLE + depends on ARCH_MULTI_V6 select ARCH_VT8500 select CPU_V6 help
@@ -26,14 +25,8 @@ config ARCH_WM8750 config ARCH_WM8850 bool "WonderMedia WM8850" - depends on ARCH_MULTI_V7 || ARCH_WM8750_SINGLE + depends on ARCH_MULTI_V7 select ARCH_VT8500 select CPU_V7 help Support for WonderMedia WM8850 System-on-Chip. - -# ensure that ARCH_WM8850 is on if ARCH_WM8750 is off -config ARCH_WM8850_AUTO - def_bool y - depends on ARCH_WM8750_SINGLE && !ARCH_WM8750 - select ARCH_WM8850
Signature · 1 line
1.7.9.5
PATCH 3/4 arm: vt8500: Convert debug-macro.S to be multiplatform friendly
In reply to Tony PriskThis patch moves debug-macro.S from arm/mach-vt8500/include/mach to arm/include/debug/vt8500.S to provide multiplatform support.
Minor style changes in code for readability.
--- arch/arm/Kconfig.debug | 8 +++++ arch/arm/include/debug/vt8500.S | 37 +++++++++++++++++++++++ arch/arm/mach-vt8500/include/mach/debug-macro.S | 31 ------------------- 3 files changed, 45 insertions(+), 31 deletions(-) create mode 100644 arch/arm/include/debug/vt8500.S delete mode 100644 arch/arm/mach-vt8500/include/mach/debug-macro.S
arch/arm/Kconfig.debug +8 -0
@@ -412,6 +412,13 @@ choice of the tiles using the RS1 memory map, including all new A-class core tiles, FPGA-based SMMs and software models. + config DEBUG_VT8500_UART0 + bool "Use UART0 on VIA/Wondermedia SoCs" + depends on ARCH_VT8500 + help + This option selects UART0 on VIA/Wondermedia System-on-a-chip + devices, including VT8500, WM8505, WM8650 and WM8850. + config DEBUG_LL_UART_NONE bool "No low-level debugging UART" depends on !ARCH_MULTIPLATFORM
@@ -506,6 +513,7 @@ config DEBUG_LL_INCLUDE default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1 default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \ DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1 + default "debug/vt8500.S" if DEBUG_VT8500_UART0 default "debug/tegra.S" if DEBUG_TEGRA_UART default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 default "mach/debug-macro.S"
arch/arm/include/debug/vt8500.S new file +37 -0
@@ -0,0 +1,37 @@ +/* + * Debugging macro include header + * + * Copyright (C) 2010 Alexey Charkov <[email protected]> + * Moved from arch/arm/mach-vt8500/include/mach/debug-macro.S + * Minor changes for readability. + * + * 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. + */ + +#define DEBUG_LL_PHYS_BASE 0xD8000000 +#define DEBUG_LL_VIRT_BASE 0xF8000000 +#define DEBUG_LL_UART_OFFSET 0x00200000 + +#if defined(CONFIG_DEBUG_VT8500_UART0) + .macro addruart, rp, rv, tmp + mov \rp, #DEBUG_LL_UART_OFFSET + orr \rv, \rp, #DEBUG_LL_VIRT_BASE + orr \rp, \rp, #DEBUG_LL_PHYS_BASE + .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 + +#endif
arch/arm/mach-vt8500/include/mach/debug-macro.S deleted +0 -31
@@ -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
Signature · 1 line
1.7.9.5
PATCH 4/4 arm: vt8500: Remove remaining mach includes
In reply to Tony PriskRemove the last two mach-vt8500/include/mach headers as they are no longer required with multiplatform-only configuration.
--- arch/arm/mach-vt8500/include/mach/timex.h | 26 ----------------- arch/arm/mach-vt8500/include/mach/uncompress.h | 37 ------------------------ 2 files changed, 63 deletions(-) delete mode 100644 arch/arm/mach-vt8500/include/mach/timex.h delete mode 100644 arch/arm/mach-vt8500/include/mach/uncompress.h
arch/arm/mach-vt8500/include/mach/timex.h deleted +0 -26
@@ -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 -37
@@ -1,37 +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
Hi,
Quoted 24 lines · Tony Prisk
The following changes since commit
a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565:Linux 3.8-rc1 (2012-12-21 17:19:00 -0800)
are available in the git repository at:
git://server.prisktech.co.nz/git/linuxwmt.gittags/armsoc-3.9for you to fetch changes up to
82c8f175662873f7f7f4c78698888ee963d7d967:arm: vt8500: Remove remaining mach includes (2012-12-28 21:05:19 +1300)
----------------------------------------------------------------
arm: vt8500: Add support for WM8750/WM8850. Cleanup multiplatform changesThis patchset adds support for the WM8750 (ARMv6) and WM8850 (ARMv7), and cleans up changes for multiplatform configuration.
Single platform
Kconfigoptions are removed, along with the remaining mach/includes.The debug-macro.s is moved to arm/include/debug/ to allow
DEBUG_LLon multi-platform.
Quoted 8 lines
Signed-off-by Tony Prisk <[email protected]>----------------------------------------------------------------
Tony Prisk (4):
arm: vt8500: Add support for Wondermedia WM8750/WM8850
arm: vt8500: Remove single platformKconfigoptions
arm: vt8500: Convertdebug-macro.Sto be multiplatform friendly
arm: vt8500: Remove remaining mach includes
The first patch adds some Kconfig entries, and the second one removes them. Also, all but the first patch are really about multiplatform enablement.
I suggest that you split off the last three (and rebase them to be independent), and apply them to a multiplatform branch for vt8500. Then the last one is a soc branch that goes on top of the multiplatform branch (i.e. you build it on top of multiplatform). That way we can pull in the multiplatform changes together with those for other platforms, and then take the wm8{7,8}50 branch goes in with the other new-soc support from other platforms.
Does that make sense? I'll be happy to provide more explanation if it doesn't.
-Olof
Quoted 10 lines
I suggest that you split off the last three (and rebase them to be independent), and apply them to a multiplatform branch for vt8500. Then the last one is a soc branch that goes on top of the multiplatform branch (i.e. you build it on top of multiplatform). That way we can pull in the multiplatform changes together with those for other platforms, and then take the wm8{7,8}50 branch goes in with the other new-soc support from other platforms.
Does that make sense? I'll be happy to provide more explanation if it doesn't.
-Olof
I think I understand - pull requests to follow.
Tony P
The following changes since commitd1c3ed669a2d452cacfb48c2d171a1f364dae2ed:
Linux 3.8-rc2 (2013-01-02 18:13:21 -0800)
are available in the git repository at:
git://server.prisktech.co.nz/git/linuxwmt.git
tags/vt8500-multiplatform-3.9
for you to fetch changes up to ce3f386fdf10d79eaf6ebd63bb7adbd95f08f9f0:
arm: vt8500: Remove remaining mach includes (2013-01-12 15:47:39
+1300)
----------------------------------------------------------------
arm: vt8500: Convert arch-vt8500 to multiplatform only.
----------------------------------------------------------------
Tony Prisk (3):
arm: vt8500: Remove single platform Kconfig options
arm: vt8500: Convert debug-macro.S to be multiplatform friendly
arm: vt8500: Remove remaining mach includes
arch/arm/Kconfig | 16 ---------
arch/arm/Kconfig.debug | 8 +++++
.../mach/debug-macro.S => include/debug/vt8500.S} | 24 ++++++++-----
arch/arm/mach-vt8500/Kconfig | 11 ++++--
arch/arm/mach-vt8500/include/mach/timex.h | 26
--------------
arch/arm/mach-vt8500/include/mach/uncompress.h | 37
--------------------
6 files changed, 31 insertions(+), 91 deletions(-)
rename arch/arm/{mach-vt8500/include/mach/debug-macro.S =>
include/debug/vt8500.S} (56%)
delete mode 100644 arch/arm/mach-vt8500/include/mach/timex.h
delete mode 100644 arch/arm/mach-vt8500/include/mach/uncompress.hThe following changes since commitce3f386fdf10d79eaf6ebd63bb7adbd95f08f9f0:
arm: vt8500: Remove remaining mach includes (2013-01-12 15:47:39
+1300)
are available in the git repository at:
git://server.prisktech.co.nz/git/linuxwmt.git tags/armsoc-3.9
for you to fetch changes up to 8d31bfa551b9a1a61119e6d8fde08d0fa8cdfafb:
arm: vt8500: Add support for Wondermedia WM8750/WM8850 (2013-01-12
15:51:24 +1300)
----------------------------------------------------------------
arm: vt8500: Add support for WM8750 and WM8850 SoCs.
This pull should be on top of:git://server.prisktech.co.nz/git/linuxwmt.git
tags/vt8500-multiplatform-3.9
----------------------------------------------------------------
Tony Prisk (1):
arm: vt8500: Add support for Wondermedia WM8750/WM8850
Documentation/devicetree/bindings/arm/vt8500.txt | 8 ++++++++ arch/arm/mach-vt8500/Kconfig | 16 ++++++++++++++++ arch/arm/mach-vt8500/vt8500.c | 2 ++ 3 files changed, 26 insertions(+)
Quoted 9 lines · Tony Prisk
The following changes since commit
ce3f386fdf10d79eaf6ebd63bb7adbd95f08f9f0:arm: vt8500: Remove remaining mach includes (2013-01-12 15:47:39
+1300)are available in the git repository at:
git://server.prisktech.co.nz/git/linuxwmt.gittags/armsoc-3.9
Thanks, I pulled this in as vt8500/wm8x50
-Olof
Quoted 9 lines · Tony Prisk
The following changes since commit
d1c3ed669a2d452cacfb48c2d171a1f364dae2ed:Linux 3.8-rc2 (2013-01-02 18:13:21 -0800)
are available in the git repository at:
git://server.prisktech.co.nz/git/linuxwmt.git
tags/vt8500-multiplatform-3.9
Thanks, pulled in as vt8500/multiplatform.
-Olof
Quoted 7 lines · Tony Prisk
Quoted 7 lines
I suggest that you split off the last three (and rebase them to be independent), and apply them to a multiplatform branch for vt8500. Then the last one is a soc branch that goes on top of the multiplatform branch (i.e. you build it on top of multiplatform). That way we can pull in the multiplatform changes together with those for other platforms, and then take the wm8{7,8}50 branch goes in with the other new-soc support from other platforms.
Quoted 5 lines
Quoted 3 lines
Does that make sense? I'll be happy to provide more explanation if it doesn't.
-Olof
I think I understand - pull requests to follow.
Looks good, thanks for fixing it up. Next time feel free to change to fresh subjects on the pull requests. :)
I don't see your PGP key uploaded to the public key servers, and you likely don't have it signed by anyone else. If you have a chance, please try to get it signed by a few people. Ideal time to do that is if you're going to any conferences, but there are also local people around the world that can meet up sometimes.
-Olof