[PATCHv2 0/9] macb: add support for Cadence GEM

Nicolas Ferre nicolas.ferre at atmel.com
Mon Mar 21 02:38:18 EDT 2011


On 3/17/2011 4:17 AM, David Miller :
> From: Jamie Iles <jamie at jamieiles.com>
> Date: Tue, 15 Mar 2011 10:14:47 +0000
> 
>> This patch series extends the Atmel MACB driver to support the Cadence
>> GEM (Gigabit Ethernet MAC) to support 10/100 operation.  The GEM is
>> based on the MACB block but has a few moved registers and bitfields.
>> This patch series attempts to use the MACB accessors where block
>> functionallity is identical and only overrides to GEM specific
>> acccessors when needed.
>>
>> This has been runtested on a board with a Cadence GEM and compile tested
>> for all at91 configurations and a number of avr32 configurations.
>>
>> Changes since v1:
>> 	- AT91 now provides a fake "hclk" and "macb_clk" has been
>> 	renamed to "pclk" to be consistent with AVR32.
>> 	- Configurable GEM receive buffer size support has been added.
>> 	- pr_foo() and dev_foo() have been converted to netdev_foo()
>> 	where appropriate.
>> 	- New conditional accessors (macb_or_gem_{read,write}l) have
>> 	been introduced that do the conditional accesses dependent on
>> 	macb/gem type.
>> 	- GEM is now dynamically detected from the module ID rather than
>> 	platform device name.
>>
>> Jean-Christophe, I haven't based this on your conditional clock patch as
>> I wasn't sure what decision had been made on that and whether the
>> at91/avr32 detection is reliable.
> 
> I'm happy to ACK this so you guys can merge this via one of the
> ARM trees:
> 
> Acked-by: David S. Miller <davem at davemloft.net>

I add my:

Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>

Now, tell me if we need to setup a git tree with this and make it handled by linux-next (we do not have for at91 yet)?
or Russell can take the series in a "devel" branch?

I have tested the series with the v2 patches. It is working good with some modification that were discussed (hclk, pclk clocks). I attach modifications I have made to make it work so that you have an idea of my testbed (not a patch as you should already have this and it is on a development platform):

+/* One additional fake clock for macb interfaces */
+static struct clk hclk = {
+       .name           = "hclk",
+       .pmc_mask       = 0,
+       .type           = CLK_TYPE_PERIPHERAL,
+};

@@ -247,6 +254,7 @@ static struct clk *periph_clocks[] __initdata = {
        // irq0
        &ohci_clk,
        &tcb1_clk,
+       &hclk,
 };

[..]

                /* Clock */
-               at91_clock_associate("macb0_clk", &at91sam9x5_eth0_device.dev, "macb_clk");
+               at91_clock_associate("macb0_clk", &at91sam9x5_eth0_device.dev, "pclk");

                eth0_data = *data;
                platform_device_register(&at91sam9x5_eth0_device);

Thanks, best regards,
-- 
Nicolas Ferre




More information about the linux-arm-kernel mailing list