Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
0004  *      http://www.samsung.com
0005  *
0006  * Common Header for S3C24XX SoCs
0007  */
0008 
0009 #ifndef __ARCH_ARM_MACH_S3C24XX_COMMON_H
0010 #define __ARCH_ARM_MACH_S3C24XX_COMMON_H __FILE__
0011 
0012 #include <linux/reboot.h>
0013 #include "irqs.h"
0014 
0015 struct s3c2410_uartcfg;
0016 
0017 #ifdef CONFIG_CPU_S3C2410
0018 extern  int s3c2410_init(void);
0019 extern  int s3c2410a_init(void);
0020 extern void s3c2410_map_io(void);
0021 extern void s3c2410_init_uarts(struct s3c2410_uartcfg *cfg, int no);
0022 extern void s3c2410_init_clocks(int xtal);
0023 extern void s3c2410_init_irq(void);
0024 #else
0025 #define s3c2410_init_clocks NULL
0026 #define s3c2410_init_uarts NULL
0027 #define s3c2410_map_io NULL
0028 #define s3c2410_init NULL
0029 #define s3c2410a_init NULL
0030 #endif
0031 
0032 #ifdef CONFIG_CPU_S3C2412
0033 extern  int s3c2412_init(void);
0034 extern void s3c2412_map_io(void);
0035 extern void s3c2412_init_uarts(struct s3c2410_uartcfg *cfg, int no);
0036 extern void s3c2412_init_clocks(int xtal);
0037 extern  int s3c2412_baseclk_add(void);
0038 extern void s3c2412_init_irq(void);
0039 #else
0040 #define s3c2412_init_clocks NULL
0041 #define s3c2412_init_uarts NULL
0042 #define s3c2412_map_io NULL
0043 #define s3c2412_init NULL
0044 #endif
0045 
0046 #ifdef CONFIG_CPU_S3C2416
0047 extern  int s3c2416_init(void);
0048 extern void s3c2416_map_io(void);
0049 extern void s3c2416_init_uarts(struct s3c2410_uartcfg *cfg, int no);
0050 extern void s3c2416_init_clocks(int xtal);
0051 extern  int s3c2416_baseclk_add(void);
0052 extern void s3c2416_init_irq(void);
0053 
0054 extern struct syscore_ops s3c2416_irq_syscore_ops;
0055 #else
0056 #define s3c2416_init_clocks NULL
0057 #define s3c2416_init_uarts NULL
0058 #define s3c2416_map_io NULL
0059 #define s3c2416_init NULL
0060 #endif
0061 
0062 #if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442)
0063 extern void s3c244x_map_io(void);
0064 extern void s3c244x_init_uarts(struct s3c2410_uartcfg *cfg, int no);
0065 #else
0066 #define s3c244x_init_uarts NULL
0067 #endif
0068 
0069 #ifdef CONFIG_CPU_S3C2440
0070 extern  int s3c2440_init(void);
0071 extern void s3c2440_map_io(void);
0072 extern void s3c2440_init_clocks(int xtal);
0073 extern void s3c2440_init_irq(void);
0074 #else
0075 #define s3c2440_init NULL
0076 #define s3c2440_map_io NULL
0077 #endif
0078 
0079 #ifdef CONFIG_CPU_S3C2442
0080 extern  int s3c2442_init(void);
0081 extern void s3c2442_map_io(void);
0082 extern void s3c2442_init_clocks(int xtal);
0083 extern void s3c2442_init_irq(void);
0084 #else
0085 #define s3c2442_init NULL
0086 #define s3c2442_map_io NULL
0087 #endif
0088 
0089 #ifdef CONFIG_CPU_S3C2443
0090 extern  int s3c2443_init(void);
0091 extern void s3c2443_map_io(void);
0092 extern void s3c2443_init_uarts(struct s3c2410_uartcfg *cfg, int no);
0093 extern void s3c2443_init_clocks(int xtal);
0094 extern  int s3c2443_baseclk_add(void);
0095 extern void s3c2443_init_irq(void);
0096 #else
0097 #define s3c2443_init_clocks NULL
0098 #define s3c2443_init_uarts NULL
0099 #define s3c2443_map_io NULL
0100 #define s3c2443_init NULL
0101 #endif
0102 
0103 extern struct syscore_ops s3c24xx_irq_syscore_ops;
0104 
0105 extern struct platform_device s3c2410_device_dma;
0106 extern struct platform_device s3c2412_device_dma;
0107 extern struct platform_device s3c2440_device_dma;
0108 extern struct platform_device s3c2443_device_dma;
0109 
0110 extern struct platform_device s3c2410_device_dclk;
0111 
0112 enum s3c24xx_timer_mode {
0113     S3C24XX_PWM0,
0114     S3C24XX_PWM1,
0115     S3C24XX_PWM2,
0116     S3C24XX_PWM3,
0117     S3C24XX_PWM4,
0118 };
0119 
0120 extern void __init s3c24xx_set_timer_source(enum s3c24xx_timer_mode event,
0121                         enum s3c24xx_timer_mode source);
0122 extern void __init s3c24xx_timer_init(void);
0123 
0124 #endif /* __ARCH_ARM_MACH_S3C24XX_COMMON_H */