aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>2017-11-14 09:32:13 -0500
committerVineet Gupta <vgupta@synopsys.com>2017-11-15 12:40:43 -0500
commitff64d695f92123f7d341473921a46add51a44a87 (patch)
tree4ed75460120b1381a79f1c2d0559c676ccad9f53
parentf3156851616b4f3cb1d6c567fe46adcfd43ad8f8 (diff)
ARC: [plat-axs10x] DTS: Add reset controller node to manage ethernet reset
DW ethernet controller on axs10x hangs sometimes after SW reset. Invoke the newly aded driver (reset-axs10x.c) by adding the DT bits. With this in place, we don't need the open-coded quirk in platform code, so get rid of it as well ! Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r--arch/arc/boot/dts/axs10x_mb.dtsi8
-rw-r--r--arch/arc/plat-axs10x/axs10x.c7
2 files changed, 8 insertions, 7 deletions
diff --git a/arch/arc/boot/dts/axs10x_mb.dtsi b/arch/arc/boot/dts/axs10x_mb.dtsi
index e114000a84f5..74d070cd3c13 100644
--- a/arch/arc/boot/dts/axs10x_mb.dtsi
+++ b/arch/arc/boot/dts/axs10x_mb.dtsi
@@ -16,6 +16,12 @@
16 ranges = <0x00000000 0x0 0xe0000000 0x10000000>; 16 ranges = <0x00000000 0x0 0xe0000000 0x10000000>;
17 interrupt-parent = <&mb_intc>; 17 interrupt-parent = <&mb_intc>;
18 18
19 creg_rst: reset-controller@11220 {
20 compatible = "snps,axs10x-reset";
21 #reset-cells = <1>;
22 reg = <0x11220 0x4>;
23 };
24
19 i2sclk: i2sclk@100a0 { 25 i2sclk: i2sclk@100a0 {
20 compatible = "snps,axs10x-i2s-pll-clock"; 26 compatible = "snps,axs10x-i2s-pll-clock";
21 reg = <0x100a0 0x10>; 27 reg = <0x100a0 0x10>;
@@ -73,6 +79,8 @@
73 clocks = <&apbclk>; 79 clocks = <&apbclk>;
74 clock-names = "stmmaceth"; 80 clock-names = "stmmaceth";
75 max-speed = <100>; 81 max-speed = <100>;
82 resets = <&creg_rst 5>;
83 reset-names = "stmmaceth";
76 }; 84 };
77 85
78 ehci@0x40000 { 86 ehci@0x40000 {
diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
index cf14ebc36916..f1ac6790da5f 100644
--- a/arch/arc/plat-axs10x/axs10x.c
+++ b/arch/arc/plat-axs10x/axs10x.c
@@ -111,13 +111,6 @@ static void __init axs10x_early_init(void)
111 111
112 axs10x_enable_gpio_intc_wire(); 112 axs10x_enable_gpio_intc_wire();
113 113
114 /*
115 * Reset ethernet IP core.
116 * TODO: get rid of this quirk after axs10x reset driver (or simple
117 * reset driver) will be available in upstream.
118 */
119 iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);
120
121 scnprintf(mb, 32, "MainBoard v%d", mb_rev); 114 scnprintf(mb, 32, "MainBoard v%d", mb_rev);
122 axs10x_print_board_ver(CREG_MB_VER, mb); 115 axs10x_print_board_ver(CREG_MB_VER, mb);
123} 116}