mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-11-01 23:04:54 +01:00
net: lan969x: add match data for lan969x
Add match data for lan969x, with initial fields for iomap, iomap_size and ioranges. Add new Kconfig symbol CONFIG_LAN969X_CONFIG for compiling the lan969x driver. It has been decided to give lan969x its own Kconfig symbol, as a considerable amount of code is needed, beside the Sparx5 code, to add full chip support (and more will be added in future series). Also this makes it possible to compile Sparx5 without lan969x. Reviewed-by: Steen Hegelund <[email protected]> Signed-off-by: Daniel Machon <[email protected]> Link: https://patch.msgid.link/20241024-sparx5-lan969x-switch-driver-2-v2-6-a0b5fae88a0f@microchip.com Signed-off-by: Jakub Kicinski <[email protected]>
This commit is contained in:
1 parent
199498490c
commit
7280f01e79
7 files changed
+145
No files matched your search
@@ -15091,6 +15091,13 @@ S: Maintained
|
||||
F: Documentation/devicetree/bindings/interrupt-controller/microchip,lan966x-oic.yaml
|
||||
F: drivers/irqchip/irq-lan966x-oic.c
|
||||
|
||||
MICROCHIP LAN969X ETHERNET DRIVER
|
||||
M: Daniel Machon <[email protected]>
|
||||
M: [email protected]
|
||||
L: [email protected]
|
||||
S: Maintained
|
||||
F: drivers/net/ethernet/microchip/lan969x/*
|
||||
|
||||
MICROCHIP LCDFB DRIVER
|
||||
M: Nicolas Ferre <[email protected]>
|
||||
L: [email protected]
|
||||
|
||||
@@ -59,6 +59,7 @@ config LAN743X
|
||||
|
||||
source "drivers/net/ethernet/microchip/lan865x/Kconfig"
|
||||
source "drivers/net/ethernet/microchip/lan966x/Kconfig"
|
||||
source "drivers/net/ethernet/microchip/lan969x/Kconfig"
|
||||
source "drivers/net/ethernet/microchip/sparx5/Kconfig"
|
||||
source "drivers/net/ethernet/microchip/vcap/Kconfig"
|
||||
source "drivers/net/ethernet/microchip/fdma/Kconfig"
|
||||
|
||||
@@ -11,6 +11,7 @@ lan743x-objs := lan743x_main.o lan743x_ethtool.o lan743x_ptp.o
|
||||
|
||||
obj-$(CONFIG_LAN865X) += lan865x/
|
||||
obj-$(CONFIG_LAN966X_SWITCH) += lan966x/
|
||||
obj-$(CONFIG_LAN969X_SWITCH) += lan969x/
|
||||
obj-$(CONFIG_SPARX5_SWITCH) += sparx5/
|
||||
obj-$(CONFIG_VCAP) += vcap/
|
||||
obj-$(CONFIG_FDMA) += fdma/
|
||||
@@ -0,0 +1,5 @@
|
||||
config LAN969X_SWITCH
|
||||
tristate "Lan969x switch driver"
|
||||
depends on SPARX5_SWITCH
|
||||
help
|
||||
This driver supports the lan969x family of network switch devices.
|
||||
@@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Makefile for the Microchip lan969x network device drivers.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_LAN969X_SWITCH) += lan969x-switch.o
|
||||
|
||||
lan969x-switch-y := lan969x.o
|
||||
|
||||
# Provide include files
|
||||
ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/fdma
|
||||
ccflags-y += -I$(srctree)/drivers/net/ethernet/microchip/vcap
|
||||
@@ -0,0 +1,104 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/* Microchip lan969x Switch driver
|
||||
*
|
||||
* Copyright (c) 2024 Microchip Technology Inc. and its subsidiaries.
|
||||
*/
|
||||
|
||||
#include "lan969x.h"
|
||||
|
||||
static const struct sparx5_main_io_resource lan969x_main_iomap[] = {
|
||||
{ TARGET_CPU, 0xc0000, 0 }, /* 0xe00c0000 */
|
||||
{ TARGET_FDMA, 0xc0400, 0 }, /* 0xe00c0400 */
|
||||
{ TARGET_GCB, 0x2010000, 1 }, /* 0xe2010000 */
|
||||
{ TARGET_QS, 0x2030000, 1 }, /* 0xe2030000 */
|
||||
{ TARGET_PTP, 0x2040000, 1 }, /* 0xe2040000 */
|
||||
{ TARGET_ANA_ACL, 0x2050000, 1 }, /* 0xe2050000 */
|
||||
{ TARGET_LRN, 0x2060000, 1 }, /* 0xe2060000 */
|
||||
{ TARGET_VCAP_SUPER, 0x2080000, 1 }, /* 0xe2080000 */
|
||||
{ TARGET_QSYS, 0x20a0000, 1 }, /* 0xe20a0000 */
|
||||
{ TARGET_QFWD, 0x20b0000, 1 }, /* 0xe20b0000 */
|
||||
{ TARGET_XQS, 0x20c0000, 1 }, /* 0xe20c0000 */
|
||||
{ TARGET_VCAP_ES2, 0x20d0000, 1 }, /* 0xe20d0000 */
|
||||
{ TARGET_VCAP_ES0, 0x20e0000, 1 }, /* 0xe20e0000 */
|
||||
{ TARGET_ANA_AC_POL, 0x2200000, 1 }, /* 0xe2200000 */
|
||||
{ TARGET_QRES, 0x2280000, 1 }, /* 0xe2280000 */
|
||||
{ TARGET_EACL, 0x22c0000, 1 }, /* 0xe22c0000 */
|
||||
{ TARGET_ANA_CL, 0x2400000, 1 }, /* 0xe2400000 */
|
||||
{ TARGET_ANA_L3, 0x2480000, 1 }, /* 0xe2480000 */
|
||||
{ TARGET_ANA_AC_SDLB, 0x2500000, 1 }, /* 0xe2500000 */
|
||||
{ TARGET_HSCH, 0x2580000, 1 }, /* 0xe2580000 */
|
||||
{ TARGET_REW, 0x2600000, 1 }, /* 0xe2600000 */
|
||||
{ TARGET_ANA_L2, 0x2800000, 1 }, /* 0xe2800000 */
|
||||
{ TARGET_ANA_AC, 0x2900000, 1 }, /* 0xe2900000 */
|
||||
{ TARGET_VOP, 0x2a00000, 1 }, /* 0xe2a00000 */
|
||||
{ TARGET_DEV2G5, 0x3004000, 1 }, /* 0xe3004000 */
|
||||
{ TARGET_DEV10G, 0x3008000, 1 }, /* 0xe3008000 */
|
||||
{ TARGET_PCS10G_BR, 0x300c000, 1 }, /* 0xe300c000 */
|
||||
{ TARGET_DEV2G5 + 1, 0x3010000, 1 }, /* 0xe3010000 */
|
||||
{ TARGET_DEV2G5 + 2, 0x3014000, 1 }, /* 0xe3014000 */
|
||||
{ TARGET_DEV2G5 + 3, 0x3018000, 1 }, /* 0xe3018000 */
|
||||
{ TARGET_DEV2G5 + 4, 0x301c000, 1 }, /* 0xe301c000 */
|
||||
{ TARGET_DEV10G + 1, 0x3020000, 1 }, /* 0xe3020000 */
|
||||
{ TARGET_PCS10G_BR + 1, 0x3024000, 1 }, /* 0xe3024000 */
|
||||
{ TARGET_DEV2G5 + 5, 0x3028000, 1 }, /* 0xe3028000 */
|
||||
{ TARGET_DEV2G5 + 6, 0x302c000, 1 }, /* 0xe302c000 */
|
||||
{ TARGET_DEV2G5 + 7, 0x3030000, 1 }, /* 0xe3030000 */
|
||||
{ TARGET_DEV2G5 + 8, 0x3034000, 1 }, /* 0xe3034000 */
|
||||
{ TARGET_DEV10G + 2, 0x3038000, 1 }, /* 0xe3038000 */
|
||||
{ TARGET_PCS10G_BR + 2, 0x303c000, 1 }, /* 0xe303c000 */
|
||||
{ TARGET_DEV2G5 + 9, 0x3040000, 1 }, /* 0xe3040000 */
|
||||
{ TARGET_DEV5G, 0x3044000, 1 }, /* 0xe3044000 */
|
||||
{ TARGET_PCS5G_BR, 0x3048000, 1 }, /* 0xe3048000 */
|
||||
{ TARGET_DEV2G5 + 10, 0x304c000, 1 }, /* 0xe304c000 */
|
||||
{ TARGET_DEV2G5 + 11, 0x3050000, 1 }, /* 0xe3050000 */
|
||||
{ TARGET_DEV2G5 + 12, 0x3054000, 1 }, /* 0xe3054000 */
|
||||
{ TARGET_DEV10G + 3, 0x3058000, 1 }, /* 0xe3058000 */
|
||||
{ TARGET_PCS10G_BR + 3, 0x305c000, 1 }, /* 0xe305c000 */
|
||||
{ TARGET_DEV2G5 + 13, 0x3060000, 1 }, /* 0xe3060000 */
|
||||
{ TARGET_DEV5G + 1, 0x3064000, 1 }, /* 0xe3064000 */
|
||||
{ TARGET_PCS5G_BR + 1, 0x3068000, 1 }, /* 0xe3068000 */
|
||||
{ TARGET_DEV2G5 + 14, 0x306c000, 1 }, /* 0xe306c000 */
|
||||
{ TARGET_DEV2G5 + 15, 0x3070000, 1 }, /* 0xe3070000 */
|
||||
{ TARGET_DEV2G5 + 16, 0x3074000, 1 }, /* 0xe3074000 */
|
||||
{ TARGET_DEV10G + 4, 0x3078000, 1 }, /* 0xe3078000 */
|
||||
{ TARGET_PCS10G_BR + 4, 0x307c000, 1 }, /* 0xe307c000 */
|
||||
{ TARGET_DEV2G5 + 17, 0x3080000, 1 }, /* 0xe3080000 */
|
||||
{ TARGET_DEV5G + 2, 0x3084000, 1 }, /* 0xe3084000 */
|
||||
{ TARGET_PCS5G_BR + 2, 0x3088000, 1 }, /* 0xe3088000 */
|
||||
{ TARGET_DEV2G5 + 18, 0x308c000, 1 }, /* 0xe308c000 */
|
||||
{ TARGET_DEV2G5 + 19, 0x3090000, 1 }, /* 0xe3090000 */
|
||||
{ TARGET_DEV2G5 + 20, 0x3094000, 1 }, /* 0xe3094000 */
|
||||
{ TARGET_DEV10G + 5, 0x3098000, 1 }, /* 0xe3098000 */
|
||||
{ TARGET_PCS10G_BR + 5, 0x309c000, 1 }, /* 0xe309c000 */
|
||||
{ TARGET_DEV2G5 + 21, 0x30a0000, 1 }, /* 0xe30a0000 */
|
||||
{ TARGET_DEV5G + 3, 0x30a4000, 1 }, /* 0xe30a4000 */
|
||||
{ TARGET_PCS5G_BR + 3, 0x30a8000, 1 }, /* 0xe30a8000 */
|
||||
{ TARGET_DEV2G5 + 22, 0x30ac000, 1 }, /* 0xe30ac000 */
|
||||
{ TARGET_DEV2G5 + 23, 0x30b0000, 1 }, /* 0xe30b0000 */
|
||||
{ TARGET_DEV2G5 + 24, 0x30b4000, 1 }, /* 0xe30b4000 */
|
||||
{ TARGET_DEV10G + 6, 0x30b8000, 1 }, /* 0xe30b8000 */
|
||||
{ TARGET_PCS10G_BR + 6, 0x30bc000, 1 }, /* 0xe30bc000 */
|
||||
{ TARGET_DEV2G5 + 25, 0x30c0000, 1 }, /* 0xe30c0000 */
|
||||
{ TARGET_DEV10G + 7, 0x30c4000, 1 }, /* 0xe30c4000 */
|
||||
{ TARGET_PCS10G_BR + 7, 0x30c8000, 1 }, /* 0xe30c8000 */
|
||||
{ TARGET_DEV2G5 + 26, 0x30cc000, 1 }, /* 0xe30cc000 */
|
||||
{ TARGET_DEV10G + 8, 0x30d0000, 1 }, /* 0xe30d0000 */
|
||||
{ TARGET_PCS10G_BR + 8, 0x30d4000, 1 }, /* 0xe30d4000 */
|
||||
{ TARGET_DEV2G5 + 27, 0x30d8000, 1 }, /* 0xe30d8000 */
|
||||
{ TARGET_DEV10G + 9, 0x30dc000, 1 }, /* 0xe30dc000 */
|
||||
{ TARGET_PCS10G_BR + 9, 0x30e0000, 1 }, /* 0xe30e0000 */
|
||||
{ TARGET_DSM, 0x30ec000, 1 }, /* 0xe30ec000 */
|
||||
{ TARGET_PORT_CONF, 0x30f0000, 1 }, /* 0xe30f0000 */
|
||||
{ TARGET_ASM, 0x3200000, 1 }, /* 0xe3200000 */
|
||||
};
|
||||
|
||||
const struct sparx5_match_data lan969x_desc = {
|
||||
.iomap = lan969x_main_iomap,
|
||||
.iomap_size = ARRAY_SIZE(lan969x_main_iomap),
|
||||
.ioranges = 2,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(lan969x_desc);
|
||||
|
||||
MODULE_DESCRIPTION("Microchip lan969x switch driver");
|
||||
MODULE_AUTHOR("Daniel Machon <[email protected]>");
|
||||
MODULE_LICENSE("Dual MIT/GPL");
|
||||
@@ -0,0 +1,15 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/* Microchip lan969x Switch driver
|
||||
*
|
||||
* Copyright (c) 2024 Microchip Technology Inc. and its subsidiaries.
|
||||
*/
|
||||
|
||||
#ifndef __LAN969X_H__
|
||||
#define __LAN969X_H__
|
||||
|
||||
#include "../sparx5/sparx5_main.h"
|
||||
|
||||
/* lan969x.c */
|
||||
extern const struct sparx5_match_data lan969x_desc;
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user