nvethernet: add support for XPCS

Adds supoort for getting XPCS base address from DT

Bug 200552796
Change-Id: I078f0aeca8a2e10fe1dfba7cf23c6ff285a110d1
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2270581
This commit is contained in:
Bhadram Varka
2019-12-30 12:19:19 +05:30
committed by Revanth Kumar Uppala
parent 29fb064269
commit 824a77cfd7
2 changed files with 13 additions and 1 deletions

View File

@@ -35,6 +35,7 @@ nvethernet-objs:= ether_linux.o \
$(OSI_CORE)/eqos_core.o \
$(OSI_CORE)/ivc_core.o \
$(OSI_CORE)/mgbe_core.o \
$(OSI_CORE)/xpcs.o \
$(OSI_DMA)/mgbe_dma.o \
$(OSI_CORE)/eqos_mmc.o \
$(OSI_DMA)/eqos_dma.o

View File

@@ -3609,7 +3609,7 @@ static int ether_init_plat_resources(struct platform_device *pdev,
int ret = 0;
/* get base address and remap */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mac-base");
osi_core->base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(osi_core->base)) {
dev_err(&pdev->dev, "failed to ioremap MAC base address\n");
@@ -3630,6 +3630,17 @@ static int ether_init_plat_resources(struct platform_device *pdev,
osi_dma->base = osi_core->base;
}
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "xpcs-base");
if (res) {
osi_core->xpcs_base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(osi_core->xpcs_base)) {
dev_err(&pdev->dev, "failed to ioremap XPCS address\n");
return PTR_ERR(osi_core->xpcs_base);
}
} else {
osi_core->xpcs_base = NULL;
}
ret = ether_configure_car(pdev, pdata);
if (ret < 0) {
dev_err(&pdev->dev, "failed to get clks/reset");