xref: /OK3568_Linux_fs/kernel/arch/arm/mach-s3c/devs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2011 Samsung Electronics Co., Ltd.
4*4882a593Smuzhiyun  *		http://www.samsung.com
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * Copyright (c) 2004 Simtec Electronics
7*4882a593Smuzhiyun  * Ben Dooks <ben@simtec.co.uk>
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * Header file for s3c2410 standard platform devices
10*4882a593Smuzhiyun  */
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #ifndef __PLAT_DEVS_H
13*4882a593Smuzhiyun #define __PLAT_DEVS_H __FILE__
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #include <linux/platform_device.h>
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun struct s3c24xx_uart_resources {
18*4882a593Smuzhiyun 	struct resource		*resources;
19*4882a593Smuzhiyun 	unsigned long		 nr_resources;
20*4882a593Smuzhiyun };
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun extern struct s3c24xx_uart_resources s3c2410_uart_resources[];
23*4882a593Smuzhiyun extern struct s3c24xx_uart_resources s3c64xx_uart_resources[];
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun extern struct platform_device *s3c24xx_uart_devs[];
26*4882a593Smuzhiyun extern struct platform_device *s3c24xx_uart_src[];
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_ac97;
29*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_iis0;
30*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_iis1;
31*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_iisv4;
32*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_onenand1;
33*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_pcm0;
34*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_pcm1;
35*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_spi0;
36*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_spi1;
37*4882a593Smuzhiyun extern struct platform_device s3c64xx_device_spi2;
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun extern struct platform_device s3c_device_adc;
40*4882a593Smuzhiyun extern struct platform_device s3c_device_cfcon;
41*4882a593Smuzhiyun extern struct platform_device s3c_device_fb;
42*4882a593Smuzhiyun extern struct platform_device s3c_device_hwmon;
43*4882a593Smuzhiyun extern struct platform_device s3c_device_hsmmc0;
44*4882a593Smuzhiyun extern struct platform_device s3c_device_hsmmc1;
45*4882a593Smuzhiyun extern struct platform_device s3c_device_hsmmc2;
46*4882a593Smuzhiyun extern struct platform_device s3c_device_hsmmc3;
47*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c0;
48*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c1;
49*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c2;
50*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c3;
51*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c4;
52*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c5;
53*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c6;
54*4882a593Smuzhiyun extern struct platform_device s3c_device_i2c7;
55*4882a593Smuzhiyun extern struct platform_device s3c_device_iis;
56*4882a593Smuzhiyun extern struct platform_device s3c_device_lcd;
57*4882a593Smuzhiyun extern struct platform_device s3c_device_nand;
58*4882a593Smuzhiyun extern struct platform_device s3c_device_ohci;
59*4882a593Smuzhiyun extern struct platform_device s3c_device_onenand;
60*4882a593Smuzhiyun extern struct platform_device s3c_device_rtc;
61*4882a593Smuzhiyun extern struct platform_device s3c_device_sdi;
62*4882a593Smuzhiyun extern struct platform_device s3c_device_spi0;
63*4882a593Smuzhiyun extern struct platform_device s3c_device_spi1;
64*4882a593Smuzhiyun extern struct platform_device s3c_device_ts;
65*4882a593Smuzhiyun extern struct platform_device s3c_device_timer[];
66*4882a593Smuzhiyun extern struct platform_device s3c_device_usbgadget;
67*4882a593Smuzhiyun extern struct platform_device s3c_device_usb_hsotg;
68*4882a593Smuzhiyun extern struct platform_device s3c_device_usb_hsudc;
69*4882a593Smuzhiyun extern struct platform_device s3c_device_wdt;
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun extern struct platform_device samsung_asoc_idma;
72*4882a593Smuzhiyun extern struct platform_device samsung_device_keypad;
73*4882a593Smuzhiyun extern struct platform_device samsung_device_pwm;
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun /* s3c2440 specific devices */
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun #ifdef CONFIG_CPU_S3C2440
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun extern struct platform_device s3c_device_camif;
80*4882a593Smuzhiyun extern struct platform_device s3c_device_ac97;
81*4882a593Smuzhiyun 
82*4882a593Smuzhiyun #endif
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun /**
85*4882a593Smuzhiyun  * s3c_set_platdata() - helper for setting platform data
86*4882a593Smuzhiyun  * @pd: The default platform data for this device.
87*4882a593Smuzhiyun  * @pdsize: The size of the platform data.
88*4882a593Smuzhiyun  * @pdev: Pointer to the device to fill in.
89*4882a593Smuzhiyun  *
90*4882a593Smuzhiyun  * This helper replaces a number of calls that copy and then set the
91*4882a593Smuzhiyun  * platform data of the device.
92*4882a593Smuzhiyun  */
93*4882a593Smuzhiyun extern void *s3c_set_platdata(void *pd, size_t pdsize,
94*4882a593Smuzhiyun 			      struct platform_device *pdev);
95*4882a593Smuzhiyun 
96*4882a593Smuzhiyun #endif /* __PLAT_DEVS_H */
97