diff options
Diffstat (limited to 'arch/mips/au1000/db1x00/board_setup.c')
-rw-r--r-- | arch/mips/au1000/db1x00/board_setup.c | 61 |
1 files changed, 30 insertions, 31 deletions
diff --git a/arch/mips/au1000/db1x00/board_setup.c b/arch/mips/au1000/db1x00/board_setup.c index b7dcbad5c586..9e5ccbbfcedd 100644 --- a/arch/mips/au1000/db1x00/board_setup.c +++ b/arch/mips/au1000/db1x00/board_setup.c | |||
@@ -3,9 +3,8 @@ | |||
3 | * BRIEF MODULE DESCRIPTION | 3 | * BRIEF MODULE DESCRIPTION |
4 | * Alchemy Db1x00 board setup. | 4 | * Alchemy Db1x00 board setup. |
5 | * | 5 | * |
6 | * Copyright 2000 MontaVista Software Inc. | 6 | * Copyright 2000, 2008 MontaVista Software Inc. |
7 | * Author: MontaVista Software, Inc. | 7 | * Author: MontaVista Software, Inc. <source@mvista.com> |
8 | * ppopov@mvista.com or source@mvista.com | ||
9 | * | 8 | * |
10 | * This program is free software; you can redistribute it and/or modify it | 9 | * This program is free software; you can redistribute it and/or modify it |
11 | * under the terms of the GNU General Public License as published by the | 10 | * under the terms of the GNU General Public License as published by the |
@@ -37,49 +36,49 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; | |||
37 | 36 | ||
38 | void board_reset(void) | 37 | void board_reset(void) |
39 | { | 38 | { |
40 | /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ | 39 | /* Hit BCSR.SW_RESET[RESET] */ |
41 | bcsr->swreset = 0x0000; | 40 | bcsr->swreset = 0x0000; |
42 | } | 41 | } |
43 | 42 | ||
44 | void __init board_setup(void) | 43 | void __init board_setup(void) |
45 | { | 44 | { |
46 | u32 pin_func; | 45 | u32 pin_func = 0; |
47 | 46 | ||
48 | pin_func = 0; | 47 | /* Not valid for Au1550 */ |
49 | /* not valid for 1550 */ | 48 | #if defined(CONFIG_IRDA) && \ |
50 | 49 | (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100)) | |
51 | #if defined(CONFIG_IRDA) && (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100)) | 50 | /* Set IRFIRSEL instead of GPIO15 */ |
52 | /* set IRFIRSEL instead of GPIO15 */ | 51 | pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF; |
53 | pin_func = au_readl(SYS_PINFUNC) | (u32)((1<<8)); | ||
54 | au_writel(pin_func, SYS_PINFUNC); | 52 | au_writel(pin_func, SYS_PINFUNC); |
55 | /* power off until the driver is in use */ | 53 | /* Power off until the driver is in use */ |
56 | bcsr->resets &= ~BCSR_RESETS_IRDA_MODE_MASK; | 54 | bcsr->resets &= ~BCSR_RESETS_IRDA_MODE_MASK; |
57 | bcsr->resets |= BCSR_RESETS_IRDA_MODE_OFF; | 55 | bcsr->resets |= BCSR_RESETS_IRDA_MODE_OFF; |
58 | au_sync(); | 56 | au_sync(); |
59 | #endif | 57 | #endif |
60 | bcsr->pcmcia = 0x0000; /* turn off PCMCIA power */ | 58 | bcsr->pcmcia = 0x0000; /* turn off PCMCIA power */ |
61 | 59 | ||
62 | #ifdef CONFIG_MIPS_MIRAGE | 60 | #ifdef CONFIG_MIPS_MIRAGE |
63 | /* enable GPIO[31:0] inputs */ | 61 | /* Enable GPIO[31:0] inputs */ |
64 | au_writel(0, SYS_PININPUTEN); | 62 | au_writel(0, SYS_PININPUTEN); |
65 | 63 | ||
66 | /* GPIO[20] is output, tristate the other input primary GPIO's */ | 64 | /* GPIO[20] is output, tristate the other input primary GPIOs */ |
67 | au_writel((u32)(~(1<<20)), SYS_TRIOUTCLR); | 65 | au_writel(~(1 << 20), SYS_TRIOUTCLR); |
68 | 66 | ||
69 | /* set GPIO[210:208] instead of SSI_0 */ | 67 | /* Set GPIO[210:208] instead of SSI_0 */ |
70 | pin_func = au_readl(SYS_PINFUNC) | (u32)(1); | 68 | pin_func = au_readl(SYS_PINFUNC) | SYS_PF_S0; |
71 | 69 | ||
72 | /* set GPIO[215:211] for LED's */ | 70 | /* Set GPIO[215:211] for LEDs */ |
73 | pin_func |= (u32)((5<<2)); | 71 | pin_func |= 5 << 2; |
74 | 72 | ||
75 | /* set GPIO[214:213] for more LED's */ | 73 | /* Set GPIO[214:213] for more LEDs */ |
76 | pin_func |= (u32)((5<<12)); | 74 | pin_func |= 5 << 12; |
77 | 75 | ||
78 | /* set GPIO[207:200] instead of PCMCIA/LCD */ | 76 | /* Set GPIO[207:200] instead of PCMCIA/LCD */ |
79 | pin_func |= (u32)((3<<17)); | 77 | pin_func |= SYS_PF_LCD | SYS_PF_PC; |
80 | au_writel(pin_func, SYS_PINFUNC); | 78 | au_writel(pin_func, SYS_PINFUNC); |
81 | 79 | ||
82 | /* Enable speaker amplifier. This should | 80 | /* |
81 | * Enable speaker amplifier. This should | ||
83 | * be part of the audio driver. | 82 | * be part of the audio driver. |
84 | */ | 83 | */ |
85 | au_writel(au_readl(GPIO2_DIR) | 0x200, GPIO2_DIR); | 84 | au_writel(au_readl(GPIO2_DIR) | 0x200, GPIO2_DIR); |
@@ -89,21 +88,21 @@ void __init board_setup(void) | |||
89 | au_sync(); | 88 | au_sync(); |
90 | 89 | ||
91 | #ifdef CONFIG_MIPS_DB1000 | 90 | #ifdef CONFIG_MIPS_DB1000 |
92 | printk("AMD Alchemy Au1000/Db1000 Board\n"); | 91 | printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n"); |
93 | #endif | 92 | #endif |
94 | #ifdef CONFIG_MIPS_DB1500 | 93 | #ifdef CONFIG_MIPS_DB1500 |
95 | printk("AMD Alchemy Au1500/Db1500 Board\n"); | 94 | printk(KERN_INFO "AMD Alchemy Au1500/Db1500 Board\n"); |
96 | #endif | 95 | #endif |
97 | #ifdef CONFIG_MIPS_DB1100 | 96 | #ifdef CONFIG_MIPS_DB1100 |
98 | printk("AMD Alchemy Au1100/Db1100 Board\n"); | 97 | printk(KERN_INFO "AMD Alchemy Au1100/Db1100 Board\n"); |
99 | #endif | 98 | #endif |
100 | #ifdef CONFIG_MIPS_BOSPORUS | 99 | #ifdef CONFIG_MIPS_BOSPORUS |
101 | printk("AMD Alchemy Bosporus Board\n"); | 100 | printk(KERN_INFO "AMD Alchemy Bosporus Board\n"); |
102 | #endif | 101 | #endif |
103 | #ifdef CONFIG_MIPS_MIRAGE | 102 | #ifdef CONFIG_MIPS_MIRAGE |
104 | printk("AMD Alchemy Mirage Board\n"); | 103 | printk(KERN_INFO "AMD Alchemy Mirage Board\n"); |
105 | #endif | 104 | #endif |
106 | #ifdef CONFIG_MIPS_DB1550 | 105 | #ifdef CONFIG_MIPS_DB1550 |
107 | printk("AMD Alchemy Au1550/Db1550 Board\n"); | 106 | printk(KERN_INFO "AMD Alchemy Au1550/Db1550 Board\n"); |
108 | #endif | 107 | #endif |
109 | } | 108 | } |