blob: 564cf439aa6b9674e32bbd14c1e34ff42b46aff6 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Marek Vasut3ef6d082017-10-08 20:41:18 +02002/*
3 * board/renesas/draak/draak.c
4 * This file is Draak board support.
5 *
6 * Copyright (C) 2017 Marek Vasut <marek.vasut+renesas@gmail.com>
Marek Vasut3ef6d082017-10-08 20:41:18 +02007 */
8
Marek Vasut3ef6d082017-10-08 20:41:18 +02009#include <asm/io.h>
Marek Vasut3ef6d082017-10-08 20:41:18 +020010#include <asm/arch/rcar-mstp.h>
Marek Vasute43da102025-01-29 18:04:30 +010011#include <asm/arch/renesas.h>
Marek Vasut3ef6d082017-10-08 20:41:18 +020012
Marek Vasute43da102025-01-29 18:04:30 +010013#define HSUSB_MSTP704 BIT(4) /* HSUSB */
14
Marek Vasut3ef6d082017-10-08 20:41:18 +020015/* HSUSB block registers */
16#define HSUSB_REG_LPSTS 0xE6590102
17#define HSUSB_REG_LPSTS_SUSPM_NORMAL BIT(14)
18#define HSUSB_REG_UGCTRL2 0xE6590184
19#define HSUSB_REG_UGCTRL2_USB0SEL 0x30
20#define HSUSB_REG_UGCTRL2_USB0SEL_EHCI 0x10
21
22int board_init(void)
23{
Marek Vasut3ef6d082017-10-08 20:41:18 +020024 /* USB1 pull-up */
25 setbits_le32(PFC_PUEN6, PUEN_USB1_OVC | PUEN_USB1_PWEN);
26
27 /* Configure the HSUSB block */
Hiroyuki Yokoyama7e172912018-09-26 16:00:09 +090028 mstp_clrbits_le32(SMSTPCR7, SMSTPCR7, HSUSB_MSTP704);
Marek Vasut3ef6d082017-10-08 20:41:18 +020029 /* Choice USB0SEL */
30 clrsetbits_le32(HSUSB_REG_UGCTRL2, HSUSB_REG_UGCTRL2_USB0SEL,
31 HSUSB_REG_UGCTRL2_USB0SEL_EHCI);
32 /* low power status */
33 setbits_le16(HSUSB_REG_LPSTS, HSUSB_REG_LPSTS_SUSPM_NORMAL);
34
35 return 0;
36}