Skip to content

Commit

Permalink
Merge branch 'introduce-en7581-ethernet-support'
Browse files Browse the repository at this point in the history
Lorenzo Bianconi says:

====================
Introduce EN7581 ethernet support

Add airoha_eth driver in order to introduce ethernet support for
Airoha EN7581 SoC available on EN7581 development board.
EN7581 mac controller is mainly composed by Frame Engine (FE) and
QoS-DMA (QDMA) modules. FE is used for traffic offloading (just basic
functionalities are supported now) while QDMA is used for DMA operation
and QOS functionalities between mac layer and the dsa switch (hw QoS is
not available yet and it will be added in the future).
Currently only hw lan features are available, hw wan will be added with
subsequent patches.
====================

Link: https://patch.msgid.link/cover.1720818878.git.lorenzo@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
kuba-moo committed Jul 14, 2024
2 parents 861f34e + 23020f0 commit ecb1e1d
Show file tree
Hide file tree
Showing 5 changed files with 2,892 additions and 1 deletion.
143 changes: 143 additions & 0 deletions Documentation/devicetree/bindings/net/airoha,en7581-eth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/airoha,en7581-eth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Airoha EN7581 Frame Engine Ethernet controller

maintainers:
- Lorenzo Bianconi <lorenzo@kernel.org>

description:
The frame engine ethernet controller can be found on Airoha SoCs.
These SoCs have multi-GMAC ports.

properties:
compatible:
enum:
- airoha,en7581-eth

reg:
items:
- description: Frame engine base address
- description: QDMA0 base address
- description: QDMA1 base address

reg-names:
items:
- const: fe
- const: qdma0
- const: qdma1

interrupts:
items:
- description: QDMA lan irq0
- description: QDMA lan irq1
- description: QDMA lan irq2
- description: QDMA lan irq3
- description: QDMA wan irq0
- description: QDMA wan irq1
- description: QDMA wan irq2
- description: QDMA wan irq3
- description: FE error irq
- description: PDMA irq

resets:
maxItems: 8

reset-names:
items:
- const: fe
- const: pdma
- const: qdma
- const: xsi-mac
- const: hsi0-mac
- const: hsi1-mac
- const: hsi-mac
- const: xfp-mac

"#address-cells":
const: 1

"#size-cells":
const: 0

patternProperties:
"^ethernet@[1-4]$":
type: object
unevaluatedProperties: false
$ref: ethernet-controller.yaml#
description:
Ethernet GMAC port associated to the MAC controller
properties:
compatible:
const: airoha,eth-mac

reg:
minimum: 1
maximum: 4
description: GMAC port identifier

required:
- reg
- compatible

required:
- compatible
- reg
- interrupts
- resets
- reset-names

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/en7523-clk.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
eth: ethernet@1fb50000 {
compatible = "airoha,en7581-eth";
reg = <0 0x1fb50000 0 0x2600>,
<0 0x1fb54000 0 0x2000>,
<0 0x1fb56000 0 0x2000>;
reg-names = "fe", "qdma0", "qdma1";
resets = <&scuclk 44>,
<&scuclk 30>,
<&scuclk 31>,
<&scuclk 6>,
<&scuclk 15>,
<&scuclk 16>,
<&scuclk 17>,
<&scuclk 26>;
reset-names = "fe", "pdma", "qdma", "xsi-mac",
"hsi0-mac", "hsi1-mac", "hsi-mac",
"xfp-mac";
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
mac: ethernet@1 {
compatible = "airoha,eth-mac";
reg = <1>;
};
};
};
9 changes: 9 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -682,6 +682,15 @@ S: Supported
F: fs/aio.c
F: include/linux/*aio*.h

AIROHA ETHERNET DRIVER
M: Lorenzo Bianconi <lorenzo@kernel.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-mediatek@lists.infradead.org (moderated for non-subscribers)
L: netdev@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/net/airoha,en7581-eth.yaml
F: drivers/net/ethernet/mediatek/airoha_eth.c

AIROHA SPI SNFI DRIVER
M: Lorenzo Bianconi <lorenzo@kernel.org>
M: Ray Liu <ray.liu@airoha.com>
Expand Down
10 changes: 9 additions & 1 deletion drivers/net/ethernet/mediatek/Kconfig
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
# SPDX-License-Identifier: GPL-2.0-only
config NET_VENDOR_MEDIATEK
bool "MediaTek devices"
depends on ARCH_MEDIATEK || SOC_MT7621 || SOC_MT7620 || COMPILE_TEST
depends on ARCH_MEDIATEK || ARCH_AIROHA || SOC_MT7621 || SOC_MT7620 || COMPILE_TEST
help
If you have a Mediatek SoC with ethernet, say Y.

if NET_VENDOR_MEDIATEK

config NET_AIROHA
tristate "Airoha SoC Gigabit Ethernet support"
depends on NET_DSA || !NET_DSA
select PAGE_POOL
help
This driver supports the gigabit ethernet MACs in the
Airoha SoC family.

config NET_MEDIATEK_SOC_WED
depends on ARCH_MEDIATEK || COMPILE_TEST
def_bool NET_MEDIATEK_SOC != n
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/mediatek/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ mtk_eth-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_debugfs.o
endif
obj-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_ops.o
obj-$(CONFIG_NET_MEDIATEK_STAR_EMAC) += mtk_star_emac.o
obj-$(CONFIG_NET_AIROHA) += airoha_eth.o
Loading

0 comments on commit ecb1e1d

Please sign in to comment.