]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: fsl_enetc: Introduce driver data
authorMarek Vasut <marex@denx.de>
Thu, 16 Jan 2025 04:03:26 +0000 (05:03 +0100)
committerFabio Estevam <festevam@gmail.com>
Mon, 20 Jan 2025 11:40:39 +0000 (08:40 -0300)
Introduce driver data for each PCI device. The driver data carry
offsets of registers which differ between different SoCs.

Signed-off-by: Marek Vasut <marex@denx.de>
drivers/net/fsl_enetc.c
drivers/net/fsl_enetc.h

index 532a367c24194fbc02d4cffe06207406e4b00500..c92626a8782ba5771a1cc729324f5f621635c05c 100644 (file)
@@ -786,8 +786,19 @@ U_BOOT_DRIVER(eth_enetc_ls) = {
        .plat_auto      = sizeof(struct eth_pdata),
 };
 
+static const struct enetc_data enetc_data_ls = {
+       .reg_offset_pmr         = ENETC_PMR_OFFSET_LS,
+       .reg_offset_psipmar     = ENETC_PSIPMARn_OFFSET_LS,
+       .reg_offset_pcapr       = ENETC_PCAPR_OFFSET_LS,
+       .reg_offset_psicfgr     = ENETC_PSICFGR_OFFSET_LS,
+       .reg_offset_mac         = ENETC_PM_OFFSET_LS,
+};
+
 static struct pci_device_id enetc_ids_ls[] = {
-       { PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, PCI_DEVICE_ID_ENETC_ETH) },
+       {
+               PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, PCI_DEVICE_ID_ENETC_ETH),
+               .driver_data = (ulong)&enetc_data_ls,
+       },
        {}
 };
 
index 15408b669b42c33506ca2a0a71b2a1dc44cd2759..b815474c2464e44cb44f17a35b74400d284acdd5 100644 (file)
@@ -168,6 +168,15 @@ struct enetc_priv {
        struct phy_device *phy;
 };
 
+struct enetc_data {
+       /* Register layout offsets */
+       u16                     reg_offset_pmr;
+       u16                     reg_offset_psipmar;
+       u16                     reg_offset_pcapr;
+       u16                     reg_offset_psicfgr;
+       u16                     reg_offset_mac;
+};
+
 /* PCS / internal SoC PHY ID, it defaults to 0 on all interfaces */
 #define ENETC_PCS_PHY_ADDR     0