xref: /openbmc/linux/arch/arm/mach-omap2/devices.c (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
12874c5fdSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later
21dbae815STony Lindgren /*
31dbae815STony Lindgren  * linux/arch/arm/mach-omap2/devices.c
41dbae815STony Lindgren  *
51dbae815STony Lindgren  * OMAP2 platform device setup/initialization
61dbae815STony Lindgren  */
71ff4cb67SSuman Anna 
81dbae815STony Lindgren #include <linux/kernel.h>
91dbae815STony Lindgren #include <linux/init.h>
101dbae815STony Lindgren #include <linux/platform_device.h>
11fced80c7SRussell King #include <linux/io.h>
12917fa280SKevin Hilman #include <linux/clk.h>
13*0bf63e2cSHans Verkuil #include <linux/dma-mapping.h>
14f2ce6231SVaradarajan, Charulatha #include <linux/err.h>
151a5d8190SCharulatha V #include <linux/slab.h>
16ad8dfac6SBenoit Cousson #include <linux/of.h>
171dbae815STony Lindgren 
181dbae815STony Lindgren #include <asm/mach-types.h>
191dbae815STony Lindgren #include <asm/mach/map.h>
201dbae815STony Lindgren 
2145c3eb7dSTony Lindgren #include <linux/omap-dma.h>
222a296c8fSTony Lindgren 
23ee0839c2STony Lindgren #include "iomap.h"
242a296c8fSTony Lindgren #include "omap_hwmod.h"
2525c7d49eSTony Lindgren #include "omap_device.h"
261dbae815STony Lindgren 
277d7e1ebaSTony Lindgren #include "soc.h"
287d7e1ebaSTony Lindgren #include "common.h"
294814ced5SPaul Walmsley #include "control.h"
30576e5bdaSArchit Taneja #include "display.h"
314896e394STony Lindgren 
320abcf618Ssricharan #define L3_MODULES_MAX_LEN 12
33a4dc616aSsricharan #define L3_MODULES 3
340abcf618Ssricharan 
35d8874665STony Lindgren /*-------------------------------------------------------------------------*/
36d8874665STony Lindgren 
37502ad2a6SJavier Martinez Canillas #if IS_ENABLED(CONFIG_VIDEO_OMAP2_VOUT)
38502ad2a6SJavier Martinez Canillas #if IS_ENABLED(CONFIG_FB_OMAP2)
39b227358dSVaibhav Hiremath static struct resource omap_vout_resource[3 - CONFIG_FB_OMAP2_NUM_FBS] = {
40b227358dSVaibhav Hiremath };
41b227358dSVaibhav Hiremath #else
42b227358dSVaibhav Hiremath static struct resource omap_vout_resource[2] = {
43b227358dSVaibhav Hiremath };
44b227358dSVaibhav Hiremath #endif
45b227358dSVaibhav Hiremath 
46*0bf63e2cSHans Verkuil static u64 omap_vout_dma_mask = DMA_BIT_MASK(32);
47*0bf63e2cSHans Verkuil 
48b227358dSVaibhav Hiremath static struct platform_device omap_vout_device = {
49b227358dSVaibhav Hiremath 	.name		= "omap_vout",
50b227358dSVaibhav Hiremath 	.num_resources	= ARRAY_SIZE(omap_vout_resource),
51b227358dSVaibhav Hiremath 	.resource 	= &omap_vout_resource[0],
52b227358dSVaibhav Hiremath 	.id		= -1,
53*0bf63e2cSHans Verkuil 	.dev		= {
54*0bf63e2cSHans Verkuil 		.dma_mask		= &omap_vout_dma_mask,
55*0bf63e2cSHans Verkuil 		.coherent_dma_mask	= DMA_BIT_MASK(32),
56*0bf63e2cSHans Verkuil 	},
57b227358dSVaibhav Hiremath };
58576e5bdaSArchit Taneja 
omap_init_vout(void)59576e5bdaSArchit Taneja int __init omap_init_vout(void)
60b227358dSVaibhav Hiremath {
61576e5bdaSArchit Taneja 	return platform_device_register(&omap_vout_device);
62b227358dSVaibhav Hiremath }
63b227358dSVaibhav Hiremath #else
omap_init_vout(void)64576e5bdaSArchit Taneja int __init omap_init_vout(void) { return 0; }
65b227358dSVaibhav Hiremath #endif
66