diff options
Diffstat (limited to 'arch/arm/mach-omap2/drm.c')
| -rw-r--r-- | arch/arm/mach-omap2/drm.c | 61 | 
1 files changed, 61 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/drm.c b/arch/arm/mach-omap2/drm.c new file mode 100644 index 00000000000..72e0f01b715 --- /dev/null +++ b/arch/arm/mach-omap2/drm.c @@ -0,0 +1,61 @@ +/* + * 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> + +#include <plat/omap_device.h> +#include <plat/omap_hwmod.h> + +#if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE) + +static struct platform_device omap_drm_device = { +	.dev = { +		.coherent_dma_mask = DMA_BIT_MASK(32), +	}, +	.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) { +		pdev = omap_device_build(oh->name, -1, oh, NULL, 0, NULL, 0, +					false); +		WARN(IS_ERR(pdev), "Could not build omap_device for %s\n", +			oh->name); +	} + +	return platform_device_register(&omap_drm_device); + +} + +arch_initcall(omap_init_drm); + +#endif  |