AT91 cleanup rework for 3.20/3.21
cover AT91 cleanup rework for 3.20/3.21
This is a little rework of the patches sent by Alexandre and some ideas coming from Arnd.
I reworked the series so that it goes flawlessly on top of what I'd already sent and doesn't need extra dependencies with drivers that are being cleaned-up (at91_udc, pata_at91, etc.).
The multi-platform upcoming series from Alexandre has more dependencies. This is why it is not stacked on top of this material. I plan to sent some kind of preview soon so that it can be taken as a "late" pull-request if it's possible.
Thanks. Bye.
Alexandre Belloni (4):
ARM: at91: at91rm9200: set idle and restart from
rm9200_dt_device_init()
ARM: at91: merge all SOC_AT91SAM9xxx
ARM: at91: remove at91_boot_soc
ARM: at91: remove at91_dt_initialize and machine init_early()
Nicolas Ferre (3):
ARM: at91: move alternative initial mapping to board-dt-sama5.c
ARM: at91: change board files into SoC files
ARM: at91/trivial: unify functions and machine names
arch/arm/configs/at91_dt_defconfig | 10 +--- arch/arm/mach-at91/Kconfig | 92 ++++++++++------------------------ arch/arm/mach-at91/Makefile | 18 +------ arch/arm/mach-at91/at91rm9200.c | 57 ++++++++++++++------- arch/arm/mach-at91/at91sam9.c | 87 ++++++++++++++++++++++++++++++++ arch/arm/mach-at91/at91sam9260.c | 26 ---------- arch/arm/mach-at91/at91sam9261.c | 25 ---------- arch/arm/mach-at91/at91sam9263.c | 24 --------- arch/arm/mach-at91/at91sam9g45.c | 24 --------- arch/arm/mach-at91/at91sam9n12.c | 20 -------- arch/arm/mach-at91/at91sam9rl.c | 25 ---------- arch/arm/mach-at91/at91sam9x5.c | 20 -------- arch/arm/mach-at91/board-dt-rm9200.c | 54 -------------------- arch/arm/mach-at91/board-dt-sam9.c | 90 --------------------------------- arch/arm/mach-at91/board-dt-sama5.c | 60 ---------------------- arch/arm/mach-at91/generic.h | 19 +++---- arch/arm/mach-at91/include/mach/cpu.h | 52 ++++++-------------- arch/arm/mach-at91/pm.c | 52 ++++++++++++++++++-- arch/arm/mach-at91/sama5.c | 93 +++++++++++++++++++++++++++++++++++ arch/arm/mach-at91/sama5d3.c | 29 ----------- arch/arm/mach-at91/sama5d4.c | 63 ------------------------ arch/arm/mach-at91/setup.c | 77 ----------------------------- arch/arm/mach-at91/soc.h | 77 ----------------------------- 23 files changed, 318 insertions(+), 776 deletions(-) create mode 100644 arch/arm/mach-at91/at91sam9.c delete mode 100644 arch/arm/mach-at91/at91sam9260.c delete mode 100644 arch/arm/mach-at91/at91sam9261.c delete mode 100644 arch/arm/mach-at91/at91sam9263.c delete mode 100644 arch/arm/mach-at91/at91sam9g45.c delete mode 100644 arch/arm/mach-at91/at91sam9n12.c delete mode 100644 arch/arm/mach-at91/at91sam9rl.c delete mode 100644 arch/arm/mach-at91/at91sam9x5.c delete mode 100644 arch/arm/mach-at91/board-dt-rm9200.c delete mode 100644 arch/arm/mach-at91/board-dt-sam9.c delete mode 100644 arch/arm/mach-at91/board-dt-sama5.c create mode 100644 arch/arm/mach-at91/sama5.c delete mode 100644 arch/arm/mach-at91/sama5d3.c delete mode 100644 arch/arm/mach-at91/sama5d4.c delete mode 100644 arch/arm/mach-at91/soc.h
Signature · 1 line
2.1.3
PATCH 1/7 ARM: at91: at91rm9200: set idle and restart from rm9200_dt_device_init()
From: Alexandre Belloni <[email protected]>
Setup arm_pm_idle and arm_pm_restart function pointers from rm9200_dt_device_init() function to simplify the at91rm9200 initialization process.
This same move is already done for the sam9s.
--- arch/arm/mach-at91/at91rm9200.c | 14 -------------- arch/arm/mach-at91/board-dt-rm9200.c | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-)
arch/arm/mach-at91/at91rm9200.c +0 -14
@@ -22,25 +22,11 @@#include "generic.h" -static void at91rm9200_restart (enum reboot_mode reboot_mode,const char *cmd) -{ -/* -* Perform a hardware reset with the use of the Watchdog timer. -*/ -at91_st_write (AT91_ST_WDMR ,AT91_ST_RSTEN |AT91_ST_EXTEN |1 ); -at91_st_write (AT91_ST_CR ,AT91_ST_WDRST ); -}/* -------------------------------------------------------------------- * AT91RM9200 processor initialization * -------------------------------------------------------------------- */ -static void __init at91rm9200_initialize (void ) -{ - arm_pm_idle = at91rm9200_idle; - arm_pm_restart = at91rm9200_restart; -}AT91_SOC_START (at91rm9200) - .init = at91rm9200_initialize,AT91_SOC_END
arch/arm/mach-at91/board-dt-rm9200.c +14 -0
@@ -22,9 +22,21 @@#include <asm/mach/arch.h> #include <asm/mach/map.h> #include <asm/mach/irq.h> +#include <asm/system_misc.h> + +#include <mach/at91_st.h> #include "generic.h" +static void at91rm9200_restart (enum reboot_mode reboot_mode,const char *cmd) +{ +/* +* Perform a hardware reset with the use of the Watchdog timer. +*/ +at91_st_write (AT91_ST_WDMR ,AT91_ST_RSTEN |AT91_ST_EXTEN |1 ); +at91_st_write (AT91_ST_CR ,AT91_ST_WDRST ); +} +static void __init at91rm9200_dt_timer_init (void ) {of_clk_init (NULL );
@@ -35,6 +47,8 @@ static void __init rm9200_dt_device_init(void) {of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); + arm_pm_idle = at91rm9200_idle; + arm_pm_restart = at91rm9200_restart;at91_rm9200_pm_init (); }
Signature · 1 line
2.1.3
PATCH 2/7 ARM: at91: merge all SOC_AT91SAM9xxx
In reply to Nicolas FerreFrom: Alexandre Belloni <[email protected]>
Only use SOC_AT91SAM9 for all the at91sam9 SoCs. It removes all the empty at91sam9xxx.c SoC files. It also removes the useless at91_init_soc affectation procedure and its "init" function pointer.
Only the SoC detection and display are kept for the at91sam9:at91_soc_is_enabled() and at91_boot_soc.map_io() function calls are also removed.
It enables HAVE_AT91_SMD and HAVE_AT91_UTMI for all the sam9 SoCs but this only represents 96 bytes of uncompressed kernel code.
--- arch/arm/configs/at91_dt_defconfig | 10 +--- arch/arm/mach-at91/Kconfig | 92 ++++++++++------------------------- arch/arm/mach-at91/Makefile | 7 --- arch/arm/mach-at91/at91sam9260.c | 26 ---------- arch/arm/mach-at91/at91sam9261.c | 25 ---------- arch/arm/mach-at91/at91sam9263.c | 24 --------- arch/arm/mach-at91/at91sam9g45.c | 24 --------- arch/arm/mach-at91/at91sam9n12.c | 20 -------- arch/arm/mach-at91/at91sam9rl.c | 25 ---------- arch/arm/mach-at91/at91sam9x5.c | 20 -------- arch/arm/mach-at91/include/mach/cpu.h | 52 ++++++-------------- arch/arm/mach-at91/setup.c | 19 -------- arch/arm/mach-at91/soc.h | 36 -------------- 13 files changed, 41 insertions(+), 339 deletions(-) delete mode 100644 arch/arm/mach-at91/at91sam9260.c delete mode 100644 arch/arm/mach-at91/at91sam9261.c delete mode 100644 arch/arm/mach-at91/at91sam9263.c delete mode 100644 arch/arm/mach-at91/at91sam9g45.c delete mode 100644 arch/arm/mach-at91/at91sam9n12.c delete mode 100644 arch/arm/mach-at91/at91sam9rl.c delete mode 100644 arch/arm/mach-at91/at91sam9x5.c
arch/arm/configs/at91_dt_defconfig +1 -9
@@ -15,15 +15,7 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_AT91=y CONFIG_SOC_AT91RM9200=y -CONFIG_SOC_AT91SAM9260=y -CONFIG_SOC_AT91SAM9261=y -CONFIG_SOC_AT91SAM9263=y -CONFIG_SOC_AT91SAM9RL=y -CONFIG_SOC_AT91SAM9G45=y -CONFIG_SOC_AT91SAM9X5=y -CONFIG_SOC_AT91SAM9N12=y -CONFIG_MACH_AT91RM9200_DT=y -CONFIG_MACH_AT91SAM9_DT=y +CONFIG_SOC_AT91SAM9=y CONFIG_AT91_TIMER_HZ=128 CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y
arch/arm/mach-at91/Kconfig +26 -66
108 lines not on this page · raw message
arch/arm/mach-at91/Makefile +0 -7
@@ -8,13 +8,6 @@ obj-$(CONFIG_SOC_AT91SAM9) += sam9_smc.o # CPU-specific support obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o at91rm9200_time.o -obj-$(CONFIG_SOC_AT91SAM9260) += at91sam9260.o -obj-$(CONFIG_SOC_AT91SAM9261) += at91sam9261.o -obj-$(CONFIG_SOC_AT91SAM9263) += at91sam9263.o -obj-$(CONFIG_SOC_AT91SAM9G45) += at91sam9g45.o -obj-$(CONFIG_SOC_AT91SAM9N12) += at91sam9n12.o -obj-$(CONFIG_SOC_AT91SAM9X5) += at91sam9x5.o -obj-$(CONFIG_SOC_AT91SAM9RL) += at91sam9rl.o obj-$(CONFIG_SOC_SAMA5D3) += sama5d3.o obj-$(CONFIG_SOC_SAMA5D4) += sama5d4.o
arch/arm/mach-at91/at91sam9260.c deleted +0 -26
@@ -1,26 +0,0 @@ -/* -* arch/arm/mach-at91/at91sam9260.c -* -* Copyright (C) 2006 SAN People -* -* 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. -* -*/ - -#include <asm/system_misc.h> -#include <mach/cpu.h> -#include <mach/at91_dbgu.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9260 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9260) -AT91_SOC_END
arch/arm/mach-at91/at91sam9261.c deleted +0 -25
@@ -1,25 +0,0 @@ -/* -* arch/arm/mach-at91/at91sam9261.c -* -* Copyright (C) 2005 SAN People -* -* 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. -* -*/ - -#include <asm/system_misc.h> -#include <mach/cpu.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9261 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9261) -AT91_SOC_END
arch/arm/mach-at91/at91sam9263.c deleted +0 -24
@@ -1,24 +0,0 @@ -/* -* arch/arm/mach-at91/at91sam9263.c -* -* Copyright (C) 2007 Atmel Corporation. -* -* 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. -* -*/ - -#include <asm/system_misc.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9263 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9263) -AT91_SOC_END
arch/arm/mach-at91/at91sam9g45.c deleted +0 -24
@@ -1,24 +0,0 @@ -/* -* Chip-specific setup code for the AT91SAM9G45 family -* -* Copyright (C) 2009 Atmel Corporation. -* -* 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. -* -*/ - -#include <asm/system_misc.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9G45 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9g45) -AT91_SOC_END
arch/arm/mach-at91/at91sam9n12.c deleted +0 -20
@@ -1,20 +0,0 @@ -/* -* SoC specific setup code for the AT91SAM9N12 -* -* Copyright (C) 2012 Atmel Corporation. -* -* Licensed under GPLv2 or later. -*/ - -#include <asm/system_misc.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9N12 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9n12) -AT91_SOC_END
arch/arm/mach-at91/at91sam9rl.c deleted +0 -25
@@ -1,25 +0,0 @@ -/* -* arch/arm/mach-at91/at91sam9rl.c -* -* Copyright (C) 2005 SAN People -* Copyright (C) 2007 Atmel Corporation -* -* This file is subject to the terms and conditions of the GNU General Public -* License. See the file COPYING in the main directory of this archive for -* more details. -*/ - -#include <asm/system_misc.h> -#include <mach/cpu.h> -#include <mach/at91_dbgu.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9RL processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9rl) -AT91_SOC_END
arch/arm/mach-at91/at91sam9x5.c deleted +0 -20
@@ -1,20 +0,0 @@ -/* -* Chip-specific setup code for the AT91SAM9x5 family -* -* Copyright (C) 2010-2012 Atmel Corporation. -* -* Licensed under GPLv2 or later. -*/ - -#include <asm/system_misc.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - -/* -------------------------------------------------------------------- -* AT91SAM9x5 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (at91sam9x5) -AT91_SOC_END
arch/arm/mach-at91/include/mach/cpu.h +14 -38
83 lines not on this page · raw message
arch/arm/mach-at91/setup.c +0 -19
@@ -66,48 +66,40 @@ static void __init soc_detect(u32 dbgu_base)case ARCH_ID_AT91SAM9260 : at91_soc_initdata.type =AT91_SOC_SAM9260 ; at91_soc_initdata.subtype =AT91_SOC_SUBTYPE_NONE ; - at91_boot_soc = at91sam9260_soc;break ;case ARCH_ID_AT91SAM9261 : at91_soc_initdata.type =AT91_SOC_SAM9261 ; at91_soc_initdata.subtype =AT91_SOC_SUBTYPE_NONE ; - at91_boot_soc = at91sam9261_soc;break ;case ARCH_ID_AT91SAM9263 : at91_soc_initdata.type =AT91_SOC_SAM9263 ; at91_soc_initdata.subtype =AT91_SOC_SUBTYPE_NONE ; - at91_boot_soc = at91sam9263_soc;break ;case ARCH_ID_AT91SAM9G20 : at91_soc_initdata.type =AT91_SOC_SAM9G20 ; at91_soc_initdata.subtype =AT91_SOC_SUBTYPE_NONE ; - at91_boot_soc = at91sam9260_soc;break ;case ARCH_ID_AT91SAM9G45 : at91_soc_initdata.type =AT91_SOC_SAM9G45 ;if (cidr ==ARCH_ID_AT91SAM9G45ES ) at91_soc_initdata.subtype =AT91_SOC_SAM9G45ES ; - at91_boot_soc = at91sam9g45_soc;break ;case ARCH_ID_AT91SAM9RL64 : at91_soc_initdata.type =AT91_SOC_SAM9RL ; at91_soc_initdata.subtype =AT91_SOC_SUBTYPE_NONE ; - at91_boot_soc = at91sam9rl_soc;break ;case ARCH_ID_AT91SAM9X5 : at91_soc_initdata.type =AT91_SOC_SAM9X5 ; - at91_boot_soc = at91sam9x5_soc;break ;case ARCH_ID_AT91SAM9N12 : at91_soc_initdata.type =AT91_SOC_SAM9N12 ; - at91_boot_soc = at91sam9n12_soc;break ;case ARCH_ID_SAMA5 :
@@ -123,13 +115,11 @@ static void __init soc_detect(u32 dbgu_base)if ((socid & ~AT91_CIDR_EXT ) ==ARCH_ID_AT91SAM9G10 ) { at91_soc_initdata.type =AT91_SOC_SAM9G10 ; at91_soc_initdata.subtype =AT91_SOC_SUBTYPE_NONE ; - at91_boot_soc = at91sam9261_soc; }/* at91sam9xe */ else if ((cidr &AT91_CIDR_ARCH ) ==ARCH_FAMILY_AT91SAM9XE ) { at91_soc_initdata.type =AT91_SOC_SAM9260 ; at91_soc_initdata.subtype =AT91_SOC_SAM9XE ; - at91_boot_soc = at91sam9260_soc; }if (!at91_soc_is_detected ())
@@ -318,12 +308,6 @@ void __init at91_map_io(void)if (at91_soc_initdata.subtype !=AT91_SOC_SUBTYPE_NONE )pr_info ("Detected soc subtype: %s\n" ,at91_get_soc_subtype (&at91_soc_initdata)); - -if (!at91_soc_is_enabled ()) -panic (pr_fmt ("Soc not enabled" )); - -if (at91_boot_soc.map_io) - at91_boot_soc.map_io (); }void __init at91_alt_map_io (void )
@@ -401,7 +385,4 @@ static void at91_dt_ramc(void)void __init at91_dt_initialize (void ) {at91_dt_ramc (); - -if (at91_boot_soc.init) - at91_boot_soc.init (); }
arch/arm/mach-at91/soc.h +0 -36
@@ -7,18 +7,10 @@struct at91_init_soc {int builtin;void (*map_io)(void ); -void (*init)(void ); };extern struct at91_init_soc at91_boot_soc;extern struct at91_init_soc at91rm9200_soc; -extern struct at91_init_soc at91sam9260_soc; -extern struct at91_init_soc at91sam9261_soc; -extern struct at91_init_soc at91sam9263_soc; -extern struct at91_init_soc at91sam9g45_soc; -extern struct at91_init_soc at91sam9rl_soc; -extern struct at91_init_soc at91sam9x5_soc; -extern struct at91_init_soc at91sam9n12_soc;extern struct at91_init_soc sama5d3_soc;extern struct at91_init_soc sama5d4_soc;
@@ -40,34 +32,6 @@ static inline int at91_soc_is_enabled(void)#define at91rm9200_soc at91_boot_soc#endif -#if !defined(CONFIG_SOC_AT91SAM9260 ) -#define at91sam9260_soc at91_boot_soc -#endif - -#if !defined(CONFIG_SOC_AT91SAM9261 ) -#define at91sam9261_soc at91_boot_soc -#endif - -#if !defined(CONFIG_SOC_AT91SAM9263 ) -#define at91sam9263_soc at91_boot_soc -#endif - -#if !defined(CONFIG_SOC_AT91SAM9G45 ) -#define at91sam9g45_soc at91_boot_soc -#endif - -#if !defined(CONFIG_SOC_AT91SAM9RL ) -#define at91sam9rl_soc at91_boot_soc -#endif - -#if !defined(CONFIG_SOC_AT91SAM9X5 ) -#define at91sam9x5_soc at91_boot_soc -#endif - -#if !defined(CONFIG_SOC_AT91SAM9N12 ) -#define at91sam9n12_soc at91_boot_soc -#endif -#if !defined(CONFIG_SOC_SAMA5D3 )#define sama5d3_soc at91_boot_soc#endif
Signature · 1 line
2.1.3
PATCH 3/7 ARM: at91: move alternative initial mapping to board-dt-sama5.c
In reply to Nicolas FerreFor sama5d4, remove an indirection and the remaining need for at91_boot_soc structure.
This will allow further cleanup.
--- arch/arm/mach-at91/board-dt-sama5.c | 37 ++++++++++++++++++++++++++++++++++++- arch/arm/mach-at91/sama5d4.c | 33 --------------------------------- arch/arm/mach-at91/setup.c | 6 ------ 3 files changed, 36 insertions(+), 40 deletions(-)
arch/arm/mach-at91/board-dt-sama5.c +36 -1
@@ -18,6 +18,8 @@#include <linux/phy.h> #include <linux/clk-provider.h> +#include <mach/hardware.h> +#include <asm/setup.h> #include <asm/irq.h> #include <asm/mach/arch.h>
@@ -45,6 +47,39 @@ DT_MACHINE_START(sama5_dt, "Atmel SAMA5 (Device Tree)") .dt_compat = sama5_dt_board_compat,MACHINE_END +static struct map_desc at91_io_desc[] __initdata = { + { + .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_MPDDRC ), + .pfn =__phys_to_pfn (SAMA5D4_BASE_MPDDRC ), + .length =SZ_512 , + .type =MT_DEVICE , + }, + { + .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_PMC ), + .pfn =__phys_to_pfn (SAMA5D4_BASE_PMC ), + .length =SZ_512 , + .type =MT_DEVICE , + }, + {/* On sama5d4, we use USART3 as serial console */ + .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_USART3 ), + .pfn =__phys_to_pfn (SAMA5D4_BASE_USART3 ), + .length =SZ_256 , + .type =MT_DEVICE , + }, + {/* A bunch of peripheral with fine grained IO space */ + .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_SYS2 ), + .pfn =__phys_to_pfn (SAMA5D4_BASE_SYS2 ), + .length =SZ_2K , + .type =MT_DEVICE , + }, +}; + +static void __init sama5_alt_map_io (void ) +{ +at91_alt_map_io (); +iotable_init (at91_io_desc,ARRAY_SIZE (at91_io_desc)); +} +static const char *sama5_alt_dt_board_compat[]__initconst = {"atmel,sama5d4" ,NULL
@@ -52,7 +87,7 @@ static const char *sama5_alt_dt_board_compat[] __initconst = {DT_MACHINE_START (sama5_alt_dt,"Atmel SAMA5 (Device Tree)" )/* Maintainer: Atmel */ - .map_io = at91_alt_map_io, + .map_io = sama5_alt_map_io, .init_early = at91_dt_initialize, .init_machine = sama5_dt_device_init, .dt_compat = sama5_alt_dt_board_compat,
arch/arm/mach-at91/sama5d4.c +0 -33
@@ -25,39 +25,6 @@/* -------------------------------------------------------------------- * Processor initialization * -------------------------------------------------------------------- */ -static struct map_desc at91_io_desc[]__initdata = { - { - .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_MPDDRC ), - .pfn =__phys_to_pfn (SAMA5D4_BASE_MPDDRC ), - .length =SZ_512 , - .type =MT_DEVICE , - }, - { - .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_PMC ), - .pfn =__phys_to_pfn (SAMA5D4_BASE_PMC ), - .length =SZ_512 , - .type =MT_DEVICE , - }, - {/* On sama5d4, we use USART3 as serial console */ - .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_USART3 ), - .pfn =__phys_to_pfn (SAMA5D4_BASE_USART3 ), - .length =SZ_256 , - .type =MT_DEVICE , - }, - {/* A bunch of peripheral with fine grained IO space */ - .virtual = (unsigned long )AT91_ALT_IO_P2V (SAMA5D4_BASE_SYS2 ), - .pfn =__phys_to_pfn (SAMA5D4_BASE_SYS2 ), - .length =SZ_2K , - .type =MT_DEVICE , - }, -}; - - -static void __init sama5d4_map_io (void ) -{ -iotable_init (at91_io_desc,ARRAY_SIZE (at91_io_desc)); -}AT91_SOC_START (sama5d4) - .map_io = sama5d4_map_io,AT91_SOC_END
arch/arm/mach-at91/setup.c +0 -6
@@ -327,12 +327,6 @@ void __init at91_alt_map_io(void)if (at91_soc_initdata.subtype !=AT91_SOC_SUBTYPE_NONE )pr_info ("AT91: Detected soc subtype: %s\n" ,at91_get_soc_subtype (&at91_soc_initdata)); - -if (!at91_soc_is_enabled ()) -panic ("AT91: Soc not enabled" ); - -if (at91_boot_soc.map_io) - at91_boot_soc.map_io (); }void __iomem *at91_matrix_base;
Signature · 1 line
2.1.3
PATCH 4/7 ARM: at91: remove at91_boot_soc
In reply to Nicolas FerreFrom: Alexandre Belloni <[email protected]>
at91_boot_soc and at91_init_soc structures are not used by any SoC, remove their use. Also remove all the now empty SoC files.
--- arch/arm/mach-at91/Makefile | 4 +--- arch/arm/mach-at91/at91rm9200.c | 32 -------------------------------- arch/arm/mach-at91/sama5d3.c | 29 ----------------------------- arch/arm/mach-at91/sama5d4.c | 30 ------------------------------ arch/arm/mach-at91/setup.c | 7 ------- arch/arm/mach-at91/soc.h | 41 ----------------------------------------- 6 files changed, 1 insertion(+), 142 deletions(-) delete mode 100644 arch/arm/mach-at91/at91rm9200.c delete mode 100644 arch/arm/mach-at91/sama5d3.c delete mode 100644 arch/arm/mach-at91/sama5d4.c delete mode 100644 arch/arm/mach-at91/soc.h
arch/arm/mach-at91/Makefile +1 -3
@@ -7,9 +7,7 @@ obj-y := setup.o obj-$(CONFIG_SOC_AT91SAM9) += sam9_smc.o # CPU-specific support -obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o at91rm9200_time.o -obj-$(CONFIG_SOC_SAMA5D3) += sama5d3.o -obj-$(CONFIG_SOC_SAMA5D4) += sama5d4.o +obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200_time.o # AT91SAM board with device-tree obj-$(CONFIG_SOC_AT91RM9200) += board-dt-rm9200.o
arch/arm/mach-at91/at91rm9200.c deleted +0 -32
@@ -1,32 +0,0 @@ -/* -* arch/arm/mach-at91/at91rm9200.c -* -* Copyright (C) 2005 SAN People -* -* 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. -* -*/ - -#include <linux/module.h> -#include <linux/clk/at91_pmc.h> - -#include <asm/mach/map.h> -#include <asm/system_misc.h> -#include <mach/at91_st.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" - - - -/* -------------------------------------------------------------------- -* AT91RM9200 processor initialization -* -------------------------------------------------------------------- */ - - -AT91_SOC_START (at91rm9200) -AT91_SOC_END
arch/arm/mach-at91/sama5d3.c deleted +0 -29
@@ -1,29 +0,0 @@ -/* -* Chip-specific setup code for the SAMA5D3 family -* -* Copyright (C) 2013 Atmel, -* 2013 Ludovic Desroches <[email protected]> -* -* Licensed under GPLv2 or later. -*/ - -#include <linux/module.h> -#include <linux/dma-mapping.h> -#include <linux/clk/at91_pmc.h> - -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/map.h> -#include <mach/sama5d3.h> -#include <mach/cpu.h> - -#include "soc.h" -#include "generic.h" -#include "sam9_smc.h" - -/* -------------------------------------------------------------------- -* AT91SAM9x5 processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (sama5d3) -AT91_SOC_END
arch/arm/mach-at91/sama5d4.c deleted +0 -30
@@ -1,30 +0,0 @@ -/* -* Chip-specific setup code for the SAMA5D4 family -* -* Copyright (C) 2013 Atmel Corporation, -* Nicolas Ferre <[email protected]> -* -* Licensed under GPLv2 or later. -*/ - -#include <linux/module.h> -#include <linux/dma-mapping.h> -#include <linux/clk/at91_pmc.h> - -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/map.h> -#include <mach/sama5d4.h> -#include <mach/cpu.h> -#include <mach/hardware.h> - -#include "soc.h" -#include "generic.h" -#include "sam9_smc.h" - -/* -------------------------------------------------------------------- -* Processor initialization -* -------------------------------------------------------------------- */ - -AT91_SOC_START (sama5d4) -AT91_SOC_END
arch/arm/mach-at91/setup.c +0 -7
@@ -22,12 +22,9 @@#include <mach/cpu.h> #include <mach/at91_dbgu.h> -#include "soc.h" #include "generic.h" #include "pm.h" -struct at91_init_soc __initdata at91_boot_soc; -struct at91_socinfo at91_soc_initdata;EXPORT_SYMBOL (at91_soc_initdata);
@@ -60,7 +57,6 @@ static void __init soc_detect(u32 dbgu_base) at91_soc_initdata.type =AT91_SOC_RM9200 ;if (at91_soc_initdata.subtype ==AT91_SOC_SUBTYPE_UNKNOWN ) at91_soc_initdata.subtype =AT91_SOC_RM9200_BGA ; - at91_boot_soc = at91rm9200_soc;break ;case ARCH_ID_AT91SAM9260 :
@@ -106,7 +102,6 @@ static void __init soc_detect(u32 dbgu_base) at91_soc_initdata.exid =__raw_readl (AT91_IO_P2V (dbgu_base) +AT91_DBGU_EXID );if (at91_soc_initdata.exid &ARCH_EXID_SAMA5D3 ) { at91_soc_initdata.type =AT91_SOC_SAMA5D3 ; - at91_boot_soc = sama5d3_soc; }break ; }
@@ -199,10 +194,8 @@ static void __init alt_soc_detect(u32 dbgu_base) at91_soc_initdata.exid =__raw_readl (AT91_ALT_IO_P2V (dbgu_base) +AT91_DBGU_EXID );if (at91_soc_initdata.exid &ARCH_EXID_SAMA5D3 ) { at91_soc_initdata.type =AT91_SOC_SAMA5D3 ; - at91_boot_soc = sama5d3_soc; }else if (at91_soc_initdata.exid &ARCH_EXID_SAMA5D4 ) { at91_soc_initdata.type =AT91_SOC_SAMA5D4 ; - at91_boot_soc = sama5d4_soc; }break ; }
arch/arm/mach-at91/soc.h deleted +0 -41
41 lines not on this page · raw message
Signature · 1 line
2.1.3
PATCH 5/7 ARM: at91: change board files into SoC files
In reply to Nicolas FerreAs board files are now DT only and can address all aspects of the SoC family, we can rename them so that the mach-at91 directory looks cleaner.
--- arch/arm/mach-at91/Makefile | 11 ++--- arch/arm/mach-at91/at91rm9200.c | 68 ++++++++++++++++++++++++++ arch/arm/mach-at91/at91sam9.c | 90 ++++++++++++++++++++++++++++++++++ arch/arm/mach-at91/board-dt-rm9200.c | 68 -------------------------- arch/arm/mach-at91/board-dt-sam9.c | 90 ---------------------------------- arch/arm/mach-at91/board-dt-sama5.c | 95 ------------------------------------ arch/arm/mach-at91/sama5.c | 95 ++++++++++++++++++++++++++++++++++++ 7 files changed, 256 insertions(+), 261 deletions(-) create mode 100644 arch/arm/mach-at91/at91rm9200.c create mode 100644 arch/arm/mach-at91/at91sam9.c delete mode 100644 arch/arm/mach-at91/board-dt-rm9200.c delete mode 100644 arch/arm/mach-at91/board-dt-sam9.c delete mode 100644 arch/arm/mach-at91/board-dt-sama5.c create mode 100644 arch/arm/mach-at91/sama5.c
arch/arm/mach-at91/Makefile +3 -8
@@ -7,14 +7,9 @@ obj-y := setup.o obj-$(CONFIG_SOC_AT91SAM9) += sam9_smc.o # CPU-specific support -obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200_time.o - -# AT91SAM board with device-tree -obj-$(CONFIG_SOC_AT91RM9200) += board-dt-rm9200.o -obj-$(CONFIG_SOC_AT91SAM9) += board-dt-sam9.o - -# SAMA5 board with device-tree -obj-$(CONFIG_SOC_SAMA5) += board-dt-sama5.o +obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o at91rm9200_time.o +obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o +obj-$(CONFIG_SOC_SAMA5) += sama5.o # Power Management obj-$(CONFIG_PM) += pm.o
arch/arm/mach-at91/at91rm9200.c new file +68 -0
68 lines not on this page · raw message
arch/arm/mach-at91/at91sam9.c new file +90 -0
90 lines not on this page · raw message
arch/arm/mach-at91/board-dt-rm9200.c deleted +0 -68
68 lines not on this page · raw message
arch/arm/mach-at91/board-dt-sam9.c deleted +0 -90
90 lines not on this page · raw message
arch/arm/mach-at91/board-dt-sama5.c deleted +0 -95
95 lines not on this page · raw message
arch/arm/mach-at91/sama5.c new file +95 -0
95 lines not on this page · raw message
Signature · 1 line
2.1.3
PATCH 6/7 ARM: at91: remove at91_dt_initialize and machine init_early()
In reply to Nicolas FerreFrom: Alexandre Belloni <[email protected]>
Move the ramc initialization to pm.c as it is the only user left. This allows us to get rid of at91_dt_initialize() that was the only one called by the init_early() function pointer of struct machine_desc.
--- arch/arm/mach-at91/at91rm9200.c | 1 - arch/arm/mach-at91/at91sam9.c | 3 --- arch/arm/mach-at91/generic.h | 3 --- arch/arm/mach-at91/pm.c | 44 ++++++++++++++++++++++++++++++++++++++++ arch/arm/mach-at91/sama5.c | 2 -- arch/arm/mach-at91/setup.c | 45 ----------------------------------------- 6 files changed, 44 insertions(+), 54 deletions(-)
arch/arm/mach-at91/at91rm9200.c +0 -1
@@ -62,7 +62,6 @@ static const char *at91rm9200_dt_board_compat[] __initconst = {DT_MACHINE_START (at91rm9200_dt,"Atmel AT91RM9200 (Device Tree)" ) .init_time = at91rm9200_dt_timer_init, .map_io = at91_map_io, - .init_early = at91_dt_initialize, .init_machine = rm9200_dt_device_init, .dt_compat = at91rm9200_dt_board_compat,MACHINE_END
arch/arm/mach-at91/at91sam9.c +0 -3
@@ -41,7 +41,6 @@ static const char *at91_dt_board_compat[] __initconst = {DT_MACHINE_START (at91sam_dt,"Atmel AT91SAM (Device Tree)" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_early = at91_dt_initialize, .init_machine = sam9_dt_device_init, .dt_compat = at91_dt_board_compat,MACHINE_END
@@ -62,7 +61,6 @@ static const char *at91_9g45_board_compat[] __initconst = {DT_MACHINE_START (at91sam9g45_dt,"Atmel AT91SAM9G45" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_early = at91_dt_initialize, .init_machine = sam9g45_dt_device_init, .dt_compat = at91_9g45_board_compat,MACHINE_END
@@ -84,7 +82,6 @@ static const char *at91_9x5_board_compat[] __initconst = {DT_MACHINE_START (at91sam9x5_dt,"Atmel AT91SAM9" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_early = at91_dt_initialize, .init_machine = sam9x5_dt_device_init, .dt_compat = at91_9x5_board_compat,MACHINE_END
arch/arm/mach-at91/generic.h +0 -3
@@ -18,9 +18,6 @@extern void __init at91_map_io (void );extern void __init at91_alt_map_io (void ); -/* Processors */ -extern void __init at91_dt_initialize (void ); -/* Timer */ extern void at91rm9200_timer_init (void );
arch/arm/mach-at91/pm.c +44 -0
86 lines not on this page · raw message
arch/arm/mach-at91/sama5.c +0 -2
@@ -42,7 +42,6 @@ static const char *sama5_dt_board_compat[] __initconst = {DT_MACHINE_START (sama5_dt,"Atmel SAMA5 (Device Tree)" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_early = at91_dt_initialize, .init_machine = sama5_dt_device_init, .dt_compat = sama5_dt_board_compat,MACHINE_END
@@ -88,7 +87,6 @@ static const char *sama5_alt_dt_board_compat[] __initconst = {DT_MACHINE_START (sama5_alt_dt,"Atmel SAMA5 (Device Tree)" )/* Maintainer: Atmel */ .map_io = sama5_alt_map_io, - .init_early = at91_dt_initialize, .init_machine = sama5_dt_device_init, .dt_compat = sama5_alt_dt_board_compat, .l2c_aux_mask = ~0UL,
arch/arm/mach-at91/setup.c +0 -45
54 lines not on this page · raw message
Signature · 1 line
2.1.3
PATCH 7/7 ARM: at91/trivial: unify functions and machine names
In reply to Nicolas FerreRemove the string "(Device Tree)" after the machine name because all AT91 machines use the DT nowadays.
Also change some function names to unify following the convention:
- at91sam9xxx aren't named sam9, 9xxx but with the full name
- sama5 are the ones that don't have the at91 prefix anymore.
--- arch/arm/mach-at91/at91rm9200.c | 8 ++++---- arch/arm/mach-at91/at91sam9.c | 28 ++++++++++++++-------------- arch/arm/mach-at91/generic.h | 16 ++++++++-------- arch/arm/mach-at91/pm.c | 8 ++++---- arch/arm/mach-at91/sama5.c | 6 +++--- 5 files changed, 33 insertions(+), 33 deletions(-)
arch/arm/mach-at91/at91rm9200.c +4 -4
@@ -43,13 +43,13 @@ static void __init at91rm9200_dt_timer_init(void)at91rm9200_timer_init (); } -static void __init rm9200_dt_device_init (void ) +static void __init at91rm9200_dt_device_init (void ) {of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); arm_pm_idle = at91rm9200_idle; arm_pm_restart = at91rm9200_restart; -at91_rm9200_pm_init (); +at91rm9200_pm_init (); }
@@ -59,9 +59,9 @@ static const char *at91rm9200_dt_board_compat[] __initconst = {NULL }; -DT_MACHINE_START (at91rm9200_dt,"Atmel AT91RM9200 (Device Tree)" ) +DT_MACHINE_START (at91rm9200_dt,"Atmel AT91RM9200" ) .init_time = at91rm9200_dt_timer_init, .map_io = at91_map_io, - .init_machine = rm9200_dt_device_init, + .init_machine = at91rm9200_dt_device_init, .dt_compat = at91rm9200_dt_board_compat,MACHINE_END
arch/arm/mach-at91/at91sam9.c +14 -14
@@ -25,12 +25,12 @@#include "generic.h" -static void __init sam9_dt_device_init (void ) +static void __init at91sam9_dt_device_init (void ) {of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); arm_pm_idle = at91sam9_idle; -at91_sam9260_pm_init (); +at91sam9260_pm_init (); }static const char *at91_dt_board_compat[]__initconst = {
@@ -38,22 +38,22 @@ static const char *at91_dt_board_compat[] __initconst = {NULL }; -DT_MACHINE_START (at91sam_dt,"Atmel AT91SAM (Device Tree)" ) +DT_MACHINE_START (at91sam_dt,"Atmel AT91SAM9" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_machine = sam9_dt_device_init, + .init_machine = at91sam9_dt_device_init, .dt_compat = at91_dt_board_compat, MACHINE_END -static void __init sam9g45_dt_device_init (void ) +static void __init at91sam9g45_dt_device_init (void ) {of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); arm_pm_idle = at91sam9_idle; -at91_sam9g45_pm_init (); +at91sam9g45_pm_init (); } -static const char *at91_9g45_board_compat[]__initconst = { +static const char *at91sam9g45_board_compat[]__initconst = {"atmel,at91sam9g45" ,NULL };
@@ -61,19 +61,19 @@ static const char *at91_9g45_board_compat[] __initconst = {DT_MACHINE_START (at91sam9g45_dt,"Atmel AT91SAM9G45" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_machine = sam9g45_dt_device_init, - .dt_compat = at91_9g45_board_compat, + .init_machine = at91sam9g45_dt_device_init, + .dt_compat = at91sam9g45_board_compat, MACHINE_END -static void __init sam9x5_dt_device_init (void ) +static void __init at91sam9x5_dt_device_init (void ) {of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); arm_pm_idle = at91sam9_idle; -at91_sam9x5_pm_init (); +at91sam9x5_pm_init (); } -static const char *at91_9x5_board_compat[]__initconst = { +static const char *at91sam9x5_board_compat[]__initconst = {"atmel,at91sam9x5" ,"atmel,at91sam9n12" ,NULL
@@ -82,6 +82,6 @@ static const char *at91_9x5_board_compat[] __initconst = {DT_MACHINE_START (at91sam9x5_dt,"Atmel AT91SAM9" )/* Maintainer: Atmel */ .map_io = at91_map_io, - .init_machine = sam9x5_dt_device_init, - .dt_compat = at91_9x5_board_compat, + .init_machine = at91sam9x5_dt_device_init, + .dt_compat = at91sam9x5_board_compat,MACHINE_END
arch/arm/mach-at91/generic.h +8 -8
@@ -30,15 +30,15 @@ extern void at91_ioremap_matrix(u32 base_addr);#ifdef CONFIG_PM -extern void __init at91_rm9200_pm_init (void ); -extern void __init at91_sam9260_pm_init (void ); -extern void __init at91_sam9g45_pm_init (void ); -extern void __init at91_sam9x5_pm_init (void ); +extern void __init at91rm9200_pm_init (void ); +extern void __init at91sam9260_pm_init (void ); +extern void __init at91sam9g45_pm_init (void ); +extern void __init at91sam9x5_pm_init (void );#else -void __init at91_rm9200_pm_init (void ) { } -void __init at91_sam9260_pm_init (void ) { } -void __init at91_sam9g45_pm_init (void ) { } -void __init at91_sam9x5_pm_init (void ) { } +void __init at91rm9200_pm_init (void ) { } +void __init at91sam9260_pm_init (void ) { } +void __init at91sam9g45_pm_init (void ) { } +void __init at91sam9x5_pm_init (void ) { }#endif #endif /* _AT91_GENERIC_H */
arch/arm/mach-at91/pm.c +4 -4
@@ -319,7 +319,7 @@ static void __init at91_pm_init(void)suspend_set_ops (&at91_pm_ops); } -void __init at91_rm9200_pm_init (void ) +void __init at91rm9200_pm_init (void ) {at91_dt_ramc ();
@@ -334,7 +334,7 @@ void __init at91_rm9200_pm_init(void)at91_pm_init (); } -void __init at91_sam9260_pm_init (void ) +void __init at91sam9260_pm_init (void ) {at91_dt_ramc (); at91_pm_data.memctrl =AT91_MEMCTRL_SDRAMC ;
@@ -342,7 +342,7 @@ void __init at91_sam9260_pm_init(void)return at91_pm_init (); } -void __init at91_sam9g45_pm_init (void ) +void __init at91sam9g45_pm_init (void ) {at91_dt_ramc (); at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP;
@@ -350,7 +350,7 @@ void __init at91_sam9g45_pm_init(void)return at91_pm_init (); } -void __init at91_sam9x5_pm_init (void ) +void __init at91sam9x5_pm_init (void ) {at91_dt_ramc (); at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
arch/arm/mach-at91/sama5.c +3 -3
@@ -31,7 +31,7 @@static void __init sama5_dt_device_init (void ) {of_platform_populate (NULL , of_default_bus_match_table,NULL ,NULL ); -at91_sam9x5_pm_init (); +at91sam9x5_pm_init (); }static const char *sama5_dt_board_compat[]__initconst = {
@@ -39,7 +39,7 @@ static const char *sama5_dt_board_compat[] __initconst = {NULL }; -DT_MACHINE_START (sama5_dt,"Atmel SAMA5 (Device Tree)" ) +DT_MACHINE_START (sama5_dt,"Atmel SAMA5" )/* Maintainer: Atmel */ .map_io = at91_map_io, .init_machine = sama5_dt_device_init,
@@ -84,7 +84,7 @@ static const char *sama5_alt_dt_board_compat[] __initconst = {NULL }; -DT_MACHINE_START (sama5_alt_dt,"Atmel SAMA5 (Device Tree)" ) +DT_MACHINE_START (sama5_alt_dt,"Atmel SAMA5" )/* Maintainer: Atmel */ .map_io = sama5_alt_map_io, .init_machine = sama5_dt_device_init,
Signature · 1 line
2.1.3