1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2015 Atmel Corporation 4 * Wenyou Yang <wenyou.yang (at) atmel.com> 5 */ 6 7 #include <common.h> 8 #include <asm/io.h> 9 #include <asm/arch/clk.h> 10 #include <asm/arch/sama5d2.h> 11 12 int cpu_is_sama5d2(void) 13 { 14 unsigned int chip_id = get_chip_id(); 15 16 return ((chip_id == ARCH_ID_SAMA5D2) || 17 (chip_id == ARCH_ID_SAMA5D2_SIP)) ? 1 : 0; 18 } 19 20 char *get_cpu_name(void) 21 { 22 unsigned int chip_id = get_chip_id(); 23 unsigned int extension_id = get_extension_chip_id(); 24 25 if (chip_id == ARCH_ID_SAMA5D2) { 26 switch (extension_id) { 27 case ARCH_EXID_SAMA5D21CU: 28 return "SAMA5D21"; 29 case ARCH_EXID_SAMA5D22CU: 30 return "SAMA5D22-CU"; 31 case ARCH_EXID_SAMA5D22CN: 32 return "SAMA5D22-CN"; 33 case ARCH_EXID_SAMA5D23CU: 34 return "SAMA5D23-CU"; 35 case ARCH_EXID_SAMA5D24CX: 36 return "SAMA5D24-CX"; 37 case ARCH_EXID_SAMA5D24CU: 38 return "SAMA5D24-CU"; 39 case ARCH_EXID_SAMA5D26CU: 40 return "SAMA5D26-CU"; 41 case ARCH_EXID_SAMA5D27CU: 42 return "SAMA5D27-CU"; 43 case ARCH_EXID_SAMA5D27CN: 44 return "SAMA5D27-CN"; 45 case ARCH_EXID_SAMA5D28CU: 46 return "SAMA5D28-CU"; 47 case ARCH_EXID_SAMA5D28CN: 48 return "SAMA5D28-CN"; 49 } 50 } 51 52 if ((chip_id == ARCH_ID_SAMA5D2) || (chip_id == ARCH_ID_SAMA5D2_SIP)) { 53 switch (extension_id) { 54 case ARCH_EXID_SAMA5D225C_D1M: 55 return "SAMA5D225 128M bits DDR2 SDRAM"; 56 case ARCH_EXID_SAMA5D27C_D5M: 57 return "SAMA5D27 512M bits DDR2 SDRAM"; 58 case ARCH_EXID_SAMA5D27C_D1G: 59 return "SAMA5D27 1G bits DDR2 SDRAM"; 60 case ARCH_EXID_SAMA5D28C_D1G: 61 return "SAMA5D28 1G bits DDR2 SDRAM"; 62 } 63 } 64 65 return "Unknown CPU type"; 66 } 67 68 #ifdef CONFIG_USB_GADGET_ATMEL_USBA 69 void at91_udp_hw_init(void) 70 { 71 at91_upll_clk_enable(); 72 73 at91_periph_clk_enable(ATMEL_ID_UDPHS); 74 } 75 #endif 76