1/* 2 * Copyright (C) 2010 Pengutronix 3 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> 4 * 5 * This program is free software; you can redistribute it and/or modify it under 6 * the terms of the GNU General Public License version 2 as published by the 7 * Free Software Foundation. 8 */ 9#include <linux/dma-mapping.h> 10 11#include "../hardware.h" 12#include "devices-common.h" 13 14#define imx_imx_fb_data_entry_single(soc, _devid, _size) \ 15 { \ 16 .devid = _devid, \ 17 .iobase = soc ## _LCDC_BASE_ADDR, \ 18 .iosize = _size, \ 19 .irq = soc ## _INT_LCDC, \ 20 } 21 22#ifdef CONFIG_SOC_IMX1 23const struct imx_imx_fb_data imx1_imx_fb_data __initconst = 24 imx_imx_fb_data_entry_single(MX1, "imx1-fb", SZ_4K); 25#endif /* ifdef CONFIG_SOC_IMX1 */ 26 27#ifdef CONFIG_SOC_IMX21 28const struct imx_imx_fb_data imx21_imx_fb_data __initconst = 29 imx_imx_fb_data_entry_single(MX21, "imx21-fb", SZ_4K); 30#endif /* ifdef CONFIG_SOC_IMX21 */ 31 32#ifdef CONFIG_SOC_IMX27 33const struct imx_imx_fb_data imx27_imx_fb_data __initconst = 34 imx_imx_fb_data_entry_single(MX27, "imx21-fb", SZ_4K); 35#endif /* ifdef CONFIG_SOC_IMX27 */ 36 37struct platform_device *__init imx_add_imx_fb( 38 const struct imx_imx_fb_data *data, 39 const struct imx_fb_platform_data *pdata) 40{ 41 struct resource res[] = { 42 { 43 .start = data->iobase, 44 .end = data->iobase + data->iosize - 1, 45 .flags = IORESOURCE_MEM, 46 }, { 47 .start = data->irq, 48 .end = data->irq, 49 .flags = IORESOURCE_IRQ, 50 }, 51 }; 52 return imx_add_platform_device_dmamask(data->devid, 0, 53 res, ARRAY_SIZE(res), 54 pdata, sizeof(*pdata), DMA_BIT_MASK(32)); 55} 56