linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Add Ethernet support on STM32F429
@ 2016-02-26 10:51 Alexandre TORGUE
  2016-02-26 10:51 ` [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip Alexandre TORGUE
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Alexandre TORGUE @ 2016-02-26 10:51 UTC (permalink / raw)
  To: Maxime Coquelin, Giuseppe Cavallaro, netdev
  Cc: linux-arm-kernel, linux-kernel, devicetree

STM32F429 Chip embeds a Synopsys 3.50a MAC IP.
This series:
 -enhance current stmmac driver to control it (code already
available) and adds basic glue for STM32F429 chip.
 -Enable basic Net config in kernel.

Note that DT patches are not present because STM32 pinctrl code is not
yet avalaible.

Changes since v2:
 -Fix alphabetic order in Kconfig and Makefile.
 -Improve code according to Joachim review.
 -Binding: remove useless entry.

Changes since v1:
 -Fix Kbuild issue in Kconfig.
 -Remove init/exit callbacks. Suspend/Resume and remove driver is no more
driven in stmmac_pltfr but directly in dwmac-stm32 glue driver.
 -Take into account Joachim review.

Regards.

Alexandre.

Alexandre TORGUE (4):
  net: ethernet: dwmac: add Ethernet glue logic for stm32 chip
  Documentation: Bindings: Add STM32 DWMAC glue
  net: ethernet: stmmac: add support of Synopsys 3.50a MAC IP
  ARM: STM32: Enable Ethernet in stm32_defconfig

 .../devicetree/bindings/net/stm32-dwmac.txt        |  40 +++++
 arch/arm/configs/stm32_defconfig                   |   9 +
 drivers/net/ethernet/stmicro/stmmac/Kconfig        |  12 ++
 drivers/net/ethernet/stmicro/stmmac/Makefile       |   1 +
 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c  | 193 +++++++++++++++++++++
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   1 +
 6 files changed, 256 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.txt
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip
  2016-02-26 10:51 [PATCH v3 0/4] Add Ethernet support on STM32F429 Alexandre TORGUE
@ 2016-02-26 10:51 ` Alexandre TORGUE
  2016-02-26 18:08   ` Joachim Eastwood
  2016-02-26 10:51 ` [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue Alexandre TORGUE
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Alexandre TORGUE @ 2016-02-26 10:51 UTC (permalink / raw)
  To: Maxime Coquelin, Giuseppe Cavallaro, netdev
  Cc: linux-arm-kernel, linux-kernel, devicetree

stm324xx family chips support Synopsys MAC 3.510 IP.
This patch adds settings for logical glue logic:
-clocks
-mode selection MII or RMII.

Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>

diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig
index cec147d..235d679 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
+++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
@@ -104,6 +104,18 @@ config DWMAC_STI
 	  device driver. This driver is used on for the STi series
 	  SOCs GMAC ethernet controller.
 
+config DWMAC_STM32
+	tristate "STM32 DWMAC support"
+	default ARCH_STM32
+	depends on OF && HAS_IOMEM
+	select MFD_SYSCON
+	---help---
+	  Support for ethernet controller on STM32 SOCs.
+
+	  This selects STM32 SoC glue layer support for the stmmac
+	  device driver. This driver is used on for the STM32 series
+	  SOCs GMAC ethernet controller.
+
 config DWMAC_SUNXI
 	tristate "Allwinner GMAC support"
 	default ARCH_SUNXI
diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile
index b390161..5f7ff0a 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Makefile
+++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_DWMAC_MESON)	+= dwmac-meson.o
 obj-$(CONFIG_DWMAC_ROCKCHIP)	+= dwmac-rk.o
 obj-$(CONFIG_DWMAC_SOCFPGA)	+= dwmac-socfpga.o
 obj-$(CONFIG_DWMAC_STI)		+= dwmac-sti.o
