2010-11-04 19:07:48 +03:00
/*
* Copyright ( C ) 2010 Pengutronix
* Uwe Kleine - Koenig < u . kleine - koenig @ pengutronix . de >
*
* This program is free software ; you can redistribute it and / or modify it under
* the terms of the GNU General Public License version 2 as published by the
* Free Software Foundation .
*/
2011-06-16 15:01:34 +04:00
# include <linux/dma-mapping.h>
2012-09-14 10:14:45 +04:00
# include "../hardware.h"
2012-09-13 11:51:15 +04:00
# include "devices-common.h"
2010-11-04 19:07:48 +03:00
2012-09-16 15:59:53 +04:00
# define imx_imx_fb_data_entry_single(soc, _devid, _size) \
2010-11-04 19:07:48 +03:00
{ \
2012-09-16 15:59:53 +04:00
. devid = _devid , \
2010-11-04 19:07:48 +03:00
. iobase = soc # # _LCDC_BASE_ADDR , \
2010-11-11 17:32:21 +03:00
. iosize = _size , \
2010-11-04 19:07:48 +03:00
. irq = soc # # _INT_LCDC , \
}
2011-03-02 11:11:05 +03:00
# ifdef CONFIG_SOC_IMX1
const struct imx_imx_fb_data imx1_imx_fb_data __initconst =
2012-09-16 15:59:53 +04:00
imx_imx_fb_data_entry_single ( MX1 , " imx1-fb " , SZ_4K ) ;
2011-03-02 11:11:05 +03:00
# endif /* ifdef CONFIG_SOC_IMX1 */
2010-11-04 19:07:48 +03:00
# ifdef CONFIG_SOC_IMX21
const struct imx_imx_fb_data imx21_imx_fb_data __initconst =
2012-09-16 15:59:53 +04:00
imx_imx_fb_data_entry_single ( MX21 , " imx21-fb " , SZ_4K ) ;
2010-11-04 19:07:48 +03:00
# endif /* ifdef CONFIG_SOC_IMX21 */
2010-11-11 20:35:01 +03:00
# ifdef CONFIG_SOC_IMX25
2010-11-11 17:32:21 +03:00
const struct imx_imx_fb_data imx25_imx_fb_data __initconst =
2012-09-16 15:59:53 +04:00
imx_imx_fb_data_entry_single ( MX25 , " imx21-fb " , SZ_16K ) ;
2010-11-11 20:35:01 +03:00
# endif /* ifdef CONFIG_SOC_IMX25 */
2010-11-11 17:32:21 +03:00
2010-11-04 19:07:48 +03:00
# ifdef CONFIG_SOC_IMX27
const struct imx_imx_fb_data imx27_imx_fb_data __initconst =
2012-09-16 15:59:53 +04:00
imx_imx_fb_data_entry_single ( MX27 , " imx21-fb " , SZ_4K ) ;
2010-11-04 19:07:48 +03:00
# endif /* ifdef CONFIG_SOC_IMX27 */
struct platform_device * __init imx_add_imx_fb (
const struct imx_imx_fb_data * data ,
const struct imx_fb_platform_data * pdata )
{
struct resource res [ ] = {
{
. start = data - > iobase ,
2010-11-11 17:32:21 +03:00
. end = data - > iobase + data - > iosize - 1 ,
2010-11-04 19:07:48 +03:00
. flags = IORESOURCE_MEM ,
} , {
. start = data - > irq ,
. end = data - > irq ,
. flags = IORESOURCE_IRQ ,
} ,
} ;
2013-01-13 19:56:42 +04:00
return imx_add_platform_device_dmamask ( data - > devid , 0 ,
2010-11-04 19:07:48 +03:00
res , ARRAY_SIZE ( res ) ,
pdata , sizeof ( * pdata ) , DMA_BIT_MASK ( 32 ) ) ;
}