From patchwork Mon Jul 31 06:57:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenyou Yang X-Patchwork-Id: 795597 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xLVpl21crz9t1n for ; Mon, 31 Jul 2017 17:05:51 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id EDE55C220C1; Mon, 31 Jul 2017 07:05:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 10208C22085; Mon, 31 Jul 2017 07:04:20 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DF1E4C21DBD; Mon, 31 Jul 2017 07:03:46 +0000 (UTC) Received: from DVREDG02.corp.atmel.com (nasmtp01.atmel.com [192.199.1.246]) by lists.denx.de (Postfix) with ESMTPS id 0CA34C21F7A for ; Mon, 31 Jul 2017 07:03:46 +0000 (UTC) Received: from apsmtp01.atmel.com (10.168.254.31) by DVREDG02.corp.atmel.com (10.42.103.31) with Microsoft SMTP Server (TLS) id 14.3.235.1; Mon, 31 Jul 2017 01:03:40 -0600 Received: from shaarm01.corp.atmel.com (10.168.254.13) by apsmtp01.atmel.com (10.168.254.31) with Microsoft SMTP Server id 14.3.235.1; Mon, 31 Jul 2017 15:06:32 +0800 From: Wenyou Yang To: U-Boot Mailing List Date: Mon, 31 Jul 2017 14:57:42 +0800 Message-ID: <20170731065743.20418-6-wenyou.yang@microchip.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170731065743.20418-1-wenyou.yang@microchip.com> References: <20170731065743.20418-1-wenyou.yang@microchip.com> MIME-Version: 1.0 Cc: Marek Vasut Subject: [U-Boot] [PATCH v2 5/6] ARM: at91: Get the Chip ID of SAMA5D2 SiP X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Wenyou Yang The SAMA5D2 SiP(System in Package) has different Chip IDs in the CHIPID and CHIP_EXID registers. Signed-off-by: Wenyou Yang Reviewed-by: Simon Glass --- Changes in v2: None arch/arm/mach-at91/armv7/sama5d2_devices.c | 26 ++++++++++++++++++++++++-- arch/arm/mach-at91/include/mach/sama5d2.h | 7 ++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-at91/armv7/sama5d2_devices.c b/arch/arm/mach-at91/armv7/sama5d2_devices.c index 978eac29bd..de1d9b5bfb 100644 --- a/arch/arm/mach-at91/armv7/sama5d2_devices.c +++ b/arch/arm/mach-at91/armv7/sama5d2_devices.c @@ -10,11 +10,20 @@ #include #include -char *get_cpu_name() +int cpu_is_sama5d2(void) { + unsigned int chip_id = get_chip_id(); + + return ((chip_id == ARCH_ID_SAMA5D2) || + (chip_id == ARCH_ID_SAMA5D2_SIP)) ? 1 : 0; +} + +char *get_cpu_name(void) +{ + unsigned int chip_id = get_chip_id(); unsigned int extension_id = get_extension_chip_id(); - if (cpu_is_sama5d2()) { + if (chip_id == ARCH_ID_SAMA5D2) { switch (extension_id) { case ARCH_EXID_SAMA5D21CU: return "SAMA5D21"; @@ -41,6 +50,19 @@ char *get_cpu_name() } } + if ((chip_id == ARCH_ID_SAMA5D2) || (chip_id == ARCH_ID_SAMA5D2_SIP)) { + switch (extension_id) { + case ARCH_EXID_SAMA5D225C_D1M: + return "SAMA5D225 128M bits DDR2 SDRAM"; + case ARCH_EXID_SAMA5D27C_D5M: + return "SAMA5D27 512M bits DDR2 SDRAM"; + case ARCH_EXID_SAMA5D27C_D1G: + return "SAMA5D27 1G bits DDR2 SDRAM"; + case ARCH_EXID_SAMA5D28C_D1G: + return "SAMA5D28 1G bits DDR2 SDRAM"; + } + } + return "Unknown CPU type"; } diff --git a/arch/arm/mach-at91/include/mach/sama5d2.h b/arch/arm/mach-at91/include/mach/sama5d2.h index 25c85411e5..49283ed86b 100644 --- a/arch/arm/mach-at91/include/mach/sama5d2.h +++ b/arch/arm/mach-at91/include/mach/sama5d2.h @@ -222,7 +222,11 @@ #define ARCH_EXID_SAMA5D28CU 0x00000010 #define ARCH_EXID_SAMA5D28CN 0x00000020 -#define cpu_is_sama5d2() (get_chip_id() == ARCH_ID_SAMA5D2) +#define ARCH_ID_SAMA5D2_SIP 0x8a5c08c2 +#define ARCH_EXID_SAMA5D225C_D1M 0x00000053 +#define ARCH_EXID_SAMA5D27C_D5M 0x00000032 +#define ARCH_EXID_SAMA5D27C_D1G 0x00000033 +#define ARCH_EXID_SAMA5D28C_D1G 0x00000013 /* PIT Timer(PIT_PIIR) */ #define CONFIG_SYS_TIMER_COUNTER 0xf804803c @@ -233,6 +237,7 @@ #ifndef __ASSEMBLY__ unsigned int get_chip_id(void); unsigned int get_extension_chip_id(void); +int cpu_is_sama5d2(void); unsigned int has_lcdc(void); char *get_cpu_name(void); #endif