Commit | Line | Data |
---|---|---|
1a59d1b8 | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
16d60bb8 TL |
2 | /* |
3 | * File: arch/arm/plat-omap/fb.c | |
4 | * | |
5 | * Framebuffer device registration for TI OMAP platforms | |
6 | * | |
7 | * Copyright (C) 2006 Nokia Corporation | |
8 | * Author: Imre Deak <imre.deak@nokia.com> | |
16d60bb8 TL |
9 | */ |
10 | ||
11 | #include <linux/module.h> | |
12 | #include <linux/kernel.h> | |
13 | #include <linux/mm.h> | |
14 | #include <linux/init.h> | |
15 | #include <linux/platform_device.h> | |
16 | #include <linux/memblock.h> | |
17 | #include <linux/io.h> | |
18 | #include <linux/omapfb.h> | |
19 | #include <linux/dma-mapping.h> | |
20 | ||
21 | #include <asm/mach/map.h> | |
22 | ||
fcebddb9 | 23 | #if IS_ENABLED(CONFIG_FB_OMAP) |
16d60bb8 TL |
24 | |
25 | static bool omapfb_lcd_configured; | |
26 | static struct omapfb_platform_data omapfb_config; | |
27 | ||
28 | static u64 omap_fb_dma_mask = ~(u32)0; | |
29 | ||
30 | static struct platform_device omap_fb_device = { | |
31 | .name = "omapfb", | |
32 | .id = -1, | |
33 | .dev = { | |
34 | .dma_mask = &omap_fb_dma_mask, | |
35 | .coherent_dma_mask = DMA_BIT_MASK(32), | |
36 | .platform_data = &omapfb_config, | |
37 | }, | |
38 | .num_resources = 0, | |
39 | }; | |
40 | ||
41 | void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) | |
42 | { | |
43 | omapfb_config.lcd = *config; | |
44 | omapfb_lcd_configured = true; | |
45 | } | |
46 | ||
47 | static int __init omap_init_fb(void) | |
48 | { | |
49 | /* | |
50 | * If the board file has not set the lcd config with | |
51 | * omapfb_set_lcd_config(), don't bother registering the omapfb device | |
52 | */ | |
53 | if (!omapfb_lcd_configured) | |
54 | return 0; | |
55 | ||
56 | return platform_device_register(&omap_fb_device); | |
57 | } | |
58 | ||
59 | arch_initcall(omap_init_fb); | |
60 | ||
61 | #else | |
62 | ||
63 | void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) | |
64 | { | |
65 | } | |
66 | ||
67 | #endif |