mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 12:21:03 +02:00
This patch renames the board directory from board/freescale to board/nxp because NXP now provides Board Support Packages (BSPs) and tools for the former Freescale i.MX and other i.MX products. All relevant references have been updated accordingly. This change does not affect functionality. Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
96 lines
1.9 KiB
C
96 lines
1.9 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (C) 2016 Freescale Semiconductor, Inc.
|
|
*/
|
|
|
|
#include <fdt_support.h>
|
|
#include <init.h>
|
|
#include <asm/global_data.h>
|
|
#include <asm/io.h>
|
|
#include <asm/arch/sys_proto.h>
|
|
#include <asm/arch/mx7ulp-pins.h>
|
|
#include <asm/arch/iomux.h>
|
|
#include <asm/mach-imx/boot_mode.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
#define UART_PAD_CTRL (PAD_CTL_PUS_UP)
|
|
|
|
int dram_init(void)
|
|
{
|
|
gd->ram_size = imx_ddr_size();
|
|
|
|
return 0;
|
|
}
|
|
|
|
static iomux_cfg_t const lpuart4_pads[] = {
|
|
MX7ULP_PAD_PTC3__LPUART4_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
|
|
MX7ULP_PAD_PTC2__LPUART4_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
|
|
};
|
|
|
|
static void setup_iomux_uart(void)
|
|
{
|
|
mx7ulp_iomux_setup_multiple_pads(lpuart4_pads,
|
|
ARRAY_SIZE(lpuart4_pads));
|
|
}
|
|
|
|
int board_early_init_f(void)
|
|
{
|
|
setup_iomux_uart();
|
|
|
|
return 0;
|
|
}
|
|
|
|
int board_init(void)
|
|
{
|
|
/* address of boot parameters */
|
|
gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
|
|
|
|
return 0;
|
|
}
|
|
|
|
#if IS_ENABLED(CONFIG_OF_BOARD_SETUP)
|
|
int ft_board_setup(void *blob, struct bd_info *bd)
|
|
{
|
|
const char *path;
|
|
int rc, nodeoff;
|
|
|
|
if (get_boot_device() == USB_BOOT) {
|
|
path = fdt_get_alias(blob, "mmc0");
|
|
if (!path) {
|
|
puts("Not found mmc0\n");
|
|
return 0;
|
|
}
|
|
|
|
nodeoff = fdt_path_offset(blob, path);
|
|
if (nodeoff < 0)
|
|
return 0;
|
|
|
|
printf("Found usdhc0 node\n");
|
|
if (fdt_get_property(blob, nodeoff, "vqmmc-supply",
|
|
NULL) != NULL) {
|
|
rc = fdt_delprop(blob, nodeoff, "vqmmc-supply");
|
|
if (!rc) {
|
|
puts("Removed vqmmc-supply property\n");
|
|
add:
|
|
rc = fdt_setprop(blob, nodeoff,
|
|
"no-1-8-v", NULL, 0);
|
|
if (rc == -FDT_ERR_NOSPACE) {
|
|
rc = fdt_increase_size(blob, 32);
|
|
if (!rc)
|
|
goto add;
|
|
} else if (rc) {
|
|
printf("Failed to add no-1-8-v property, %d\n", rc);
|
|
} else {
|
|
puts("Added no-1-8-v property\n");
|
|
}
|
|
} else {
|
|
printf("Failed to remove vqmmc-supply property, %d\n", rc);
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
#endif
|