* [PATCH 1/3] net: stmmac: improve binding and fix build
2014-03-25 23:34 [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc dinguyen at altera.com
@ 2014-03-25 23:34 ` dinguyen at altera.com
2014-03-25 23:34 ` [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac dinguyen at altera.com
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: dinguyen at altera.com @ 2014-03-25 23:34 UTC (permalink / raw)
To: linux-arm-kernel
From: Dinh Nguyen <dinguyen@altera.com>
The new stmmac front-end for socfpga caused build failures
for modular drivers, e.g. 'make allmodconfig', which prompted
me to look closer into it. I found that both the DT binding
and the implementation of the driver are rather nonstandard
and do things very different from the other SoC specific glue
drivers for stmmac.
This puts things back in order, hopefully fixing all the
important issues:
* Added a new DWMAC_SOCFPGA Kconfig symbol to control
compilation of this driver
* Removed code related to scanning the DT nodes that
are no longer there.
* Replaced platform_driver and module stuff with call from
main stmmac driver.
* Removed bogus of_machine_is_compatible("altr,socfpga-vt"))
check that should be handled through separate compatible
properties of the dwmac node itself.
This aligns the socfpga stmmac front-end to the sunxi and sti platforms.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
---
drivers/net/ethernet/stmicro/stmmac/Kconfig | 10 +++
drivers/net/ethernet/stmicro/stmmac/Makefile | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 73 +++-----------------
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 +
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 +
5 files changed, 24 insertions(+), 65 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig
index f2d7c70..f8d5112 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
+++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
@@ -26,6 +26,16 @@ config STMMAC_PLATFORM
If unsure, say N.
+config DWMAC_SOCFPGA
+ bool "SOCFPGA dwmac support"
+ depends on STMMAC_PLATFORM && MFD_SYSCON && (ARCH_SOCFPGA || COMPILE_TEST)
+ help
+ Support for ethernet controller on Altera SOCFPGA
+
+ This selects the Altera SOCFGA SoC glue layer support
+ for the stmmac device driver. This driver is used for
+ arria5 and cyclone5 FPGA SoCs.
+
config DWMAC_SUNXI
bool "Allwinner GMAC support"
depends on STMMAC_PLATFORM && ARCH_SUNXI
diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile
index fd5e48d..18695eb 100644
--- a/drivers/net/ethernet/stmicro/stmmac/Makefile
+++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
@@ -1,9 +1,9 @@
obj-$(CONFIG_STMMAC_ETH) += stmmac.o
-stmmac-$(CONFIG_ARCH_SOCFPGA) += dwmac-socfpga.o
stmmac-$(CONFIG_STMMAC_PLATFORM) += stmmac_platform.o
stmmac-$(CONFIG_STMMAC_PCI) += stmmac_pci.o
stmmac-$(CONFIG_DWMAC_SUNXI) += dwmac-sunxi.o
stmmac-$(CONFIG_DWMAC_STI) += dwmac-sti.o
+stmmac-$(CONFIG_DWMAC_SOCFPGA) += dwmac-socfpga.o
stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o \
chain_mode.o dwmac_lib.o dwmac1000_core.o dwmac1000_dma.o \
dwmac100_core.o dwmac100_dma.o enh_desc.o norm_desc.o \
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
index c7f034b..f27336c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
@@ -40,30 +40,16 @@ struct socfpga_dwmac {
u32 reg_offset;
struct device *dev;
struct regmap *sys_mgr_base_addr;
- struct device_node *dwmac_np;
};
static int socfpga_dwmac_parse_data(struct socfpga_dwmac *dwmac, struct device *dev)
{
struct device_node *np = dev->of_node;
- struct device_node *stmmac_np;
struct regmap *sys_mgr_base_addr;
u32 reg_offset;
int ret;
- stmmac_np = of_get_next_available_child(np, NULL);
- if (!stmmac_np) {
- dev_info(dev, "No dwmac node found\n");
- return -EINVAL;
- }
-
- if (!of_device_is_compatible(stmmac_np, "snps,dwmac")) {
- dev_info(dev, "dwmac node isn't compatible with snps,dwmac\n");
- return -EINVAL;
- }
-
- dwmac->interface = of_get_phy_mode(stmmac_np);
- of_node_put(stmmac_np);
+ dwmac->interface = of_get_phy_mode(np);
sys_mgr_base_addr = syscon_regmap_lookup_by_phandle(np, "altr,sysmgr-syscon");
if (IS_ERR(sys_mgr_base_addr)) {
@@ -79,7 +65,6 @@ static int socfpga_dwmac_parse_data(struct socfpga_dwmac *dwmac, struct device *
dwmac->reg_offset = reg_offset;
dwmac->sys_mgr_base_addr = sys_mgr_base_addr;
- dwmac->dwmac_np = stmmac_np;
dwmac->dev = dev;
return 0;
@@ -92,9 +77,6 @@ static int socfpga_dwmac_setup(struct socfpga_dwmac *dwmac)
u32 reg_offset = dwmac->reg_offset;
u32 ctrl, val, shift = 0;
- if (of_machine_is_compatible("altr,socfpga-vt"))
- return 0;
-
switch (phymode) {
case PHY_INTERFACE_MODE_RGMII:
val = SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII;
@@ -116,68 +98,31 @@ static int socfpga_dwmac_setup(struct socfpga_dwmac *dwmac)
return 0;
}
-static int socfpga_dwmac_probe(struct platform_device *pdev)
+static void *socfpga_dwmac_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- struct device_node *node = dev->of_node;
- int ret = -ENOMEM;
+ int ret;
struct socfpga_dwmac *dwmac;
dwmac = devm_kzalloc(dev, sizeof(*dwmac), GFP_KERNEL);
if (!dwmac)
- return -ENOMEM;
+ return ERR_PTR(-ENOMEM);
ret = socfpga_dwmac_parse_data(dwmac, dev);
if (ret) {
dev_err(dev, "Unable to parse OF data\n");
- return ret;
+ return ERR_PTR(ret);
}
ret = socfpga_dwmac_setup(dwmac);
if (ret) {
dev_err(dev, "couldn't setup SoC glue (%d)\n", ret);
- return ret;
- }
-
- if (node) {
- ret = of_platform_populate(node, NULL, NULL, dev);
- if (ret) {
- dev_err(dev, "failed to add dwmac core\n");
- return ret;
- }
- } else {
- dev_err(dev, "no device node, failed to add dwmac core\n");
- return -ENODEV;
+ return ERR_PTR(ret);
}
- platform_set_drvdata(pdev, dwmac);
-
- return 0;
+ return dwmac;
}
-static int socfpga_dwmac_remove(struct platform_device *pdev)
-{
- return 0;
-}
-
-static const struct of_device_id socfpga_dwmac_match[] = {
- { .compatible = "altr,socfpga-stmmac" },
- {},
-};
-MODULE_DEVICE_TABLE(of, socfpga_dwmac_match);
-
-static struct platform_driver socfpga_dwmac_driver = {
- .probe = socfpga_dwmac_probe,
- .remove = socfpga_dwmac_remove,
- .driver = {
- .name = "socfpga-dwmac",
- .of_match_table = of_match_ptr(socfpga_dwmac_match),
- },
+const struct stmmac_of_data socfpga_gmac_data = {
+ .setup = socfpga_dwmac_probe,
};
-
-module_platform_driver(socfpga_dwmac_driver);
-
-MODULE_ALIAS("platform:socfpga-dwmac");
-MODULE_AUTHOR("Dinh Nguyen <dinguyen@altera.com>");
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Altera SOCFPGA DWMAC Glue Layer");
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index f9e60d7..cd2f6a1 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -136,6 +136,7 @@ extern const struct stmmac_of_data sun7i_gmac_data;
#ifdef CONFIG_DWMAC_STI
extern const struct stmmac_of_data sti_gmac_data;
#endif
+extern const struct stmmac_of_data socfpga_gmac_data;
extern struct platform_driver stmmac_pltfr_driver;
static inline int stmmac_register_platform(void)
{
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index c61bc72b..8894697 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -38,6 +38,9 @@ static const struct of_device_id stmmac_dt_ids[] = {
{ .compatible = "st,stih416-dwmac", .data = &sti_gmac_data},
{ .compatible = "st,stih127-dwmac", .data = &sti_gmac_data},
#endif
+#ifdef CONFIG_DWMAC_SOCFPGA
+ { .compatible = "altr,socfpga-stmmac", .data = &socfpga_gmac_data },
+#endif
/* SoC specific glue layers should come before generic bindings */
{ .compatible = "st,spear600-gmac"},
{ .compatible = "snps,dwmac-3.610"},
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac
2014-03-25 23:34 [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc dinguyen at altera.com
2014-03-25 23:34 ` [PATCH 1/3] net: stmmac: improve binding and fix build dinguyen at altera.com
@ 2014-03-25 23:34 ` dinguyen at altera.com
2014-03-26 22:12 ` Gerhard Sittig
2014-03-25 23:34 ` [PATCH 3/3] dts: documentation: Update documentation for the stmmac ethernet controller dinguyen at altera.com
2014-03-26 21:54 ` [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc Arnd Bergmann
3 siblings, 1 reply; 9+ messages in thread
From: dinguyen at altera.com @ 2014-03-25 23:34 UTC (permalink / raw)
To: linux-arm-kernel
From: Dinh Nguyen <dinguyen@altera.com>
* Replaced the parent/child DT nodes with a combined node
* Renamed the device node from 'ethernet0' to 'ethernet'
as the standard name.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
---
arch/arm/boot/dts/socfpga.dtsi | 51 +++++++++----------------
arch/arm/boot/dts/socfpga_arria5_socdk.dts | 5 +--
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 5 +--
arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 5 +--
arch/arm/boot/dts/socfpga_vt.dts | 5 +--
5 files changed, 22 insertions(+), 49 deletions(-)
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index 404553c..953801c 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -450,43 +450,28 @@
};
};
- ethernet0: ethernet0 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "altr,socfpga-stmmac";
- altr,sysmgr-syscon = <&sysmgr 0x60>;
+ gmac0: ethernet at ff700000 {
+ compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
status = "disabled";
- ranges;
-
- gmac0: gmac0 at ff700000 {
- compatible = "snps,dwmac-3.70a", "snps,dwmac";
- reg = <0xff700000 0x2000>;
- interrupts = <0 115 4>;
- interrupt-names = "macirq";
- mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
- clocks = <&emac0_clk>;
- clock-names = "stmmaceth";
- };
+ altr,sysmgr-syscon = <&sysmgr 0x60>;
+ reg = <0xff700000 0x2000>;
+ interrupts = <0 115 4>;
+ interrupt-names = "macirq";
+ mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+ clocks = <&emac0_clk>;
+ clock-names = "stmmaceth";
};
- ethernet1: ethernet1 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "altr,socfpga-stmmac";
- altr,sysmgr-syscon = <&sysmgr 0x60>;
+ gmac1: ethernet at ff702000 {
+ compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
status = "disabled";
- ranges;
-
- gmac1: gmac1 at ff702000 {
- device_type = "network";
- compatible = "snps,dwmac-3.70a", "snps,dwmac";
- reg = <0xff702000 0x2000>;
- interrupts = <0 120 4>;
- interrupt-names = "macirq";
- mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
- clocks = <&emac1_clk>;
- clock-names = "stmmaceth";
- };
+ altr,sysmgr-syscon = <&sysmgr 0x60>;
+ reg = <0xff702000 0x2000>;
+ interrupts = <0 120 4>;
+ interrupt-names = "macirq";
+ mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+ clocks = <&emac1_clk>;
+ clock-names = "stmmaceth";
};
L2: l2-cache at fffef000 {
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index 2d6b38b..a87ee1c 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -46,11 +46,8 @@
};
};
-ðernet1 {
- status = "okay";
-};
-
&gmac1 {
+ status = "okay";
phy-mode = "rgmii";
rxd0-skew-ps = <0>;
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index 26c63a0..ae16d97 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -39,11 +39,8 @@
};
};
-ðernet1 {
- status = "okay";
-};
-
&gmac1 {
+ status = "okay";
phy-mode = "rgmii";
rxd0-skew-ps = <0>;
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
index 469bb5c..b79e2a2 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -39,11 +39,8 @@
};
};
-ðernet1 {
- status = "okay";
-};
-
&gmac1 {
+ status = "okay";
phy-mode = "rgmii";
rxd0-skew-ps = <0>;
diff --git a/arch/arm/boot/dts/socfpga_vt.dts b/arch/arm/boot/dts/socfpga_vt.dts
index 91f6ccf..87d6f75 100644
--- a/arch/arm/boot/dts/socfpga_vt.dts
+++ b/arch/arm/boot/dts/socfpga_vt.dts
@@ -87,10 +87,7 @@
};
};
-ðernet0 {
- status = "okay";
-};
-
&gmac0 {
+ status = "okay";
phy-mode = "gmii";
};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac
2014-03-25 23:34 ` [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac dinguyen at altera.com
@ 2014-03-26 22:12 ` Gerhard Sittig
2014-03-27 0:05 ` Dinh Nguyen
0 siblings, 1 reply; 9+ messages in thread
From: Gerhard Sittig @ 2014-03-26 22:12 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, 2014-03-25 at 18:34 -0500, dinguyen at altera.com wrote:
>
> - #size-cells = <1>;
> - compatible = "altr,socfpga-stmmac";
> - altr,sysmgr-syscon = <&sysmgr 0x60>;
> + gmac0: ethernet at ff700000 {
> + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
> status = "disabled";
> - ranges;
> -
> - gmac0: gmac0 at ff700000 {
> - compatible = "snps,dwmac-3.70a", "snps,dwmac";
> - reg = <0xff700000 0x2000>;
> - interrupts = <0 115 4>;
> - interrupt-names = "macirq";
> - mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
> - clocks = <&emac0_clk>;
> - clock-names = "stmmaceth";
> - };
> + altr,sysmgr-syscon = <&sysmgr 0x60>;
> + reg = <0xff700000 0x2000>;
> + interrupts = <0 115 4>;
> + interrupt-names = "macirq";
> + mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
> + clocks = <&emac0_clk>;
> + clock-names = "stmmaceth";
> };
not strictly related to this patch, but noticed in bypassing:
is the 'clocks' spec correct? ISTR that 'emac0_clk' is the PLL
output, while the gated clock for the EMAC IP block is named
'emac_0_clk' (note the extra underscore)
virtually yours
Gerhard Sittig
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac
2014-03-26 22:12 ` Gerhard Sittig
@ 2014-03-27 0:05 ` Dinh Nguyen
0 siblings, 0 replies; 9+ messages in thread
From: Dinh Nguyen @ 2014-03-27 0:05 UTC (permalink / raw)
To: linux-arm-kernel
On 03/26/2014 05:12 PM, Gerhard Sittig wrote:
> On Tue, 2014-03-25 at 18:34 -0500, dinguyen at altera.com wrote:
>>
>> - #size-cells = <1>;
>> - compatible = "altr,socfpga-stmmac";
>> - altr,sysmgr-syscon = <&sysmgr 0x60>;
>> + gmac0: ethernet at ff700000 {
>> + compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
>> status = "disabled";
>> - ranges;
>> -
>> - gmac0: gmac0 at ff700000 {
>> - compatible = "snps,dwmac-3.70a", "snps,dwmac";
>> - reg = <0xff700000 0x2000>;
>> - interrupts = <0 115 4>;
>> - interrupt-names = "macirq";
>> - mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
>> - clocks = <&emac0_clk>;
>> - clock-names = "stmmaceth";
>> - };
>> + altr,sysmgr-syscon = <&sysmgr 0x60>;
>> + reg = <0xff700000 0x2000>;
>> + interrupts = <0 115 4>;
>> + interrupt-names = "macirq";
>> + mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
>> + clocks = <&emac0_clk>;
>> + clock-names = "stmmaceth";
>> };
>
> not strictly related to this patch, but noticed in bypassing:
>
> is the 'clocks' spec correct? ISTR that 'emac0_clk' is the PLL
> output, while the gated clock for the EMAC IP block is named
> 'emac_0_clk' (note the extra underscore)
>
Yes, you're right. Thanks for catching that.
Dinh
>
> virtually yours
> Gerhard Sittig
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] dts: documentation: Update documentation for the stmmac ethernet controller
2014-03-25 23:34 [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc dinguyen at altera.com
2014-03-25 23:34 ` [PATCH 1/3] net: stmmac: improve binding and fix build dinguyen at altera.com
2014-03-25 23:34 ` [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac dinguyen at altera.com
@ 2014-03-25 23:34 ` dinguyen at altera.com
2014-03-26 21:54 ` [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc Arnd Bergmann
3 siblings, 0 replies; 9+ messages in thread
From: dinguyen at altera.com @ 2014-03-25 23:34 UTC (permalink / raw)
To: linux-arm-kernel
From: Dinh Nguyen <dinguyen@altera.com>
* Add optional clocks and clock-names property into the base stmmac document.
* Update socfpga-dwmac.txt with new compatible string and example binding.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
---
.../devicetree/bindings/net/socfpga-dwmac.txt | 38 ++++++++------------
Documentation/devicetree/bindings/net/stmmac.txt | 6 ++++
2 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
index d53d376..1ef6db7 100644
--- a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
+++ b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
@@ -1,35 +1,27 @@
Altera SOCFPGA SoC DWMAC controller
-The device node has following properties.
+This is a variant of the dwmac/stmmac driver an inherits all descriptions
+present in Documentation/devicetree/bindings/net/stmmac.txt.
+
+The device node has additional properties:
Required properties:
- - compatible : Should contain "altr,socfpga-stmmac"
+ - compatible : Should contain "altr,socfpga-stmmac" along with
+ "snps,dwmac" and any applicable more detailed
+ designware version numbers documented in stmmac.txt
- altr,sysmgr-syscon : Should be the phandle to the system manager node that
encompasses the glue register, and the register offset.
-Sub-nodes:
-The dwmac core should be added as subnode to SOCFPGA dwmac glue.
-- dwmac : The binding details of dwmac can be found in
- Documentation/devicetree/bindings/net/stmmac.txt
-
Example:
-ethernet0: ethernet0 {
- #address-cells = <1>;
- #size-cells = <1>;
-
- compatible = "altr,socfpga-stmmac";
+gmac0: ethernet at ff700000 {
+ compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
altr,sysmgr-syscon = <&sysmgr 0x60>;
status = "disabled";
- ranges;
-
- gmac0: gmac0 at ff700000 {
- compatible = "snps,dwmac-3.70a", "snps,dwmac";
- reg = <0xff700000 0x2000>;
- interrupts = <0 115 4>;
- interrupt-names = "macirq";
- mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
- clocks = <&emac0_clk>;
- clock-names = "stmmaceth";
- };
+ reg = <0xff700000 0x2000>;
+ interrupts = <0 115 4>;
+ interrupt-names = "macirq";
+ mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+ clocks = <&emac0_clk>;
+ clocks-names = "stmmaceth";
};
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index 9d92d42..9a0c1b7 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -34,6 +34,10 @@ Optional properties:
reset phandle is given
- max-frame-size: Maximum Transfer Unit (IEEE defined MTU), rather
than the maximum frame size.
+- clocks: If present, the first clock should be the GMAC main clock,
+ further clocks may be specified in derived bindings.
+- clocks-names: One name for each entry in the clocks property, the
+ first one should be "stmmaceth".
Examples:
@@ -46,4 +50,6 @@ Examples:
mac-address = [000000000000]; /* Filled in by U-Boot */
max-frame-size = <3800>;
phy-mode = "gmii";
+ clocks = <&clock>;
+ clock-names = "stmmaceth">;
};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc
2014-03-25 23:34 [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc dinguyen at altera.com
` (2 preceding siblings ...)
2014-03-25 23:34 ` [PATCH 3/3] dts: documentation: Update documentation for the stmmac ethernet controller dinguyen at altera.com
@ 2014-03-26 21:54 ` Arnd Bergmann
2014-03-27 0:05 ` Dinh Nguyen
3 siblings, 1 reply; 9+ messages in thread
From: Arnd Bergmann @ 2014-03-26 21:54 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday 26 March 2014, dinguyen at altera.com wrote:
> From: Dinh Nguyen <dinguyen@altera.com>
>
> Hi,
>
> These 3 patches are based on Arnd's patch to fix the allmodconfig for the
> dwmac-socfpga implementation. I just broke the patch out into drivers,
> dts, and dts documentation.
>
> The original patch is here:
> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241518.html
>
> Arnd mentioned that he was thinking about just removing the dwmac-socfpga
> and send out the new verion to the netdev tree, but I haven't seen it. So
> just in case this solution might work, here are the patches.
>
> These patches are based on arm-soc/for-next.
Hi Dinh,
Thanks for putting these patches together. The problem I see with these
is that we have multiple conflicts between my changes and the other
patches that went into the netdev tree.
Originally, the idea was that David Miller gave his Ack to have
the patches merged through arm-soc, but I think that was a mistake,
and they should have been treated like the other patches for
the same driver, i.e. put the driver and binding changes into
netdev, and the dt changes into arm-soc.
If I apply your patches on top of the next/drivers branch, we get
conflicts for a handful of files, and get Linus to resolve them.
I tried applying my patch on Sunday, but backed it out because
of this.
My preferred solution at this point would be to revert the driver
addition in the arm-soc tree and have David put the new version
in, but I don't know if he still takes patches like that for 3.15.
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc
2014-03-26 21:54 ` [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc Arnd Bergmann
@ 2014-03-27 0:05 ` Dinh Nguyen
2014-03-27 0:29 ` Arnd Bergmann
0 siblings, 1 reply; 9+ messages in thread
From: Dinh Nguyen @ 2014-03-27 0:05 UTC (permalink / raw)
To: linux-arm-kernel
On 03/26/2014 04:54 PM, Arnd Bergmann wrote:
> On Wednesday 26 March 2014, dinguyen at altera.com wrote:
>> From: Dinh Nguyen <dinguyen@altera.com>
>>
>> Hi,
>>
>> These 3 patches are based on Arnd's patch to fix the allmodconfig for the
>> dwmac-socfpga implementation. I just broke the patch out into drivers,
>> dts, and dts documentation.
>>
>> The original patch is here:
>> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241518.html
>>
>> Arnd mentioned that he was thinking about just removing the dwmac-socfpga
>> and send out the new verion to the netdev tree, but I haven't seen it. So
>> just in case this solution might work, here are the patches.
>>
>> These patches are based on arm-soc/for-next.
>
> Hi Dinh,
>
> Thanks for putting these patches together. The problem I see with these
> is that we have multiple conflicts between my changes and the other
> patches that went into the netdev tree.
>
> Originally, the idea was that David Miller gave his Ack to have
> the patches merged through arm-soc, but I think that was a mistake,
> and they should have been treated like the other patches for
> the same driver, i.e. put the driver and binding changes into
> netdev, and the dt changes into arm-soc.
>
> If I apply your patches on top of the next/drivers branch, we get
> conflicts for a handful of files, and get Linus to resolve them.
> I tried applying my patch on Sunday, but backed it out because
> of this.
>
> My preferred solution at this point would be to revert the driver
> addition in the arm-soc tree and have David put the new version
> in, but I don't know if he still takes patches like that for 3.15.
>
That's fine. Do you mind if I send out a fresh patch based on the netdev
tree? If there is still for 3.15, otherwise, going for 3.16 is fine.
Dinh
> Arnd
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc
2014-03-27 0:05 ` Dinh Nguyen
@ 2014-03-27 0:29 ` Arnd Bergmann
0 siblings, 0 replies; 9+ messages in thread
From: Arnd Bergmann @ 2014-03-27 0:29 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday 26 March 2014 19:05:13 Dinh Nguyen wrote:
> On 03/26/2014 04:54 PM, Arnd Bergmann wrote:
> > On Wednesday 26 March 2014, dinguyen at altera.com wrote:
> >> From: Dinh Nguyen <dinguyen@altera.com>
> >>
> >> Hi,
> >>
> >> These 3 patches are based on Arnd's patch to fix the allmodconfig for the
> >> dwmac-socfpga implementation. I just broke the patch out into drivers,
> >> dts, and dts documentation.
> >>
> >> The original patch is here:
> >> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241518.html
> >>
> >> Arnd mentioned that he was thinking about just removing the dwmac-socfpga
> >> and send out the new verion to the netdev tree, but I haven't seen it. So
> >> just in case this solution might work, here are the patches.
> >>
> >> These patches are based on arm-soc/for-next.
> >
> > Hi Dinh,
> >
> > Thanks for putting these patches together. The problem I see with these
> > is that we have multiple conflicts between my changes and the other
> > patches that went into the netdev tree.
> >
> > Originally, the idea was that David Miller gave his Ack to have
> > the patches merged through arm-soc, but I think that was a mistake,
> > and they should have been treated like the other patches for
> > the same driver, i.e. put the driver and binding changes into
> > netdev, and the dt changes into arm-soc.
> >
> > If I apply your patches on top of the next/drivers branch, we get
> > conflicts for a handful of files, and get Linus to resolve them.
> > I tried applying my patch on Sunday, but backed it out because
> > of this.
> >
> > My preferred solution at this point would be to revert the driver
> > addition in the arm-soc tree and have David put the new version
> > in, but I don't know if he still takes patches like that for 3.15.
> >
>
> That's fine. Do you mind if I send out a fresh patch based on the netdev
> tree? If there is still for 3.15, otherwise, going for 3.16 is fine.
Sounds good. I've reverted the two patches (driver addition, and
binding addition plus dts changes) in arm-soc/next/drivers now.
Please submit the updated versions to netdev, but split out the
dts changes into a patch that we can take through arm-soc.
I'll send an Ack when I see your patches.
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread