]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: macb: add support for Microchip pic64hpsc ethernet endpoint
authorCharles Perry <charles.perry@microchip.com>
Fri, 13 Mar 2026 14:06:10 +0000 (07:06 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 17 Mar 2026 12:32:33 +0000 (13:32 +0100)
pic64hpsc doesn't have the USRIO register so MACB_CAPS_USRIO_DISABLED is
used.

pic64hpsc does support PTP and has the timestamping unit so
MACB_CAPS_GEM_HAS_PTP is used.

jumbo_max_len is set to 16383 (0x3FFF) as reported by the DCFG2 register
bits 0..13. The JML register also has a default value of 0x3FFF.

dma_burst_length is set to 16 because that's what most other platforms
use and it worked for me so far. There is one other mode where bursts of
up to 256 are allowed but this might impact negatively other masters on
the NOC.  The register default value is 4 (bursts up to 4).

Signed-off-by: Charles Perry <charles.perry@microchip.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260313140610.3681752-4-charles.perry@microchip.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/cadence/macb_main.c

index ca6f9e2a4eb4c87ed04b404592e1ebb54a15e976..abd328428c94919726fac975ed74907080cf7c35 100644 (file)
@@ -5623,6 +5623,14 @@ static const struct macb_config raspberrypi_rp1_config = {
        .jumbo_max_len = 10240,
 };
 
+static const struct macb_config pic64hpsc_config = {
+       .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO |
+               MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_USRIO_DISABLED,
+       .dma_burst_length = 16,
+       .init = init_reset_optional,
+       .jumbo_max_len = 16383,
+};
+
 static const struct of_device_id macb_dt_ids[] = {
        { .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
        { .compatible = "cdns,macb" },
@@ -5641,6 +5649,7 @@ static const struct of_device_id macb_dt_ids[] = {
        { .compatible = "cdns,zynq-gem", .data = &zynq_config }, /* deprecated */
        { .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config },
        { .compatible = "microchip,mpfs-macb", .data = &mpfs_config },
+       { .compatible = "microchip,pic64hpsc-gem", .data = &pic64hpsc_config},
        { .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
        { .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config },
        { .compatible = "mobileye,eyeq5-gem", .data = &eyeq5_config },