* Re: [PATCH 00/43] ep93xx device tree conversion
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
@ 2023-04-24 11:31 ` Arnd Bergmann
[not found] ` <20230424152933.48b2ede1@kernel.org>
2023-04-24 12:34 ` [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth Nikita Shubin
` (5 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Arnd Bergmann @ 2023-04-24 11:31 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin,
David S . Miller, Jonathan Neuschäfer, Russell King,
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Bartosz Golaszewski,
Brian Norris, Chuanhong Guo, Conor.Dooley, Damien Le Moal,
Daniel Lezcano, Dmitry Torokhov, Emil Renner Berthing,
Eric Dumazet, Florian Fainelli, Guenter Roeck, Hartley Sweeten,
Heiko Stübner, Hitomi Hasegawa, Jakub Kicinski,
Jaroslav Kysela, Jean Delvare, Joel Stanley, Jonathan Cameron,
Krzysztof Kozlowski, Damien Le Moal, Liam Girdwood, Liang Yang,
Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, open list:GPIO SUBSYSTEM, linux-ide,
linux-input, linux-kernel, linux-mtd, linux-pm, linux-pwm,
linux-rtc, linux-spi, linux-watchdog, Netdev, soc
On Mon, Apr 24, 2023, at 14:34, Nikita Shubin wrote:
> This series aims to convert ep93xx from platform to full device tree support.
>
> Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
>
> Thank you Linus and Arnd for your support, review and comments, sorry
> if i missed something -
> these series are quite big for me.
>
> Big thanks to Alexander Sverdlin for his testing, support, review,
> fixes and patches.
Thanks a lot for your continued work. I can't merge any of this at
the moment since the upstream merge window just opened, but I'm
happy to take this all through the soc tree for 6.5, provided we
get the sufficient Acks from the subsystem maintainers. Merging
it through each individual tree would take a lot longer, so I
hope we can avoid that.
Arnd
^ permalink raw reply [flat|nested] 18+ messages in thread* [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
2023-04-24 11:31 ` Arnd Bergmann
@ 2023-04-24 12:34 ` Nikita Shubin
2023-04-24 16:11 ` Rob Herring
[not found] ` <7f05ecdc-cbbd-40b0-9a40-229e18aec721@lunn.ch>
2023-04-24 12:34 ` [PATCH 19/43] net: cirrus: add DT support for Cirrus EP93xx Nikita Shubin
` (4 subsequent siblings)
6 siblings, 2 replies; 18+ messages in thread
From: Nikita Shubin @ 2023-04-24 12:34 UTC (permalink / raw)
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring,
Krzysztof Kozlowski, Hartley Sweeten, netdev, devicetree,
linux-kernel
Add YAML bindings for ep93xx SoC.
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
.../bindings/net/cirrus,ep93xx_eth.yaml | 51 +++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
diff --git a/Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml b/Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
new file mode 100644
index 000000000000..7e73cf0ddde9
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/cirrus,ep93xx_eth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: The ethernet hardware included in EP93xx CPUs module Device Tree Bindings
+
+maintainers:
+ - Hartley Sweeten <hsweeten@visionengravers.com>
+
+properties:
+ compatible:
+ const: cirrus,ep9301-eth
+
+ reg:
+ items:
+ - description: The physical base address and size of IO range
+
+ interrupts:
+ items:
+ - description: Combined signal for various interrupt events
+
+ copy_addr:
+ type: boolean
+ description:
+ Flag indicating that the MAC address should be copied
+ from the IndAd registers (as programmed by the bootloader)
+
+ phy_id:
+ description: MII phy_id to use
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ eth0: eth@80010000 {
+ compatible = "cirrus,ep9301-eth";
+ reg = <0x80010000 0x10000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <7>;
+ copy_addr;
+ phy_id = < 1 >;
+ };
+
+...
--
2.39.2
^ permalink raw reply related [flat|nested] 18+ messages in thread* Re: [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth
2023-04-24 12:34 ` [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth Nikita Shubin
@ 2023-04-24 16:11 ` Rob Herring
[not found] ` <7f05ecdc-cbbd-40b0-9a40-229e18aec721@lunn.ch>
1 sibling, 0 replies; 18+ messages in thread
From: Rob Herring @ 2023-04-24 16:11 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski,
Hartley Sweeten, netdev, devicetree, linux-kernel
On Mon, Apr 24, 2023 at 03:34:34PM +0300, Nikita Shubin wrote:
> Add YAML bindings for ep93xx SoC.
>
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
> ---
> .../bindings/net/cirrus,ep93xx_eth.yaml | 51 +++++++++++++++++++
> 1 file changed, 51 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml b/Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
> new file mode 100644
> index 000000000000..7e73cf0ddde9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
> @@ -0,0 +1,51 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/cirrus,ep93xx_eth.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: The ethernet hardware included in EP93xx CPUs module Device Tree Bindings
> +
> +maintainers:
> + - Hartley Sweeten <hsweeten@visionengravers.com>
Should be referencing ethernet-controller.yaml.
> +
> +properties:
> + compatible:
> + const: cirrus,ep9301-eth
> +
> + reg:
> + items:
> + - description: The physical base address and size of IO range
> +
> + interrupts:
> + items:
> + - description: Combined signal for various interrupt events
> +
> + copy_addr:
> + type: boolean
> + description:
> + Flag indicating that the MAC address should be copied
> + from the IndAd registers (as programmed by the bootloader)
The bootloader is supposed to fill in local-mac-address if it sets the
MAC address.
> +
> + phy_id:
> + description: MII phy_id to use
type?
There's standard properties for dealing with phy connections. Surely
they work for this.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + eth0: eth@80010000 {
ethernet@...
> + compatible = "cirrus,ep9301-eth";
> + reg = <0x80010000 0x10000>;
> + interrupt-parent = <&vic1>;
> + interrupts = <7>;
> + copy_addr;
> + phy_id = < 1 >;
> + };
> +
> +...
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 18+ messages in thread[parent not found: <7f05ecdc-cbbd-40b0-9a40-229e18aec721@lunn.ch>]
* Re: [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth
[not found] ` <7f05ecdc-cbbd-40b0-9a40-229e18aec721@lunn.ch>
@ 2023-05-15 13:42 ` Nikita Shubin
0 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin @ 2023-05-15 13:42 UTC (permalink / raw)
To: Andrew Lunn
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring,
Krzysztof Kozlowski, Hartley Sweeten, netdev, devicetree,
linux-kernel
Hello Andrew!
On Mon, 2023-04-24 at 15:39 +0200, Andrew Lunn wrote:
> > + copy_addr:
> > + type: boolean
> > + description:
> > + Flag indicating that the MAC address should be copied
> > + from the IndAd registers (as programmed by the bootloader)
>
> Looking at ep93xx_register_eth(), all callers are setting copy_addr
> to
> 1. So i don't think you need this.
Agreed. Dropped copy_addr entirely.
>
> > +
> > + phy_id:
> > + description: MII phy_id to use
>
> The eEP93xx Ethernet driver is a very old driver, so it is doing MDIO
> and PHY the old way. Ideally you should be using ep93xx_mdio_read()
> and ep93xx_mdio_write() to create an MDIO bus with
> of_mdiobus_regsiter, and then use a phy-handle to point to the PHY on
> the bus. It will then be the same as all other ethernet drivers using
> DT.
I've tinkered with the preferred way, however this involves turning on
- CONFIG_PHYLIB
- CONFIG_MDIO_DEVICE
And maybe CONFIG_MICREL_PHY (at least for me, unless i can use some
common phy driver) which implies a kernel size increase - which is
undesirable for us.
Can we slip by with something like:
+ np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
+ if (!np) {
+ dev_err(&pdev->dev, "Please provide \"phy-handle\"\n");
+ return -ENODEV;
+ }
+
+ if (of_property_read_u32(np, "reg", &phy_id)) {
+ dev_err(&pdev->dev, "Failed to locate \"phy_id\"\n");
+ return -ENOENT;
+ }
And standard device tree bindings ?:
+ ethernet@80010000 {
+ compatible = "cirrus,ep9301-eth";
+ reg = <0x80010000 0x10000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <7>;
+ phy-handle = <&phy0>;
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ phy0: ethernet-phy@1 {
+ reg = <1>;
+ device_type = "ethernet-phy";
+ };
+ };
+ };
>
> Andrew
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 19/43] net: cirrus: add DT support for Cirrus EP93xx
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
2023-04-24 11:31 ` Arnd Bergmann
2023-04-24 12:34 ` [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth Nikita Shubin
@ 2023-04-24 12:34 ` Nikita Shubin
2023-04-26 20:56 ` [PATCH 00/43] ep93xx device tree conversion Linus Walleij
` (3 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin @ 2023-04-24 12:34 UTC (permalink / raw)
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, Hartley Sweeten,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, linux-kernel
- find register range from the device tree
- get "copy_addr" from the device tree
- get phy_id from the device tree
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
Notes:
rfc->v0
Fixed warnings on "(base_addr == NULL)", pace required before the open
parenthesis '('.
Arnd Bergmann:
- wildcards ep93xx to something meaningful, i.e. ep9301
- drop wrappers
drivers/net/ethernet/cirrus/ep93xx_eth.c | 49 +++++++++++++++++++++---
1 file changed, 43 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/cirrus/ep93xx_eth.c b/drivers/net/ethernet/cirrus/ep93xx_eth.c
index 8627ab19d470..b156cc75daad 100644
--- a/drivers/net/ethernet/cirrus/ep93xx_eth.c
+++ b/drivers/net/ethernet/cirrus/ep93xx_eth.c
@@ -17,6 +17,8 @@
#include <linux/interrupt.h>
#include <linux/moduleparam.h>
#include <linux/platform_device.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/slab.h>
@@ -792,6 +794,8 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
struct net_device *dev;
struct ep93xx_priv *ep;
struct resource *mem;
+ void __iomem *base_addr;
+ struct device_node *np;
int irq;
int err;
@@ -804,6 +808,38 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
if (!mem || irq < 0)
return -ENXIO;
+ base_addr = ioremap(mem->start, resource_size(mem));
+ if (!base_addr) {
+ dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
+ return -EIO;
+ }
+
+ if (!data) {
+ np = pdev->dev.of_node;
+ if (IS_ENABLED(CONFIG_OF) && np) {
+ u32 phy_id;
+
+ data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
+ if (!data)
+ return -ENOMEM;
+
+ if (of_property_read_bool(np, "copy_addr")) {
+ memcpy_fromio(data->dev_addr, base_addr + 0x50, 6);
+ dev_info(&pdev->dev, "MAC=%pM\n", data->dev_addr);
+ }
+
+ if (of_property_read_u32(np, "phy_id", &phy_id)) {
+ dev_err(&pdev->dev, "Failed to parse \"phy_id\"\n");
+ return -ENOENT;
+ }
+
+ data->phy_id = phy_id;
+ }
+ }
+
+ if (!data)
+ return -ENOENT;
+
dev = ep93xx_dev_alloc(data);
if (dev == NULL) {
err = -ENOMEM;
@@ -824,12 +860,7 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
goto err_out;
}
- ep->base_addr = ioremap(mem->start, resource_size(mem));
- if (ep->base_addr == NULL) {
- dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
- err = -EIO;
- goto err_out;
- }
+ ep->base_addr = base_addr;
ep->irq = irq;
ep->mii.phy_id = data->phy_id;
@@ -859,12 +890,18 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
return err;
}
+static const struct of_device_id ep93xx_eth_of_ids[] = {
+ { .compatible = "cirrus,ep9301-eth" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, ep93xx_eth_of_ids);
static struct platform_driver ep93xx_eth_driver = {
.probe = ep93xx_eth_probe,
.remove = ep93xx_eth_remove,
.driver = {
.name = "ep93xx-eth",
+ .of_match_table = ep93xx_eth_of_ids,
},
};
--
2.39.2
^ permalink raw reply related [flat|nested] 18+ messages in thread* Re: [PATCH 00/43] ep93xx device tree conversion
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
` (2 preceding siblings ...)
2023-04-24 12:34 ` [PATCH 19/43] net: cirrus: add DT support for Cirrus EP93xx Nikita Shubin
@ 2023-04-26 20:56 ` Linus Walleij
[not found] ` <b5396ef5-3fed-4e98-8f37-a9cd4473bddc@sirena.org.uk>
2023-05-16 3:47 ` Florian Fainelli
` (2 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Linus Walleij @ 2023-04-26 20:56 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Florian Fainelli,
Guenter Roeck, Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa,
Jakub Kicinski, Jaroslav Kysela, Jean Delvare, Joel Stanley,
Jonathan Cameron, Krzysztof Kozlowski, Le Moal, Liam Girdwood,
Liang Yang, Lukasz Majewski, Lv Ruyi, Mark Brown, Masahiro Yamada,
Michael Turquette, Miquel Raynal, Nathan Chancellor,
Nick Desaulniers, Nicolas Saenz Julienne, Olof Johansson,
Paolo Abeni, Qin Jian, Richard Weinberger, Rob Herring,
Robert Jarzmik, Russell King, Sebastian Reichel, Sergey Shtylyov,
Stephen Boyd, Sumanth Korikkar, Sven Peter, Takashi Iwai,
Thierry Reding, Thomas Gleixner, Ulf Hansson, Vasily Gorbik,
Vignesh Raghavendra, Vinod Koul, Walker Chen, Wim Van Sebroeck,
Yinbo Zhu, alsa-devel, devicetree, dmaengine, linux-arm-kernel,
linux-clk, linux-gpio, linux-ide, linux-input, linux-kernel,
linux-mtd, linux-pm, linux-pwm, linux-rtc, linux-spi,
linux-watchdog, netdev, soc
On Mon, Apr 24, 2023 at 11:35 AM Nikita Shubin
<nikita.shubin@maquefel.me> wrote:
> This series aims to convert ep93xx from platform to full device tree support.
>
> Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
Neat, I'd say let's merge this for 6.5 once the final rough edges are
off. The DT bindings should be easy to fix.
This is a big patch set and the improvement to the ARM kernel it
brings is great, so I am a bit worried about over-review stalling the
merged. If there start to be nitpicky comments I would prefer that
we merge it and let minor comments and "nice-to-haves" be
addressed in-tree during the development cycle.
I encourage you to use b4 to manage the patch series if you
have time to learn it, it could help you:
https://people.kernel.org/monsieuricon/sending-a-kernel-patch-with-b4-part-1
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH 00/43] ep93xx device tree conversion
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
` (3 preceding siblings ...)
2023-04-26 20:56 ` [PATCH 00/43] ep93xx device tree conversion Linus Walleij
@ 2023-05-16 3:47 ` Florian Fainelli
2023-05-16 10:37 ` Nikita Shubin
2023-06-01 5:45 ` [PATCH v1 19/43] dt-bindings: net: Add Cirrus EP93xx Nikita Shubin
2023-06-01 5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
6 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2023-05-16 3:47 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Guenter Roeck,
Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa, Jakub Kicinski,
Jaroslav Kysela, Jean Delvare, Joel Stanley, Jonathan Cameron,
Krzysztof Kozlowski, Le Moal, Liam Girdwood, Liang Yang,
Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, linux-gpio, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, netdev, soc
On 4/24/2023 5:34 AM, Nikita Shubin wrote:
> This series aims to convert ep93xx from platform to full device tree support.
>
> Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
>
> Thank you Linus and Arnd for your support, review and comments, sorry if i missed something -
> these series are quite big for me.
>
> Big thanks to Alexander Sverdlin for his testing, support, review, fixes and patches.
If anyone is interested I still have a TS-7300 board [1] that is fully
functional and could be sent out to a new home.
https://www.embeddedts.com/products/TS-7300
--
Florian
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH 00/43] ep93xx device tree conversion
2023-05-16 3:47 ` Florian Fainelli
@ 2023-05-16 10:37 ` Nikita Shubin
0 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin @ 2023-05-16 10:37 UTC (permalink / raw)
To: Florian Fainelli
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Guenter Roeck,
Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa, Jakub Kicinski,
Jaroslav Kysela, Jean Delvare, Joel Stanley, Jonathan Cameron,
Krzysztof Kozlowski, Le Moal, Liam Girdwood, Liang Yang,
Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, linux-gpio, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, netdev, soc
Hello Florian!
On Mon, 2023-05-15 at 20:47 -0700, Florian Fainelli wrote:
>
>
> On 4/24/2023 5:34 AM, Nikita Shubin wrote:
> > This series aims to convert ep93xx from platform to full device
> > tree support.
> >
> > Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
> >
> > Thank you Linus and Arnd for your support, review and comments,
> > sorry if i missed something -
> > these series are quite big for me.
> >
> > Big thanks to Alexander Sverdlin for his testing, support, review,
> > fixes and patches.
>
> If anyone is interested I still have a TS-7300 board [1] that is
> fully
> functional and could be sent out to a new home.
Thank you kindly, i'll keep this in mind !
>
> https://www.embeddedts.com/products/TS-7300
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v1 19/43] dt-bindings: net: Add Cirrus EP93xx
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
` (4 preceding siblings ...)
2023-05-16 3:47 ` Florian Fainelli
@ 2023-06-01 5:45 ` Nikita Shubin
2023-06-01 5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
6 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin @ 2023-06-01 5:45 UTC (permalink / raw)
To: Alexander Sverdlin, Arnd Bergmann, Linus Walleij, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring,
Krzysztof Kozlowski, Nikita Shubin
Cc: Michael Peters, Kris Bahnsen, netdev, devicetree, linux-kernel
Add YAML bindings for ep93xx SoC Ethernet Controller.
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
Notes:
v0 -> v1:
- replaced maintainers
- fixed title
Rob Herring:
- reference ethernet-controller.yaml
- s/eth/ethernet/
Andrew Lunn:
- dropped copy_addr
- use phy-handle instead of using non-conventional phy-id
Krzysztof Kozlowski:
- removed wildcards
- use fallback compatible and list all possible compatibles
- dropped label
- fix ident
.../bindings/net/cirrus,ep9301-eth.yaml | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml
diff --git a/Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml b/Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml
new file mode 100644
index 000000000000..580316f33187
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/cirrus,ep9301-eth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EP93xx SoC Ethernet Controller
+
+maintainers:
+ - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+ - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+ - $ref: ethernet-controller.yaml#
+
+properties:
+ compatible:
+ oneOf:
+ - const: cirrus,ep9301-eth
+ - items:
+ - enum:
+ - cirrus,ep9302-eth
+ - cirrus,ep9307-eth
+ - cirrus,ep9312-eth
+ - cirrus,ep9315-eth
+ - const: cirrus,ep9301-eth
+
+ reg:
+ items:
+ - description: The physical base address and size of IO range
+
+ interrupts:
+ items:
+ - description: Combined signal for various interrupt events
+
+ phy-handle: true
+
+ mdio:
+ $ref: mdio.yaml#
+ unevaluatedProperties: false
+ description: optional node for embedded MDIO controller
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - phy-handle
+
+additionalProperties: false
+
+examples:
+ - |
+ ethernet@80010000 {
+ compatible = "cirrus,ep9301-eth";
+ reg = <0x80010000 0x10000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <7>;
+ phy-handle = <&phy0>;
+ };
+
+...
--
2.37.4
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH v1 20/43] net: cirrus: add DT support for Cirrus EP93xx
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
` (5 preceding siblings ...)
2023-06-01 5:45 ` [PATCH v1 19/43] dt-bindings: net: Add Cirrus EP93xx Nikita Shubin
@ 2023-06-01 5:45 ` Nikita Shubin
2023-06-02 7:27 ` Linus Walleij
` (3 more replies)
6 siblings, 4 replies; 18+ messages in thread
From: Nikita Shubin @ 2023-06-01 5:45 UTC (permalink / raw)
To: Alexander Sverdlin, Arnd Bergmann, Linus Walleij, Hartley Sweeten,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni
Cc: Nikita Shubin, Michael Peters, Kris Bahnsen, linux-arm-kernel,
linux-kernel, netdev
- find register range from the device tree
- get "copy_addr" from the device tree
- get phy_id from the device tree
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
Notes:
v0 -> v1:
- dropped platform data entirely
- dropped copy_addr
- use phy-handle instead of using non-conventional phy-id
arch/arm/mach-ep93xx/platform.h | 2 +-
drivers/net/ethernet/cirrus/ep93xx_eth.c | 67 +++++++++++++-----------
2 files changed, 37 insertions(+), 32 deletions(-)
diff --git a/arch/arm/mach-ep93xx/platform.h b/arch/arm/mach-ep93xx/platform.h
index 5fb1b919133f..3cf2113491d8 100644
--- a/arch/arm/mach-ep93xx/platform.h
+++ b/arch/arm/mach-ep93xx/platform.h
@@ -5,8 +5,8 @@
#ifndef __ASSEMBLY__
-#include <linux/platform_data/eth-ep93xx.h>
#include <linux/reboot.h>
+#include <linux/platform_data/eth-ep93xx.h>
struct device;
struct i2c_board_info;
diff --git a/drivers/net/ethernet/cirrus/ep93xx_eth.c b/drivers/net/ethernet/cirrus/ep93xx_eth.c
index 8627ab19d470..41096d4830ff 100644
--- a/drivers/net/ethernet/cirrus/ep93xx_eth.c
+++ b/drivers/net/ethernet/cirrus/ep93xx_eth.c
@@ -17,12 +17,11 @@
#include <linux/interrupt.h>
#include <linux/moduleparam.h>
#include <linux/platform_device.h>
+#include <linux/of.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/slab.h>
-#include <linux/platform_data/eth-ep93xx.h>
-
#define DRV_MODULE_NAME "ep93xx-eth"
#define RX_QUEUE_ENTRIES 64
@@ -738,25 +737,6 @@ static const struct net_device_ops ep93xx_netdev_ops = {
.ndo_set_mac_address = eth_mac_addr,
};
-static struct net_device *ep93xx_dev_alloc(struct ep93xx_eth_data *data)
-{
- struct net_device *dev;
-
- dev = alloc_etherdev(sizeof(struct ep93xx_priv));
- if (dev == NULL)
- return NULL;
-
- eth_hw_addr_set(dev, data->dev_addr);
-
- dev->ethtool_ops = &ep93xx_ethtool_ops;
- dev->netdev_ops = &ep93xx_netdev_ops;
-
- dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
-
- return dev;
-}
-
-
static int ep93xx_eth_remove(struct platform_device *pdev)
{
struct net_device *dev;
@@ -788,27 +768,51 @@ static int ep93xx_eth_remove(struct platform_device *pdev)
static int ep93xx_eth_probe(struct platform_device *pdev)
{
- struct ep93xx_eth_data *data;
struct net_device *dev;
struct ep93xx_priv *ep;
struct resource *mem;
+ void __iomem *base_addr;
+ struct device_node *np;
+ u32 phy_id;
int irq;
int err;
if (pdev == NULL)
return -ENODEV;
- data = dev_get_platdata(&pdev->dev);
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
irq = platform_get_irq(pdev, 0);
if (!mem || irq < 0)
return -ENXIO;
- dev = ep93xx_dev_alloc(data);
+ base_addr = ioremap(mem->start, resource_size(mem));
+ if (!base_addr) {
+ dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
+ return -EIO;
+ }
+
+ np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
+ if (!np) {
+ dev_err(&pdev->dev, "Please provide \"phy-handle\"\n");
+ return -ENODEV;
+ }
+
+ if (of_property_read_u32(np, "reg", &phy_id)) {
+ dev_err(&pdev->dev, "Failed to locate \"phy_id\"\n");
+ return -ENOENT;
+ }
+
+ dev = alloc_etherdev(sizeof(struct ep93xx_priv));
if (dev == NULL) {
err = -ENOMEM;
goto err_out;
}
+
+ eth_hw_addr_set(dev, base_addr + 0x50);
+ dev->ethtool_ops = &ep93xx_ethtool_ops;
+ dev->netdev_ops = &ep93xx_netdev_ops;
+ dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+
ep = netdev_priv(dev);
ep->dev = dev;
SET_NETDEV_DEV(dev, &pdev->dev);
@@ -824,15 +828,10 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
goto err_out;
}
- ep->base_addr = ioremap(mem->start, resource_size(mem));
- if (ep->base_addr == NULL) {
- dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
- err = -EIO;
- goto err_out;
- }
+ ep->base_addr = base_addr;
ep->irq = irq;
- ep->mii.phy_id = data->phy_id;
+ ep->mii.phy_id = phy_id;
ep->mii.phy_id_mask = 0x1f;
ep->mii.reg_num_mask = 0x1f;
ep->mii.dev = dev;
@@ -859,12 +858,18 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
return err;
}
+static const struct of_device_id ep93xx_eth_of_ids[] = {
+ { .compatible = "cirrus,ep9301-eth" },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, ep93xx_eth_of_ids);
static struct platform_driver ep93xx_eth_driver = {
.probe = ep93xx_eth_probe,
.remove = ep93xx_eth_remove,
.driver = {
.name = "ep93xx-eth",
+ .of_match_table = ep93xx_eth_of_ids,
},
};
--
2.37.4
^ permalink raw reply related [flat|nested] 18+ messages in thread* Re: [PATCH v1 20/43] net: cirrus: add DT support for Cirrus EP93xx
2023-06-01 5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
@ 2023-06-02 7:27 ` Linus Walleij
2023-06-02 12:09 ` Andrew Lunn
` (2 subsequent siblings)
3 siblings, 0 replies; 18+ messages in thread
From: Linus Walleij @ 2023-06-02 7:27 UTC (permalink / raw)
To: Nikita Shubin
Cc: Alexander Sverdlin, Arnd Bergmann, Hartley Sweeten, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Michael Peters, Kris Bahnsen, linux-arm-kernel, linux-kernel,
netdev
On Thu, Jun 1, 2023 at 7:45 AM Nikita Shubin <nikita.shubin@maquefel.me> wrote:
> - find register range from the device tree
> - get "copy_addr" from the device tree
> - get phy_id from the device tree
>
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Looking really good.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v1 20/43] net: cirrus: add DT support for Cirrus EP93xx
2023-06-01 5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
2023-06-02 7:27 ` Linus Walleij
@ 2023-06-02 12:09 ` Andrew Lunn
2023-06-03 20:30 ` andy.shevchenko
2023-06-04 15:51 ` Alexander Sverdlin
3 siblings, 0 replies; 18+ messages in thread
From: Andrew Lunn @ 2023-06-02 12:09 UTC (permalink / raw)
To: Nikita Shubin
Cc: Alexander Sverdlin, Arnd Bergmann, Linus Walleij, Hartley Sweeten,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Peters, Kris Bahnsen, linux-arm-kernel,
linux-kernel, netdev
On Thu, Jun 01, 2023 at 08:45:25AM +0300, Nikita Shubin wrote:
> - find register range from the device tree
> - get "copy_addr" from the device tree
> - get phy_id from the device tree
>
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v1 20/43] net: cirrus: add DT support for Cirrus EP93xx
2023-06-01 5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
2023-06-02 7:27 ` Linus Walleij
2023-06-02 12:09 ` Andrew Lunn
@ 2023-06-03 20:30 ` andy.shevchenko
2023-06-04 15:51 ` Alexander Sverdlin
3 siblings, 0 replies; 18+ messages in thread
From: andy.shevchenko @ 2023-06-03 20:30 UTC (permalink / raw)
To: Nikita Shubin
Cc: Alexander Sverdlin, Arnd Bergmann, Linus Walleij, Hartley Sweeten,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Peters, Kris Bahnsen, linux-arm-kernel,
linux-kernel, netdev
Thu, Jun 01, 2023 at 08:45:25AM +0300, Nikita Shubin kirjoitti:
> - find register range from the device tree
> - get "copy_addr" from the device tree
> - get phy_id from the device tree
...
> -#include <linux/platform_data/eth-ep93xx.h>
> #include <linux/reboot.h>
> +#include <linux/platform_data/eth-ep93xx.h>
Stray change.
...
> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> irq = platform_get_irq(pdev, 0);
> if (!mem || irq < 0)
> return -ENXIO;
>
> - dev = ep93xx_dev_alloc(data);
> + base_addr = ioremap(mem->start, resource_size(mem));
> + if (!base_addr) {
> + dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
> + return -EIO;
> + }
Why not switching to devm_platform_ioremap_resource()?
...
> + if (of_property_read_u32(np, "reg", &phy_id)) {
> + dev_err(&pdev->dev, "Failed to locate \"phy_id\"\n");
> + return -ENOENT;
return dev_err_probe(...); ?
> + }
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v1 20/43] net: cirrus: add DT support for Cirrus EP93xx
2023-06-01 5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
` (2 preceding siblings ...)
2023-06-03 20:30 ` andy.shevchenko
@ 2023-06-04 15:51 ` Alexander Sverdlin
3 siblings, 0 replies; 18+ messages in thread
From: Alexander Sverdlin @ 2023-06-04 15:51 UTC (permalink / raw)
To: Nikita Shubin, Arnd Bergmann, Linus Walleij, Hartley Sweeten,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni
Cc: Michael Peters, Kris Bahnsen, linux-arm-kernel, linux-kernel,
netdev
Hi!
On Thu, 2023-06-01 at 08:45 +0300, Nikita Shubin wrote:
> - find register range from the device tree
> - get "copy_addr" from the device tree
> - get phy_id from the device tree
>
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Works fine on EDB9302
Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> ---
>
> Notes:
> v0 -> v1:
>
> - dropped platform data entirely
> - dropped copy_addr
> - use phy-handle instead of using non-conventional phy-id
>
> arch/arm/mach-ep93xx/platform.h | 2 +-
> drivers/net/ethernet/cirrus/ep93xx_eth.c | 67 +++++++++++++-----------
> 2 files changed, 37 insertions(+), 32 deletions(-)
>
> diff --git a/arch/arm/mach-ep93xx/platform.h b/arch/arm/mach-ep93xx/platform.h
> index 5fb1b919133f..3cf2113491d8 100644
> --- a/arch/arm/mach-ep93xx/platform.h
> +++ b/arch/arm/mach-ep93xx/platform.h
> @@ -5,8 +5,8 @@
>
> #ifndef __ASSEMBLY__
>
> -#include <linux/platform_data/eth-ep93xx.h>
> #include <linux/reboot.h>
> +#include <linux/platform_data/eth-ep93xx.h>
>
> struct device;
> struct i2c_board_info;
> diff --git a/drivers/net/ethernet/cirrus/ep93xx_eth.c b/drivers/net/ethernet/cirrus/ep93xx_eth.c
> index 8627ab19d470..41096d4830ff 100644
> --- a/drivers/net/ethernet/cirrus/ep93xx_eth.c
> +++ b/drivers/net/ethernet/cirrus/ep93xx_eth.c
> @@ -17,12 +17,11 @@
> #include <linux/interrupt.h>
> #include <linux/moduleparam.h>
> #include <linux/platform_device.h>
> +#include <linux/of.h>
> #include <linux/delay.h>
> #include <linux/io.h>
> #include <linux/slab.h>
>
> -#include <linux/platform_data/eth-ep93xx.h>
> -
> #define DRV_MODULE_NAME "ep93xx-eth"
>
> #define RX_QUEUE_ENTRIES 64
> @@ -738,25 +737,6 @@ static const struct net_device_ops ep93xx_netdev_ops = {
> .ndo_set_mac_address = eth_mac_addr,
> };
>
> -static struct net_device *ep93xx_dev_alloc(struct ep93xx_eth_data *data)
> -{
> - struct net_device *dev;
> -
> - dev = alloc_etherdev(sizeof(struct ep93xx_priv));
> - if (dev == NULL)
> - return NULL;
> -
> - eth_hw_addr_set(dev, data->dev_addr);
> -
> - dev->ethtool_ops = &ep93xx_ethtool_ops;
> - dev->netdev_ops = &ep93xx_netdev_ops;
> -
> - dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
> -
> - return dev;
> -}
> -
> -
> static int ep93xx_eth_remove(struct platform_device *pdev)
> {
> struct net_device *dev;
> @@ -788,27 +768,51 @@ static int ep93xx_eth_remove(struct platform_device *pdev)
>
> static int ep93xx_eth_probe(struct platform_device *pdev)
> {
> - struct ep93xx_eth_data *data;
> struct net_device *dev;
> struct ep93xx_priv *ep;
> struct resource *mem;
> + void __iomem *base_addr;
> + struct device_node *np;
> + u32 phy_id;
> int irq;
> int err;
>
> if (pdev == NULL)
> return -ENODEV;
> - data = dev_get_platdata(&pdev->dev);
>
> mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> irq = platform_get_irq(pdev, 0);
> if (!mem || irq < 0)
> return -ENXIO;
>
> - dev = ep93xx_dev_alloc(data);
> + base_addr = ioremap(mem->start, resource_size(mem));
> + if (!base_addr) {
> + dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
> + return -EIO;
> + }
> +
> + np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
> + if (!np) {
> + dev_err(&pdev->dev, "Please provide \"phy-handle\"\n");
> + return -ENODEV;
> + }
> +
> + if (of_property_read_u32(np, "reg", &phy_id)) {
> + dev_err(&pdev->dev, "Failed to locate \"phy_id\"\n");
> + return -ENOENT;
> + }
> +
> + dev = alloc_etherdev(sizeof(struct ep93xx_priv));
> if (dev == NULL) {
> err = -ENOMEM;
> goto err_out;
> }
> +
> + eth_hw_addr_set(dev, base_addr + 0x50);
> + dev->ethtool_ops = &ep93xx_ethtool_ops;
> + dev->netdev_ops = &ep93xx_netdev_ops;
> + dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
> +
> ep = netdev_priv(dev);
> ep->dev = dev;
> SET_NETDEV_DEV(dev, &pdev->dev);
> @@ -824,15 +828,10 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
> goto err_out;
> }
>
> - ep->base_addr = ioremap(mem->start, resource_size(mem));
> - if (ep->base_addr == NULL) {
> - dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
> - err = -EIO;
> - goto err_out;
> - }
> + ep->base_addr = base_addr;
> ep->irq = irq;
>
> - ep->mii.phy_id = data->phy_id;
> + ep->mii.phy_id = phy_id;
> ep->mii.phy_id_mask = 0x1f;
> ep->mii.reg_num_mask = 0x1f;
> ep->mii.dev = dev;
> @@ -859,12 +858,18 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
> return err;
> }
>
> +static const struct of_device_id ep93xx_eth_of_ids[] = {
> + { .compatible = "cirrus,ep9301-eth" },
> + { /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, ep93xx_eth_of_ids);
>
> static struct platform_driver ep93xx_eth_driver = {
> .probe = ep93xx_eth_probe,
> .remove = ep93xx_eth_remove,
> .driver = {
> .name = "ep93xx-eth",
> + .of_match_table = ep93xx_eth_of_ids,
> },
> };
>
--
Alexander Sverdlin.
^ permalink raw reply [flat|nested] 18+ messages in thread