diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-davinci/devices-da8xx.c | 29 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm365.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm644x.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm646x.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm365.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm644x.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm646x.h | 1 |
7 files changed, 92 insertions, 5 deletions
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index caeb7f4a3a6d..9039221649d4 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
@@ -352,7 +352,7 @@ int __init da8xx_register_watchdog(void) | |||
352 | static struct resource da8xx_emac_resources[] = { | 352 | static struct resource da8xx_emac_resources[] = { |
353 | { | 353 | { |
354 | .start = DA8XX_EMAC_CPPI_PORT_BASE, | 354 | .start = DA8XX_EMAC_CPPI_PORT_BASE, |
355 | .end = DA8XX_EMAC_CPPI_PORT_BASE + 0x5000 - 1, | 355 | .end = DA8XX_EMAC_CPPI_PORT_BASE + SZ_16K - 1, |
356 | .flags = IORESOURCE_MEM, | 356 | .flags = IORESOURCE_MEM, |
357 | }, | 357 | }, |
358 | { | 358 | { |
@@ -396,9 +396,34 @@ static struct platform_device da8xx_emac_device = { | |||
396 | .resource = da8xx_emac_resources, | 396 | .resource = da8xx_emac_resources, |
397 | }; | 397 | }; |
398 | 398 | ||
399 | static struct resource da8xx_mdio_resources[] = { | ||
400 | { | ||
401 | .start = DA8XX_EMAC_MDIO_BASE, | ||
402 | .end = DA8XX_EMAC_MDIO_BASE + SZ_4K - 1, | ||
403 | .flags = IORESOURCE_MEM, | ||
404 | }, | ||
405 | }; | ||
406 | |||
407 | static struct platform_device da8xx_mdio_device = { | ||
408 | .name = "davinci_mdio", | ||
409 | .id = 0, | ||
410 | .num_resources = ARRAY_SIZE(da8xx_mdio_resources), | ||
411 | .resource = da8xx_mdio_resources, | ||
412 | }; | ||
413 | |||
399 | int __init da8xx_register_emac(void) | 414 | int __init da8xx_register_emac(void) |
400 | { | 415 | { |
401 | return platform_device_register(&da8xx_emac_device); | 416 | int ret; |
417 | |||
418 | ret = platform_device_register(&da8xx_mdio_device); | ||
419 | if (ret < 0) | ||
420 | return ret; | ||
421 | ret = platform_device_register(&da8xx_emac_device); | ||
422 | if (ret < 0) | ||
423 | return ret; | ||
424 | ret = clk_add_alias(NULL, dev_name(&da8xx_mdio_device.dev), | ||
425 | NULL, &da8xx_emac_device.dev); | ||
426 | return ret; | ||
402 | } | 427 | } |
403 | 428 | ||
404 | static struct resource da830_mcasp1_resources[] = { | 429 | static struct resource da830_mcasp1_resources[] = { |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 6b6f4c643709..71f0f9d5c56a 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
@@ -699,7 +699,7 @@ static struct emac_platform_data dm365_emac_pdata = { | |||
699 | static struct resource dm365_emac_resources[] = { | 699 | static struct resource dm365_emac_resources[] = { |
700 | { | 700 | { |
701 | .start = DM365_EMAC_BASE, | 701 | .start = DM365_EMAC_BASE, |
702 | .end = DM365_EMAC_BASE + 0x47ff, | 702 | .end = DM365_EMAC_BASE + SZ_16K - 1, |
703 | .flags = IORESOURCE_MEM, | 703 | .flags = IORESOURCE_MEM, |
704 | }, | 704 | }, |
705 | { | 705 | { |
@@ -734,6 +734,21 @@ static struct platform_device dm365_emac_device = { | |||
734 | .resource = dm365_emac_resources, | 734 | .resource = dm365_emac_resources, |
735 | }; | 735 | }; |
736 | 736 | ||
737 | static struct resource dm365_mdio_resources[] = { | ||
738 | { | ||
739 | .start = DM365_EMAC_MDIO_BASE, | ||
740 | .end = DM365_EMAC_MDIO_BASE + SZ_4K - 1, | ||
741 | .flags = IORESOURCE_MEM, | ||
742 | }, | ||
743 | }; | ||
744 | |||
745 | static struct platform_device dm365_mdio_device = { | ||
746 | .name = "davinci_mdio", | ||
747 | .id = 0, | ||
748 | .num_resources = ARRAY_SIZE(dm365_mdio_resources), | ||
749 | .resource = dm365_mdio_resources, | ||
750 | }; | ||
751 | |||
737 | static u8 dm365_default_priorities[DAVINCI_N_AINTC_IRQ] = { | 752 | static u8 dm365_default_priorities[DAVINCI_N_AINTC_IRQ] = { |
738 | [IRQ_VDINT0] = 2, | 753 | [IRQ_VDINT0] = 2, |
739 | [IRQ_VDINT1] = 6, | 754 | [IRQ_VDINT1] = 6, |
@@ -1220,7 +1235,12 @@ static int __init dm365_init_devices(void) | |||
1220 | 1235 | ||
1221 | davinci_cfg_reg(DM365_INT_EDMA_CC); | 1236 | davinci_cfg_reg(DM365_INT_EDMA_CC); |
1222 | platform_device_register(&dm365_edma_device); | 1237 | platform_device_register(&dm365_edma_device); |
1238 | |||
1239 | platform_device_register(&dm365_mdio_device); | ||
1223 | platform_device_register(&dm365_emac_device); | 1240 | platform_device_register(&dm365_emac_device); |
1241 | clk_add_alias(NULL, dev_name(&dm365_mdio_device.dev), | ||
1242 | NULL, &dm365_emac_device.dev); | ||
1243 | |||
1224 | /* Add isif clock alias */ | 1244 | /* Add isif clock alias */ |
1225 | clk_add_alias("master", dm365_isif_dev.name, "vpss_master", NULL); | 1245 | clk_add_alias("master", dm365_isif_dev.name, "vpss_master", NULL); |
1226 | platform_device_register(&dm365_vpss_device); | 1246 | platform_device_register(&dm365_vpss_device); |
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 40fec315c99a..c103b2c8caff 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c | |||
@@ -330,7 +330,7 @@ static struct emac_platform_data dm644x_emac_pdata = { | |||
330 | static struct resource dm644x_emac_resources[] = { | 330 | static struct resource dm644x_emac_resources[] = { |
331 | { | 331 | { |
332 | .start = DM644X_EMAC_BASE, | 332 | .start = DM644X_EMAC_BASE, |
333 | .end = DM644X_EMAC_BASE + 0x47ff, | 333 | .end = DM644X_EMAC_BASE + SZ_16K - 1, |
334 | .flags = IORESOURCE_MEM, | 334 | .flags = IORESOURCE_MEM, |
335 | }, | 335 | }, |
336 | { | 336 | { |
@@ -350,6 +350,21 @@ static struct platform_device dm644x_emac_device = { | |||
350 | .resource = dm644x_emac_resources, | 350 | .resource = dm644x_emac_resources, |
351 | }; | 351 | }; |
352 | 352 | ||
353 | static struct resource dm644x_mdio_resources[] = { | ||
354 | { | ||
355 | .start = DM644X_EMAC_MDIO_BASE, | ||
356 | .end = DM644X_EMAC_MDIO_BASE + SZ_4K - 1, | ||
357 | .flags = IORESOURCE_MEM, | ||
358 | }, | ||
359 | }; | ||
360 | |||
361 | static struct platform_device dm644x_mdio_device = { | ||
362 | .name = "davinci_mdio", | ||
363 | .id = 0, | ||
364 | .num_resources = ARRAY_SIZE(dm644x_mdio_resources), | ||
365 | .resource = dm644x_mdio_resources, | ||
366 | }; | ||
367 | |||
353 | /* | 368 | /* |
354 | * Device specific mux setup | 369 | * Device specific mux setup |
355 | * | 370 | * |
@@ -777,7 +792,12 @@ static int __init dm644x_init_devices(void) | |||
777 | clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL); | 792 | clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL); |
778 | clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL); | 793 | clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL); |
779 | platform_device_register(&dm644x_edma_device); | 794 | platform_device_register(&dm644x_edma_device); |
795 | |||
796 | platform_device_register(&dm644x_mdio_device); | ||
780 | platform_device_register(&dm644x_emac_device); | 797 | platform_device_register(&dm644x_emac_device); |
798 | clk_add_alias(NULL, dev_name(&dm644x_mdio_device.dev), | ||
799 | NULL, &dm644x_emac_device.dev); | ||
800 | |||
781 | platform_device_register(&dm644x_vpss_device); | 801 | platform_device_register(&dm644x_vpss_device); |
782 | platform_device_register(&dm644x_ccdc_dev); | 802 | platform_device_register(&dm644x_ccdc_dev); |
783 | platform_device_register(&vpfe_capture_dev); | 803 | platform_device_register(&vpfe_capture_dev); |
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index e4a3df1872ac..8da886bc6df5 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
@@ -366,7 +366,7 @@ static struct emac_platform_data dm646x_emac_pdata = { | |||
366 | static struct resource dm646x_emac_resources[] = { | 366 | static struct resource dm646x_emac_resources[] = { |
367 | { | 367 | { |
368 | .start = DM646X_EMAC_BASE, | 368 | .start = DM646X_EMAC_BASE, |
369 | .end = DM646X_EMAC_BASE + 0x47ff, | 369 | .end = DM646X_EMAC_BASE + SZ_16K - 1, |
370 | .flags = IORESOURCE_MEM, | 370 | .flags = IORESOURCE_MEM, |
371 | }, | 371 | }, |
372 | { | 372 | { |
@@ -401,6 +401,21 @@ static struct platform_device dm646x_emac_device = { | |||
401 | .resource = dm646x_emac_resources, | 401 | .resource = dm646x_emac_resources, |
402 | }; | 402 | }; |
403 | 403 | ||
404 | static struct resource dm646x_mdio_resources[] = { | ||
405 | { | ||
406 | .start = DM646X_EMAC_MDIO_BASE, | ||
407 | .end = DM646X_EMAC_MDIO_BASE + SZ_4K - 1, | ||
408 | .flags = IORESOURCE_MEM, | ||
409 | }, | ||
410 | }; | ||
411 | |||
412 | static struct platform_device dm646x_mdio_device = { | ||
413 | .name = "davinci_mdio", | ||
414 | .id = 0, | ||
415 | .num_resources = ARRAY_SIZE(dm646x_mdio_resources), | ||
416 | .resource = dm646x_mdio_resources, | ||
417 | }; | ||
418 | |||
404 | /* | 419 | /* |
405 | * Device specific mux setup | 420 | * Device specific mux setup |
406 | * | 421 | * |
@@ -897,7 +912,11 @@ static int __init dm646x_init_devices(void) | |||
897 | if (!cpu_is_davinci_dm646x()) | 912 | if (!cpu_is_davinci_dm646x()) |
898 | return 0; | 913 | return 0; |
899 | 914 | ||
915 | platform_device_register(&dm646x_mdio_device); | ||
900 | platform_device_register(&dm646x_emac_device); | 916 | platform_device_register(&dm646x_emac_device); |
917 | clk_add_alias(NULL, dev_name(&dm646x_mdio_device.dev), | ||
918 | NULL, &dm646x_emac_device.dev); | ||
919 | |||
901 | return 0; | 920 | return 0; |
902 | } | 921 | } |
903 | postcore_initcall(dm646x_init_devices); | 922 | postcore_initcall(dm646x_init_devices); |
diff --git a/arch/arm/mach-davinci/include/mach/dm365.h b/arch/arm/mach-davinci/include/mach/dm365.h index ea5df3b49ec4..dbb5052b6c85 100644 --- a/arch/arm/mach-davinci/include/mach/dm365.h +++ b/arch/arm/mach-davinci/include/mach/dm365.h | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <media/davinci/vpfe_capture.h> | 21 | #include <media/davinci/vpfe_capture.h> |
22 | 22 | ||
23 | #define DM365_EMAC_BASE (0x01D07000) | 23 | #define DM365_EMAC_BASE (0x01D07000) |
24 | #define DM365_EMAC_MDIO_BASE (DM365_EMAC_BASE + 0x4000) | ||
24 | #define DM365_EMAC_CNTRL_OFFSET (0x0000) | 25 | #define DM365_EMAC_CNTRL_OFFSET (0x0000) |
25 | #define DM365_EMAC_CNTRL_MOD_OFFSET (0x3000) | 26 | #define DM365_EMAC_CNTRL_MOD_OFFSET (0x3000) |
26 | #define DM365_EMAC_CNTRL_RAM_OFFSET (0x1000) | 27 | #define DM365_EMAC_CNTRL_RAM_OFFSET (0x1000) |
diff --git a/arch/arm/mach-davinci/include/mach/dm644x.h b/arch/arm/mach-davinci/include/mach/dm644x.h index 6fca568a0fd2..515911711a29 100644 --- a/arch/arm/mach-davinci/include/mach/dm644x.h +++ b/arch/arm/mach-davinci/include/mach/dm644x.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <media/davinci/vpfe_capture.h> | 28 | #include <media/davinci/vpfe_capture.h> |
29 | 29 | ||
30 | #define DM644X_EMAC_BASE (0x01C80000) | 30 | #define DM644X_EMAC_BASE (0x01C80000) |
31 | #define DM644X_EMAC_MDIO_BASE (DM644X_EMAC_BASE + 0x4000) | ||
31 | #define DM644X_EMAC_CNTRL_OFFSET (0x0000) | 32 | #define DM644X_EMAC_CNTRL_OFFSET (0x0000) |
32 | #define DM644X_EMAC_CNTRL_MOD_OFFSET (0x1000) | 33 | #define DM644X_EMAC_CNTRL_MOD_OFFSET (0x1000) |
33 | #define DM644X_EMAC_CNTRL_RAM_OFFSET (0x2000) | 34 | #define DM644X_EMAC_CNTRL_RAM_OFFSET (0x2000) |
diff --git a/arch/arm/mach-davinci/include/mach/dm646x.h b/arch/arm/mach-davinci/include/mach/dm646x.h index 0a27ee9a70e1..1c4dca924ac0 100644 --- a/arch/arm/mach-davinci/include/mach/dm646x.h +++ b/arch/arm/mach-davinci/include/mach/dm646x.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/davinci_emac.h> | 19 | #include <linux/davinci_emac.h> |
20 | 20 | ||
21 | #define DM646X_EMAC_BASE (0x01C80000) | 21 | #define DM646X_EMAC_BASE (0x01C80000) |
22 | #define DM646X_EMAC_MDIO_BASE (DM646X_EMAC_BASE + 0x4000) | ||
22 | #define DM646X_EMAC_CNTRL_OFFSET (0x0000) | 23 | #define DM646X_EMAC_CNTRL_OFFSET (0x0000) |
23 | #define DM646X_EMAC_CNTRL_MOD_OFFSET (0x1000) | 24 | #define DM646X_EMAC_CNTRL_MOD_OFFSET (0x1000) |
24 | #define DM646X_EMAC_CNTRL_RAM_OFFSET (0x2000) | 25 | #define DM646X_EMAC_CNTRL_RAM_OFFSET (0x2000) |