blob: c796d364bb160af1daa02208d30be74185d66fbd [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Masahiro Yamada78c627c2017-01-15 14:59:03 +09002/*
3 * Copyright (C) 2011-2014 Panasonic Corporation
4 * Copyright (C) 2015-2017 Socionext Inc.
Masahiro Yamada78c627c2017-01-15 14:59:03 +09005 */
6
7#include <common.h>
8#include <spl.h>
9#include <linux/io.h>
10
11#include "../init.h"
12#include "../sc-regs.h"
13
Masahiro Yamada00aa4532017-08-13 09:01:13 +090014void uniphier_ld4_dram_clk_init(void)
Masahiro Yamada78c627c2017-01-15 14:59:03 +090015{
16 u32 tmp;
17
18 /* deassert reset */
Masahiro Yamada739ba412019-07-10 20:07:41 +090019 tmp = readl(sc_base + SC_RSTCTRL);
Masahiro Yamada78c627c2017-01-15 14:59:03 +090020 tmp |= SC_RSTCTRL_NRST_UMC1 | SC_RSTCTRL_NRST_UMC0;
Masahiro Yamada739ba412019-07-10 20:07:41 +090021 writel(tmp, sc_base + SC_RSTCTRL);
22 readl(sc_base + SC_RSTCTRL); /* dummy read */
Masahiro Yamada78c627c2017-01-15 14:59:03 +090023
24 /* provide clocks */
Masahiro Yamada739ba412019-07-10 20:07:41 +090025 tmp = readl(sc_base + SC_CLKCTRL);
Masahiro Yamada78c627c2017-01-15 14:59:03 +090026 tmp |= SC_CLKCTRL_CEN_UMC;
Masahiro Yamada739ba412019-07-10 20:07:41 +090027 writel(tmp, sc_base + SC_CLKCTRL);
28 readl(sc_base + SC_CLKCTRL); /* dummy read */
Masahiro Yamada78c627c2017-01-15 14:59:03 +090029}