1765547dcSHaiying Wang /*
24c2e3da8SKumar Gala * Copyright (C) 2009 Freescale Semiconductor, Inc.
3765547dcSHaiying Wang *
4*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+
5765547dcSHaiying Wang */
6765547dcSHaiying Wang
7765547dcSHaiying Wang #include <common.h>
8765547dcSHaiying Wang #include <asm/io.h>
9765547dcSHaiying Wang
10765547dcSHaiying Wang #include "bcsr.h"
11765547dcSHaiying Wang
enable_8569mds_flash_write(void)12e56143e5SKim Phillips void enable_8569mds_flash_write(void)
13765547dcSHaiying Wang {
1416e7559cSDave Liu setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 17), BCSR17_FLASH_nWP);
15765547dcSHaiying Wang }
16765547dcSHaiying Wang
disable_8569mds_flash_write(void)17e56143e5SKim Phillips void disable_8569mds_flash_write(void)
18765547dcSHaiying Wang {
19765547dcSHaiying Wang clrbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 17), BCSR17_FLASH_nWP);
20765547dcSHaiying Wang }
21765547dcSHaiying Wang
enable_8569mds_qe_uec(void)22e56143e5SKim Phillips void enable_8569mds_qe_uec(void)
23765547dcSHaiying Wang {
24f82107f6SHaiying Wang #if defined(CONFIG_SYS_UCC_RGMII_MODE)
25765547dcSHaiying Wang setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 7),
26765547dcSHaiying Wang BCSR7_UCC1_GETH_EN | BCSR7_UCC1_RGMII_EN);
27765547dcSHaiying Wang setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 8),
28765547dcSHaiying Wang BCSR8_UCC2_GETH_EN | BCSR8_UCC2_RGMII_EN);
29750098d3SHaiying Wang setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 9),
30750098d3SHaiying Wang BCSR9_UCC3_GETH_EN | BCSR9_UCC3_RGMII_EN);
31750098d3SHaiying Wang setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 10),
32750098d3SHaiying Wang BCSR10_UCC4_GETH_EN | BCSR10_UCC4_RGMII_EN);
33f82107f6SHaiying Wang #elif defined(CONFIG_SYS_UCC_RMII_MODE)
34f82107f6SHaiying Wang /* Set UCC1-4 working at RMII mode */
35f82107f6SHaiying Wang clrbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 7),
36f82107f6SHaiying Wang BCSR7_UCC1_GETH_EN | BCSR7_UCC1_RGMII_EN);
37f82107f6SHaiying Wang clrbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 8),
38f82107f6SHaiying Wang BCSR8_UCC2_GETH_EN | BCSR8_UCC2_RGMII_EN);
39f82107f6SHaiying Wang clrbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 9),
40f82107f6SHaiying Wang BCSR9_UCC3_GETH_EN | BCSR9_UCC3_RGMII_EN);
41f82107f6SHaiying Wang clrbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 10),
42f82107f6SHaiying Wang BCSR10_UCC4_GETH_EN | BCSR10_UCC4_RGMII_EN);
43f82107f6SHaiying Wang setbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 9), BCSR9_UCC3_RMII_EN);
44f82107f6SHaiying Wang #endif
45765547dcSHaiying Wang }
46765547dcSHaiying Wang
disable_8569mds_brd_eeprom_write_protect(void)47e56143e5SKim Phillips void disable_8569mds_brd_eeprom_write_protect(void)
48765547dcSHaiying Wang {
49765547dcSHaiying Wang clrbits_8((u8 *)(CONFIG_SYS_BCSR_BASE + 7), BCSR7_BRD_WRT_PROTECT);
50765547dcSHaiying Wang }
51