2 * Copyright (C) 2012 Lucas Stach
4 * SPDX-License-Identifier: GPL-2.0+
8 #include <asm/arch/clock.h>
9 #include <asm/arch/funcmux.h>
10 #include <asm/arch/pinmux.h>
11 #include <asm/arch-tegra/board.h>
14 #ifdef CONFIG_TEGRA_MMC
16 * Routine: pin_mux_mmc
17 * Description: setup the pin muxes/tristate values for the SDMMC(s)
19 void pin_mux_mmc(void)
21 funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_4_BIT);
22 pinmux_tristate_disable(PMUX_PINGRP_GMB);
26 #ifdef CONFIG_TEGRA_NAND
27 void pin_mux_nand(void)
29 funcmux_select(PERIPH_ID_NDFLASH, FUNCMUX_NDFLASH_KBC_8_BIT);
32 * configure pingroup ATC to something unrelated to
33 * avoid ATC overriding KBC
35 pinmux_set_func(PMUX_PINGRP_ATC, PMUX_FUNC_GMI);
39 #ifdef CONFIG_USB_EHCI_TEGRA
40 void pin_mux_usb(void)
42 /* module internal USB bus to connect ethernet chipset */
43 funcmux_select(PERIPH_ID_USB2, FUNCMUX_USB2_ULPI);
45 /* ULPI reference clock output */
46 pinmux_set_func(PMUX_PINGRP_CDEV2, PMUX_FUNC_PLLP_OUT4);
47 pinmux_tristate_disable(PMUX_PINGRP_CDEV2);
50 pinmux_tristate_disable(PMUX_PINGRP_UAC);
53 pinmux_tristate_disable(PMUX_PINGRP_DTE);
55 /* Reset ASIX using LAN_RESET */
56 gpio_request(GPIO_PV4, "LAN_RESET");
57 gpio_direction_output(GPIO_PV4, 0);
58 pinmux_tristate_disable(PMUX_PINGRP_GPV);
60 gpio_set_value(GPIO_PV4, 1);
62 /* USBH_PEN: USB 1 aka Tegra USB port 3 VBus */
63 pinmux_tristate_disable(PMUX_PINGRP_SPIG);