1/* 2 * File: arch/arm/plat-omap/fb.c 3 * 4 * Framebuffer device registration for TI OMAP platforms 5 * 6 * Copyright (C) 2006 Nokia Corporation 7 * Author: Imre Deak <imre.deak@nokia.com> 8 * 9 * This program is free software; you can redistribute it and/or modify it 10 * under the terms of the GNU General Public License as published by the 11 * Free Software Foundation; either version 2 of the License, or (at your 12 * option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, but 15 * WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 * General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License along 20 * with this program; if not, write to the Free Software Foundation, Inc., 21 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22 */ 23 24#include <linux/module.h> 25#include <linux/kernel.h> 26#include <linux/mm.h> 27#include <linux/init.h> 28#include <linux/platform_device.h> 29#include <linux/memblock.h> 30#include <linux/io.h> 31#include <linux/omapfb.h> 32#include <linux/dma-mapping.h> 33 34#include <asm/mach/map.h> 35 36#if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) 37 38static bool omapfb_lcd_configured; 39static struct omapfb_platform_data omapfb_config; 40 41static u64 omap_fb_dma_mask = ~(u32)0; 42 43static struct platform_device omap_fb_device = { 44 .name = "omapfb", 45 .id = -1, 46 .dev = { 47 .dma_mask = &omap_fb_dma_mask, 48 .coherent_dma_mask = DMA_BIT_MASK(32), 49 .platform_data = &omapfb_config, 50 }, 51 .num_resources = 0, 52}; 53 54void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) 55{ 56 omapfb_config.lcd = *config; 57 omapfb_lcd_configured = true; 58} 59 60static int __init omap_init_fb(void) 61{ 62 /* 63 * If the board file has not set the lcd config with 64 * omapfb_set_lcd_config(), don't bother registering the omapfb device 65 */ 66 if (!omapfb_lcd_configured) 67 return 0; 68 69 return platform_device_register(&omap_fb_device); 70} 71 72arch_initcall(omap_init_fb); 73 74#else 75 76void __init omapfb_set_lcd_config(const struct omap_lcd_config *config) 77{ 78} 79 80#endif 81