+obj-$(CONFIG_DWMAC_STM32)	+= dwmac-stm32.o
 obj-$(CONFIG_DWMAC_SUNXI)	+= dwmac-sunxi.o
 obj-$(CONFIG_DWMAC_GENERIC)	+= dwmac-generic.o
 stmmac-platform-objs:= stmmac_platform.o
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
new file mode 100644
index 0000000..036ac90
--- /dev/null
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
@@ -0,0 +1,193 @@
+/*
+ * dwmac-stm32.c - DWMAC Specific Glue layer for STM32 MCU
+ *
+ * Copyright (C) Alexandre Torgue 2015
+ * Author:  Alexandre Torgue <alexandre.torgue@gmail.com>
+ * License terms:  GNU General Public License (GPL), version 2
+ *
+ */
+
+#include <linux/clk.h>
+#include <linux/kernel.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/of_net.h>
+#include <linux/phy.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+#include <linux/stmmac.h>
+
+#include "stmmac_platform.h"
+
+#define MII_PHY_SEL_MASK	BIT(23)
+
+struct stm32_dwmac {
+	struct clk *clk_tx;
+	struct clk *clk_rx;
+	u32 mode_reg;		/* MAC glue-logic mode register */
+	struct regmap *regmap;
+	u32 speed;
+};
+
+static int stm32_dwmac_init(struct plat_stmmacenet_data *plat_dat)
+{
+	struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+	u32 reg = dwmac->mode_reg;
+	u32 val;
+	int ret;
+
+	val = (plat_dat->interface == PHY_INTERFACE_MODE_MII) ? 0 : 1;
+	ret = regmap_update_bits(dwmac->regmap, reg, MII_PHY_SEL_MASK, val);
+	if (ret)
+		return ret;
+
+	ret = clk_prepare_enable(dwmac->clk_tx);
+	if (ret)
+		return ret;
+
+	ret = clk_prepare_enable(dwmac->clk_rx);
+	if (ret)
+		clk_disable_unprepare(dwmac->clk_tx);
+
+	return ret;
+}
+
+static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac)
+{
+	clk_disable_unprepare(dwmac->clk_tx);
+	clk_disable_unprepare(dwmac->clk_rx);
+}
+
+static int stm32_dwmac_parse_data(struct stm32_dwmac *dwmac,
+				  struct device *dev)
+{
+	struct device_node *np = dev->of_node;
+	int err;
+
+	/*  Get TX/RX clocks */
+	dwmac->clk_tx = devm_clk_get(dev, "tx-clk");
+	if (IS_ERR(dwmac->clk_tx)) {
+		dev_warn(dev, "No tx clock provided...\n");
+		dwmac->clk_tx = NULL;
+	}
+	dwmac->clk_rx = devm_clk_get(dev, "rx-clk");
+	if (IS_ERR(dwmac->clk_rx)) {
+		dev_warn(dev, "No rx clock provided...\n");
+		dwmac->clk_rx = NULL;
+	}
+
+	/* Get mode register */
+	dwmac->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscon");
+	if (IS_ERR(dwmac->regmap))
+		return PTR_ERR(dwmac->regmap);
+
+	err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->mode_reg);
+	if (err)
+		dev_err(dev, "Can't get sysconfig mode offset (%d)\n", err);
+
+	return err;
+}
+
+static int stm32_dwmac_probe(struct platform_device *pdev)
+{
+	struct plat_stmmacenet_data *plat_dat;
+	struct stmmac_resources stmmac_res;
+	struct stm32_dwmac *dwmac;
+	int ret;
+
+	ret = stmmac_get_platform_resources(pdev, &stmmac_res);
+	if (ret)
+		return ret;
+
+	plat_dat = stmmac_probe_config_dt(pdev, &stmmac_res.mac);
+	if (IS_ERR(plat_dat))
+		return PTR_ERR(plat_dat);
+
+	dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL);
+	if (!dwmac)
+		return -ENOMEM;
+
+	ret = stm32_dwmac_parse_data(dwmac, &pdev->dev);
+	if (ret) {
+		dev_err(&pdev->dev, "Unable to parse OF data\n");
+		return ret;
+	}
+
+	plat_dat->bsp_priv = dwmac;
+
+	ret = stm32_dwmac_init(plat_dat);
+	if (ret)
+		return ret;
+
+	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
+	if (ret)
+		stm32_dwmac_clk_disable(dwmac);
+
+	return ret;
+}
+
+static int stm32_dwmac_remove(struct platform_device *pdev)
+{
+	struct net_device *ndev = platform_get_drvdata(pdev);
+	struct stmmac_priv *priv = netdev_priv(ndev);
+	int ret = stmmac_dvr_remove(ndev);
+
+	stm32_dwmac_clk_disable(priv->plat->bsp_priv);
+
+	return ret;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int stm32_dwmac_suspend(struct device *dev)
+{
+	struct net_device *ndev = dev_get_drvdata(dev);
+	struct stmmac_priv *priv = netdev_priv(ndev);
+	int ret;
+
+	ret = stmmac_suspend(ndev);
+	stm32_dwmac_clk_disable(priv->plat->bsp_priv);
+
+	return ret;
+}
+
+static int stm32_dwmac_resume(struct device *dev)
+{
+	struct net_device *ndev = dev_get_drvdata(dev);
+	struct stmmac_priv *priv = netdev_priv(ndev);
+	int ret;
+
+	ret = stm32_dwmac_init(priv->plat);
+	if (ret)
+		return ret;
+
+	ret = stmmac_resume(ndev);
+
+	return ret;
+}
+#endif /* CONFIG_PM_SLEEP */
+
+SIMPLE_DEV_PM_OPS(stm32_dwmac_pm_ops, stm32_dwmac_suspend, stm32_dwmac_resume);
+
+static const struct of_device_id stm32_dwmac_match[] = {
+	{ .compatible = "st,stm32-dwmac"},
+	{ }
+};
+MODULE_DEVICE_TABLE(of, stm32_dwmac_match);
+
+static struct platform_driver stm32_dwmac_driver = {
+	.probe  = stm32_dwmac_probe,
+	.remove = stm32_dwmac_remove,
+	.driver = {
+		.name           = "stm32-dwmac",
+		.pm		= &stm32_dwmac_pm_ops,
+		.of_match_table = stm32_dwmac_match,
+	},
+};
+module_platform_driver(stm32_dwmac_driver);
+
+MODULE_AUTHOR("Alexandre Torgue <alexandre.torgue@gmail.com>");
+MODULE_DESCRIPTION("STMicroelectronics MCU DWMAC Specific Glue layer");
+MODULE_LICENSE("GPL v2");
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue
  2016-02-26 10:51 [PATCH v3 0/4] Add Ethernet support on STM32F429 Alexandre TORGUE
  2016-02-26 10:51 ` [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip Alexandre TORGUE
@ 2016-02-26 10:51 ` Alexandre TORGUE
  2016-02-26 17:57   ` Joachim Eastwood
  2016-03-02 18:33   ` Rob Herring
  2016-02-26 10:51 ` [PATCH v3 3/4] net: ethernet: stmmac: add support of Synopsys 3.50a MAC IP Alexandre TORGUE
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: Alexandre TORGUE @ 2016-02-26 10:51 UTC (permalink / raw)
  To: Maxime Coquelin, Giuseppe Cavallaro, netdev
  Cc: linux-arm-kernel, linux-kernel, devicetree

Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>

diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
new file mode 100644
index 0000000..67fceda
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
@@ -0,0 +1,40 @@
+STMicroelectronics STM32 / MCU DWMAC glue layer controller
+
+This file documents platform glue layer for stmmac.
+Please see stmmac.txt for the other unchanged properties.
+
+The device node has following properties.
+
+Required properties:
+- compatible:  Should be "st,stm32-dwmac" to select glue, and
+	       "snps,dwmac-3.50a" to select IP vesrion.
+- clocks: Should contain the GMAC main clock, and tx clock
+- compatible:  Should be "st,stm32-dwmac" to select glue and
+	       "snps,dwmac-3.50a" to select IP version.
+- clocks: Should contain the MAC main clock
+- clock-names: Should contain the clock names "stmmaceth".
+- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
+	      encompases the glue register, and the offset of the control register.
+
+Optional properties:
+- clocks: Could contain:
+	- the tx clock,
+	- the rx clock
+- clock-names: Could contain the clock names "tx-clk", "rx-clk"
+
+Example:
+
+		ethernet0: dwmac@40028000 {
+			compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
+			status = "disabled";
+			reg = <0x40028000 0x8000>;
+			reg-names = "stmmaceth";
+			interrupts = <0 61 0>, <0 62 0>;
+			interrupt-names = "macirq", "eth_wake_irq";
+			clock-names = "stmmaceth", "tx-clk", "rx-clk";
+			clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
+			st,syscon = <&syscfg 0x4>;
+			snps,pbl = <8>;
+			snps,mixed-burst;
+			dma-ranges;
+		};
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 3/4] net: ethernet: stmmac: add support of Synopsys 3.50a MAC IP
  2016-02-26 10:51 [PATCH v3 0/4] Add Ethernet support on STM32F429 Alexandre TORGUE
  2016-02-26 10:51 ` [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip Alexandre TORGUE
  2016-02-26 10:51 ` [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue Alexandre TORGUE
@ 2016-02-26 10:51 ` Alexandre TORGUE
  2016-02-26 10:51 ` [PATCH v3 4/4] ARM: STM32: Enable Ethernet in stm32_defconfig Alexandre TORGUE
  2016-02-29  9:36 ` [PATCH v3 0/4] Add Ethernet support on STM32F429 Giuseppe CAVALLARO
  4 siblings, 0 replies; 11+ messages in thread
From: Alexandre TORGUE @ 2016-02-26 10:51 UTC (permalink / raw)
  To: Maxime Coquelin, Giuseppe Cavallaro, netdev
  Cc: linux-arm-kernel, linux-kernel, devicetree

Adds support of Synopsys 3.50a MAC IP in stmmac driver.

Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index 6a52fa1..6cca626 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -178,6 +178,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
 	 * once needed on other platforms.
 	 */
 	if (of_device_is_compatible(np, "st,spear600-gmac") ||
+		of_device_is_compatible(np, "snps,dwmac-3.50a") ||
 		of_device_is_compatible(np, "snps,dwmac-3.70a") ||
 		of_device_is_compatible(np, "snps,dwmac")) {
 		/* Note that the max-frame-size parameter as defined in the
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 4/4] ARM: STM32: Enable Ethernet in stm32_defconfig
  2016-02-26 10:51 [PATCH v3 0/4] Add Ethernet support on STM32F429 Alexandre TORGUE
                   ` (2 preceding siblings ...)
  2016-02-26 10:51 ` [PATCH v3 3/4] net: ethernet: stmmac: add support of Synopsys 3.50a MAC IP Alexandre TORGUE
@ 2016-02-26 10:51 ` Alexandre TORGUE
  2016-03-01 17:36   ` Maxime Coquelin
  2016-02-29  9:36 ` [PATCH v3 0/4] Add Ethernet support on STM32F429 Giuseppe CAVALLARO
  4 siblings, 1 reply; 11+ messages in thread
From: Alexandre TORGUE @ 2016-02-26 10:51 UTC (permalink / raw)
  To: Maxime Coquelin, Giuseppe Cavallaro, netdev
  Cc: linux-arm-kernel, linux-kernel, devicetree

Enable basic Ethernet support (IPV4) for stm32 defconfig.

Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>

diff --git a/arch/arm/configs/stm32_defconfig b/arch/arm/configs/stm32_defconfig
index ec52505..8b8abe0 100644
--- a/arch/arm/configs/stm32_defconfig
+++ b/arch/arm/configs/stm32_defconfig
@@ -33,11 +33,20 @@ CONFIG_XIP_PHYS_ADDR=0x08008000
 CONFIG_BINFMT_FLAT=y
 CONFIG_BINFMT_SHARED_FLAT=y
 # CONFIG_COREDUMP is not set
+CONFIG_NET=y
+CONFIG_INET=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_IPV6 is not set
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_FW_LOADER is not set
 # CONFIG_BLK_DEV is not set
 CONFIG_EEPROM_93CX6=y
+CONFIG_NETDEVICES=y
+CONFIG_STMMAC_ETH=y
+# CONFIG_WLAN is not set
 # CONFIG_INPUT is not set
 # CONFIG_SERIO is not set
 # CONFIG_VT is not set
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue
  2016-02-26 10:51 ` [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue Alexandre TORGUE
@ 2016-02-26 17:57   ` Joachim Eastwood
  2016-03-02 18:33   ` Rob Herring
  1 sibling, 0 replies; 11+ messages in thread
From: Joachim Eastwood @ 2016-02-26 17:57 UTC (permalink / raw)
  To: Alexandre TORGUE
  Cc: Maxime Coquelin, Giuseppe Cavallaro, netdev, devicetree,
	linux-kernel, linux-arm-kernel

Hi Alexandre,

On 26 February 2016 at 11:51, Alexandre TORGUE
<alexandre.torgue@gmail.com> wrote:
> Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>
>
> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
> new file mode 100644
> index 0000000..67fceda
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
> @@ -0,0 +1,40 @@
> +STMicroelectronics STM32 / MCU DWMAC glue layer controller
> +
> +This file documents platform glue layer for stmmac.
> +Please see stmmac.txt for the other unchanged properties.
> +
> +The device node has following properties.
> +
> +Required properties:
> +- compatible:  Should be "st,stm32-dwmac" to select glue, and
> +              "snps,dwmac-3.50a" to select IP vesrion.
> +- clocks: Should contain the GMAC main clock, and tx clock
> +- compatible:  Should be "st,stm32-dwmac" to select glue and
> +              "snps,dwmac-3.50a" to select IP version.
> +- clocks: Should contain the MAC main clock
> +- clock-names: Should contain the clock names "stmmaceth".
> +- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
> +             encompases the glue register, and the offset of the control register.
> +
> +Optional properties:
> +- clocks: Could contain:
> +       - the tx clock,
> +       - the rx clock
> +- clock-names: Could contain the clock names "tx-clk", "rx-clk"
> +
> +Example:
> +
> +               ethernet0: dwmac@40028000 {
> +                       compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
> +                       status = "disabled";
> +                       reg = <0x40028000 0x8000>;
> +                       reg-names = "stmmaceth";
> +                       interrupts = <0 61 0>, <0 62 0>;
> +                       interrupt-names = "macirq", "eth_wake_irq";
> +                       clock-names = "stmmaceth", "tx-clk", "rx-clk";
> +                       clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
> +                       st,syscon = <&syscfg 0x4>;
> +                       snps,pbl = <8>;
> +                       snps,mixed-burst;
> +                       dma-ranges;
> +               };

Looks just like any other dwmac-driver binding so:

Acked-by: Joachim Eastwood <manabian@gmail.com>


regards,
Joachim Eastwood

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip
  2016-02-26 10:51 ` [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip Alexandre TORGUE
@ 2016-02-26 18:08   ` Joachim Eastwood
  0 siblings, 0 replies; 11+ messages in thread
From: Joachim Eastwood @ 2016-02-26 18:08 UTC (permalink / raw)
  To: Alexandre TORGUE
  Cc: Maxime Coquelin, Giuseppe Cavallaro, netdev, linux-arm-kernel,
	linux-kernel, devicetree

Hi Alexandre,

When people comment on your patch please CC them on the next version.

On 26 February 2016 at 11:51, Alexandre TORGUE
<alexandre.torgue@gmail.com> wrote:
> stm324xx family chips support Synopsys MAC 3.510 IP.
> This patch adds settings for logical glue logic:
> -clocks
> -mode selection MII or RMII.
>
> Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>

Driver looks good now, thanks.

Reviewed-by: Joachim Eastwood <manabian@gmail.com>


regards,
Joachim Eastwood

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 0/4] Add Ethernet support on STM32F429
  2016-02-26 10:51 [PATCH v3 0/4] Add Ethernet support on STM32F429 Alexandre TORGUE
                   ` (3 preceding siblings ...)
  2016-02-26 10:51 ` [PATCH v3 4/4] ARM: STM32: Enable Ethernet in stm32_defconfig Alexandre TORGUE
@ 2016-02-29  9:36 ` Giuseppe CAVALLARO
  4 siblings, 0 replies; 11+ messages in thread
From: Giuseppe CAVALLARO @ 2016-02-29  9:36 UTC (permalink / raw)
  To: Alexandre TORGUE, Maxime Coquelin, netdev
  Cc: linux-arm-kernel, linux-kernel, devicetree

On 2/26/2016 11:51 AM, Alexandre TORGUE wrote:
> STM32F429 Chip embeds a Synopsys 3.50a MAC IP.
> This series:
>   -enhance current stmmac driver to control it (code already
> available) and adds basic glue for STM32F429 chip.
>   -Enable basic Net config in kernel.
>
> Note that DT patches are not present because STM32 pinctrl code is not
> yet avalaible.
>
> Changes since v2:
>   -Fix alphabetic order in Kconfig and Makefile.
>   -Improve code according to Joachim review.
>   -Binding: remove useless entry.
>
> Changes since v1:
>   -Fix Kbuild issue in Kconfig.
>   -Remove init/exit callbacks. Suspend/Resume and remove driver is no more
> driven in stmmac_pltfr but directly in dwmac-stm32 glue driver.
>   -Take into account Joachim review.
>
> Regards.
>
> Alexandre.

thanks Alex, for the series please consider my:

Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>


>
> Alexandre TORGUE (4):
>    net: ethernet: dwmac: add Ethernet glue logic for stm32 chip
>    Documentation: Bindings: Add STM32 DWMAC glue
>    net: ethernet: stmmac: add support of Synopsys 3.50a MAC IP
>    ARM: STM32: Enable Ethernet in stm32_defconfig
>
>   .../devicetree/bindings/net/stm32-dwmac.txt        |  40 +++++
>   arch/arm/configs/stm32_defconfig                   |   9 +
>   drivers/net/ethernet/stmicro/stmmac/Kconfig        |  12 ++
>   drivers/net/ethernet/stmicro/stmmac/Makefile       |   1 +
>   drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c  | 193 +++++++++++++++++++++
>   .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   1 +
>   6 files changed, 256 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.txt
>   create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 4/4] ARM: STM32: Enable Ethernet in stm32_defconfig
  2016-02-26 10:51 ` [PATCH v3 4/4] ARM: STM32: Enable Ethernet in stm32_defconfig Alexandre TORGUE
@ 2016-03-01 17:36   ` Maxime Coquelin
  0 siblings, 0 replies; 11+ messages in thread
From: Maxime Coquelin @ 2016-03-01 17:36 UTC (permalink / raw)
  To: Alexandre TORGUE, Arnd Bergmann
  Cc: Giuseppe Cavallaro, netdev, linux-arm-kernel, linux-kernel, devicetree

Hi Alex, Arnd,

On 02/26/2016 11:51 AM, Alexandre TORGUE wrote:
> Enable basic Ethernet support (IPV4) for stm32 defconfig.
>
> Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>
>
> diff --git a/arch/arm/configs/stm32_defconfig b/arch/arm/configs/stm32_defconfig
> index ec52505..8b8abe0 100644
> --- a/arch/arm/configs/stm32_defconfig
> +++ b/arch/arm/configs/stm32_defconfig
> @@ -33,11 +33,20 @@ CONFIG_XIP_PHYS_ADDR=0x08008000
>   CONFIG_BINFMT_FLAT=y
>   CONFIG_BINFMT_SHARED_FLAT=y
>   # CONFIG_COREDUMP is not set
> +CONFIG_NET=y
> +CONFIG_INET=y
> +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
> +# CONFIG_INET_XFRM_MODE_TUNNEL is not set
> +# CONFIG_INET_XFRM_MODE_BEET is not set
> +# CONFIG_IPV6 is not set
>   CONFIG_DEVTMPFS=y
>   CONFIG_DEVTMPFS_MOUNT=y
>   # CONFIG_FW_LOADER is not set
>   # CONFIG_BLK_DEV is not set
>   CONFIG_EEPROM_93CX6=y
> +CONFIG_NETDEVICES=y
> +CONFIG_STMMAC_ETH=y
> +# CONFIG_WLAN is not set
>   # CONFIG_INPUT is not set
>   # CONFIG_SERIO is not set
>   # CONFIG_VT is not set
>

The patch looks good, but I'm not sure I should apply it.
Indeed, not all the stm32 boards have Ethernet interface, and stm32 
internal flash size is rather limited (2MB).
Note that your glue layer can be compiled with COMPILE_TEST, so its 
build will be covered anyway.

Arnd, do you think we could use Kconfig fragments to enable features 
like USB, Ethernet, MTD, etc...?
Maybe we could have a subdirectory in arch/arm/configs where these stm32 
specifics fragments could leave?

For example, we could have:
arch/arm/configs/stm32/eth.config
arch/arm/configs/stm32/usb.config

For configuring the Discovery board we would use:
make stm32_defconfig stm32/usb.config

For the Eval board, we cwould use:
make stm32_defconfig eth.config

It would make easy to be able to boot every boards without multiplying 
the defconfigs.

Regards,
Maxime

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue
  2016-02-26 10:51 ` [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue Alexandre TORGUE
  2016-02-26 17:57   ` Joachim Eastwood
@ 2016-03-02 18:33   ` Rob Herring
  2016-03-04  9:04     ` Alexandre Torgue
  1 sibling, 1 reply; 11+ messages in thread
From: Rob Herring @ 2016-03-02 18:33 UTC (permalink / raw)
  To: Alexandre TORGUE
  Cc: Maxime Coquelin, Giuseppe Cavallaro, netdev, linux-arm-kernel,
	linux-kernel, devicetree

On Fri, Feb 26, 2016 at 11:51:50AM +0100, Alexandre TORGUE wrote:
> Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>
> 
> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
> new file mode 100644
> index 0000000..67fceda
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
> @@ -0,0 +1,40 @@
> +STMicroelectronics STM32 / MCU DWMAC glue layer controller
> +
> +This file documents platform glue layer for stmmac.
> +Please see stmmac.txt for the other unchanged properties.
> +
> +The device node has following properties.
> +
> +Required properties:
> +- compatible:  Should be "st,stm32-dwmac" to select glue, and
> +	       "snps,dwmac-3.50a" to select IP vesrion.
> +- clocks: Should contain the GMAC main clock, and tx clock
> +- compatible:  Should be "st,stm32-dwmac" to select glue and
> +	       "snps,dwmac-3.50a" to select IP version.
> +- clocks: Should contain the MAC main clock
> +- clock-names: Should contain the clock names "stmmaceth".
> +- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
> +	      encompases the glue register, and the offset of the control register.
> +
> +Optional properties:
> +- clocks: Could contain:
> +	- the tx clock,
> +	- the rx clock
> +- clock-names: Could contain the clock names "tx-clk", "rx-clk"

Either the IP block has 3 clocks or it has 1. If you have a case where 1 
clock feeds all 3 inputs, then list the clock 3 times.

Rob

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue
  2016-03-02 18:33   ` Rob Herring
@ 2016-03-04  9:04     ` Alexandre Torgue
  0 siblings, 0 replies; 11+ messages in thread
From: Alexandre Torgue @ 2016-03-04  9:04 UTC (permalink / raw)
  To: Rob Herring
  Cc: Maxime Coquelin, Giuseppe Cavallaro, netdev, linux-arm-kernel,
	linux-kernel, devicetree

Hi Rob,

2016-03-02 19:33 GMT+01:00 Rob Herring <robh@kernel.org>:
> On Fri, Feb 26, 2016 at 11:51:50AM +0100, Alexandre TORGUE wrote:
>> Signed-off-by: Alexandre TORGUE <alexandre.torgue@gmail.com>
>>
>> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
>> new file mode 100644
>> index 0000000..67fceda
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
>> @@ -0,0 +1,40 @@
>> +STMicroelectronics STM32 / MCU DWMAC glue layer controller
>> +
>> +This file documents platform glue layer for stmmac.
>> +Please see stmmac.txt for the other unchanged properties.
>> +
>> +The device node has following properties.
>> +
>> +Required properties:
>> +- compatible:  Should be "st,stm32-dwmac" to select glue, and
>> +            "snps,dwmac-3.50a" to select IP vesrion.
>> +- clocks: Should contain the GMAC main clock, and tx clock
>> +- compatible:  Should be "st,stm32-dwmac" to select glue and
>> +            "snps,dwmac-3.50a" to select IP version.
>> +- clocks: Should contain the MAC main clock
>> +- clock-names: Should contain the clock names "stmmaceth".
>> +- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
>> +           encompases the glue register, and the offset of the control register.
>> +
>> +Optional properties:
>> +- clocks: Could contain:
>> +     - the tx clock,
>> +     - the rx clock
>> +- clock-names: Could contain the clock names "tx-clk", "rx-clk"
>
> Either the IP block has 3 clocks or it has 1. If you have a case where 1
> clock feeds all 3 inputs, then list the clock 3 times.

I agree. I will move rx/tx clock to required properties and then send a v4.

Regards.

Alexandre
>
> Rob

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-03-04  9:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-26 10:51 [PATCH v3 0/4] Add Ethernet support on STM32F429 Alexandre TORGUE
2016-02-26 10:51 ` [PATCH v3 1/4] net: ethernet: dwmac: add Ethernet glue logic for stm32 chip Alexandre TORGUE
2016-02-26 18:08   ` Joachim Eastwood
2016-02-26 10:51 ` [PATCH v3 2/4] Documentation: Bindings: Add STM32 DWMAC glue Alexandre TORGUE
2016-02-26 17:57   ` Joachim Eastwood
2016-03-02 18:33   ` Rob Herring
2016-03-04  9:04     ` Alexandre Torgue
2016-02-26 10:51 ` [PATCH v3 3/4] net: ethernet: stmmac: add support of Synopsys 3.50a MAC IP Alexandre TORGUE
2016-02-26 10:51 ` [PATCH v3 4/4] ARM: STM32: Enable Ethernet in stm32_defconfig Alexandre TORGUE
2016-03-01 17:36   ` Maxime Coquelin
2016-02-29  9:36 ` [PATCH v3 0/4] Add Ethernet support on STM32F429 Giuseppe CAVALLARO

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).