[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fa114b61-afc6-b65a-5848-0e9b9632f618@hauke-m.de>
Date: Sat, 1 Sep 2018 23:44:40 +0200
From: Hauke Mehrtens <hauke@...ke-m.de>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org, andrew@...n.ch,
vivien.didelot@...oirfairelinux.com, f.fainelli@...il.com,
john@...ozen.org, linux-mips@...ux-mips.org, dev@...sin.me,
hauke.mehrtens@...el.com, devicetree@...r.kernel.org
Subject: Re: [PATCH v2 net-next 7/7] net: dsa: Add Lantiq / Intel DSA driver
for vrx200
On 09/01/2018 02:05 PM, Hauke Mehrtens wrote:
> This adds the DSA driver for the GSWIP Switch found in the VRX200 SoC.
> This switch is integrated in the DSL SoC, this SoC uses a GSWIP version
> 2.1, there are other SoCs using different versions of this IP block, but
> this driver was only tested with the version found in the VRX200.
> Currently only the basic features are implemented which will forward all
> packages to the CPU and let the CPU do the forwarding. The hardware also
> support Layer 2 offloading which is not yet implemented in this driver.
>
> The GPHY FW loaded is now done by this driver and not any more by the
> separate driver in drivers/soc/lantiq/gphy.c, I will remove this driver
> is a separate patch. to make use of the GPHY this switch driver is
> needed anyway. Other SoCs have more embedded GPHYs so this driver should
> support a variable number of GPHYs. After the firmware was loaded the
> GPHY can be probed on the MDIO bus and it behaves like an external GPHY,
> without the firmware it can not be probed on the MDIO bus.
>
> Currently this depends on SOC_TYPE_XWAY because the SoC revision
> detection function ltq_soc_type() is used to load the correct GPHY
> firmware on the VRX200 SoCs.
>
> The clock names in the sysctrl.c file have to be changed because the
> clocks are now used by a different driver. This should be cleaned up and
> a real common clock driver should provide the clocks instead.
>
> Signed-off-by: Hauke Mehrtens <hauke@...ke-m.de>
> ---
> MAINTAINERS | 2 +
> arch/mips/lantiq/xway/sysctrl.c | 8 +-
> drivers/net/dsa/Kconfig | 8 +
> drivers/net/dsa/Makefile | 1 +
> drivers/net/dsa/lantiq_gswip.c | 1018 +++++++++++++++++++++++++++++++++++++++
> drivers/net/dsa/lantiq_pce.h | 153 ++++++
> 6 files changed, 1186 insertions(+), 4 deletions(-)
> create mode 100644 drivers/net/dsa/lantiq_gswip.c
> create mode 100644 drivers/net/dsa/lantiq_pce.h
>
.....
> +
> +static int gswip_gphy_fw_list(struct gswip_priv *priv,
> + struct device_node *gphy_fw_list_np)
> +{
> + struct device *dev = priv->dev;
> + struct device_node *gphy_fw_np;
> + const struct of_device_id *match;
> + int err;
> + int i = 0;
> +
> + if (of_device_is_compatible(dev->of_node, "lantiq,xrx200-gphy-fw")) {
> + switch (ltq_soc_type()) {
I just found out that the older revision of the xrx200 SoC uses also an
older GSWIP version, so we do not have to call ltq_soc_type() here, but
can use the GSWIP version register.
xRX200 rev 1.1 uses GSWIP 2.0, xrx200 rev 1.2 uses GSWIP 2.1.
1e10804c: 00000100 on xRX200 rev 1.1
1e10804c: 00000021 on xRX200 rev 1.2
Then I can also remove the compile dependency on the Lantiq arch code.
> + case SOC_TYPE_VR9:
> + priv->gphy_fw_name_cfg = &xrx200a1x_gphy_data;
> + break;
> + case SOC_TYPE_VR9_2:
> + priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;
> + break;
> + }
> + }
> +
.....
> +
> + platform_set_drvdata(pdev, priv);
> +
> + version = gswip_switch_r(priv, GSWIP_VERSION);
> + dev_info(dev, "probed GSWIP version %lx mod %lx\n",
> + (version & GSWIP_VERSION_REV_MASK) >> GSWIP_VERSION_REV_SHIFT,
> + (version & GSWIP_VERSION_MOD_MASK) >> GSWIP_VERSION_MOD_SHIFT);
> + return 0;
> +
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists