diff options
Diffstat (limited to 'include/asm-arm')
-rw-r--r-- | include/asm-arm/arch-s3c2410/uncompress.h | 22 | ||||
-rw-r--r-- | include/asm-arm/hardware/scoop.h | 10 |
2 files changed, 28 insertions, 4 deletions
diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h index d7a4a8354fa9..ddd1578a7ee0 100644 --- a/include/asm-arm/arch-s3c2410/uncompress.h +++ b/include/asm-arm/arch-s3c2410/uncompress.h | |||
@@ -116,6 +116,8 @@ putstr(const char *ptr) | |||
116 | } | 116 | } |
117 | } | 117 | } |
118 | 118 | ||
119 | #define __raw_writel(d,ad) do { *((volatile unsigned int *)(ad)) = (d); } while(0) | ||
120 | |||
119 | /* CONFIG_S3C2410_BOOT_WATCHDOG | 121 | /* CONFIG_S3C2410_BOOT_WATCHDOG |
120 | * | 122 | * |
121 | * Simple boot-time watchdog setup, to reboot the system if there is | 123 | * Simple boot-time watchdog setup, to reboot the system if there is |
@@ -126,8 +128,6 @@ putstr(const char *ptr) | |||
126 | 128 | ||
127 | #define WDOG_COUNT (0xff00) | 129 | #define WDOG_COUNT (0xff00) |
128 | 130 | ||
129 | #define __raw_writel(d,ad) do { *((volatile unsigned int *)(ad)) = (d); } while(0) | ||
130 | |||
131 | static inline void arch_decomp_wdog(void) | 131 | static inline void arch_decomp_wdog(void) |
132 | { | 132 | { |
133 | __raw_writel(WDOG_COUNT, S3C2410_WTCNT); | 133 | __raw_writel(WDOG_COUNT, S3C2410_WTCNT); |
@@ -145,6 +145,24 @@ static void arch_decomp_wdog_start(void) | |||
145 | #define arch_decomp_wdog() | 145 | #define arch_decomp_wdog() |
146 | #endif | 146 | #endif |
147 | 147 | ||
148 | #ifdef CONFIG_S3C2410_BOOT_ERROR_RESET | ||
149 | |||
150 | static void arch_decomp_error(const char *x) | ||
151 | { | ||
152 | putstr("\n\n"); | ||
153 | putstr(x); | ||
154 | putstr("\n\n -- System resetting\n"); | ||
155 | |||
156 | __raw_writel(0x4000, S3C2410_WTDAT); | ||
157 | __raw_writel(0x4000, S3C2410_WTCNT); | ||
158 | __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x40), S3C2410_WTCON); | ||
159 | |||
160 | while(1); | ||
161 | } | ||
162 | |||
163 | #define arch_error arch_decomp_error | ||
164 | #endif | ||
165 | |||
148 | static void error(char *err); | 166 | static void error(char *err); |
149 | 167 | ||
150 | static void | 168 | static void |
diff --git a/include/asm-arm/hardware/scoop.h b/include/asm-arm/hardware/scoop.h index a8f1013930e3..d37bf7443264 100644 --- a/include/asm-arm/hardware/scoop.h +++ b/include/asm-arm/hardware/scoop.h | |||
@@ -52,8 +52,14 @@ struct scoop_pcmcia_dev { | |||
52 | unsigned char keep_rd; | 52 | unsigned char keep_rd; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | extern int scoop_num; | 55 | struct scoop_pcmcia_config { |
56 | extern struct scoop_pcmcia_dev *scoop_devs; | 56 | struct scoop_pcmcia_dev *devs; |
57 | int num_devs; | ||
58 | void (*pcmcia_init)(void); | ||
59 | void (*power_ctrl)(struct device *scoop, unsigned short cpr, int nr); | ||
60 | }; | ||
61 | |||
62 | extern struct scoop_pcmcia_config *platform_scoop_config; | ||
57 | 63 | ||
58 | void reset_scoop(struct device *dev); | 64 | void reset_scoop(struct device *dev); |
59 | unsigned short set_scoop_gpio(struct device *dev, unsigned short bit); | 65 | unsigned short set_scoop_gpio(struct device *dev, unsigned short bit); |