[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210526135535.2515123-1-vladimir.oltean@nxp.com>
Date: Wed, 26 May 2021 16:55:21 +0300
From: Vladimir Oltean <olteanv@...il.com>
To: Jakub Kicinski <kuba@...nel.org>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Cc: Florian Fainelli <f.fainelli@...il.com>,
Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Russell King <linux@...linux.org.uk>,
Rob Herring <robh@...nel.org>
Subject: [RFC PATCH v2 linux-next 00/14] Add NXP SJA1110 support to the sja1105 DSA driver
This patch series is sent as RFC and based on linux-next because it
depends on some changes which are in "net" but not in "net-next".
Changes in v2:
- converted nxp,sja1105 DT bindings to YAML
- registered the PCS MDIO bus and forced auto-probing off for all PHY
addresses for this bus
- changed the container node name for the 2 MDIO buses from "mdio" to
"mdios" to avoid matching on the mdio.yaml schema (it's just a
container node, not an MDIO bus)
- fixed an uninitialized "offset" variable usage in
sja1110_pcs_mdio_{read,write}
- using the mdiobus_c45_addr macro instead of open-coding that operation
Reason for reposting so early:
Would like some feedback on the DT bindings for the internal MDIO buses.
Feedback from v1 not addressed:
(Q) Can the Synopsys PCS initialization code be moved into
drivers/net/pcs/xpcs.c?
(A) Yes and no. Initializing the PCS is not sufficient for proper
SGMII/2500base-x operation, one also needs to initialize the
non-Synopsys PMA/PMD, which is accessible through the same
struct mdio_device as the PCS itself.
(Q) No interrupts for the internal PHYs?
(A) In a later patch series (this one is already large), and only in a
reduced functionality mode, where the switch driver registers an
irqchip but it busy polls the interrupt status register. The board I
am working on does not have the switch interrupt pin wired.
Previous cover letter:
The NXP SJA1110 is an automotive Ethernet switch with an embedded Arm
Cortex-M7 microcontroller. The switch has 11 ports (10 external + one
for the DSA-style connection to the microcontroller).
The microcontroller can be disabled and the switch can be controlled
over SPI, a la SJA1105 - this is how this driver handles things.
There are some integrated NXP PHYs (100base-T1 and 100base-TX). Their
initialization is handled by their own PHY drivers, the switch is only
concerned with enabling register accesses to them, by registering two
MDIO buses.
Cc: Russell King <linux@...linux.org.uk>
Cc: Rob Herring <robh@...nel.org>
Vladimir Oltean (14):
net: dsa: sja1105: be compatible with "ethernet-ports" OF node name
net: dsa: sja1105: allow SGMII PCS configuration to be per port
net: dsa: sja1105: the 0x1F0000 SGMII "base address" is actually
MDIO_MMD_VEND2
net: dsa: sja1105: cache the phy-mode port property
net: dsa: sja1105: add a PHY interface type compatibility matrix
net: dsa: sja1105: add a translation table for port speeds
net: dsa: sja1105: always keep RGMII ports in the MAC role
net: dsa: sja1105: some table entries are always present when read
dynamically
dt-bindings: net: dsa: sja1105: convert to YAML schema
dt-bindings: net: dsa: sja1105: add SJA1110 bindings
net: dsa: sja1105: add support for the SJA1110 switch family
net: dsa: sja1105: register the MDIO buses for 100base-T1 and
100base-TX
net: dsa: sja1105: expose the SGMII PCS as an mdio_device
net: dsa: sja1105: add support for the SJA1110 SGMII/2500base-x PCS
.../bindings/net/dsa/nxp,sja1105.yaml | 172 ++++++
.../devicetree/bindings/net/dsa/sja1105.txt | 156 -----
drivers/net/dsa/sja1105/Makefile | 1 +
drivers/net/dsa/sja1105/sja1105.h | 88 ++-
drivers/net/dsa/sja1105/sja1105_clocking.c | 120 +++-
.../net/dsa/sja1105/sja1105_dynamic_config.c | 336 ++++++++++-
.../net/dsa/sja1105/sja1105_dynamic_config.h | 1 +
drivers/net/dsa/sja1105/sja1105_main.c | 518 +++++++++++++----
drivers/net/dsa/sja1105/sja1105_mdio.c | 539 ++++++++++++++++++
drivers/net/dsa/sja1105/sja1105_sgmii.h | 63 +-
drivers/net/dsa/sja1105/sja1105_spi.c | 368 +++++++++++-
.../net/dsa/sja1105/sja1105_static_config.c | 483 ++++++++++++++++
.../net/dsa/sja1105/sja1105_static_config.h | 98 +++-
13 files changed, 2619 insertions(+), 324 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
delete mode 100644 Documentation/devicetree/bindings/net/dsa/sja1105.txt
create mode 100644 drivers/net/dsa/sja1105/sja1105_mdio.c
--
2.25.1
Powered by blists - more mailing lists