Merge branch 'drivers/macb-gem-cleanup' into at91/gpio
This commit is contained in:
commit
ed20178d62
|
@ -136,7 +136,7 @@ static struct clk pwm_clk = {
|
|||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
static struct clk macb_clk = {
|
||||
.name = "macb_clk",
|
||||
.name = "pclk",
|
||||
.pmc_mask = 1 << AT91CAP9_ID_EMAC,
|
||||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
|
@ -209,6 +209,8 @@ static struct clk *periph_clocks[] __initdata = {
|
|||
};
|
||||
|
||||
static struct clk_lookup periph_clocks_lookups[] = {
|
||||
/* One additional fake clock for macb_hclk */
|
||||
CLKDEV_CON_ID("hclk", &macb_clk),
|
||||
CLKDEV_CON_DEV_ID("hclk", "atmel_usba_udc", &utmi_clk),
|
||||
CLKDEV_CON_DEV_ID("pclk", "atmel_usba_udc", &udphs_clk),
|
||||
CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk),
|
||||
|
|
|
@ -200,7 +200,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) {}
|
|||
|
||||
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
|
||||
static u64 eth_dmamask = DMA_BIT_MASK(32);
|
||||
static struct at91_eth_data eth_data;
|
||||
static struct macb_platform_data eth_data;
|
||||
|
||||
static struct resource eth_resources[] = {
|
||||
[0] = {
|
||||
|
@ -227,7 +227,7 @@ static struct platform_device at91cap9_eth_device = {
|
|||
.num_resources = ARRAY_SIZE(eth_resources),
|
||||
};
|
||||
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data)
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data)
|
||||
{
|
||||
if (!data)
|
||||
return;
|
||||
|
@ -264,7 +264,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
|
|||
platform_device_register(&at91cap9_eth_device);
|
||||
}
|
||||
#else
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data) {}
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data) {}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
|
|||
|
||||
#if defined(CONFIG_ARM_AT91_ETHER) || defined(CONFIG_ARM_AT91_ETHER_MODULE)
|
||||
static u64 eth_dmamask = DMA_BIT_MASK(32);
|
||||
static struct at91_eth_data eth_data;
|
||||
static struct macb_platform_data eth_data;
|
||||
|
||||
static struct resource eth_resources[] = {
|
||||
[0] = {
|
||||
|
@ -162,7 +162,7 @@ static struct platform_device at91rm9200_eth_device = {
|
|||
.num_resources = ARRAY_SIZE(eth_resources),
|
||||
};
|
||||
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data)
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data)
|
||||
{
|
||||
if (!data)
|
||||
return;
|
||||
|
@ -199,7 +199,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
|
|||
platform_device_register(&at91rm9200_eth_device);
|
||||
}
|
||||
#else
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data) {}
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data) {}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ static struct clk ohci_clk = {
|
|||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
static struct clk macb_clk = {
|
||||
.name = "macb_clk",
|
||||
.name = "pclk",
|
||||
.pmc_mask = 1 << AT91SAM9260_ID_EMAC,
|
||||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
|
@ -189,6 +189,8 @@ static struct clk *periph_clocks[] __initdata = {
|
|||
};
|
||||
|
||||
static struct clk_lookup periph_clocks_lookups[] = {
|
||||
/* One additional fake clock for macb_hclk */
|
||||
CLKDEV_CON_ID("hclk", &macb_clk),
|
||||
CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk),
|
||||
CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk),
|
||||
CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tc0_clk),
|
||||
|
|
|
@ -136,7 +136,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
|
|||
|
||||
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
|
||||
static u64 eth_dmamask = DMA_BIT_MASK(32);
|
||||
static struct at91_eth_data eth_data;
|
||||
static struct macb_platform_data eth_data;
|
||||
|
||||
static struct resource eth_resources[] = {
|
||||
[0] = {
|
||||
|
@ -163,7 +163,7 @@ static struct platform_device at91sam9260_eth_device = {
|
|||
.num_resources = ARRAY_SIZE(eth_resources),
|
||||
};
|
||||
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data)
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data)
|
||||
{
|
||||
if (!data)
|
||||
return;
|
||||
|
@ -200,7 +200,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
|
|||
platform_device_register(&at91sam9260_eth_device);
|
||||
}
|
||||
#else
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data) {}
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data) {}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ static struct clk pwm_clk = {
|
|||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
static struct clk macb_clk = {
|
||||
.name = "macb_clk",
|
||||
.name = "pclk",
|
||||
.pmc_mask = 1 << AT91SAM9263_ID_EMAC,
|
||||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
|
@ -181,6 +181,8 @@ static struct clk *periph_clocks[] __initdata = {
|
|||
};
|
||||
|
||||
static struct clk_lookup periph_clocks_lookups[] = {
|
||||
/* One additional fake clock for macb_hclk */
|
||||
CLKDEV_CON_ID("hclk", &macb_clk),
|
||||
CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
|
||||
CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
|
||||
CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk),
|
||||
|
|
|
@ -144,7 +144,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
|
|||
|
||||
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
|
||||
static u64 eth_dmamask = DMA_BIT_MASK(32);
|
||||
static struct at91_eth_data eth_data;
|
||||
static struct macb_platform_data eth_data;
|
||||
|
||||
static struct resource eth_resources[] = {
|
||||
[0] = {
|
||||
|
@ -171,7 +171,7 @@ static struct platform_device at91sam9263_eth_device = {
|
|||
.num_resources = ARRAY_SIZE(eth_resources),
|
||||
};
|
||||
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data)
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data)
|
||||
{
|
||||
if (!data)
|
||||
return;
|
||||
|
@ -208,7 +208,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
|
|||
platform_device_register(&at91sam9263_eth_device);
|
||||
}
|
||||
#else
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data) {}
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data) {}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ static struct clk ac97_clk = {
|
|||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
static struct clk macb_clk = {
|
||||
.name = "macb_clk",
|
||||
.name = "pclk",
|
||||
.pmc_mask = 1 << AT91SAM9G45_ID_EMAC,
|
||||
.type = CLK_TYPE_PERIPHERAL,
|
||||
};
|
||||
|
@ -208,6 +208,8 @@ static struct clk *periph_clocks[] __initdata = {
|
|||
};
|
||||
|
||||
static struct clk_lookup periph_clocks_lookups[] = {
|
||||
/* One additional fake clock for macb_hclk */
|
||||
CLKDEV_CON_ID("hclk", &macb_clk),
|
||||
/* One additional fake clock for ohci */
|
||||
CLKDEV_CON_ID("ohci_clk", &uhphs_clk),
|
||||
CLKDEV_CON_DEV_ID("ehci_clk", "atmel-ehci", &uhphs_clk),
|
||||
|
|
|
@ -284,7 +284,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) {}
|
|||
|
||||
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
|
||||
static u64 eth_dmamask = DMA_BIT_MASK(32);
|
||||
static struct at91_eth_data eth_data;
|
||||
static struct macb_platform_data eth_data;
|
||||
|
||||
static struct resource eth_resources[] = {
|
||||
[0] = {
|
||||
|
@ -311,7 +311,7 @@ static struct platform_device at91sam9g45_eth_device = {
|
|||
.num_resources = ARRAY_SIZE(eth_resources),
|
||||
};
|
||||
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data)
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data)
|
||||
{
|
||||
if (!data)
|
||||
return;
|
||||
|
@ -348,7 +348,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
|
|||
platform_device_register(&at91sam9g45_eth_device);
|
||||
}
|
||||
#else
|
||||
void __init at91_add_device_eth(struct at91_eth_data *data) {}
|
||||
void __init at91_add_device_eth(struct macb_platform_data *data) {}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ static void __init onearm_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata onearm_eth_data = {
|
||||
static struct macb_platform_data __initdata onearm_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -103,7 +103,7 @@ static struct spi_board_info afeb9260_spi_devices[] = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata afeb9260_macb_data = {
|
||||
static struct macb_platform_data __initdata afeb9260_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA9,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -115,7 +115,7 @@ static struct spi_board_info cam60_spi_devices[] __initdata = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct __initdata at91_eth_data cam60_macb_data = {
|
||||
static struct __initdata macb_platform_data cam60_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PB5,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -153,7 +153,7 @@ static struct at91_mmc_data __initdata cap9adk_mmc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata cap9adk_macb_data = {
|
||||
static struct macb_platform_data __initdata cap9adk_macb_data = {
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ static void __init carmeva_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata carmeva_eth_data = {
|
||||
static struct macb_platform_data __initdata carmeva_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -99,7 +99,7 @@ static struct at91_udc_data __initdata cpu9krea_udc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata cpu9krea_macb_data = {
|
||||
static struct macb_platform_data __initdata cpu9krea_macb_data = {
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ static void __init cpuat91_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata cpuat91_eth_data = {
|
||||
static struct macb_platform_data __initdata cpuat91_eth_data = {
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ static void __init csb337_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata csb337_eth_data = {
|
||||
static struct macb_platform_data __initdata csb337_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC2,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -52,7 +52,7 @@ static void __init csb637_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata csb637_eth_data = {
|
||||
static struct macb_platform_data __initdata csb637_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC0,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -60,7 +60,7 @@ static void __init eb9200_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata eb9200_eth_data = {
|
||||
static struct macb_platform_data __initdata eb9200_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -64,7 +64,7 @@ static void __init ecb_at91init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata ecb_at91eth_data = {
|
||||
static struct macb_platform_data __initdata ecb_at91eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -47,7 +47,7 @@ static void __init eco920_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata eco920_eth_data = {
|
||||
static struct macb_platform_data __initdata eco920_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC2,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -135,7 +135,7 @@ static struct spi_board_info foxg20_spi_devices[] = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata foxg20_macb_data = {
|
||||
static struct macb_platform_data __initdata foxg20_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA7,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -93,7 +93,7 @@ static struct at91_udc_data __initdata udc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata macb_data = {
|
||||
static struct macb_platform_data __initdata macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA28,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -61,7 +61,7 @@ static void __init kafa_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata kafa_eth_data = {
|
||||
static struct macb_platform_data __initdata kafa_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -69,7 +69,7 @@ static void __init kb9202_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata kb9202_eth_data = {
|
||||
static struct macb_platform_data __initdata kb9202_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PB29,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -155,7 +155,7 @@ static struct at91_mmc_data __initdata neocore926_mmc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata neocore926_macb_data = {
|
||||
static struct macb_platform_data __initdata neocore926_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PE31,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -122,7 +122,7 @@ static struct at91_udc_data __initdata pcontrol_g20_udc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata macb_data = {
|
||||
static struct macb_platform_data __initdata macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA28,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -60,7 +60,7 @@ static void __init picotux200_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata picotux200_eth_data = {
|
||||
static struct macb_platform_data __initdata picotux200_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -104,7 +104,7 @@ static struct spi_board_info ek_spi_devices[] = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA31,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -65,7 +65,7 @@ static void __init dk_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata dk_eth_data = {
|
||||
static struct macb_platform_data __initdata dk_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -65,7 +65,7 @@ static void __init ek_init_early(void)
|
|||
at91_set_serial_console(0);
|
||||
}
|
||||
|
||||
static struct at91_eth_data __initdata ek_eth_data = {
|
||||
static struct macb_platform_data __initdata ek_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -60,7 +60,7 @@ static void __init rsi_ews_init_early(void)
|
|||
/*
|
||||
* Ethernet
|
||||
*/
|
||||
static struct at91_eth_data rsi_ews_eth_data __initdata = {
|
||||
static struct macb_platform_data rsi_ews_eth_data __initdata = {
|
||||
.phy_irq_pin = AT91_PIN_PC4,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -109,7 +109,7 @@ static struct spi_board_info ek_spi_devices[] = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA7,
|
||||
.is_rmii = 0,
|
||||
};
|
||||
|
|
|
@ -151,7 +151,7 @@ static struct spi_board_info ek_spi_devices[] = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA7,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -158,7 +158,7 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PE31,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -123,7 +123,7 @@ static struct spi_board_info ek_spi_devices[] = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA7,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -115,7 +115,7 @@ static struct mci_platform_data __initdata mci1_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PD5,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -65,7 +65,7 @@ static struct at91_udc_data __initdata snapper9260_udc_data = {
|
|||
.vbus_polled = 1,
|
||||
};
|
||||
|
||||
static struct at91_eth_data snapper9260_macb_data = {
|
||||
static struct macb_platform_data snapper9260_macb_data = {
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ static struct at91_udc_data __initdata stamp9g20evb_udc_data = {
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata macb_data = {
|
||||
static struct macb_platform_data __initdata macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PA28,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -146,7 +146,7 @@ static void __init ek_add_device_spi(void)
|
|||
/*
|
||||
* MACB Ethernet device
|
||||
*/
|
||||
static struct at91_eth_data __initdata ek_macb_data = {
|
||||
static struct macb_platform_data __initdata ek_macb_data = {
|
||||
.phy_irq_pin = AT91_PIN_PE31,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -110,7 +110,7 @@ static struct gpio_led yl9200_leds[] = {
|
|||
/*
|
||||
* Ethernet
|
||||
*/
|
||||
static struct at91_eth_data __initdata yl9200_eth_data = {
|
||||
static struct macb_platform_data __initdata yl9200_eth_data = {
|
||||
.phy_irq_pin = AT91_PIN_PB28,
|
||||
.is_rmii = 1,
|
||||
};
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include <linux/atmel-mci.h>
|
||||
#include <sound/atmel-ac97c.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/platform_data/macb.h>
|
||||
|
||||
/* USB Device */
|
||||
struct at91_udc_data {
|
||||
|
@ -81,18 +82,7 @@ extern void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data)
|
|||
/* atmel-mci platform config */
|
||||
extern void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data);
|
||||
|
||||
/* Ethernet (EMAC & MACB) */
|
||||
struct at91_eth_data {
|
||||
u32 phy_mask;
|
||||
u8 phy_irq_pin; /* PHY IRQ */
|
||||
u8 is_rmii; /* using RMII interface? */
|
||||
};
|
||||
extern void __init at91_add_device_eth(struct at91_eth_data *data);
|
||||
|
||||
#if defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9263) || defined(CONFIG_ARCH_AT91SAM9G20) || defined(CONFIG_ARCH_AT91CAP9) \
|
||||
|| defined(CONFIG_ARCH_AT91SAM9G45)
|
||||
#define eth_platform_data at91_eth_data
|
||||
#endif
|
||||
extern void __init at91_add_device_eth(struct macb_platform_data *data);
|
||||
|
||||
/* USB Host */
|
||||
struct at91_usbh_data {
|
||||
|
|
|
@ -109,7 +109,7 @@ struct eth_addr {
|
|||
u8 addr[6];
|
||||
};
|
||||
static struct eth_addr __initdata hw_addr[2];
|
||||
static struct eth_platform_data __initdata eth_data[2];
|
||||
static struct macb_platform_data __initdata eth_data[2];
|
||||
|
||||
static struct spi_board_info spi0_board_info[] __initdata = {
|
||||
{
|
||||
|
|
|
@ -105,7 +105,7 @@ struct eth_addr {
|
|||
};
|
||||
|
||||
static struct eth_addr __initdata hw_addr[2];
|
||||
static struct eth_platform_data __initdata eth_data[2] = {
|
||||
static struct macb_platform_data __initdata eth_data[2] = {
|
||||
{
|
||||
/*
|
||||
* The MDIO pullups on STK1000 are a bit too weak for
|
||||
|
|
|
@ -50,7 +50,7 @@ struct eth_addr {
|
|||
u8 addr[6];
|
||||
};
|
||||
static struct eth_addr __initdata hw_addr[1];
|
||||
static struct eth_platform_data __initdata eth_data[1] = {
|
||||
static struct macb_platform_data __initdata eth_data[1] = {
|
||||
{
|
||||
.phy_mask = ~(1U << 1),
|
||||
},
|
||||
|
|
|
@ -102,7 +102,7 @@ struct eth_addr {
|
|||
};
|
||||
|
||||
static struct eth_addr __initdata hw_addr[1];
|
||||
static struct eth_platform_data __initdata eth_data[1];
|
||||
static struct macb_platform_data __initdata eth_data[1];
|
||||
|
||||
/*
|
||||
* The next two functions should go away as the boot loader is
|
||||
|
|
|
@ -52,7 +52,7 @@ struct eth_addr {
|
|||
};
|
||||
|
||||
static struct eth_addr __initdata hw_addr[2];
|
||||
static struct eth_platform_data __initdata eth_data[2];
|
||||
static struct macb_platform_data __initdata eth_data[2];
|
||||
|
||||
static int ads7846_get_pendown_state_PB26(void)
|
||||
{
|
||||
|
|
|
@ -86,7 +86,7 @@ struct eth_addr {
|
|||
u8 addr[6];
|
||||
};
|
||||
static struct eth_addr __initdata hw_addr[2];
|
||||
static struct eth_platform_data __initdata eth_data[2];
|
||||
static struct macb_platform_data __initdata eth_data[2];
|
||||
|
||||
static struct spi_eeprom eeprom_25lc010 = {
|
||||
.name = "25lc010",
|
||||
|
|
|
@ -1067,7 +1067,7 @@ void __init at32_setup_serial_console(unsigned int usart_id)
|
|||
* -------------------------------------------------------------------- */
|
||||
|
||||
#ifdef CONFIG_CPU_AT32AP7000
|
||||
static struct eth_platform_data macb0_data;
|
||||
static struct macb_platform_data macb0_data;
|
||||
static struct resource macb0_resource[] = {
|
||||
PBMEM(0xfff01800),
|
||||
IRQ(25),
|
||||
|
@ -1076,7 +1076,7 @@ DEFINE_DEV_DATA(macb, 0);
|
|||
DEV_CLK(hclk, macb0, hsb, 8);
|
||||
DEV_CLK(pclk, macb0, pbb, 6);
|
||||
|
||||
static struct eth_platform_data macb1_data;
|
||||
static struct macb_platform_data macb1_data;
|
||||
static struct resource macb1_resource[] = {
|
||||
PBMEM(0xfff01c00),
|
||||
IRQ(26),
|
||||
|
@ -1086,7 +1086,7 @@ DEV_CLK(hclk, macb1, hsb, 9);
|
|||
DEV_CLK(pclk, macb1, pbb, 7);
|
||||
|
||||
struct platform_device *__init
|
||||
at32_add_device_eth(unsigned int id, struct eth_platform_data *data)
|
||||
at32_add_device_eth(unsigned int id, struct macb_platform_data *data)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
u32 pin_mask;
|
||||
|
@ -1163,7 +1163,7 @@ at32_add_device_eth(unsigned int id, struct eth_platform_data *data)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
memcpy(pdev->dev.platform_data, data, sizeof(struct eth_platform_data));
|
||||
memcpy(pdev->dev.platform_data, data, sizeof(struct macb_platform_data));
|
||||
platform_device_register(pdev);
|
||||
|
||||
return pdev;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/platform_data/macb.h>
|
||||
|
||||
#define GPIO_PIN_NONE (-1)
|
||||
|
||||
|
@ -42,12 +43,8 @@ struct atmel_uart_data {
|
|||
void at32_map_usart(unsigned int hw_id, unsigned int line, int flags);
|
||||
struct platform_device *at32_add_device_usart(unsigned int id);
|
||||
|
||||
struct eth_platform_data {
|
||||
u32 phy_mask;
|
||||
u8 is_rmii;
|
||||
};
|
||||
struct platform_device *
|
||||
at32_add_device_eth(unsigned int id, struct eth_platform_data *data);
|
||||
at32_add_device_eth(unsigned int id, struct macb_platform_data *data);
|
||||
|
||||
struct spi_board_info;
|
||||
struct platform_device *
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/ethtool.h>
|
||||
#include <linux/platform_data/macb.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/gfp.h>
|
||||
|
@ -984,7 +985,7 @@ static const struct net_device_ops at91ether_netdev_ops = {
|
|||
static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_address,
|
||||
struct platform_device *pdev, struct clk *ether_clk)
|
||||
{
|
||||
struct at91_eth_data *board_data = pdev->dev.platform_data;
|
||||
struct macb_platform_data *board_data = pdev->dev.platform_data;
|
||||
struct net_device *dev;
|
||||
struct at91_private *lp;
|
||||
unsigned int val;
|
||||
|
|
|
@ -85,7 +85,9 @@ struct recv_desc_bufs
|
|||
struct at91_private
|
||||
{
|
||||
struct mii_if_info mii; /* ethtool support */
|
||||
struct at91_eth_data board_data; /* board-specific configuration */
|
||||
struct macb_platform_data board_data; /* board-specific
|
||||
* configuration (shared with
|
||||
* macb for common data */
|
||||
struct clk *ether_clk; /* clock */
|
||||
|
||||
/* PHY */
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
#include <linux/clk.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
|
@ -19,12 +20,10 @@
|
|||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/platform_data/macb.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/phy.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
#include "macb.h"
|
||||
|
||||
#define RX_BUFFER_SIZE 128
|
||||
|
@ -84,7 +83,7 @@ static void __init macb_get_hwaddr(struct macb *bp)
|
|||
if (is_valid_ether_addr(addr)) {
|
||||
memcpy(bp->dev->dev_addr, addr, sizeof(addr));
|
||||
} else {
|
||||
dev_info(&bp->pdev->dev, "invalid hw address, using random\n");
|
||||
netdev_info(bp->dev, "invalid hw address, using random\n");
|
||||
random_ether_addr(bp->dev->dev_addr);
|
||||
}
|
||||
}
|
||||
|
@ -178,11 +177,12 @@ static void macb_handle_link_change(struct net_device *dev)
|
|||
|
||||
if (status_change) {
|
||||
if (phydev->link)
|
||||
printk(KERN_INFO "%s: link up (%d/%s)\n",
|
||||
dev->name, phydev->speed,
|
||||
DUPLEX_FULL == phydev->duplex ? "Full":"Half");
|
||||
netdev_info(dev, "link up (%d/%s)\n",
|
||||
phydev->speed,
|
||||
phydev->duplex == DUPLEX_FULL ?
|
||||
"Full" : "Half");
|
||||
else
|
||||
printk(KERN_INFO "%s: link down\n", dev->name);
|
||||
netdev_info(dev, "link down\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,12 +191,12 @@ static int macb_mii_probe(struct net_device *dev)
|
|||
{
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
struct phy_device *phydev;
|
||||
struct eth_platform_data *pdata;
|
||||
struct macb_platform_data *pdata;
|
||||
int ret;
|
||||
|
||||
phydev = phy_find_first(bp->mii_bus);
|
||||
if (!phydev) {
|
||||
printk (KERN_ERR "%s: no PHY found\n", dev->name);
|
||||
netdev_err(dev, "no PHY found\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -209,7 +209,7 @@ static int macb_mii_probe(struct net_device *dev)
|
|||
PHY_INTERFACE_MODE_RMII :
|
||||
PHY_INTERFACE_MODE_MII);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
|
||||
netdev_err(dev, "Could not attach to PHY\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -228,7 +228,7 @@ static int macb_mii_probe(struct net_device *dev)
|
|||
|
||||
static int macb_mii_init(struct macb *bp)
|
||||
{
|
||||
struct eth_platform_data *pdata;
|
||||
struct macb_platform_data *pdata;
|
||||
int err = -ENXIO, i;
|
||||
|
||||
/* Enable management port */
|
||||
|
@ -303,14 +303,13 @@ static void macb_tx(struct macb *bp)
|
|||
status = macb_readl(bp, TSR);
|
||||
macb_writel(bp, TSR, status);
|
||||
|
||||
dev_dbg(&bp->pdev->dev, "macb_tx status = %02lx\n",
|
||||
(unsigned long)status);
|
||||
netdev_dbg(bp->dev, "macb_tx status = %02lx\n", (unsigned long)status);
|
||||
|
||||
if (status & (MACB_BIT(UND) | MACB_BIT(TSR_RLE))) {
|
||||
int i;
|
||||
printk(KERN_ERR "%s: TX %s, resetting buffers\n",
|
||||
bp->dev->name, status & MACB_BIT(UND) ?
|
||||
"underrun" : "retry limit exceeded");
|
||||
netdev_err(bp->dev, "TX %s, resetting buffers\n",
|
||||
status & MACB_BIT(UND) ?
|
||||
"underrun" : "retry limit exceeded");
|
||||
|
||||
/* Transfer ongoing, disable transmitter, to avoid confusion */
|
||||
if (status & MACB_BIT(TGO))
|
||||
|
@ -369,8 +368,8 @@ static void macb_tx(struct macb *bp)
|
|||
if (!(bufstat & MACB_BIT(TX_USED)))
|
||||
break;
|
||||
|
||||
dev_dbg(&bp->pdev->dev, "skb %u (data %p) TX complete\n",
|
||||
tail, skb->data);
|
||||
netdev_dbg(bp->dev, "skb %u (data %p) TX complete\n",
|
||||
tail, skb->data);
|
||||
dma_unmap_single(&bp->pdev->dev, rp->mapping, skb->len,
|
||||
DMA_TO_DEVICE);
|
||||
bp->stats.tx_packets++;
|
||||
|
@ -395,8 +394,8 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
|
|||
|
||||
len = MACB_BFEXT(RX_FRMLEN, bp->rx_ring[last_frag].ctrl);
|
||||
|
||||
dev_dbg(&bp->pdev->dev, "macb_rx_frame frags %u - %u (len %u)\n",
|
||||
first_frag, last_frag, len);
|
||||
netdev_dbg(bp->dev, "macb_rx_frame frags %u - %u (len %u)\n",
|
||||
first_frag, last_frag, len);
|
||||
|
||||
skb = dev_alloc_skb(len + RX_OFFSET);
|
||||
if (!skb) {
|
||||
|
@ -437,8 +436,8 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
|
|||
|
||||
bp->stats.rx_packets++;
|
||||
bp->stats.rx_bytes += len;
|
||||
dev_dbg(&bp->pdev->dev, "received skb of length %u, csum: %08x\n",
|
||||
skb->len, skb->csum);
|
||||
netdev_dbg(bp->dev, "received skb of length %u, csum: %08x\n",
|
||||
skb->len, skb->csum);
|
||||
netif_receive_skb(skb);
|
||||
|
||||
return 0;
|
||||
|
@ -515,8 +514,8 @@ static int macb_poll(struct napi_struct *napi, int budget)
|
|||
|
||||
work_done = 0;
|
||||
|
||||
dev_dbg(&bp->pdev->dev, "poll: status = %08lx, budget = %d\n",
|
||||
(unsigned long)status, budget);
|
||||
netdev_dbg(bp->dev, "poll: status = %08lx, budget = %d\n",
|
||||
(unsigned long)status, budget);
|
||||
|
||||
work_done = macb_rx(bp, budget);
|
||||
if (work_done < budget) {
|
||||
|
@ -565,8 +564,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
|
|||
macb_writel(bp, IDR, MACB_RX_INT_FLAGS);
|
||||
|
||||
if (napi_schedule_prep(&bp->napi)) {
|
||||
dev_dbg(&bp->pdev->dev,
|
||||
"scheduling RX softirq\n");
|
||||
netdev_dbg(bp->dev, "scheduling RX softirq\n");
|
||||
__napi_schedule(&bp->napi);
|
||||
}
|
||||
}
|
||||
|
@ -587,11 +585,11 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
|
|||
|
||||
if (status & MACB_BIT(HRESP)) {
|
||||
/*
|
||||
* TODO: Reset the hardware, and maybe move the printk
|
||||
* to a lower-priority context as well (work queue?)
|
||||
* TODO: Reset the hardware, and maybe move the
|
||||
* netdev_err to a lower-priority context as well
|
||||
* (work queue?)
|
||||
*/
|
||||
printk(KERN_ERR "%s: DMA bus error: HRESP not OK\n",
|
||||
dev->name);
|
||||
netdev_err(dev, "DMA bus error: HRESP not OK\n");
|
||||
}
|
||||
|
||||
status = macb_readl(bp, ISR);
|
||||
|
@ -626,16 +624,12 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
unsigned long flags;
|
||||
|
||||
#ifdef DEBUG
|
||||
int i;
|
||||
dev_dbg(&bp->pdev->dev,
|
||||
"start_xmit: len %u head %p data %p tail %p end %p\n",
|
||||
skb->len, skb->head, skb->data,
|
||||
skb_tail_pointer(skb), skb_end_pointer(skb));
|
||||
dev_dbg(&bp->pdev->dev,
|
||||
"data:");
|
||||
for (i = 0; i < 16; i++)
|
||||
printk(" %02x", (unsigned int)skb->data[i]);
|
||||
printk("\n");
|
||||
netdev_dbg(bp->dev,
|
||||
"start_xmit: len %u head %p data %p tail %p end %p\n",
|
||||
skb->len, skb->head, skb->data,
|
||||
skb_tail_pointer(skb), skb_end_pointer(skb));
|
||||
print_hex_dump(KERN_DEBUG, "data: ", DUMP_PREFIX_OFFSET, 16, 1,
|
||||
skb->data, 16, true);
|
||||
#endif
|
||||
|
||||
len = skb->len;
|
||||
|
@ -645,21 +639,20 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
if (TX_BUFFS_AVAIL(bp) < 1) {
|
||||
netif_stop_queue(dev);
|
||||
spin_unlock_irqrestore(&bp->lock, flags);
|
||||
dev_err(&bp->pdev->dev,
|
||||
"BUG! Tx Ring full when queue awake!\n");
|
||||
dev_dbg(&bp->pdev->dev, "tx_head = %u, tx_tail = %u\n",
|
||||
bp->tx_head, bp->tx_tail);
|
||||
netdev_err(bp->dev, "BUG! Tx Ring full when queue awake!\n");
|
||||
netdev_dbg(bp->dev, "tx_head = %u, tx_tail = %u\n",
|
||||
bp->tx_head, bp->tx_tail);
|
||||
return NETDEV_TX_BUSY;
|
||||
}
|
||||
|
||||
entry = bp->tx_head;
|
||||
dev_dbg(&bp->pdev->dev, "Allocated ring entry %u\n", entry);
|
||||
netdev_dbg(bp->dev, "Allocated ring entry %u\n", entry);
|
||||
mapping = dma_map_single(&bp->pdev->dev, skb->data,
|
||||
len, DMA_TO_DEVICE);
|
||||
bp->tx_skb[entry].skb = skb;
|
||||
bp->tx_skb[entry].mapping = mapping;
|
||||
dev_dbg(&bp->pdev->dev, "Mapped skb data %p to DMA addr %08lx\n",
|
||||
skb->data, (unsigned long)mapping);
|
||||
netdev_dbg(bp->dev, "Mapped skb data %p to DMA addr %08lx\n",
|
||||
skb->data, (unsigned long)mapping);
|
||||
|
||||
ctrl = MACB_BF(TX_FRMLEN, len);
|
||||
ctrl |= MACB_BIT(TX_LAST);
|
||||
|
@ -723,27 +716,27 @@ static int macb_alloc_consistent(struct macb *bp)
|
|||
&bp->rx_ring_dma, GFP_KERNEL);
|
||||
if (!bp->rx_ring)
|
||||
goto out_err;
|
||||
dev_dbg(&bp->pdev->dev,
|
||||
"Allocated RX ring of %d bytes at %08lx (mapped %p)\n",
|
||||
size, (unsigned long)bp->rx_ring_dma, bp->rx_ring);
|
||||
netdev_dbg(bp->dev,
|
||||
"Allocated RX ring of %d bytes at %08lx (mapped %p)\n",
|
||||
size, (unsigned long)bp->rx_ring_dma, bp->rx_ring);
|
||||
|
||||
size = TX_RING_BYTES;
|
||||
bp->tx_ring = dma_alloc_coherent(&bp->pdev->dev, size,
|
||||
&bp->tx_ring_dma, GFP_KERNEL);
|
||||
if (!bp->tx_ring)
|
||||
goto out_err;
|
||||
dev_dbg(&bp->pdev->dev,
|
||||
"Allocated TX ring of %d bytes at %08lx (mapped %p)\n",
|
||||
size, (unsigned long)bp->tx_ring_dma, bp->tx_ring);
|
||||
netdev_dbg(bp->dev,
|
||||
"Allocated TX ring of %d bytes at %08lx (mapped %p)\n",
|
||||
size, (unsigned long)bp->tx_ring_dma, bp->tx_ring);
|
||||
|
||||
size = RX_RING_SIZE * RX_BUFFER_SIZE;
|
||||
bp->rx_buffers = dma_alloc_coherent(&bp->pdev->dev, size,
|
||||
&bp->rx_buffers_dma, GFP_KERNEL);
|
||||
if (!bp->rx_buffers)
|
||||
goto out_err;
|
||||
dev_dbg(&bp->pdev->dev,
|
||||
"Allocated RX buffers of %d bytes at %08lx (mapped %p)\n",
|
||||
size, (unsigned long)bp->rx_buffers_dma, bp->rx_buffers);
|
||||
netdev_dbg(bp->dev,
|
||||
"Allocated RX buffers of %d bytes at %08lx (mapped %p)\n",
|
||||
size, (unsigned long)bp->rx_buffers_dma, bp->rx_buffers);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -954,7 +947,7 @@ static int macb_open(struct net_device *dev)
|
|||
struct macb *bp = netdev_priv(dev);
|
||||
int err;
|
||||
|
||||
dev_dbg(&bp->pdev->dev, "open\n");
|
||||
netdev_dbg(bp->dev, "open\n");
|
||||
|
||||
/* if the phy is not yet register, retry later*/
|
||||
if (!bp->phy_dev)
|
||||
|
@ -965,9 +958,8 @@ static int macb_open(struct net_device *dev)
|
|||
|
||||
err = macb_alloc_consistent(bp);
|
||||
if (err) {
|
||||
printk(KERN_ERR
|
||||
"%s: Unable to allocate DMA memory (error %d)\n",
|
||||
dev->name, err);
|
||||
netdev_err(dev, "Unable to allocate DMA memory (error %d)\n",
|
||||
err);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -1119,7 +1111,7 @@ static const struct net_device_ops macb_netdev_ops = {
|
|||
|
||||
static int __init macb_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct eth_platform_data *pdata;
|
||||
struct macb_platform_data *pdata;
|
||||
struct resource *regs;
|
||||
struct net_device *dev;
|
||||
struct macb *bp;
|
||||
|
@ -1152,28 +1144,19 @@ static int __init macb_probe(struct platform_device *pdev)
|
|||
|
||||
spin_lock_init(&bp->lock);
|
||||
|
||||
#if defined(CONFIG_ARCH_AT91)
|
||||
bp->pclk = clk_get(&pdev->dev, "macb_clk");
|
||||
bp->pclk = clk_get(&pdev->dev, "pclk");
|
||||
if (IS_ERR(bp->pclk)) {
|
||||
dev_err(&pdev->dev, "failed to get macb_clk\n");
|
||||
goto err_out_free_dev;
|
||||
}
|
||||
clk_enable(bp->pclk);
|
||||
#else
|
||||
bp->pclk = clk_get(&pdev->dev, "pclk");
|
||||
if (IS_ERR(bp->pclk)) {
|
||||
dev_err(&pdev->dev, "failed to get pclk\n");
|
||||
goto err_out_free_dev;
|
||||
}
|
||||
|
||||
bp->hclk = clk_get(&pdev->dev, "hclk");
|
||||
if (IS_ERR(bp->hclk)) {
|
||||
dev_err(&pdev->dev, "failed to get hclk\n");
|
||||
goto err_out_put_pclk;
|
||||
}
|
||||
|
||||
clk_enable(bp->pclk);
|
||||
clk_enable(bp->hclk);
|
||||
#endif
|
||||
|
||||
bp->regs = ioremap(regs->start, resource_size(regs));
|
||||
if (!bp->regs) {
|
||||
|
@ -1185,9 +1168,8 @@ static int __init macb_probe(struct platform_device *pdev)
|
|||
dev->irq = platform_get_irq(pdev, 0);
|
||||
err = request_irq(dev->irq, macb_interrupt, 0, dev->name, dev);
|
||||
if (err) {
|
||||
printk(KERN_ERR
|
||||
"%s: Unable to request IRQ %d (error %d)\n",
|
||||
dev->name, dev->irq, err);
|
||||
dev_err(&pdev->dev, "Unable to request IRQ %d (error %d)\n",
|
||||
dev->irq, err);
|
||||
goto err_out_iounmap;
|
||||
}
|
||||
|
||||
|
@ -1239,13 +1221,12 @@ static int __init macb_probe(struct platform_device *pdev)
|
|||
|
||||
platform_set_drvdata(pdev, dev);
|
||||
|
||||
printk(KERN_INFO "%s: Atmel MACB at 0x%08lx irq %d (%pM)\n",
|
||||
dev->name, dev->base_addr, dev->irq, dev->dev_addr);
|
||||
netdev_info(dev, "Atmel MACB at 0x%08lx irq %d (%pM)\n",
|
||||
dev->base_addr, dev->irq, dev->dev_addr);
|
||||
|
||||
phydev = bp->phy_dev;
|
||||
printk(KERN_INFO "%s: attached PHY driver [%s] "
|
||||
"(mii_bus:phy_addr=%s, irq=%d)\n", dev->name,
|
||||
phydev->drv->name, dev_name(&phydev->dev), phydev->irq);
|
||||
netdev_info(dev, "attached PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)\n",
|
||||
phydev->drv->name, dev_name(&phydev->dev), phydev->irq);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -1256,14 +1237,10 @@ err_out_free_irq:
|
|||
err_out_iounmap:
|
||||
iounmap(bp->regs);
|
||||
err_out_disable_clocks:
|
||||
#ifndef CONFIG_ARCH_AT91
|
||||
clk_disable(bp->hclk);
|
||||
clk_put(bp->hclk);
|
||||
#endif
|
||||
clk_disable(bp->pclk);
|
||||
#ifndef CONFIG_ARCH_AT91
|
||||
err_out_put_pclk:
|
||||
#endif
|
||||
clk_put(bp->pclk);
|
||||
err_out_free_dev:
|
||||
free_netdev(dev);
|
||||
|
@ -1289,10 +1266,8 @@ static int __exit macb_remove(struct platform_device *pdev)
|
|||
unregister_netdev(dev);
|
||||
free_irq(dev->irq, dev);
|
||||
iounmap(bp->regs);
|
||||
#ifndef CONFIG_ARCH_AT91
|
||||
clk_disable(bp->hclk);
|
||||
clk_put(bp->hclk);
|
||||
#endif
|
||||
clk_disable(bp->pclk);
|
||||
clk_put(bp->pclk);
|
||||
free_netdev(dev);
|
||||
|
@ -1310,9 +1285,7 @@ static int macb_suspend(struct platform_device *pdev, pm_message_t state)
|
|||
|
||||
netif_device_detach(netdev);
|
||||
|
||||
#ifndef CONFIG_ARCH_AT91
|
||||
clk_disable(bp->hclk);
|
||||
#endif
|
||||
clk_disable(bp->pclk);
|
||||
|
||||
return 0;
|
||||
|
@ -1324,9 +1297,7 @@ static int macb_resume(struct platform_device *pdev)
|
|||
struct macb *bp = netdev_priv(netdev);
|
||||
|
||||
clk_enable(bp->pclk);
|
||||
#ifndef CONFIG_ARCH_AT91
|
||||
clk_enable(bp->hclk);
|
||||
#endif
|
||||
|
||||
netif_device_attach(netdev);
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Copyright (C) 2004-2006 Atmel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
#ifndef __MACB_PDATA_H__
|
||||
#define __MACB_PDATA_H__
|
||||
|
||||
struct macb_platform_data {
|
||||
u32 phy_mask;
|
||||
u8 phy_irq_pin; /* PHY IRQ */
|
||||
u8 is_rmii; /* using RMII interface? */
|
||||
};
|
||||
|
||||
#endif /* __MACB_PDATA_H__ */
|
Loading…
Reference in New Issue