Skip to content

Commit

Permalink
Merge branch 'mse102x-support'
Browse files Browse the repository at this point in the history
Stefan Wahren says:

====================
add Vertexcom MSE102x support

This patch series adds support for the Vertexcom MSE102x Homeplug GreenPHY
chips [1]. They can be connected either via RGMII, RMII or SPI to a host CPU.
These patches handles only the last one, with an Ethernet over SPI protocol
driver.

The code has been tested only on Raspberry Pi boards, but should work
on other platforms.

Changes in V3:
- drop IF_PORT_HOMEPLUG again, since it's actually not used

Changes in V2:
- improve lock handling for RX & TX path
- add new patch to introduce IF_PORT_HOMEPLUG as suggested by Andrew Lunn
- address all the comments by Jakub Kicinski, Andrew Lunn, Kernel test robot

[1] - http://www.vertexcom.com/p_homeplug_plc_en.html
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Dec 13, 2021
2 parents 2106be4 + 2f207cb commit ed6fc70
Show file tree
Hide file tree
Showing 7 changed files with 875 additions and 0 deletions.
71 changes: 71 additions & 0 deletions Documentation/devicetree/bindings/net/vertexcom-mse102x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/net/vertexcom-mse102x.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: The Vertexcom MSE102x (SPI) Device Tree Bindings

maintainers:
- Stefan Wahren <stefan.wahren@in-tech.com>

description:
Vertexcom's MSE102x are a family of HomePlug GreenPHY chips.
They can be connected either via RGMII, RMII or SPI to a host CPU.

In order to use a MSE102x chip as SPI device, it must be defined as
a child of an SPI master device in the device tree.

More information can be found at
http://www.vertexcom.com/doc/MSE1022%20Product%20Brief.pdf

allOf:
- $ref: ethernet-controller.yaml#

properties:
compatible:
enum:
- vertexcom,mse1021
- vertexcom,mse1022

reg:
maxItems: 1

interrupts:
maxItems: 1

spi-cpha: true

spi-cpol: true

spi-max-frequency:
minimum: 6000000
maximum: 7142857

required:
- compatible
- reg
- interrupts
- spi-cpha
- spi-cpol
- spi-max-frequency

additionalProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
spi0 {
#address-cells = <1>;
#size-cells = <0>;
ethernet@0 {
compatible = "vertexcom,mse1021";
reg = <0>;
interrupt-parent = <&gpio>;
interrupts = <23 IRQ_TYPE_EDGE_RISING>;
spi-cpha;
spi-cpol;
spi-max-frequency = <7142857>;
};
};
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1274,6 +1274,8 @@ patternProperties:
description: Variscite Ltd.
"^vdl,.*":
description: Van der Laan b.v.
"^vertexcom,.*":
description: Vertexcom Technologies, Inc.
"^via,.*":
description: VIA Technologies, Inc.
"^videostrong,.*":
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ source "drivers/net/ethernet/tehuti/Kconfig"
source "drivers/net/ethernet/ti/Kconfig"
source "drivers/net/ethernet/toshiba/Kconfig"
source "drivers/net/ethernet/tundra/Kconfig"
source "drivers/net/ethernet/vertexcom/Kconfig"
source "drivers/net/ethernet/via/Kconfig"
source "drivers/net/ethernet/wiznet/Kconfig"
source "drivers/net/ethernet/xilinx/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 @@ -93,6 +93,7 @@ obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/
obj-$(CONFIG_NET_VENDOR_TI) += ti/
obj-$(CONFIG_NET_VENDOR_TOSHIBA) += toshiba/
obj-$(CONFIG_NET_VENDOR_TUNDRA) += tundra/
obj-$(CONFIG_NET_VENDOR_VERTEXCOM) += vertexcom/
obj-$(CONFIG_NET_VENDOR_VIA) += via/
obj-$(CONFIG_NET_VENDOR_WIZNET) += wiznet/
obj-$(CONFIG_NET_VENDOR_XILINX) += xilinx/
Expand Down
25 changes: 25 additions & 0 deletions drivers/net/ethernet/vertexcom/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Vertexcom network device configuration
#

config NET_VENDOR_VERTEXCOM
bool "Vertexcom devices"
default y
help
If you have a network (Ethernet) card belonging to this class, say Y.

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 Vertexcom cards. If you say Y, you will be asked
for your specific card in the following questions.

if NET_VENDOR_VERTEXCOM

config MSE102X
tristate "Vertexcom MSE102x SPI"
depends on SPI
help
SPI driver for Vertexcom MSE102x SPI attached network chip.

endif # NET_VENDOR_VERTEXCOM
6 changes: 6 additions & 0 deletions drivers/net/ethernet/vertexcom/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for the Vertexcom network device drivers.
#

obj-$(CONFIG_MSE102X) += mse102x.o
Loading

0 comments on commit ed6fc70

Please sign in to comment.