From: Alexandre Belloni <alexandre.belloni@free-electrons.com> To: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Boris Brezillon <boris.brezillon@free-electrons.com>, Alexander Stein <alexander.stein@systec-electronic.com>, Alexandre Belloni <alexandre.belloni@free-electrons.com> Subject: [PATCH v3 8/9] ARM: at91: sama5 use SoC detection infrastructure Date: Wed, 11 Mar 2015 18:00:34 +0100 [thread overview] Message-ID: <1426093235-11759-9-git-send-email-alexandre.belloni@free-electrons.com> (raw) In-Reply-To: <1426093235-11759-1-git-send-email-alexandre.belloni@free-electrons.com> Use the soc detection infrastructure for sama5 initialization. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- arch/arm/mach-at91/sama5.c | 54 +++++++++++++++++++++++++++++++++------------- arch/arm/mach-at91/soc.h | 14 ++++++++++++ 2 files changed, 53 insertions(+), 15 deletions(-) diff --git a/arch/arm/mach-at91/sama5.c b/arch/arm/mach-at91/sama5.c index 03dcb441f3d2..c033c58faf35 100644 --- a/arch/arm/mach-at91/sama5.c +++ b/arch/arm/mach-at91/sama5.c @@ -7,27 +7,46 @@ * Licensed under GPLv2 or later. */ -#include <linux/types.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/gpio.h> #include <linux/micrel_phy.h> #include <linux/of.h> -#include <linux/of_irq.h> #include <linux/of_platform.h> #include <linux/phy.h> -#include <linux/clk-provider.h> -#include <linux/phy.h> - -#include <mach/hardware.h> -#include <asm/setup.h> -#include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> -#include <asm/mach/irq.h> +#include <asm/system_misc.h> + +#include <mach/hardware.h> #include "generic.h" +#include "soc.h" + +static const struct at91_soc sama5_socs[] = { + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D31_EXID_MATCH, + "sama5d3", "sama5d31"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D33_EXID_MATCH, + "sama5d3", "sama5d33"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D34_EXID_MATCH, + "sama5d3", "sama5d34"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D35_EXID_MATCH, + "sama5d3", "sama5d35"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D36_EXID_MATCH, + "sama5d3", "sama5d36"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D41_EXID_MATCH, + "sama5d4", "sama5d41"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D42_EXID_MATCH, + "sama5d4", "sama5d41"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D43_EXID_MATCH, + "sama5d4", "sama5d43"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D44_EXID_MATCH, + "sama5d4", "sama5d44"), + { /* sentinel */ }, +}; + +static const struct at91_soc_family sama5_families[] = { + AT91_SOC_FAMILY(ARCH_ID_SAMA5, "SAMA5", sama5_socs), + { /* sentinel */ }, +}; static int ksz8081_phy_fixup(struct phy_device *phy) { @@ -42,13 +61,20 @@ static int ksz8081_phy_fixup(struct phy_device *phy) static void __init sama5_dt_device_init(void) { + struct soc_device *soc; + struct device *soc_dev = NULL; + + soc = at91_soc_init(sama5_families); + if (soc != NULL) + soc_dev = soc_device_to_device(soc); + if (of_machine_is_compatible("atmel,sama5d4ek") && IS_ENABLED(CONFIG_PHYLIB)) { phy_register_fixup_for_id("fc028000.etherne:00", ksz8081_phy_fixup); } - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); + of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev); at91sam9x5_pm_init(); } @@ -59,7 +85,6 @@ static const char *sama5_dt_board_compat[] __initconst = { DT_MACHINE_START(sama5_dt, "Atmel SAMA5") /* Maintainer: Atmel */ - .map_io = at91_map_io, .init_machine = sama5_dt_device_init, .dt_compat = sama5_dt_board_compat, MACHINE_END @@ -93,7 +118,6 @@ static struct map_desc at91_io_desc[] __initdata = { static void __init sama5_alt_map_io(void) { - at91_alt_map_io(); iotable_init(at91_io_desc, ARRAY_SIZE(at91_io_desc)); } diff --git a/arch/arm/mach-at91/soc.h b/arch/arm/mach-at91/soc.h index 4ed7e0bd7a62..ed14c387e1b8 100644 --- a/arch/arm/mach-at91/soc.h +++ b/arch/arm/mach-at91/soc.h @@ -78,4 +78,18 @@ at91_soc_init(const struct at91_soc_family *families); #define AT91SAM9XE256_CIDR_MATCH 0x329a93a0 #define AT91SAM9XE512_CIDR_MATCH 0x329aa3a0 +#define ARCH_ID_SAMA5 0xa5 +#define SAMA5D3_CIDR_MATCH 0x0a5c07c0 +#define SAMA5D31_EXID_MATCH 0x00444300 +#define SAMA5D33_EXID_MATCH 0x00414300 +#define SAMA5D34_EXID_MATCH 0x00414301 +#define SAMA5D35_EXID_MATCH 0x00584300 +#define SAMA5D36_EXID_MATCH 0x00004301 + +#define SAMA5D4_CIDR_MATCH 0x0a5c07c0 +#define SAMA5D41_EXID_MATCH 0x00000001 +#define SAMA5D42_EXID_MATCH 0x00000002 +#define SAMA5D43_EXID_MATCH 0x00000003 +#define SAMA5D44_EXID_MATCH 0x00000004 + #endif /* __AT91_SOC_H */ -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: alexandre.belloni@free-electrons.com (Alexandre Belloni) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 8/9] ARM: at91: sama5 use SoC detection infrastructure Date: Wed, 11 Mar 2015 18:00:34 +0100 [thread overview] Message-ID: <1426093235-11759-9-git-send-email-alexandre.belloni@free-electrons.com> (raw) In-Reply-To: <1426093235-11759-1-git-send-email-alexandre.belloni@free-electrons.com> Use the soc detection infrastructure for sama5 initialization. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- arch/arm/mach-at91/sama5.c | 54 +++++++++++++++++++++++++++++++++------------- arch/arm/mach-at91/soc.h | 14 ++++++++++++ 2 files changed, 53 insertions(+), 15 deletions(-) diff --git a/arch/arm/mach-at91/sama5.c b/arch/arm/mach-at91/sama5.c index 03dcb441f3d2..c033c58faf35 100644 --- a/arch/arm/mach-at91/sama5.c +++ b/arch/arm/mach-at91/sama5.c @@ -7,27 +7,46 @@ * Licensed under GPLv2 or later. */ -#include <linux/types.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/gpio.h> #include <linux/micrel_phy.h> #include <linux/of.h> -#include <linux/of_irq.h> #include <linux/of_platform.h> #include <linux/phy.h> -#include <linux/clk-provider.h> -#include <linux/phy.h> - -#include <mach/hardware.h> -#include <asm/setup.h> -#include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> -#include <asm/mach/irq.h> +#include <asm/system_misc.h> + +#include <mach/hardware.h> #include "generic.h" +#include "soc.h" + +static const struct at91_soc sama5_socs[] = { + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D31_EXID_MATCH, + "sama5d3", "sama5d31"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D33_EXID_MATCH, + "sama5d3", "sama5d33"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D34_EXID_MATCH, + "sama5d3", "sama5d34"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D35_EXID_MATCH, + "sama5d3", "sama5d35"), + AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D36_EXID_MATCH, + "sama5d3", "sama5d36"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D41_EXID_MATCH, + "sama5d4", "sama5d41"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D42_EXID_MATCH, + "sama5d4", "sama5d41"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D43_EXID_MATCH, + "sama5d4", "sama5d43"), + AT91_SOC(SAMA5D4_CIDR_MATCH, SAMA5D44_EXID_MATCH, + "sama5d4", "sama5d44"), + { /* sentinel */ }, +}; + +static const struct at91_soc_family sama5_families[] = { + AT91_SOC_FAMILY(ARCH_ID_SAMA5, "SAMA5", sama5_socs), + { /* sentinel */ }, +}; static int ksz8081_phy_fixup(struct phy_device *phy) { @@ -42,13 +61,20 @@ static int ksz8081_phy_fixup(struct phy_device *phy) static void __init sama5_dt_device_init(void) { + struct soc_device *soc; + struct device *soc_dev = NULL; + + soc = at91_soc_init(sama5_families); + if (soc != NULL) + soc_dev = soc_device_to_device(soc); + if (of_machine_is_compatible("atmel,sama5d4ek") && IS_ENABLED(CONFIG_PHYLIB)) { phy_register_fixup_for_id("fc028000.etherne:00", ksz8081_phy_fixup); } - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); + of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev); at91sam9x5_pm_init(); } @@ -59,7 +85,6 @@ static const char *sama5_dt_board_compat[] __initconst = { DT_MACHINE_START(sama5_dt, "Atmel SAMA5") /* Maintainer: Atmel */ - .map_io = at91_map_io, .init_machine = sama5_dt_device_init, .dt_compat = sama5_dt_board_compat, MACHINE_END @@ -93,7 +118,6 @@ static struct map_desc at91_io_desc[] __initdata = { static void __init sama5_alt_map_io(void) { - at91_alt_map_io(); iotable_init(at91_io_desc, ARRAY_SIZE(at91_io_desc)); } diff --git a/arch/arm/mach-at91/soc.h b/arch/arm/mach-at91/soc.h index 4ed7e0bd7a62..ed14c387e1b8 100644 --- a/arch/arm/mach-at91/soc.h +++ b/arch/arm/mach-at91/soc.h @@ -78,4 +78,18 @@ at91_soc_init(const struct at91_soc_family *families); #define AT91SAM9XE256_CIDR_MATCH 0x329a93a0 #define AT91SAM9XE512_CIDR_MATCH 0x329aa3a0 +#define ARCH_ID_SAMA5 0xa5 +#define SAMA5D3_CIDR_MATCH 0x0a5c07c0 +#define SAMA5D31_EXID_MATCH 0x00444300 +#define SAMA5D33_EXID_MATCH 0x00414300 +#define SAMA5D34_EXID_MATCH 0x00414301 +#define SAMA5D35_EXID_MATCH 0x00584300 +#define SAMA5D36_EXID_MATCH 0x00004301 + +#define SAMA5D4_CIDR_MATCH 0x0a5c07c0 +#define SAMA5D41_EXID_MATCH 0x00000001 +#define SAMA5D42_EXID_MATCH 0x00000002 +#define SAMA5D43_EXID_MATCH 0x00000003 +#define SAMA5D44_EXID_MATCH 0x00000004 + #endif /* __AT91_SOC_H */ -- 2.1.0
next prev parent reply other threads:[~2015-03-11 17:00 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-11 17:00 [PATCH v3 0/9] ARM: at91 cleanups for 4.1 #1 Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 1/9] ARM: at91: remove NEED_MACH_IO_H Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 2/9] ARM: at91: remove unused at91_ioremap_matrix and header Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 3/9] ARM: at91: remove unused _matrix.h headers Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 4/9] ARM: at91/dt: introduce atmel,<chip>-dbgu Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 5/9] ARM: at91: add soc detection infrastructure Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-12 13:18 ` Nicolas Ferre 2015-03-12 13:18 ` Nicolas Ferre 2015-03-11 17:00 ` [PATCH v3 6/9] ARM: at91: at91rm9200 use SoC " Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 7/9] ARM: at91: at91sam9: " Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni [this message] 2015-03-11 17:00 ` [PATCH v3 8/9] ARM: at91: sama5 " Alexandre Belloni 2015-03-11 17:00 ` [PATCH v3 9/9] ARM: at91: remove old setup Alexandre Belloni 2015-03-11 17:00 ` Alexandre Belloni 2015-03-12 13:19 ` [PATCH v3 0/9] ARM: at91 cleanups for 4.1 #1 Nicolas Ferre 2015-03-12 13:19 ` Nicolas Ferre
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1426093235-11759-9-git-send-email-alexandre.belloni@free-electrons.com \ --to=alexandre.belloni@free-electrons.com \ --cc=alexander.stein@systec-electronic.com \ --cc=boris.brezillon@free-electrons.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=nicolas.ferre@atmel.com \ --cc=plagnioj@jcrosoft.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.