]>
Commit | Line | Data |
---|---|---|
566c9c16 VK |
1 | /* |
2 | * (C) Copyright 2009 | |
3 | * Vipin Kumar, ST Micoelectronics, vipin.kumar@st.com. | |
4 | * | |
1a459660 | 5 | * SPDX-License-Identifier: GPL-2.0+ |
566c9c16 VK |
6 | */ |
7 | ||
8 | #include <common.h> | |
9afc1af0 | 9 | #include <miiphy.h> |
deb00562 | 10 | #include <netdev.h> |
566c9c16 VK |
11 | #include <nand.h> |
12 | #include <asm/io.h> | |
1fa943b9 | 13 | #include <linux/mtd/fsmc_nand.h> |
566c9c16 VK |
14 | #include <asm/arch/hardware.h> |
15 | #include <asm/arch/spr_defs.h> | |
16 | #include <asm/arch/spr_misc.h> | |
1fa943b9 VK |
17 | |
18 | static struct nand_chip nand_chip[CONFIG_SYS_MAX_NAND_DEVICE]; | |
566c9c16 VK |
19 | |
20 | int board_init(void) | |
21 | { | |
22 | return spear_board_init(MACH_TYPE_SPEAR600); | |
23 | } | |
24 | ||
25 | /* | |
26 | * board_nand_init - Board specific NAND initialization | |
27 | * @nand: mtd private chip structure | |
28 | * | |
29 | * Called by nand_init_chip to initialize the board specific functions | |
30 | */ | |
31 | ||
1fa943b9 | 32 | void board_nand_init() |
566c9c16 VK |
33 | { |
34 | struct misc_regs *const misc_regs_p = | |
35 | (struct misc_regs *)CONFIG_SPEAR_MISCBASE; | |
1fa943b9 | 36 | struct nand_chip *nand = &nand_chip[0]; |
566c9c16 | 37 | |
1fa943b9 | 38 | #if defined(CONFIG_NAND_FSMC) |
566c9c16 | 39 | if (!(readl(&misc_regs_p->auto_cfg_reg) & MISC_NANDDIS)) |
1fa943b9 VK |
40 | fsmc_nand_init(nand); |
41 | #endif | |
42 | return; | |
566c9c16 | 43 | } |
deb00562 VK |
44 | |
45 | int board_eth_init(bd_t *bis) | |
46 | { | |
9afc1af0 VK |
47 | int ret = 0; |
48 | ||
deb00562 | 49 | #if defined(CONFIG_DESIGNWARE_ETH) |
9afc1af0 VK |
50 | u32 interface = PHY_INTERFACE_MODE_MII; |
51 | #if defined(CONFIG_DW_AUTONEG) | |
52 | interface = PHY_INTERFACE_MODE_GMII; | |
53 | #endif | |
54 | if (designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY, | |
55 | interface) >= 0) | |
56 | ret++; | |
deb00562 | 57 | #endif |
9afc1af0 | 58 | return ret; |
deb00562 | 59 | } |