Prepare v2023.10
[platform/kernel/u-boot.git] / board / nvidia / harmony / harmony.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  *  (C) Copyright 2010,2011
4  *  NVIDIA Corporation <www.nvidia.com>
5  */
6
7 #include <common.h>
8 #include <asm/io.h>
9 #include <asm/arch/clock.h>
10 #include <asm/arch/funcmux.h>
11 #include <asm/arch/pinmux.h>
12 #include <asm/arch/tegra.h>
13 #include <asm/gpio.h>
14
15 #ifdef CONFIG_MMC_SDHCI_TEGRA
16 /*
17  * Routine: pin_mux_mmc
18  * Description: setup the pin muxes/tristate values for the SDMMC(s)
19  */
20 void pin_mux_mmc(void)
21 {
22         funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_GME_8_BIT);
23         funcmux_select(PERIPH_ID_SDMMC2, FUNCMUX_SDMMC2_DTA_DTD_8BIT);
24
25         /* For power GPIO PI6 */
26         pinmux_tristate_disable(PMUX_PINGRP_ATA);
27         /* For CD GPIO PH2 */
28         pinmux_tristate_disable(PMUX_PINGRP_ATD);
29
30         /* For power GPIO PT3 */
31         pinmux_tristate_disable(PMUX_PINGRP_DTB);
32         /* For CD GPIO PI5 */
33         pinmux_tristate_disable(PMUX_PINGRP_ATC);
34 }
35 #endif
36
37 void pin_mux_usb(void)
38 {
39         funcmux_select(PERIPH_ID_USB2, FUNCMUX_USB2_ULPI);
40         pinmux_set_func(PMUX_PINGRP_CDEV2, PMUX_FUNC_PLLP_OUT4);
41         pinmux_tristate_disable(PMUX_PINGRP_CDEV2);
42         /* USB2 PHY reset GPIO */
43         pinmux_tristate_disable(PMUX_PINGRP_UAC);
44 }
45
46 void pin_mux_display(void)
47 {
48         pinmux_set_func(PMUX_PINGRP_SDC, PMUX_FUNC_PWM);
49         pinmux_tristate_disable(PMUX_PINGRP_SDC);
50 }