]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: ti: j721e: Add support for probing and configuring Torrent serdes on J7200
authorAswath Govindraju <a-govindraju@ti.com>
Wed, 21 Jul 2021 15:58:39 +0000 (21:28 +0530)
committerLokesh Vutla <lokeshvutla@ti.com>
Tue, 27 Jul 2021 05:27:12 +0000 (10:57 +0530)
Add support for probing and configuring Torrent serdes on J7200.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Link: https://lore.kernel.org/r/20210721155849.20994-11-kishon@ti.com
board/ti/j721e/evm.c

index b9a9f1955222330c958a378ccfc547c8edff6f3d..580f13c3ab1ac09f2fd75b36c218834f4ec036fc 100644 (file)
@@ -10,6 +10,7 @@
 #include <common.h>
 #include <env.h>
 #include <fdt_support.h>
+#include <generic-phy.h>
 #include <image.h>
 #include <init.h>
 #include <log.h>
@@ -29,7 +30,8 @@
 #define board_is_j721e_som()   (board_ti_k3_is("J721EX-PM1-SOM") || \
                                 board_ti_k3_is("J721EX-PM2-SOM"))
 
-#define board_is_j7200_som()   board_ti_k3_is("J7200X-PM1-SOM")
+#define board_is_j7200_som()   (board_ti_k3_is("J7200X-PM1-SOM") || \
+                                board_ti_k3_is("J7200X-PM2-SOM"))
 
 /* Max number of MAC addresses that are parsed/processed per daughter card */
 #define DAUGHTER_CARD_NO_OF_MAC_ADDR   8
@@ -384,6 +386,33 @@ static int probe_daughtercards(void)
 }
 #endif
 
+void configure_serdes_torrent(void)
+{
+       struct udevice *dev;
+       struct phy serdes;
+       int ret;
+
+       if (!IS_ENABLED(CONFIG_PHY_CADENCE_TORRENT))
+               return;
+
+       ret = uclass_get_device_by_driver(UCLASS_PHY,
+                                         DM_DRIVER_GET(torrent_phy_provider),
+                                         &dev);
+       if (ret)
+               printf("Torrent init failed:%d\n", ret);
+
+       serdes.dev = dev;
+       serdes.id = 0;
+
+       ret = generic_phy_init(&serdes);
+       if (ret)
+               printf("phy_init failed!!\n");
+
+       ret = generic_phy_power_on(&serdes);
+       if (ret)
+               printf("phy_power_on failed !!\n");
+}
+
 int board_late_init(void)
 {
        if (IS_ENABLED(CONFIG_TI_I2C_BOARD_DETECT)) {
@@ -394,6 +423,9 @@ int board_late_init(void)
                probe_daughtercards();
        }
 
+       if (board_is_j7200_som())
+               configure_serdes_torrent();
+
        return 0;
 }