mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
ARM: imx: dynamically register fec devices
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
8a8d20600d
commit
6bd96f3c33
32 changed files with 107 additions and 123 deletions
|
@ -9,6 +9,10 @@
|
|||
#include <mach/mx27.h>
|
||||
#include <mach/devices-common.h>
|
||||
|
||||
extern const struct imx_fec_data imx27_fec_data __initconst;
|
||||
#define imx27_add_fec(pdata) \
|
||||
imx_add_fec(&imx27_fec_data, pdata)
|
||||
|
||||
extern const struct imx_imx_i2c_data imx27_imx_i2c_data[] __initconst;
|
||||
#define imx27_add_imx_i2c(id, pdata) \
|
||||
imx_add_imx_i2c(&imx27_imx_i2c_data[id], pdata)
|
||||
|
|
|
@ -314,27 +314,6 @@ struct platform_device mxc_fb_device = {
|
|||
},
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MACH_MX27
|
||||
static struct resource mxc_fec_resources[] = {
|
||||
{
|
||||
.start = MX27_FEC_BASE_ADDR,
|
||||
.end = MX27_FEC_BASE_ADDR + SZ_4K - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = MX27_INT_FEC,
|
||||
.end = MX27_INT_FEC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device mxc_fec_device = {
|
||||
.name = "fec",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(mxc_fec_resources),
|
||||
.resource = mxc_fec_resources,
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct resource mxc_pwm_resources[] = {
|
||||
{
|
||||
.start = MX2x_PWM_BASE_ADDR,
|
||||
|
|
|
@ -16,7 +16,6 @@ extern struct platform_device mxc_gpt5;
|
|||
extern struct platform_device mxc_wdt;
|
||||
extern struct platform_device mxc_w1_master_device;
|
||||
extern struct platform_device mxc_fb_device;
|
||||
extern struct platform_device mxc_fec_device;
|
||||
extern struct platform_device mxc_pwm_device;
|
||||
extern struct platform_device mxc_sdhc_device0;
|
||||
extern struct platform_device mxc_sdhc_device1;
|
||||
|
|
|
@ -157,7 +157,6 @@ cpuimx27_nand_board_info __initconst = {
|
|||
|
||||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&eukrea_cpuimx27_nor_mtd_device,
|
||||
&mxc_fec_device,
|
||||
&mxc_wdt,
|
||||
&mxc_w1_master_device,
|
||||
};
|
||||
|
@ -261,6 +260,7 @@ static void __init eukrea_cpuimx27_init(void)
|
|||
|
||||
imx27_add_imx_i2c(1, &cpuimx27_i2c1_data);
|
||||
|
||||
imx27_add_fec(NULL);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
|
||||
#if defined(CONFIG_MACH_EUKREA_CPUIMX27_USESDHC2)
|
||||
|
|
|
@ -185,7 +185,6 @@ static struct platform_device visstrim_m10_nor_mtd_device = {
|
|||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&visstrim_gpio_keys_device,
|
||||
&visstrim_m10_nor_mtd_device,
|
||||
&mxc_fec_device,
|
||||
};
|
||||
|
||||
/* Visstrim_M10 uses UART0 as console */
|
||||
|
@ -240,6 +239,7 @@ static void __init visstrim_m10_board_init(void)
|
|||
imx27_add_imx_i2c(1, &visstrim_m10_i2c_data);
|
||||
mxc_register_device(&mxc_sdhc_device0, &visstrim_m10_sdhc_pdata);
|
||||
mxc_register_device(&mxc_otg_host, &visstrim_m10_usbotg_pdata);
|
||||
imx27_add_fec(NULL);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
}
|
||||
|
||||
|
|
|
@ -58,16 +58,12 @@ static const struct imxuart_platform_data uart_pdata __initconst = {
|
|||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
};
|
||||
|
||||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
};
|
||||
|
||||
static void __init mx27lite_init(void)
|
||||
{
|
||||
mxc_gpio_setup_multiple_pins(mx27lite_pins, ARRAY_SIZE(mx27lite_pins),
|
||||
"imx27lite");
|
||||
imx27_add_imx_uart0(&uart_pdata);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
imx27_add_fec(NULL);
|
||||
}
|
||||
|
||||
static void __init mx27lite_timer_init(void)
|
||||
|
|
|
@ -64,10 +64,6 @@ static const struct imxuart_platform_data uart_pdata __initconst = {
|
|||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
};
|
||||
|
||||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
};
|
||||
|
||||
/*
|
||||
* Matrix keyboard
|
||||
*/
|
||||
|
@ -94,7 +90,7 @@ static void __init mx27pdk_init(void)
|
|||
mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins),
|
||||
"mx27pdk");
|
||||
imx27_add_imx_uart0(&uart_pdata);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
imx27_add_fec(NULL);
|
||||
mxc_register_device(&imx_kpp_device, &mx27_3ds_keymap_data);
|
||||
}
|
||||
|
||||
|
|
|
@ -284,7 +284,6 @@ static struct imxmmc_platform_data sdhc2_pdata = {
|
|||
|
||||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&mx27ads_nor_mtd_device,
|
||||
&mxc_fec_device,
|
||||
&mxc_w1_master_device,
|
||||
};
|
||||
|
||||
|
@ -313,6 +312,7 @@ static void __init mx27ads_board_init(void)
|
|||
mxc_register_device(&mxc_sdhc_device0, &sdhc1_pdata);
|
||||
mxc_register_device(&mxc_sdhc_device1, &sdhc2_pdata);
|
||||
|
||||
imx27_add_fec(NULL);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
}
|
||||
|
||||
|
|
|
@ -231,10 +231,6 @@ static struct imxmmc_platform_data sdhc1_pdata = {
|
|||
.exit = mxt_td60_sdhc1_exit,
|
||||
};
|
||||
|
||||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
};
|
||||
|
||||
static const struct imxuart_platform_data uart_pdata __initconst = {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
};
|
||||
|
@ -259,8 +255,7 @@ static void __init mxt_td60_board_init(void)
|
|||
imx27_add_imx_i2c(1, &mxt_td60_i2c1_data);
|
||||
mxc_register_device(&mxc_fb_device, &mxt_td60_fb_data);
|
||||
mxc_register_device(&mxc_sdhc_device0, &sdhc1_pdata);
|
||||
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
imx27_add_fec(NULL);
|
||||
}
|
||||
|
||||
static void __init mxt_td60_timer_init(void)
|
||||
|
|
|
@ -173,7 +173,6 @@ pca100_nand_board_info __initconst = {
|
|||
|
||||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&mxc_w1_master_device,
|
||||
&mxc_fec_device,
|
||||
&mxc_wdt,
|
||||
};
|
||||
|
||||
|
@ -433,6 +432,7 @@ static void __init pca100_init(void)
|
|||
|
||||
mxc_register_device(&mxc_fb_device, &pca100_fb_data);
|
||||
|
||||
imx27_add_fec(NULL);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
}
|
||||
|
||||
|
|
|
@ -173,7 +173,6 @@ pcm038_nand_board_info __initconst = {
|
|||
static struct platform_device *platform_devices[] __initdata = {
|
||||
&pcm038_nor_mtd_device,
|
||||
&mxc_w1_master_device,
|
||||
&mxc_fec_device,
|
||||
&pcm038_sram_mtd_device,
|
||||
&mxc_wdt,
|
||||
};
|
||||
|
@ -325,6 +324,7 @@ static void __init pcm038_init(void)
|
|||
|
||||
mxc_register_device(&mxc_usbh2, &usbh2_pdata);
|
||||
|
||||
imx27_add_fec(NULL);
|
||||
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
|
||||
|
||||
#ifdef CONFIG_MACH_PCM970_BASEBOARD
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#include <mach/mx25.h>
|
||||
#include <mach/devices-common.h>
|
||||
|
||||
extern const struct imx_fec_data imx25_fec_data __initconst;
|
||||
#define imx25_add_fec(pdata) \
|
||||
imx_add_fec(&imx25_fec_data, pdata)
|
||||
|
||||
#define imx25_add_flexcan0(pdata) \
|
||||
imx_add_flexcan(0, MX25_CAN1_BASE_ADDR, SZ_16K, MX25_INT_CAN1, pdata)
|
||||
#define imx25_add_flexcan1(pdata) \
|
||||
|
|
|
@ -208,26 +208,6 @@ int __init imx25_register_gpios(void)
|
|||
return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports));
|
||||
}
|
||||
|
||||
static struct resource mx25_fec_resources[] = {
|
||||
{
|
||||
.start = MX25_FEC_BASE_ADDR,
|
||||
.end = MX25_FEC_BASE_ADDR + 0xfff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = MX25_INT_FEC,
|
||||
.end = MX25_INT_FEC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device mx25_fec_device = {
|
||||
.name = "fec",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(mx25_fec_resources),
|
||||
.resource = mx25_fec_resources,
|
||||
};
|
||||
|
||||
static struct resource mx25_rtc_resources[] = {
|
||||
{
|
||||
.start = MX25_DRYICE_BASE_ADDR,
|
||||
|
|
|
@ -6,7 +6,6 @@ extern struct platform_device mxc_pwm_device1;
|
|||
extern struct platform_device mxc_pwm_device2;
|
||||
extern struct platform_device mxc_pwm_device3;
|
||||
extern struct platform_device mxc_keypad_device;
|
||||
extern struct platform_device mx25_fec_device;
|
||||
extern struct platform_device mx25_rtc_device;
|
||||
extern struct platform_device mx25_fb_device;
|
||||
extern struct platform_device mxc_wdt;
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/fec.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/usb/otg.h>
|
||||
#include <linux/usb/ulpi.h>
|
||||
|
@ -67,7 +66,7 @@ static struct pad_desc eukrea_cpuimx25_pads[] = {
|
|||
MX25_PAD_I2C1_DAT__I2C1_DAT,
|
||||
};
|
||||
|
||||
static struct fec_platform_data mx25_fec_pdata = {
|
||||
static const struct fec_platform_data mx25_fec_pdata __initconst = {
|
||||
.phy = PHY_INTERFACE_MODE_RMII,
|
||||
};
|
||||
|
||||
|
@ -129,7 +128,7 @@ static void __init eukrea_cpuimx25_init(void)
|
|||
imx25_add_imx_uart0(&uart_pdata);
|
||||
imx25_add_mxc_nand(&eukrea_cpuimx25_nand_board_info);
|
||||
mxc_register_device(&mx25_rtc_device, NULL);
|
||||
mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
|
||||
imx25_add_fec(&mx25_fec_pdata);
|
||||
|
||||
i2c_register_board_info(0, eukrea_cpuimx25_i2c_devices,
|
||||
ARRAY_SIZE(eukrea_cpuimx25_i2c_devices));
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/fec.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
|
||||
|
@ -99,7 +98,7 @@ static struct pad_desc mx25pdk_pads[] = {
|
|||
MX25_PAD_KPP_COL3__KPP_COL3,
|
||||
};
|
||||
|
||||
static struct fec_platform_data mx25_fec_pdata = {
|
||||
static const struct fec_platform_data mx25_fec_pdata __initconst = {
|
||||
.phy = PHY_INTERFACE_MODE_RMII,
|
||||
};
|
||||
|
||||
|
@ -192,7 +191,7 @@ static void __init mx25pdk_init(void)
|
|||
mxc_register_device(&mxc_wdt, NULL);
|
||||
|
||||
mx25pdk_fec_reset();
|
||||
mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
|
||||
imx25_add_fec(&mx25_fec_pdata);
|
||||
mxc_register_device(&mx25_kpp_device, &mx25pdk_keymap_data);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#include <mach/mx35.h>
|
||||
#include <mach/devices-common.h>
|
||||
|
||||
extern const struct imx_fec_data imx35_fec_data __initconst;
|
||||
#define imx35_add_fec(pdata) \
|
||||
imx_add_fec(&imx35_fec_data, pdata)
|
||||
|
||||
#define imx35_add_flexcan0(pdata) \
|
||||
imx_add_flexcan(0, MX35_CAN1_BASE_ADDR, SZ_16K, MX35_INT_CAN1, pdata)
|
||||
#define imx35_add_flexcan1(pdata) \
|
||||
|
|
|
@ -281,27 +281,6 @@ struct platform_device mxc_usbh2 = {
|
|||
.num_resources = ARRAY_SIZE(mxc_usbh2_resources),
|
||||
};
|
||||
|
||||
#if defined(CONFIG_ARCH_MX35)
|
||||
static struct resource mxc_fec_resources[] = {
|
||||
{
|
||||
.start = MXC_FEC_BASE_ADDR,
|
||||
.end = MXC_FEC_BASE_ADDR + 0xfff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = MXC_INT_FEC,
|
||||
.end = MXC_INT_FEC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device mxc_fec_device = {
|
||||
.name = "fec",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(mxc_fec_resources),
|
||||
.resource = mxc_fec_resources,
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct resource imx_wdt_resources[] = {
|
||||
{
|
||||
.flags = IORESOURCE_MEM,
|
||||
|
|
|
@ -2,7 +2,6 @@ extern struct platform_device mxc_w1_master_device;
|
|||
extern struct platform_device mx3_ipu;
|
||||
extern struct platform_device mx3_fb;
|
||||
extern struct platform_device mx3_camera;
|
||||
extern struct platform_device mxc_fec_device;
|
||||
extern struct platform_device mxcsdhc_device0;
|
||||
extern struct platform_device mxcsdhc_device1;
|
||||
extern struct platform_device mxc_otg_udc_device;
|
||||
|
|
|
@ -76,7 +76,6 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = {
|
|||
};
|
||||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
&imx_wdt_device0,
|
||||
};
|
||||
|
||||
|
@ -158,6 +157,7 @@ static void __init mxc_board_init(void)
|
|||
mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx35_pads,
|
||||
ARRAY_SIZE(eukrea_cpuimx35_pads));
|
||||
|
||||
imx35_add_fec(NULL);
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
|
||||
imx35_add_imx_uart0(&uart_pdata);
|
||||
|
|
|
@ -74,7 +74,6 @@ static const struct mxc_nand_platform_data mx35pdk_nand_board_info __initconst =
|
|||
};
|
||||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
&mx35pdk_flash,
|
||||
};
|
||||
|
||||
|
@ -131,6 +130,7 @@ static void __init mxc_board_init(void)
|
|||
{
|
||||
mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads));
|
||||
|
||||
imx35_add_fec(NULL);
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
|
||||
imx35_add_imx_uart0(&uart_pdata);
|
||||
|
|
|
@ -140,7 +140,6 @@ static struct i2c_board_info pcm043_i2c_devices[] = {
|
|||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&pcm043_flash,
|
||||
&mxc_fec_device,
|
||||
&imx_wdt_device0,
|
||||
};
|
||||
|
||||
|
@ -363,6 +362,7 @@ static void __init mxc_board_init(void)
|
|||
MXC_AUDMUX_V2_PTCR_TCLKDIR, /* clock is output */
|
||||
MXC_AUDMUX_V2_PDCR_RXDSEL(3));
|
||||
|
||||
imx35_add_fec(NULL);
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
|
||||
imx35_add_imx_uart0(&uart_pdata);
|
||||
|
|
|
@ -108,7 +108,6 @@ static struct platform_device serial_device = {
|
|||
#endif
|
||||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
#if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE)
|
||||
&serial_device,
|
||||
#endif
|
||||
|
@ -253,6 +252,7 @@ static void __init eukrea_cpuimx51_init(void)
|
|||
gpio_direction_input(CPUIMX51_QUARTD_GPIO);
|
||||
gpio_free(CPUIMX51_QUARTD_GPIO);
|
||||
|
||||
imx51_add_fec(NULL);
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
|
||||
imx51_add_imx_i2c(1, &eukrea_cpuimx51_i2c_data);
|
||||
|
|
|
@ -46,10 +46,6 @@
|
|||
#define MX51_USB_PLL_DIV_19_2_MHZ 0x01
|
||||
#define MX51_USB_PLL_DIV_24_MHZ 0x02
|
||||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&mxc_fec_device,
|
||||
};
|
||||
|
||||
static struct pad_desc mx51babbage_pads[] = {
|
||||
/* UART1 */
|
||||
MX51_PAD_UART1_RXD__UART1_RXD,
|
||||
|
@ -290,7 +286,7 @@ static void __init mxc_board_init(void)
|
|||
ARRAY_SIZE(mx51babbage_pads));
|
||||
mxc_init_imx_uart();
|
||||
babbage_fec_reset();
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
imx51_add_fec(NULL);
|
||||
|
||||
imx51_add_imx_i2c(0, &babbage_i2c_data);
|
||||
imx51_add_imx_i2c(1, &babbage_i2c_data);
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#include <mach/mx51.h>
|
||||
#include <mach/devices-common.h>
|
||||
|
||||
extern const struct imx_fec_data imx51_fec_data __initconst;
|
||||
#define imx51_add_fec(pdata) \
|
||||
imx_add_fec(&imx51_fec_data, pdata)
|
||||
|
||||
extern const struct imx_imx_i2c_data imx51_imx_i2c_data[] __initconst;
|
||||
#define imx51_add_imx_i2c(id, pdata) \
|
||||
imx_add_imx_i2c(&imx51_imx_i2c_data[id], pdata)
|
||||
|
|
|
@ -17,25 +17,6 @@
|
|||
#include <mach/imx-uart.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
static struct resource mxc_fec_resources[] = {
|
||||
{
|
||||
.start = MX51_MXC_FEC_BASE_ADDR,
|
||||
.end = MX51_MXC_FEC_BASE_ADDR + 0xfff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = MX51_MXC_INT_FEC,
|
||||
.end = MX51_MXC_INT_FEC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device mxc_fec_device = {
|
||||
.name = "fec",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(mxc_fec_resources),
|
||||
.resource = mxc_fec_resources,
|
||||
};
|
||||
|
||||
static struct resource mxc_hsi2c_resources[] = {
|
||||
{
|
||||
.start = MX51_HSI2C_DMA_BASE_ADDR,
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
extern struct platform_device mxc_fec_device;
|
||||
extern struct platform_device mxc_usbdr_host_device;
|
||||
extern struct platform_device mxc_usbh1_device;
|
||||
extern struct platform_device mxc_usbdr_udc_device;
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
config IMX_HAVE_PLATFORM_ESDHC
|
||||
bool
|
||||
|
||||
config IMX_HAVE_PLATFORM_FEC
|
||||
bool
|
||||
default y if ARCH_MX25 || SOC_IMX27 || ARCH_MX35 || ARCH_MX51
|
||||
|
||||
config IMX_HAVE_PLATFORM_FLEXCAN
|
||||
select HAVE_CAN_FLEXCAN
|
||||
bool
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
obj-$(CONFIG_IMX_HAVE_PLATFORM_ESDHC) += platform-esdhc.o
|
||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_FEC) += platform-fec.o
|
||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_FLEXCAN) += platform-flexcan.o
|
||||
obj-y += platform-imx-dma.o
|
||||
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o
|
||||
|
|
58
arch/arm/plat-mxc/devices/platform-fec.c
Normal file
58
arch/arm/plat-mxc/devices/platform-fec.c
Normal file
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Copyright (C) 2010 Pengutronix
|
||||
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#include <asm/sizes.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/devices-common.h>
|
||||
|
||||
#define imx_fec_data_entry_single(soc) \
|
||||
{ \
|
||||
.iobase = soc ## _FEC_BASE_ADDR, \
|
||||
.irq = soc ## _INT_FEC, \
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_MX25
|
||||
const struct imx_fec_data imx25_fec_data __initconst =
|
||||
imx_fec_data_entry_single(MX25);
|
||||
#endif /* ifdef CONFIG_ARCH_MX25 */
|
||||
|
||||
#ifdef CONFIG_SOC_IMX27
|
||||
const struct imx_fec_data imx27_fec_data __initconst =
|
||||
imx_fec_data_entry_single(MX27);
|
||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
||||
|
||||
#ifdef CONFIG_ARCH_MX35
|
||||
const struct imx_fec_data imx35_fec_data __initconst =
|
||||
imx_fec_data_entry_single(MX35);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_MX51
|
||||
const struct imx_fec_data imx51_fec_data __initconst =
|
||||
imx_fec_data_entry_single(MX51);
|
||||
#endif
|
||||
|
||||
struct platform_device *__init imx_add_fec(
|
||||
const struct imx_fec_data *data,
|
||||
const struct fec_platform_data *pdata)
|
||||
{
|
||||
struct resource res[] = {
|
||||
{
|
||||
.start = data->iobase,
|
||||
.end = data->iobase + SZ_4K,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.start = data->irq,
|
||||
.end = data->irq,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
return imx_add_platform_device("fec", 0 /* -1? */,
|
||||
res, ARRAY_SIZE(res),
|
||||
pdata, sizeof(*pdata));
|
||||
}
|
|
@ -14,6 +14,15 @@ struct platform_device *imx_add_platform_device(const char *name, int id,
|
|||
const struct resource *res, unsigned int num_resources,
|
||||
const void *data, size_t size_data);
|
||||
|
||||
#include <linux/fec.h>
|
||||
struct imx_fec_data {
|
||||
resource_size_t iobase;
|
||||
resource_size_t irq;
|
||||
};
|
||||
struct platform_device *__init imx_add_fec(
|
||||
const struct imx_fec_data *data,
|
||||
const struct fec_platform_data *pdata);
|
||||
|
||||
#include <linux/can/platform/flexcan.h>
|
||||
struct platform_device *__init imx_add_flexcan(int id,
|
||||
resource_size_t iobase, resource_size_t iosize,
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
#define MX51_ATA_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xe0000)
|
||||
#define MX51_SIM_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xe4000)
|
||||
#define MX51_SSI3BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xe8000)
|
||||
#define MX51_MXC_FEC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xec000)
|
||||
#define MX51_FEC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xec000)
|
||||
#define MX51_TVE_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xf0000)
|
||||
#define MX51_VPU_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xf4000)
|
||||
#define MX51_SAHARA_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xf8000)
|
||||
|
@ -366,7 +366,7 @@
|
|||
#define MX51_MXC_INT_GPU2_IRQ 84
|
||||
#define MX51_MXC_INT_GPU2_BUSY 85
|
||||
#define MX51_MXC_INT_RESV86 86
|
||||
#define MX51_MXC_INT_FEC 87
|
||||
#define MX51_INT_FEC 87
|
||||
#define MX51_MXC_INT_OWIRE 88
|
||||
#define MX51_MXC_INT_CTI1_TG2 89
|
||||
#define MX51_MXC_INT_SJC 90
|
||||
|
|
Loading…
Reference in a new issue