]> Git Repo - J-u-boot.git/blobdiff - arch/arm/mach-tegra/board2.c
Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""
[J-u-boot.git] / arch / arm / mach-tegra / board2.c
index 48c4f32d6f982ecd769b3d36850fd0696352baa5..adea12c9b7f9a3bc1cbf2e14ce10360b455a263d 100644 (file)
@@ -11,7 +11,9 @@
 #include <init.h>
 #include <log.h>
 #include <ns16550.h>
+#include <power/regulator.h>
 #include <usb.h>
+#include <asm/global_data.h>
 #include <asm/io.h>
 #include <asm/arch-tegra/ap.h>
 #include <asm/arch-tegra/board.h>
 #include <asm/arch-tegra/gpu.h>
 #include <asm/arch-tegra/usb.h>
 #include <asm/arch-tegra/xusb-padctl.h>
+#ifndef CONFIG_TEGRA186
+#include <asm/arch-tegra/fuse.h>
+#include <asm/arch/gp_padctrl.h>
+#endif
 #if IS_ENABLED(CONFIG_TEGRA_CLKRST)
 #include <asm/arch/clock.h>
 #endif
-#if IS_ENABLED(CONFIG_TEGRA_PINCTRL)
+#if CONFIG_IS_ENABLED(PINCTRL_TEGRA)
 #include <asm/arch/funcmux.h>
 #include <asm/arch/pinmux.h>
 #endif
@@ -42,7 +48,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef CONFIG_SPL_BUILD
 /* TODO([email protected]): Remove once SPL supports device tree */
-U_BOOT_DEVICE(tegra_gpios) = {
+U_BOOT_DRVINFO(tegra_gpios) = {
        "gpio_tegra"
 };
 #endif
@@ -55,6 +61,7 @@ __weak void gpio_early_init_uart(void) {}
 __weak void pin_mux_display(void) {}
 __weak void start_cpu_fan(void) {}
 __weak void cboot_late_init(void) {}
+__weak void nvidia_board_late_init(void) {}
 
 #if defined(CONFIG_TEGRA_NAND)
 __weak void pin_mux_nand(void)
@@ -88,7 +95,7 @@ int checkboard(void)
 {
        int board_id = tegra_board_id();
 
-       printf("Board: %s", CONFIG_TEGRA_BOARD_STRING);
+       printf("Board: %s", CFG_TEGRA_BOARD_STRING);
        if (board_id != -1)
                printf(", ID: %d\n", board_id);
        printf("\n");
@@ -133,7 +140,7 @@ int board_init(void)
 #endif
 
        /* Init is handled automatically in the driver-model case */
-#if defined(CONFIG_DM_VIDEO)
+#if defined(CONFIG_VIDEO)
        pin_mux_display();
 #endif
        /* boot param addr */
@@ -157,7 +164,7 @@ int board_init(void)
        pin_mux_usb();
 #endif
 
-#if defined(CONFIG_DM_VIDEO)
+#if defined(CONFIG_VIDEO)
        board_id = tegra_board_id();
        err = tegra_lcd_pmic_init(board_id);
        if (err) {
@@ -179,6 +186,10 @@ int board_init(void)
        /* prepare the WB code to LP0 location */
        warmboot_prepare_code(TEGRA_LP0_ADDR, TEGRA_LP0_SIZE);
 #endif
+
+       /* Set up boot-on regulators */
+       regulators_enable_boot_on(_DEBUG);
+
        return nvidia_board_init();
 }
 
@@ -254,6 +265,37 @@ int board_early_init_f(void)
 }
 #endif /* EARLY_INIT */
 
+#ifndef CONFIG_TEGRA186
+static void nvidia_board_late_init_generic(void)
+{
+       char serialno_str[17];
+
+       /* Set chip id as serialno */
+       sprintf(serialno_str, "%016llx", tegra_chip_uid());
+       env_set("serial#", serialno_str);
+
+       switch (tegra_get_chip()) {
+       case CHIPID_TEGRA20:
+               env_set("platform", "tegra20");
+               break;
+       case CHIPID_TEGRA30:
+               env_set("platform", "tegra30");
+               break;
+       case CHIPID_TEGRA114:
+               env_set("platform", "tegra114");
+               break;
+       case CHIPID_TEGRA124:
+               env_set("platform", "tegra124");
+               break;
+       case CHIPID_TEGRA210:
+               env_set("platform", "tegra210");
+               break;
+       default:
+               return;
+       }
+}
+#endif
+
 int board_late_init(void)
 {
 #if defined(CONFIG_TEGRA_SUPPORT_NON_SECURE)
@@ -267,6 +309,15 @@ int board_late_init(void)
        start_cpu_fan();
        cboot_late_init();
 
+       /*
+        * Perform generic env setup in case
+        * vendor does not provide it.
+        */
+#ifndef CONFIG_TEGRA186
+       nvidia_board_late_init_generic();
+#endif
+       nvidia_board_late_init();
+
        return 0;
 }
 
@@ -369,7 +420,7 @@ int dram_init_banksize(void)
 
        /* fall back to default DRAM bank size computation */
 
-       gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+       gd->bd->bi_dram[0].start = CFG_SYS_SDRAM_BASE;
        gd->bd->bi_dram[0].size = usable_ram_size_below_4g();
 
 #ifdef CONFIG_PCI
@@ -400,7 +451,7 @@ int dram_init_banksize(void)
  * This function is called before dram_init_banksize(), so we can't simply
  * return gd->bd->bi_dram[1].start + gd->bd->bi_dram[1].size.
  */
-ulong board_get_usable_ram_top(ulong total_size)
+phys_addr_t board_get_usable_ram_top(phys_size_t total_size)
 {
        ulong ram_top;
 
@@ -411,5 +462,5 @@ ulong board_get_usable_ram_top(ulong total_size)
 
        /* fall back to default usable RAM computation */
 
-       return CONFIG_SYS_SDRAM_BASE + usable_ram_size_below_4g();
+       return CFG_SYS_SDRAM_BASE + usable_ram_size_below_4g();
 }
This page took 0.030306 seconds and 4 git commands to generate.