xref: /rk3399_rockchip-uboot/arch/arm/mach-tegra/dt-setup.c (revision 9889862545a0de2e6cf0fdf6171412cafc46c218)
1*98898625SStephen Warren /*
2*98898625SStephen Warren  * Copyright (c) 2010-2016, NVIDIA CORPORATION.
3*98898625SStephen Warren  *
4*98898625SStephen Warren  * SPDX-License-Identifier: GPL-2.0+
5*98898625SStephen Warren  */
6*98898625SStephen Warren 
7*98898625SStephen Warren #include <common.h>
8*98898625SStephen Warren #include <asm/arch-tegra/gpu.h>
9*98898625SStephen Warren 
10*98898625SStephen Warren /*
11*98898625SStephen Warren  * This function is called right before the kernel is booted. "blob" is the
12*98898625SStephen Warren  * device tree that will be passed to the kernel.
13*98898625SStephen Warren  */
ft_system_setup(void * blob,bd_t * bd)14*98898625SStephen Warren int ft_system_setup(void *blob, bd_t *bd)
15*98898625SStephen Warren {
16*98898625SStephen Warren 	const char *gpu_compats[] = {
17*98898625SStephen Warren #if defined(CONFIG_TEGRA124)
18*98898625SStephen Warren 		"nvidia,gk20a",
19*98898625SStephen Warren #endif
20*98898625SStephen Warren #if defined(CONFIG_TEGRA210)
21*98898625SStephen Warren 		"nvidia,gm20b",
22*98898625SStephen Warren #endif
23*98898625SStephen Warren 	};
24*98898625SStephen Warren 	int i, ret;
25*98898625SStephen Warren 
26*98898625SStephen Warren 	/* Enable GPU node if GPU setup has been performed */
27*98898625SStephen Warren 	for (i = 0; i < ARRAY_SIZE(gpu_compats); i++) {
28*98898625SStephen Warren 		ret = tegra_gpu_enable_node(blob, gpu_compats[i]);
29*98898625SStephen Warren 		if (ret)
30*98898625SStephen Warren 			return ret;
31*98898625SStephen Warren 	}
32*98898625SStephen Warren 
33*98898625SStephen Warren 	return 0;
34*98898625SStephen Warren }
35