mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-12 07:43:22 +09:00
![Alexandre Courbot](/assets/img/avatar_default.png)
T124/210 requires some specific configuration (VPR setup) to be performed by the bootloader before the GPU can be used. For this reason, the GPU node in the device tree is disabled by default. This patch enables the node if U-boot has performed VPR configuration. Boards enabled by this patch are T124's Jetson TK1 and Venice2 and T210's P2571. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Cc: Stephen Warren <swarren@nvidia.com> Cc: Tom Warren <twarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
90 lines
1.7 KiB
C
90 lines
1.7 KiB
C
/*
|
|
* (C) Copyright 2014
|
|
* NVIDIA Corporation <www.nvidia.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <netdev.h>
|
|
#include <power/as3722.h>
|
|
|
|
#include <asm/arch/gpio.h>
|
|
#include <asm/arch/pinmux.h>
|
|
#include <asm/arch-tegra/gpu.h>
|
|
|
|
#include "pinmux-config-jetson-tk1.h"
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
/*
|
|
* Routine: pinmux_init
|
|
* Description: Do individual peripheral pinmux configs
|
|
*/
|
|
void pinmux_init(void)
|
|
{
|
|
pinmux_clear_tristate_input_clamping();
|
|
|
|
gpio_config_table(jetson_tk1_gpio_inits,
|
|
ARRAY_SIZE(jetson_tk1_gpio_inits));
|
|
|
|
pinmux_config_pingrp_table(jetson_tk1_pingrps,
|
|
ARRAY_SIZE(jetson_tk1_pingrps));
|
|
|
|
pinmux_config_drvgrp_table(jetson_tk1_drvgrps,
|
|
ARRAY_SIZE(jetson_tk1_drvgrps));
|
|
}
|
|
|
|
#ifdef CONFIG_PCI_TEGRA
|
|
int tegra_pcie_board_init(void)
|
|
{
|
|
struct udevice *pmic;
|
|
int err;
|
|
|
|
err = as3722_init(&pmic);
|
|
if (err) {
|
|
error("failed to initialize AS3722 PMIC: %d\n", err);
|
|
return err;
|
|
}
|
|
|
|
err = as3722_sd_enable(pmic, 4);
|
|
if (err < 0) {
|
|
error("failed to enable SD4: %d\n", err);
|
|
return err;
|
|
}
|
|
|
|
err = as3722_sd_set_voltage(pmic, 4, 0x24);
|
|
if (err < 0) {
|
|
error("failed to set SD4 voltage: %d\n", err);
|
|
return err;
|
|
}
|
|
|
|
err = as3722_gpio_configure(pmic, 1, AS3722_GPIO_OUTPUT_VDDH |
|
|
AS3722_GPIO_INVERT);
|
|
if (err < 0) {
|
|
error("failed to configure GPIO#1 as output: %d\n", err);
|
|
return err;
|
|
}
|
|
|
|
err = as3722_gpio_direction_output(pmic, 2, 1);
|
|
if (err < 0) {
|
|
error("failed to set GPIO#2 high: %d\n", err);
|
|
return err;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
int board_eth_init(bd_t *bis)
|
|
{
|
|
return pci_eth_init(bis);
|
|
}
|
|
#endif /* PCI */
|
|
|
|
int ft_board_setup(void *blob, bd_t *bd)
|
|
{
|
|
gpu_enable_node(blob, "/gpu@0,57000000");
|
|
|
|
return 0;
|
|
}
|