1/* linux/arch/arm/plat-s3c/dev-fb.c 2 * 3 * Copyright 2008 Simtec Electronics 4 * Ben Dooks <ben@simtec.co.uk> 5 * http://armlinux.simtec.co.uk/ 6 * 7 * S3C series device definition for framebuffer device 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License version 2 as 11 * published by the Free Software Foundation. 12*/ 13 14#include <linux/kernel.h> 15#include <linux/string.h> 16#include <linux/platform_device.h> 17#include <linux/fb.h> 18#include <linux/gfp.h> 19 20#include <mach/irqs.h> 21#include <mach/map.h> 22 23#include <plat/fb.h> 24#include <plat/devs.h> 25#include <plat/cpu.h> 26 27static struct resource s3c_fb_resource[] = { 28 [0] = { 29 .start = S3C_PA_FB, 30 .end = S3C_PA_FB + SZ_16K - 1, 31 .flags = IORESOURCE_MEM, 32 }, 33 [1] = { 34 .start = IRQ_LCD_VSYNC, 35 .end = IRQ_LCD_VSYNC, 36 .flags = IORESOURCE_IRQ, 37 }, 38 [2] = { 39 .start = IRQ_LCD_FIFO, 40 .end = IRQ_LCD_FIFO, 41 .flags = IORESOURCE_IRQ, 42 }, 43 [3] = { 44 .start = IRQ_LCD_SYSTEM, 45 .end = IRQ_LCD_SYSTEM, 46 .flags = IORESOURCE_IRQ, 47 }, 48}; 49 50struct platform_device s3c_device_fb = { 51 .name = "s3c-fb", 52 .id = -1, 53 .num_resources = ARRAY_SIZE(s3c_fb_resource), 54 .resource = s3c_fb_resource, 55 .dev.dma_mask = &s3c_device_fb.dev.coherent_dma_mask, 56 .dev.coherent_dma_mask = 0xffffffffUL, 57}; 58 59void __init s3c_fb_set_platdata(struct s3c_fb_platdata *pd) 60{ 61 struct s3c_fb_platdata *npd; 62 63 if (!pd) { 64 printk(KERN_ERR "%s: no platform data\n", __func__); 65 return; 66 } 67 68 npd = kmemdup(pd, sizeof(struct s3c_fb_platdata), GFP_KERNEL); 69 if (!npd) 70 printk(KERN_ERR "%s: no memory for platform data\n", __func__); 71 72 s3c_device_fb.dev.platform_data = npd; 73} 74