[PATCH v4 5/7] ARM: kirkwood: convert to DT irqchip and clocksource
Jason Cooper
jason at lakedaemon.net
Tue Jul 2 07:53:11 EDT 2013
On Tue, Jul 02, 2013 at 01:03:41PM +0200, Sebastian Hesselbarth wrote:
> With recent support for true irqchip and clocksource drivers for Orion
> SoCs, now make use of it on DT enabled Kirkwood boards.
>
> This also introduces a new Kconfig option for legacy (non-DT) Kirkwood
> where old code is moved out to and polishes DT board file a little bit.
>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth at gmail.com>
> ---
> Cc: Russell King <linux at arm.linux.org.uk>
> Cc: Jason Cooper <jason at lakedaemon.net>
> Cc: Andrew Lunn <andrew at lunn.ch>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> Cc: Gregory CLEMENT <gregory.clement at free-electrons.com>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> ---
> arch/arm/mach-kirkwood/Kconfig | 22 ++++++++++++++++++++++
> arch/arm/mach-kirkwood/Makefile | 4 ++--
> arch/arm/mach-kirkwood/board-dt.c | 24 +++++++++++++++++-------
> 3 files changed, 41 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
> index 493c71a..ede131e 100644
> --- a/arch/arm/mach-kirkwood/Kconfig
> +++ b/arch/arm/mach-kirkwood/Kconfig
> @@ -2,67 +2,81 @@ if ARCH_KIRKWOOD
>
> menu "Marvell Kirkwood Implementations"
>
> +config KIRKWOOD_LEGACY
> + bool
> +
> config MACH_D2NET_V2
> bool "LaCie d2 Network v2 NAS Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> LaCie d2 Network v2 NAS.
>
> config MACH_DOCKSTAR
> bool "Seagate FreeAgent DockStar"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Seagate FreeAgent DockStar.
>
> config MACH_ESATA_SHEEVAPLUG
> bool "Marvell eSATA SheevaPlug Reference Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Marvell eSATA SheevaPlug Reference Board.
>
> config MACH_GURUPLUG
> bool "Marvell GuruPlug Reference Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Marvell GuruPlug Reference Board.
>
> config MACH_INETSPACE_V2
> bool "LaCie Internet Space v2 NAS Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> LaCie Internet Space v2 NAS.
>
> config MACH_MV88F6281GTW_GE
> bool "Marvell 88F6281 GTW GE Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Marvell 88F6281 GTW GE Board.
>
> config MACH_NET2BIG_V2
> bool "LaCie 2Big Network v2 NAS Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> LaCie 2Big Network v2 NAS.
>
> config MACH_NET5BIG_V2
> bool "LaCie 5Big Network v2 NAS Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> LaCie 5Big Network v2 NAS.
>
> config MACH_NETSPACE_MAX_V2
> bool "LaCie Network Space Max v2 NAS Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> LaCie Network Space Max v2 NAS.
>
> config MACH_NETSPACE_V2
> bool "LaCie Network Space v2 NAS Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> LaCie Network Space v2 NAS.
>
> config MACH_OPENRD
> + select KIRKWOOD_LEGACY
> bool
>
> config MACH_OPENRD_BASE
> @@ -88,30 +102,35 @@ config MACH_OPENRD_ULTIMATE
>
> config MACH_RD88F6192_NAS
> bool "Marvell RD-88F6192-NAS Reference Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Marvell RD-88F6192-NAS Reference Board.
>
> config MACH_RD88F6281
> bool "Marvell RD-88F6281 Reference Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Marvell RD-88F6281 Reference Board.
>
> config MACH_SHEEVAPLUG
> bool "Marvell SheevaPlug Reference Board"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> Marvell SheevaPlug Reference Board.
>
> config MACH_T5325
> bool "HP t5325 Thin Client"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> HP t5325 Thin Client.
>
> config MACH_TS219
> bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
> @@ -119,6 +138,7 @@ config MACH_TS219
>
> config MACH_TS41X
> bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
> + select KIRKWOOD_LEGACY
> help
> Say 'Y' here if you want your kernel to support the
> QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
> @@ -129,6 +149,8 @@ comment "Device tree entries"
> config ARCH_KIRKWOOD_DT
> bool "Marvell Kirkwood Flattened Device Tree"
> select KIRKWOOD_CLK
> + select ORION_IRQCHIP
> + select ORION_TIMER
> select POWER_SUPPLY
> select POWER_RESET
> select POWER_RESET_GPIO
> diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile
> index 062f8c7..f78f333 100644
> --- a/arch/arm/mach-kirkwood/Makefile
> +++ b/arch/arm/mach-kirkwood/Makefile
> @@ -1,5 +1,5 @@
> -obj-y += common.o irq.o pcie.o mpp.o
> -
> +obj-y += common.o pcie.o
> +obj-$(CONFIG_KIRKWOOD_LEGACY) += irq.o mpp.o
> obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o
> obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
> obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
> diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c
> index 881f37e..385244c 100644
> --- a/arch/arm/mach-kirkwood/board-dt.c
> +++ b/arch/arm/mach-kirkwood/board-dt.c
> @@ -15,6 +15,9 @@
> #include <linux/of.h>
> #include <linux/of_platform.h>
> #include <linux/clk-provider.h>
> +#include <linux/clocksource.h>
> +#include <linux/dma-mapping.h>
> +#include <linux/irqchip.h>
> #include <linux/kexec.h>
> #include <asm/mach/arch.h>
> #include <asm/mach/map.h>
> @@ -67,10 +70,18 @@ static void __init kirkwood_legacy_clk_init(void)
> clk_prepare_enable(clk);
> }
>
> -static void __init kirkwood_of_clk_init(void)
> +static void __init kirkwood_dt_time_init(void)
> {
> of_clk_init(NULL);
> - kirkwood_legacy_clk_init();
> + clocksource_of_init();
> +}
> +
> +static void __init kirkwood_dt_init_early(void)
> +{
> + init_dma_coherent_pool_size(SZ_1M);
This shouldn't be needed any more. Is there a reason you're adding it
back in?
thx,
Jason.
> + mvebu_mbus_init("marvell,kirkwood-mbus",
> + BRIDGE_WINS_BASE, BRIDGE_WINS_SZ,
> + DDR_WINDOW_CPU_BASE, DDR_WINDOW_CPU_SZ);
> }
>
> static void __init kirkwood_dt_init(void)
> @@ -91,8 +102,8 @@ static void __init kirkwood_dt_init(void)
>
> kirkwood_cpufreq_init();
>
> - /* Setup root of clk tree */
> - kirkwood_of_clk_init();
> + /* Setup clocks for legacy devices */
> + kirkwood_legacy_clk_init();
>
> kirkwood_cpuidle_init();
>
> @@ -114,9 +125,8 @@ static const char * const kirkwood_dt_board_compat[] = {
> DT_MACHINE_START(KIRKWOOD_DT, "Marvell Kirkwood (Flattened Device Tree)")
> /* Maintainer: Jason Cooper <jason at lakedaemon.net> */
> .map_io = kirkwood_map_io,
> - .init_early = kirkwood_init_early,
> - .init_irq = orion_dt_init_irq,
> - .init_time = kirkwood_timer_init,
> + .init_early = kirkwood_dt_init_early,
> + .init_time = kirkwood_dt_time_init,
> .init_machine = kirkwood_dt_init,
> .restart = kirkwood_restart,
> .dt_compat = kirkwood_dt_board_compat,
> --
> 1.7.2.5
>
More information about the linux-arm-kernel
mailing list