diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/head-common.S | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/micro9.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-ks8695/include/mach/regs-switch.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/irq.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-pxa/palmtc.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-pxa/spitz.c | 39 |
6 files changed, 40 insertions, 23 deletions
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index 885a7214418d..b9505aa267c0 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
@@ -97,7 +97,7 @@ __error_a: | |||
97 | bl printhex8 | 97 | bl printhex8 |
98 | adr r0, str_a2 | 98 | adr r0, str_a2 |
99 | bl printascii | 99 | bl printascii |
100 | adr r3, 3f | 100 | adr r3, 4f |
101 | ldmia r3, {r4, r5, r6} @ get machine desc list | 101 | ldmia r3, {r4, r5, r6} @ get machine desc list |
102 | sub r4, r3, r4 @ get offset between virt&phys | 102 | sub r4, r3, r4 @ get offset between virt&phys |
103 | add r5, r5, r4 @ convert virt addresses to | 103 | add r5, r5, r4 @ convert virt addresses to |
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index d83b80478b09..f3757a1c5a10 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/mtd/physmap.h> | 17 | #include <linux/mtd/physmap.h> |
18 | #include <linux/io.h> | ||
18 | 19 | ||
19 | #include <mach/hardware.h> | 20 | #include <mach/hardware.h> |
20 | 21 | ||
diff --git a/arch/arm/mach-ks8695/include/mach/regs-switch.h b/arch/arm/mach-ks8695/include/mach/regs-switch.h index 56d12e8de895..97e8acb1cf6c 100644 --- a/arch/arm/mach-ks8695/include/mach/regs-switch.h +++ b/arch/arm/mach-ks8695/include/mach/regs-switch.h | |||
@@ -25,7 +25,7 @@ | |||
25 | #define KS8695_SEC1 (0x04) /* Switch Engine Control 1 */ | 25 | #define KS8695_SEC1 (0x04) /* Switch Engine Control 1 */ |
26 | #define KS8695_SEC2 (0x08) /* Switch Engine Control 2 */ | 26 | #define KS8695_SEC2 (0x08) /* Switch Engine Control 2 */ |
27 | 27 | ||
28 | #define KS8695_P(x)_C(z) (0xc0 + (((x)-1)*3 + ((z)-1))*4) /* Port Configuration Registers */ | 28 | #define KS8695_SEPXCZ(x,z) (0x0c + (((x)-1)*3 + ((z)-1))*4) /* Port Configuration Registers */ |
29 | 29 | ||
30 | #define KS8695_SEP12AN (0x48) /* Port 1 & 2 Auto-Negotiation */ | 30 | #define KS8695_SEP12AN (0x48) /* Port 1 & 2 Auto-Negotiation */ |
31 | #define KS8695_SEP34AN (0x4c) /* Port 3 & 4 Auto-Negotiation */ | 31 | #define KS8695_SEP34AN (0x4c) /* Port 3 & 4 Auto-Negotiation */ |
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index d694ce289668..6112af431fa4 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -25,6 +25,8 @@ | |||
25 | 25 | ||
26 | #include "generic.h" | 26 | #include "generic.h" |
27 | 27 | ||
28 | #define MAX_INTERNAL_IRQS 128 | ||
29 | |||
28 | #define IRQ_BIT(n) (((n) - PXA_IRQ(0)) & 0x1f) | 30 | #define IRQ_BIT(n) (((n) - PXA_IRQ(0)) & 0x1f) |
29 | #define _ICMR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICMR2 : &ICMR)) | 31 | #define _ICMR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICMR2 : &ICMR)) |
30 | #define _ICLR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICLR2 : &ICLR)) | 32 | #define _ICLR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICLR2 : &ICLR)) |
@@ -122,6 +124,8 @@ void __init pxa_init_irq(int irq_nr, set_wake_t fn) | |||
122 | { | 124 | { |
123 | int irq, i; | 125 | int irq, i; |
124 | 126 | ||
127 | BUG_ON(irq_nr > MAX_INTERNAL_IRQS); | ||
128 | |||
125 | pxa_internal_irq_nr = irq_nr; | 129 | pxa_internal_irq_nr = irq_nr; |
126 | 130 | ||
127 | for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq += 32) { | 131 | for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq += 32) { |
@@ -149,7 +153,8 @@ void __init pxa_init_irq(int irq_nr, set_wake_t fn) | |||
149 | } | 153 | } |
150 | 154 | ||
151 | #ifdef CONFIG_PM | 155 | #ifdef CONFIG_PM |
152 | static unsigned long saved_icmr[2]; | 156 | static unsigned long saved_icmr[MAX_INTERNAL_IRQS/32]; |
157 | static unsigned long saved_ipr[MAX_INTERNAL_IRQS]; | ||
153 | 158 | ||
154 | static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) | 159 | static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) |
155 | { | 160 | { |
@@ -159,6 +164,8 @@ static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) | |||
159 | saved_icmr[i] = _ICMR(irq); | 164 | saved_icmr[i] = _ICMR(irq); |
160 | _ICMR(irq) = 0; | 165 | _ICMR(irq) = 0; |
161 | } | 166 | } |
167 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
168 | saved_ipr[i] = IPR(i); | ||
162 | 169 | ||
163 | return 0; | 170 | return 0; |
164 | } | 171 | } |
@@ -171,6 +178,8 @@ static int pxa_irq_resume(struct sys_device *dev) | |||
171 | _ICMR(irq) = saved_icmr[i]; | 178 | _ICMR(irq) = saved_icmr[i]; |
172 | _ICLR(irq) = 0; | 179 | _ICLR(irq) = 0; |
173 | } | 180 | } |
181 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
182 | IPR(i) = saved_ipr[i]; | ||
174 | 183 | ||
175 | ICCR = 1; | 184 | ICCR = 1; |
176 | return 0; | 185 | return 0; |
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index bb2cc0dd44ec..0b92291a58f6 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c | |||
@@ -292,10 +292,10 @@ const static unsigned int palmtc_keypad_col_gpios[] = { | |||
292 | 292 | ||
293 | static struct matrix_keypad_platform_data palmtc_keypad_platform_data = { | 293 | static struct matrix_keypad_platform_data palmtc_keypad_platform_data = { |
294 | .keymap_data = &palmtc_keymap_data, | 294 | .keymap_data = &palmtc_keymap_data, |
295 | .col_gpios = palmtc_keypad_row_gpios, | 295 | .row_gpios = palmtc_keypad_row_gpios, |
296 | .num_col_gpios = 12, | 296 | .num_row_gpios = ARRAY_SIZE(palmtc_keypad_row_gpios), |
297 | .row_gpios = palmtc_keypad_col_gpios, | 297 | .col_gpios = palmtc_keypad_col_gpios, |
298 | .num_row_gpios = 4, | 298 | .num_col_gpios = ARRAY_SIZE(palmtc_keypad_col_gpios), |
299 | .active_low = 1, | 299 | .active_low = 1, |
300 | 300 | ||
301 | .debounce_ms = 20, | 301 | .debounce_ms = 20, |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 82ff5733e4dc..3da45d051743 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -779,11 +779,34 @@ static void __init common_init(void) | |||
779 | pxa_set_i2c_info(NULL); | 779 | pxa_set_i2c_info(NULL); |
780 | } | 780 | } |
781 | 781 | ||
782 | #if defined(CONFIG_MACH_AKITA) || defined(CONFIG_MACH_BORZOI) | ||
783 | static struct nand_bbt_descr sharpsl_akita_bbt = { | ||
784 | .options = 0, | ||
785 | .offs = 4, | ||
786 | .len = 1, | ||
787 | .pattern = scan_ff_pattern | ||
788 | }; | ||
789 | |||
790 | static struct nand_ecclayout akita_oobinfo = { | ||
791 | .eccbytes = 24, | ||
792 | .eccpos = { | ||
793 | 0x5, 0x1, 0x2, 0x3, 0x6, 0x7, 0x15, 0x11, | ||
794 | 0x12, 0x13, 0x16, 0x17, 0x25, 0x21, 0x22, 0x23, | ||
795 | 0x26, 0x27, 0x35, 0x31, 0x32, 0x33, 0x36, 0x37}, | ||
796 | .oobfree = {{0x08, 0x09}} | ||
797 | }; | ||
798 | #endif | ||
799 | |||
782 | #if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI) | 800 | #if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI) |
783 | static void __init spitz_init(void) | 801 | static void __init spitz_init(void) |
784 | { | 802 | { |
785 | spitz_ficp_platform_data.gpio_pwdown = SPITZ_GPIO_IR_ON; | 803 | spitz_ficp_platform_data.gpio_pwdown = SPITZ_GPIO_IR_ON; |
786 | 804 | ||
805 | if (machine_is_borzoi()) { | ||
806 | sharpsl_nand_platform_data.badblock_pattern = &sharpsl_akita_bbt; | ||
807 | sharpsl_nand_platform_data.ecc_layout = &akita_oobinfo; | ||
808 | } | ||
809 | |||
787 | platform_scoop_config = &spitz_pcmcia_config; | 810 | platform_scoop_config = &spitz_pcmcia_config; |
788 | 811 | ||
789 | common_init(); | 812 | common_init(); |
@@ -808,22 +831,6 @@ static struct i2c_board_info akita_i2c_board_info[] = { | |||
808 | }, | 831 | }, |
809 | }; | 832 | }; |
810 | 833 | ||
811 | static struct nand_bbt_descr sharpsl_akita_bbt = { | ||
812 | .options = 0, | ||
813 | .offs = 4, | ||
814 | .len = 1, | ||
815 | .pattern = scan_ff_pattern | ||
816 | }; | ||
817 | |||
818 | static struct nand_ecclayout akita_oobinfo = { | ||
819 | .eccbytes = 24, | ||
820 | .eccpos = { | ||
821 | 0x5, 0x1, 0x2, 0x3, 0x6, 0x7, 0x15, 0x11, | ||
822 | 0x12, 0x13, 0x16, 0x17, 0x25, 0x21, 0x22, 0x23, | ||
823 | 0x26, 0x27, 0x35, 0x31, 0x32, 0x33, 0x36, 0x37}, | ||
824 | .oobfree = {{0x08, 0x09}} | ||
825 | }; | ||
826 | |||
827 | static void __init akita_init(void) | 834 | static void __init akita_init(void) |
828 | { | 835 | { |
829 | spitz_ficp_platform_data.gpio_pwdown = AKITA_GPIO_IR_ON; | 836 | spitz_ficp_platform_data.gpio_pwdown = AKITA_GPIO_IR_ON; |