Add MACB_CAPS_QBV to four compatibles. Tested on EyeQ5 hardware. The other ones are not tested. Datasheets indicate support. Compatible | Datasheet -----------------------+------------------------ mobileye,eyeq5-gem | Not public microchip,mpfs-macb | Public header files [0] microchip,sam9x7-gem | DS60001813 [1] microchip,sama7d65-gem | DS60001851 [2] For the latter two, upstream devicetrees and bindings know about the compatible but the driver only used their "parent" compatible microchip,sama7g5-gem. Therefore add match data for those two. Instead of duplicating the long caps list, store it in a define which gets called three times. [0]: https://github.com/polarfire-soc/hart-software-services/blob/445664ca8ac5/baremetal/polarfire-soc-bare-metal-library/src/platform/drivers/mss/mss_ethernet_mac/mss_ethernet_registers.h#L264-L278 [1]: https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/DataSheets/SAM9X7-Series-Data-Sheet-DS60001813.pdf [2]: https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/DataSheets/SAMA7D6-Series-Data-Sheet-DS60001851.pdf Signed-off-by: Théo Lebrun --- drivers/net/ethernet/cadence/macb_main.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 25d098a46965..9f6111661b40 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -6135,7 +6135,7 @@ static const struct macb_config mpfs_config = { MACB_CAPS_JUMBO | MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_USRIO_HAS_TSUCLK_SOURCE | - MACB_CAPS_QUEUE_DISABLE, + MACB_CAPS_QUEUE_DISABLE | MACB_CAPS_QBV, .dma_burst_length = 16, .init = init_reset_optional, .usrio = &mpfs_usrio, @@ -6143,12 +6143,15 @@ static const struct macb_config mpfs_config = { .jumbo_max_len = 4040, }; +#define MACB_SAMA7G5_CAPS ( \ + MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_CLK_HW_CHG | \ + MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | \ + MACB_CAPS_USRIO_HAS_REFCLK_SOURCE | \ + MACB_CAPS_MIIONRGMII | MACB_CAPS_GEM_HAS_PTP | \ + MACB_CAPS_USRIO_HAS_MII | MACB_CAPS_QUEUE_DISABLE) + static const struct macb_config sama7g5_gem_config = { - .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_CLK_HW_CHG | - MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | - MACB_CAPS_USRIO_HAS_REFCLK_SOURCE | - MACB_CAPS_MIIONRGMII | MACB_CAPS_GEM_HAS_PTP | - MACB_CAPS_USRIO_HAS_MII | MACB_CAPS_QUEUE_DISABLE, + .caps = MACB_SAMA7G5_CAPS, .dma_burst_length = 16, .usrio = &sama7g5_gem_usrio, }; @@ -6163,6 +6166,18 @@ static const struct macb_config sama7g5_emac_config = { .usrio = &sama7g5_emac_usrio, }; +static const struct macb_config sam9x7_config = { + .caps = MACB_SAMA7G5_CAPS | MACB_CAPS_QBV, + .dma_burst_length = 16, + .usrio = &sama7g5_gem_usrio, +}; + +static const struct macb_config sama7d65_config = { + .caps = MACB_SAMA7G5_CAPS | MACB_CAPS_QBV, + .dma_burst_length = 16, + .usrio = &sama7g5_gem_usrio, +}; + static const struct macb_config versal_config = { .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO | MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_BD_RD_PREFETCH | @@ -6178,7 +6193,7 @@ static const struct macb_config versal_config = { static const struct macb_config eyeq5_config = { .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO | MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_QUEUE_DISABLE | - MACB_CAPS_NO_LSO | MACB_CAPS_EEE, + MACB_CAPS_NO_LSO | MACB_CAPS_EEE | MACB_CAPS_QBV, .dma_burst_length = 16, .init = eyeq5_init, .jumbo_max_len = 10240, @@ -6224,6 +6239,8 @@ static const struct of_device_id macb_dt_ids[] = { { .compatible = "microchip,pic64hpsc-gem", .data = &pic64hpsc_config}, { .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config }, { .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config }, + { .compatible = "microchip,sam9x7-gem", .data = &sam9x7_config }, + { .compatible = "microchip,sama7d65-gem", .data = &sama7d65_config }, { .compatible = "mobileye,eyeq5-gem", .data = &eyeq5_config }, { .compatible = "raspberrypi,rp1-gem", .data = &raspberrypi_rp1_config }, { .compatible = "xlnx,zynqmp-gem", .data = &zynqmp_config}, -- 2.56.0