Skip to content

Commit

Permalink
Merge branch 'this-is-a-patch-series-for-ethernet-driver-of-sunplus-s…
Browse files Browse the repository at this point in the history
…p7021-soc'

Wells Lu says:

====================
This is a patch series for Ethernet driver of Sunplus SP7021 SoC.

Sunplus SP7021 is an ARM Cortex A7 (4 cores) based SoC. It integrates
many peripherals (ex: UART, I2C, SPI, SDIO, eMMC, USB, SD card and
etc.) into a single chip. It is designed for industrial control
applications.

Refer to:
https://sunplus.atlassian.net/wiki/spaces/doc/overview
https://tibbo.com/store/plus1.html
====================

Link: https://lore.kernel.org/r/1652004800-3212-1-git-send-email-wellslutw@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  • Loading branch information
Paolo Abeni committed May 10, 2022
2 parents 8276345 + fd3040b commit a12af6f
Show file tree
Hide file tree
Showing 19 changed files with 2,191 additions and 0 deletions.
141 changes: 141 additions & 0 deletions Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) Sunplus Co., Ltd. 2021
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/sunplus,sp7021-emac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sunplus SP7021 Dual Ethernet MAC Device Tree Bindings

maintainers:
- Wells Lu <wellslutw@gmail.com>

description: |
Sunplus SP7021 dual 10M/100M Ethernet MAC controller.
Device node of the controller has following properties.
properties:
compatible:
const: sunplus,sp7021-emac

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
maxItems: 1

resets:
maxItems: 1

ethernet-ports:
type: object
description: Ethernet ports to PHY

properties:
"#address-cells":
const: 1

"#size-cells":
const: 0

patternProperties:
"^port@[0-1]$":
type: object
description: Port to PHY

properties:
reg:
minimum: 0
maximum: 1

phy-handle:
maxItems: 1

phy-mode:
maxItems: 1

nvmem-cells:
items:
- description: nvmem cell address of MAC address

nvmem-cell-names:
description: names corresponding to the nvmem cells
items:
- const: mac-address

required:
- reg
- phy-handle
- phy-mode
- nvmem-cells
- nvmem-cell-names

mdio:
$ref: mdio.yaml#
unevaluatedProperties: false

additionalProperties: false

required:
- compatible
- reg
- interrupts
- clocks
- resets
- pinctrl-0
- pinctrl-names
- ethernet-ports
- mdio

examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
ethernet@9c108000 {
compatible = "sunplus,sp7021-emac";
reg = <0x9c108000 0x400>;
interrupt-parent = <&intc>;
interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clkc 0xa7>;
resets = <&rstc 0x97>;
pinctrl-0 = <&emac_demo_board_v3_pins>;
pinctrl-names = "default";
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
phy-handle = <&eth_phy0>;
phy-mode = "rmii";
nvmem-cells = <&mac_addr0>;
nvmem-cell-names = "mac-address";
};
port@1 {
reg = <1>;
phy-handle = <&eth_phy1>;
phy-mode = "rmii";
nvmem-cells = <&mac_addr1>;
nvmem-cell-names = "mac-address";
};
};
mdio {
#address-cells = <1>;
#size-cells = <0>;
eth_phy0: ethernet-phy@0 {
reg = <0>;
};
eth_phy1: ethernet-phy@1 {
reg = <1>;
};
};
};
...
8 changes: 8 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -18908,6 +18908,14 @@ L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/dlink/sundance.c

SUNPLUS ETHERNET DRIVER
M: Wells Lu <wellslutw@gmail.com>
L: netdev@vger.kernel.org
S: Maintained
W: https://sunplus.atlassian.net/wiki/spaces/doc/overview
F: Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml
F: drivers/net/ethernet/sunplus/

SUNPLUS OCOTP DRIVER
M: Vincent Shih <vincent.sunplus@gmail.com>
S: Maintained
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ source "drivers/net/ethernet/smsc/Kconfig"
source "drivers/net/ethernet/socionext/Kconfig"
source "drivers/net/ethernet/stmicro/Kconfig"
source "drivers/net/ethernet/sun/Kconfig"
source "drivers/net/ethernet/sunplus/Kconfig"
source "drivers/net/ethernet/synopsys/Kconfig"
source "drivers/net/ethernet/tehuti/Kconfig"
source "drivers/net/ethernet/ti/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ obj-$(CONFIG_NET_VENDOR_SMSC) += smsc/
obj-$(CONFIG_NET_VENDOR_SOCIONEXT) += socionext/
obj-$(CONFIG_NET_VENDOR_STMICRO) += stmicro/
obj-$(CONFIG_NET_VENDOR_SUN) += sun/
obj-$(CONFIG_NET_VENDOR_SUNPLUS) += sunplus/
obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/
obj-$(CONFIG_NET_VENDOR_TI) += ti/
obj-$(CONFIG_NET_VENDOR_TOSHIBA) += toshiba/
Expand Down
35 changes: 35 additions & 0 deletions drivers/net/ethernet/sunplus/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0
#
# Sunplus network device configuration
#

config NET_VENDOR_SUNPLUS
bool "Sunplus devices"
default y
depends on ARCH_SUNPLUS || COMPILE_TEST
help
If you have a network (Ethernet) card belonging to this
class, say Y here.

Note that the answer to this question doesn't directly
affect the kernel: saying N will just cause the configurator
to skip all the questions about Sunplus cards. If you say Y,
you will be asked for your specific card in the following
questions.

if NET_VENDOR_SUNPLUS

config SP7021_EMAC
tristate "Sunplus Dual 10M/100M Ethernet devices"
depends on SOC_SP7021 || COMPILE_TEST
select PHYLIB
select COMMON_CLK_SP7021
select RESET_SUNPLUS
select NVMEM_SUNPLUS_OCOTP
help
If you have Sunplus dual 10M/100M Ethernet devices, say Y.
The network device creates two net-device interfaces.
To compile this driver as a module, choose M here. The
module will be called sp7021_emac.

endif # NET_VENDOR_SUNPLUS
6 changes: 6 additions & 0 deletions drivers/net/ethernet/sunplus/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for the Sunplus network device drivers.
#
obj-$(CONFIG_SP7021_EMAC) += sp7021_emac.o
sp7021_emac-objs := spl2sw_driver.o spl2sw_int.o spl2sw_desc.o spl2sw_mac.o spl2sw_mdio.o spl2sw_phy.o
Loading

0 comments on commit a12af6f

Please sign in to comment.