diff mbox

[U-Boot] board/t2080rdb: reset cs4315 phy

Message ID 1429671590-26802-1-git-send-email-Shengzhou.Liu@freescale.com
State Accepted
Delegated to: York Sun
Headers show

Commit Message

Shengzhou Liu April 22, 2015, 2:59 a.m. UTC
CS4315 PHY doesn't support phy-reset by software, it
needs to reset it by hardware via CPLD control.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
---
 board/freescale/t208xrdb/cpld.h     | 3 +++
 board/freescale/t208xrdb/t208xrdb.c | 7 +++++++
 2 files changed, 10 insertions(+)

Comments

York Sun May 5, 2015, 4:37 p.m. UTC | #1
On 04/21/2015 07:59 PM, Shengzhou Liu wrote:
> CS4315 PHY doesn't support phy-reset by software, it
> needs to reset it by hardware via CPLD control.
> 
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> ---
>  board/freescale/t208xrdb/cpld.h     | 3 +++
>  board/freescale/t208xrdb/t208xrdb.c | 7 +++++++
>  2 files changed, 10 insertions(+)
> 

Applied to u-boot-mpc85xx master. Awaiting upstream.

York
diff mbox

Patch

diff --git a/board/freescale/t208xrdb/cpld.h b/board/freescale/t208xrdb/cpld.h
index 3f15338..9bd5247 100644
--- a/board/freescale/t208xrdb/cpld.h
+++ b/board/freescale/t208xrdb/cpld.h
@@ -40,3 +40,6 @@  void cpld_write(unsigned int reg, u8 value);
 #define CPLD_LBMAP_RESET	0xFF
 #define CPLD_LBMAP_SHIFT	0x03
 #define CPLD_BOOT_SEL		0x80
+
+/* RSTCON Register */
+#define CPLD_RSTCON_EDC_RST	0x04
diff --git a/board/freescale/t208xrdb/t208xrdb.c b/board/freescale/t208xrdb/t208xrdb.c
index ad393df..0c2c1c5 100644
--- a/board/freescale/t208xrdb/t208xrdb.c
+++ b/board/freescale/t208xrdb/t208xrdb.c
@@ -107,6 +107,13 @@  unsigned long get_board_ddr_clk(void)
 
 int misc_init_r(void)
 {
+	u8 reg;
+
+	/* Reset CS4315 PHY */
+	reg = CPLD_READ(reset_ctl);
+	reg |= CPLD_RSTCON_EDC_RST;
+	CPLD_WRITE(reset_ctl, reg);
+
 	return 0;
 }