2012-05-23 15:08:10 -05:00
/*
* DRM / KMS device registration for TI OMAP platforms
*
* Copyright ( C ) 2012 Texas Instruments
* Author : Rob Clark < rob . clark @ linaro . org >
*
* 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 .
*
* This program is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for
* more details .
*
* You should have received a copy of the GNU General Public License along with
* this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# include <linux/module.h>
# include <linux/kernel.h>
# include <linux/mm.h>
# include <linux/init.h>
# include <linux/platform_device.h>
# include <linux/dma-mapping.h>
2012-10-29 09:31:12 +01:00
# include <linux/platform_data/omap_drm.h>
2012-05-23 15:08:10 -05:00
2013-01-20 09:37:23 -06:00
# include "soc.h"
2012-10-02 17:25:48 -07:00
# include "omap_device.h"
2012-10-02 17:41:35 -07:00
# include "omap_hwmod.h"
2012-05-23 15:08:10 -05:00
# if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE)
2012-10-29 09:31:12 +01:00
static struct omap_drm_platform_data platform_data ;
2012-05-23 15:08:10 -05:00
static struct platform_device omap_drm_device = {
. dev = {
. coherent_dma_mask = DMA_BIT_MASK ( 32 ) ,
2012-10-29 09:31:12 +01:00
. platform_data = & platform_data ,
2012-05-23 15:08:10 -05:00
} ,
. name = " omapdrm " ,
. id = 0 ,
} ;
static int __init omap_init_drm ( void )
{
struct omap_hwmod * oh = NULL ;
struct platform_device * pdev ;
/* lookup and populate the DMM information, if present - OMAP4+ */
oh = omap_hwmod_lookup ( " dmm " ) ;
if ( oh ) {
2013-01-26 00:48:53 -07:00
pdev = omap_device_build ( oh - > name , - 1 , oh , NULL , 0 ) ;
2012-05-23 15:08:10 -05:00
WARN ( IS_ERR ( pdev ) , " Could not build omap_device for %s \n " ,
oh - > name ) ;
}
2013-01-20 09:37:23 -06:00
platform_data . omaprev = GET_OMAP_TYPE ;
2012-10-29 09:31:12 +01:00
2012-05-23 15:08:10 -05:00
return platform_device_register ( & omap_drm_device ) ;
}
2013-01-11 11:24:18 -08:00
omap_arch_initcall ( omap_init_drm ) ;
2012-05-23 15:08:10 -05:00
# endif