1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0-or-later 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * linux/arch/arm/mach-omap2/devices.c 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * OMAP2 platform device setup/initialization 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #include <linux/kernel.h> 9*4882a593Smuzhiyun #include <linux/init.h> 10*4882a593Smuzhiyun #include <linux/platform_device.h> 11*4882a593Smuzhiyun #include <linux/io.h> 12*4882a593Smuzhiyun #include <linux/clk.h> 13*4882a593Smuzhiyun #include <linux/dma-mapping.h> 14*4882a593Smuzhiyun #include <linux/err.h> 15*4882a593Smuzhiyun #include <linux/slab.h> 16*4882a593Smuzhiyun #include <linux/of.h> 17*4882a593Smuzhiyun #include <linux/pinctrl/machine.h> 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #include <asm/mach-types.h> 20*4882a593Smuzhiyun #include <asm/mach/map.h> 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #include <linux/omap-dma.h> 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #include "iomap.h" 25*4882a593Smuzhiyun #include "omap_hwmod.h" 26*4882a593Smuzhiyun #include "omap_device.h" 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #include "soc.h" 29*4882a593Smuzhiyun #include "common.h" 30*4882a593Smuzhiyun #include "control.h" 31*4882a593Smuzhiyun #include "display.h" 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #define L3_MODULES_MAX_LEN 12 34*4882a593Smuzhiyun #define L3_MODULES 3 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun /*-------------------------------------------------------------------------*/ 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #if IS_ENABLED(CONFIG_VIDEO_OMAP2_VOUT) 39*4882a593Smuzhiyun #if IS_ENABLED(CONFIG_FB_OMAP2) 40*4882a593Smuzhiyun static struct resource omap_vout_resource[3 - CONFIG_FB_OMAP2_NUM_FBS] = { 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun #else 43*4882a593Smuzhiyun static struct resource omap_vout_resource[2] = { 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun #endif 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun static u64 omap_vout_dma_mask = DMA_BIT_MASK(32); 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun static struct platform_device omap_vout_device = { 50*4882a593Smuzhiyun .name = "omap_vout", 51*4882a593Smuzhiyun .num_resources = ARRAY_SIZE(omap_vout_resource), 52*4882a593Smuzhiyun .resource = &omap_vout_resource[0], 53*4882a593Smuzhiyun .id = -1, 54*4882a593Smuzhiyun .dev = { 55*4882a593Smuzhiyun .dma_mask = &omap_vout_dma_mask, 56*4882a593Smuzhiyun .coherent_dma_mask = DMA_BIT_MASK(32), 57*4882a593Smuzhiyun }, 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun omap_init_vout(void)60*4882a593Smuzhiyunint __init omap_init_vout(void) 61*4882a593Smuzhiyun { 62*4882a593Smuzhiyun return platform_device_register(&omap_vout_device); 63*4882a593Smuzhiyun } 64*4882a593Smuzhiyun #else omap_init_vout(void)65*4882a593Smuzhiyunint __init omap_init_vout(void) { return 0; } 66*4882a593Smuzhiyun #endif 67