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