diff options
Diffstat (limited to 'arch/arm/plat-omap/fb.c')
-rw-r--r-- | arch/arm/plat-omap/fb.c | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c index bcbb9d5dc293..3a77b30f53d4 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/plat-omap/fb.c | |||
@@ -30,9 +30,69 @@ | |||
30 | #include <linux/io.h> | 30 | #include <linux/io.h> |
31 | #include <linux/omapfb.h> | 31 | #include <linux/omapfb.h> |
32 | 32 | ||
33 | #include <mach/hardware.h> | ||
34 | #include <asm/mach/map.h> | 33 | #include <asm/mach/map.h> |
35 | 34 | ||
35 | #include <plat/cpu.h> | ||
36 | |||
37 | #ifdef CONFIG_OMAP2_VRFB | ||
38 | |||
39 | /* | ||
40 | * The first memory resource is the register region for VRFB, | ||
41 | * the rest are VRFB virtual memory areas for each VRFB context. | ||
42 | */ | ||
43 | |||
44 | static const struct resource omap2_vrfb_resources[] = { | ||
45 | DEFINE_RES_MEM_NAMED(0x68008000u, 0x40, "vrfb-regs"), | ||
46 | DEFINE_RES_MEM_NAMED(0x70000000u, 0x4000000, "vrfb-area-0"), | ||
47 | DEFINE_RES_MEM_NAMED(0x74000000u, 0x4000000, "vrfb-area-1"), | ||
48 | DEFINE_RES_MEM_NAMED(0x78000000u, 0x4000000, "vrfb-area-2"), | ||
49 | DEFINE_RES_MEM_NAMED(0x7c000000u, 0x4000000, "vrfb-area-3"), | ||
50 | }; | ||
51 | |||
52 | static const struct resource omap3_vrfb_resources[] = { | ||
53 | DEFINE_RES_MEM_NAMED(0x6C000180u, 0xc0, "vrfb-regs"), | ||
54 | DEFINE_RES_MEM_NAMED(0x70000000u, 0x4000000, "vrfb-area-0"), | ||
55 | DEFINE_RES_MEM_NAMED(0x74000000u, 0x4000000, "vrfb-area-1"), | ||
56 | DEFINE_RES_MEM_NAMED(0x78000000u, 0x4000000, "vrfb-area-2"), | ||
57 | DEFINE_RES_MEM_NAMED(0x7c000000u, 0x4000000, "vrfb-area-3"), | ||
58 | DEFINE_RES_MEM_NAMED(0xe0000000u, 0x4000000, "vrfb-area-4"), | ||
59 | DEFINE_RES_MEM_NAMED(0xe4000000u, 0x4000000, "vrfb-area-5"), | ||
60 | DEFINE_RES_MEM_NAMED(0xe8000000u, 0x4000000, "vrfb-area-6"), | ||
61 | DEFINE_RES_MEM_NAMED(0xec000000u, 0x4000000, "vrfb-area-7"), | ||
62 | DEFINE_RES_MEM_NAMED(0xf0000000u, 0x4000000, "vrfb-area-8"), | ||
63 | DEFINE_RES_MEM_NAMED(0xf4000000u, 0x4000000, "vrfb-area-9"), | ||
64 | DEFINE_RES_MEM_NAMED(0xf8000000u, 0x4000000, "vrfb-area-10"), | ||
65 | DEFINE_RES_MEM_NAMED(0xfc000000u, 0x4000000, "vrfb-area-11"), | ||
66 | }; | ||
67 | |||
68 | static int __init omap_init_vrfb(void) | ||
69 | { | ||
70 | struct platform_device *pdev; | ||
71 | const struct resource *res; | ||
72 | unsigned int num_res; | ||
73 | |||
74 | if (cpu_is_omap24xx()) { | ||
75 | res = omap2_vrfb_resources; | ||
76 | num_res = ARRAY_SIZE(omap2_vrfb_resources); | ||
77 | } else if (cpu_is_omap34xx()) { | ||
78 | res = omap3_vrfb_resources; | ||
79 | num_res = ARRAY_SIZE(omap3_vrfb_resources); | ||
80 | } else { | ||
81 | return 0; | ||
82 | } | ||
83 | |||
84 | pdev = platform_device_register_resndata(NULL, "omapvrfb", -1, | ||
85 | res, num_res, NULL, 0); | ||
86 | |||
87 | if (IS_ERR(pdev)) | ||
88 | return PTR_ERR(pdev); | ||
89 | else | ||
90 | return 0; | ||
91 | } | ||
92 | |||
93 | arch_initcall(omap_init_vrfb); | ||
94 | #endif | ||
95 | |||
36 | #if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) | 96 | #if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) |
37 | 97 | ||
38 | static bool omapfb_lcd_configured; | 98 | static bool omapfb_lcd_configured; |