Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5f0f83c authored by Andrew Victor's avatar Andrew Victor Committed by David S. Miller
Browse files

AT91: Remove fixed mapping for AT91RM9200 ethernet



The AT91RM9200 Ethernet controller still has a fixed IO mapping.
So:
* Remove the fixed IO mapping and AT91_VA_BASE_EMAC definition.
* Pass the physical base-address via platform-resources to the driver.
* Convert at91_ether.c driver to perform an ioremap().
* Ethernet PHY detection needs to be performed during the driver
initialization process, it can no longer be done first.

Signed-off-by: default avatarAndrew Victor <linux@maxim.org.za>
Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cb75a36c
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -26,15 +26,6 @@
#include "clock.h"
#include "sam9_smc.h"

static struct map_desc at91rm9200_io_desc[] __initdata = {
	{
		.virtual	= AT91_VA_BASE_EMAC,
		.pfn		= __phys_to_pfn(AT91RM9200_BASE_EMAC),
		.length		= SZ_16K,
		.type		= MT_DEVICE,
	},
};

/* --------------------------------------------------------------------
 *  Clocks
 * -------------------------------------------------------------------- */
@@ -315,7 +306,6 @@ static void __init at91rm9200_map_io(void)
{
	/* Map peripherals */
	at91_init_sram(0, AT91RM9200_SRAM_BASE, AT91RM9200_SRAM_SIZE);
	iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc));
}

static void __init at91rm9200_ioremap_registers(void)
+2 −2
Original line number Diff line number Diff line
@@ -140,8 +140,8 @@ static struct macb_platform_data eth_data;

static struct resource eth_resources[] = {
	[0] = {
		.start	= AT91_VA_BASE_EMAC,
		.end	= AT91_VA_BASE_EMAC + SZ_16K - 1,
		.start	= AT91RM9200_BASE_EMAC,
		.end	= AT91RM9200_BASE_EMAC + SZ_16K - 1,
		.flags	= IORESOURCE_MEM,
	},
	[1] = {
+0 −1
Original line number Diff line number Diff line
@@ -94,7 +94,6 @@
 * Virtual to Physical Address mapping for IO devices.
 */
#define AT91_VA_BASE_SYS	AT91_IO_P2V(AT91_BASE_SYS)
#define AT91_VA_BASE_EMAC	AT91_IO_P2V(AT91RM9200_BASE_EMAC)

 /* Internal SRAM is mapped below the IO devices */
#define AT91_SRAM_MAX		SZ_1M
+284 −243

File changed.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ struct at91_private
	struct macb_platform_data board_data;	/* board-specific
						 * configuration (shared with
						 * macb for common data */
	void __iomem *emac_base;		/* base register address */
	struct clk *ether_clk;			/* clock */

	/* PHY */