diff options
author | Philipp Zabel <philipp.zabel@gmail.com> | 2008-04-12 08:29:22 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-04-19 06:29:08 -0400 |
commit | b168281c07adf0a13f17368532fe787f1d23fd30 (patch) | |
tree | 807dd84e9c0f48069f944b0c30b33a8d4441acd6 /arch/arm/mach-pxa/magician.c | |
parent | 81447b2ee6a62cef884aa017e70bbe8c02f0d63b (diff) |
[ARM] 4966/1: magician: add MFP pin configuration
Although the GPIO alternate functions should be correctly set
by the bootloader, configure them here to be sure.
To save power, FFUART/BTUART/STUART are left unconfigured (output, low)
until they are needed by pxaficp or the magician GSM chipset driver.
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/magician.c')
-rw-r--r-- | arch/arm/mach-pxa/magician.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 06dad3552300..d70be75bd199 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
32 | #include <asm/mach/arch.h> | 32 | #include <asm/mach/arch.h> |
33 | #include <asm/arch/magician.h> | 33 | #include <asm/arch/magician.h> |
34 | #include <asm/arch/mfp-pxa27x.h> | ||
34 | #include <asm/arch/pxa-regs.h> | 35 | #include <asm/arch/pxa-regs.h> |
35 | #include <asm/arch/pxafb.h> | 36 | #include <asm/arch/pxafb.h> |
36 | #include <asm/arch/i2c.h> | 37 | #include <asm/arch/i2c.h> |
@@ -40,6 +41,81 @@ | |||
40 | 41 | ||
41 | #include "generic.h" | 42 | #include "generic.h" |
42 | 43 | ||
44 | static unsigned long magician_pin_config[] = { | ||
45 | |||
46 | /* SDRAM and Static Memory I/O Signals */ | ||
47 | GPIO20_nSDCS_2, | ||
48 | GPIO21_nSDCS_3, | ||
49 | GPIO15_nCS_1, | ||
50 | GPIO78_nCS_2, /* PASIC3 */ | ||
51 | GPIO79_nCS_3, /* EGPIO CPLD */ | ||
52 | GPIO80_nCS_4, | ||
53 | GPIO33_nCS_5, | ||
54 | |||
55 | /* I2C */ | ||
56 | GPIO117_I2C_SCL, | ||
57 | GPIO118_I2C_SDA, | ||
58 | |||
59 | /* PWM 0 */ | ||
60 | GPIO16_PWM0_OUT, | ||
61 | |||
62 | /* I2S */ | ||
63 | GPIO28_I2S_BITCLK_OUT, | ||
64 | GPIO29_I2S_SDATA_IN, | ||
65 | GPIO31_I2S_SYNC, | ||
66 | GPIO113_I2S_SYSCLK, | ||
67 | |||
68 | /* SSP 2 */ | ||
69 | GPIO19_SSP2_SCLK, | ||
70 | GPIO14_SSP2_SFRM, | ||
71 | GPIO89_SSP2_TXD, | ||
72 | GPIO88_SSP2_RXD, | ||
73 | |||
74 | /* MMC */ | ||
75 | GPIO32_MMC_CLK, | ||
76 | GPIO92_MMC_DAT_0, | ||
77 | GPIO109_MMC_DAT_1, | ||
78 | GPIO110_MMC_DAT_2, | ||
79 | GPIO111_MMC_DAT_3, | ||
80 | GPIO112_MMC_CMD, | ||
81 | |||
82 | /* LCD */ | ||
83 | GPIO58_LCD_LDD_0, | ||
84 | GPIO59_LCD_LDD_1, | ||
85 | GPIO60_LCD_LDD_2, | ||
86 | GPIO61_LCD_LDD_3, | ||
87 | GPIO62_LCD_LDD_4, | ||
88 | GPIO63_LCD_LDD_5, | ||
89 | GPIO64_LCD_LDD_6, | ||
90 | GPIO65_LCD_LDD_7, | ||
91 | GPIO66_LCD_LDD_8, | ||
92 | GPIO67_LCD_LDD_9, | ||
93 | GPIO68_LCD_LDD_10, | ||
94 | GPIO69_LCD_LDD_11, | ||
95 | GPIO70_LCD_LDD_12, | ||
96 | GPIO71_LCD_LDD_13, | ||
97 | GPIO72_LCD_LDD_14, | ||
98 | GPIO73_LCD_LDD_15, | ||
99 | GPIO74_LCD_FCLK, | ||
100 | GPIO75_LCD_LCLK, | ||
101 | GPIO76_LCD_PCLK, | ||
102 | GPIO77_LCD_BIAS, | ||
103 | |||
104 | /* QCI */ | ||
105 | GPIO12_CIF_DD_7, | ||
106 | GPIO17_CIF_DD_6, | ||
107 | GPIO50_CIF_DD_3, | ||
108 | GPIO51_CIF_DD_2, | ||
109 | GPIO52_CIF_DD_4, | ||
110 | GPIO53_CIF_MCLK, | ||
111 | GPIO54_CIF_PCLK, | ||
112 | GPIO55_CIF_DD_1, | ||
113 | GPIO81_CIF_DD_0, | ||
114 | GPIO82_CIF_DD_5, | ||
115 | GPIO84_CIF_FV, | ||
116 | GPIO85_CIF_LV, | ||
117 | }; | ||
118 | |||
43 | /* | 119 | /* |
44 | * IRDA | 120 | * IRDA |
45 | */ | 121 | */ |
@@ -568,6 +644,8 @@ static void __init magician_init(void) | |||
568 | void __iomem *cpld; | 644 | void __iomem *cpld; |
569 | int lcd_select; | 645 | int lcd_select; |
570 | 646 | ||
647 | pxa2xx_mfp_config(ARRAY_AND_SIZE(magician_pin_config)); | ||
648 | |||
571 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 649 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
572 | pxa_set_i2c_info(NULL); | 650 | pxa_set_i2c_info(NULL); |
573 | pxa_set_mci_info(&magician_mci_info); | 651 | pxa_set_mci_info(&magician_mci_info); |