aboutsummaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen3-adas/recipes-bsp/u-boot/u-boot/0042-board-renesas-ulcb-set-all-RAVB-pins-strengh-to-maximum.patch
blob: 638fa7cf8b7b2f5a8f26052c5cebd6a10b0d7439 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From b247dea7b49d7e66e1848da71e28ff5fe9acf5e1 Mon Sep 17 00:00:00 2001
From: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Date: Thu, 16 Jun 2016 11:41:43 +0300
Subject: [PATCH] board: renesas: ulcb: set all RAVB pins strengh to maximum

This is only for H3ULCB.HAD with custom TTTeck ethernet switch
parameters

Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
---
 board/renesas/ulcb/ulcb.c | 21 +++++++++++++++++++++
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/board/renesas/ulcb/ulcb.c b/board/renesas/ulcb/ulcb.c
index 5652014..f77f946 100644
--- a/board/renesas/ulcb/ulcb.c
+++ b/board/renesas/ulcb/ulcb.c
@@ -72,6 +72,22 @@ int board_early_init_f(void)
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#define PFC_PMMR	0xE6060000
+#define PFC_DRVCTRL1	0xE6060304
+#define PFC_DRVCTRL2	0xE6060308
+#define PFC_DRVCTRL3	0xE606030C
+
+static void write_drvctrl(u32 value, u32 modify_bit, void *reg)
+{
+	u32 val;
+
+	val = readl(reg);
+	val &= ~modify_bit;
+	val |= value;
+	writel(~val, PFC_PMMR);
+	writel(val, reg);
+}
+
 int board_init(void)
 {
 	u32 val;
@@ -86,6 +102,11 @@ int board_init(void)
 	val = readl(PFC_PUEN6) | PUEN_USB1_OVC | PUEN_USB1_PWEN;
 	writel(val, PFC_PUEN6);
 
+	/* EtherAVB pin strength */
+	write_drvctrl(0x00000007, 0x00000007, (void *)PFC_DRVCTRL1);
+	write_drvctrl(0x77777777, 0x77777777, (void *)PFC_DRVCTRL2);
+	write_drvctrl(0x77700000, 0x77700000, (void *)PFC_DRVCTRL3);
+
 #ifdef CONFIG_RAVB
 #if defined(CONFIG_R8A7795)
 	if (rcar_is_legacy()) {
-- 
1.9.1