]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
board: transformer-t30: fix model detection
authorSvyatoslav Ryhel <clamor95@gmail.com>
Sat, 28 Dec 2024 13:21:03 +0000 (15:21 +0200)
committerSvyatoslav Ryhel <clamor95@gmail.com>
Thu, 13 Feb 2025 14:52:31 +0000 (16:52 +0200)
PCBID1 seems to be high not only on TF600T, but on TF700T as well,
that caused boot failure for TF700T. Switching PCBID1 to PCBID7
should fix this issue.

Co-developed-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
board/asus/transformer-t30/board-info.c

index a2b540c90b6f0b84a40de3dc0497d1cd323bb092..e72614164b4d91d2f7092b8e13a692f6cda937e7 100644 (file)
 #include <asm/arch/pinmux.h>
 
 /*
- *     PCB_ID[1] is kb_row5_pr5
  *     PCB_ID[3] is kb_col7_pq7
  *     PCB_ID[4] is kb_row2_pr2
  *     PCB_ID[5] is kb_col5_pq5
+ *     PCB_ID[7] is gmi_cs1_n_pj2
  *
  *                       Project ID
  *     =====================================================
- *     PCB_ID[1] PCB_ID[5] PCB_ID[4] PCB_ID[3] Project
+ *     PCB_ID[7] PCB_ID[5] PCB_ID[4] PCB_ID[3] Project
  *     0         0         0         0         TF201
  *     0         0         0         1         P1801
  *     0         0         1         0         TF300T
@@ -45,10 +45,10 @@ static const char * const project_id_to_fdt[] = {
        [TF600T] = "tegra30-asus-tf600t",
 };
 
-static int id_gpio_get_value(u32 pingrp, u32 pin)
+static int id_gpio_get_value(u32 pingrp, u32 func, u32 pin)
 {
        /* Configure pinmux */
-       pinmux_set_func(pingrp, PMUX_FUNC_KBC);
+       pinmux_set_func(pingrp, func);
        pinmux_set_pullupdown(pingrp, PMUX_PULL_DOWN);
        pinmux_tristate_enable(pingrp);
        pinmux_set_io(pingrp, PMUX_PIN_INPUT);
@@ -65,19 +65,19 @@ static int id_gpio_get_value(u32 pingrp, u32 pin)
 
 static int get_project_id(void)
 {
-       u32 pcb_id1, pcb_id3, pcb_id4, pcb_id5;
+       u32 pcb_id3, pcb_id4, pcb_id5, pcb_id7;
 
-       pcb_id1 = id_gpio_get_value(PMUX_PINGRP_KB_ROW5_PR5,
-                                   TEGRA_GPIO(R, 5));
        pcb_id3 = id_gpio_get_value(PMUX_PINGRP_KB_COL7_PQ7,
-                                   TEGRA_GPIO(Q, 7));
+                                   PMUX_FUNC_KBC, TEGRA_GPIO(Q, 7));
        pcb_id4 = id_gpio_get_value(PMUX_PINGRP_KB_ROW2_PR2,
-                                   TEGRA_GPIO(R, 2));
+                                   PMUX_FUNC_KBC, TEGRA_GPIO(R, 2));
        pcb_id5 = id_gpio_get_value(PMUX_PINGRP_KB_COL5_PQ5,
-                                   TEGRA_GPIO(Q, 5));
+                                   PMUX_FUNC_KBC, TEGRA_GPIO(Q, 5));
+       pcb_id7 = id_gpio_get_value(PMUX_PINGRP_GMI_CS1_N_PJ2,
+                                   PMUX_FUNC_RSVD1, TEGRA_GPIO(J, 2));
 
        /* Construct board ID */
-       int proj_id = pcb_id1 << 3 | pcb_id5 << 2 |
+       int proj_id = pcb_id7 << 3 | pcb_id5 << 2 |
                      pcb_id4 << 1 | pcb_id3;
 
        log_debug("[TRANSFORMER]: project id %d (%s)\n", proj_id,