diff options
author | Ryan Mallon <ryan@bluewatersys.com> | 2011-05-20 03:34:22 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-05-20 17:34:24 -0400 |
commit | 6618c3ada039116ca0392ce955df081adc5f015c (patch) | |
tree | 50152bf26b87889a746a2571c76dcbd3bda1008f /arch | |
parent | 61e72bca04be2dc11a637185f2bbe6dba32ecaf3 (diff) |
ARM: 6930/1: SPEAr3xx: Rework pmx_dev code to remove conflicts
Prefix the pmx_devs to remove naming conflicts between the three
SPEAr3xx platforms. Also make pmx_driver static to each platform and
rework the init code to pass the devices rather than export the
pmx_driver structure.
Reviewed-by: Stanley Miao <stanley.miao@windriver.com>
Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-spear3xx/include/mach/generic.h | 193 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear300.c | 91 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear300_evb.c | 26 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear310.c | 41 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear310_evb.c | 41 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear320.c | 105 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear320_evb.c | 36 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear3xx.c | 120 |
8 files changed, 328 insertions, 325 deletions
diff --git a/arch/arm/mach-spear3xx/include/mach/generic.h b/arch/arm/mach-spear3xx/include/mach/generic.h index af4cb5b8aa40..8b04f085e8a3 100644 --- a/arch/arm/mach-spear3xx/include/mach/generic.h +++ b/arch/arm/mach-spear3xx/include/mach/generic.h | |||
@@ -60,81 +60,80 @@ void __init spear3xx_init(void); | |||
60 | #define PMX_TIMER_1_2_MASK (1 << 0) | 60 | #define PMX_TIMER_1_2_MASK (1 << 0) |
61 | 61 | ||
62 | /* pad mux devices */ | 62 | /* pad mux devices */ |
63 | extern struct pmx_dev pmx_firda; | 63 | extern struct pmx_dev spear3xx_pmx_firda; |
64 | extern struct pmx_dev pmx_i2c; | 64 | extern struct pmx_dev spear3xx_pmx_i2c; |
65 | extern struct pmx_dev pmx_ssp_cs; | 65 | extern struct pmx_dev spear3xx_pmx_ssp_cs; |
66 | extern struct pmx_dev pmx_ssp; | 66 | extern struct pmx_dev spear3xx_pmx_ssp; |
67 | extern struct pmx_dev pmx_mii; | 67 | extern struct pmx_dev spear3xx_pmx_mii; |
68 | extern struct pmx_dev pmx_gpio_pin0; | 68 | extern struct pmx_dev spear3xx_pmx_gpio_pin0; |
69 | extern struct pmx_dev pmx_gpio_pin1; | 69 | extern struct pmx_dev spear3xx_pmx_gpio_pin1; |
70 | extern struct pmx_dev pmx_gpio_pin2; | 70 | extern struct pmx_dev spear3xx_pmx_gpio_pin2; |
71 | extern struct pmx_dev pmx_gpio_pin3; | 71 | extern struct pmx_dev spear3xx_pmx_gpio_pin3; |
72 | extern struct pmx_dev pmx_gpio_pin4; | 72 | extern struct pmx_dev spear3xx_pmx_gpio_pin4; |
73 | extern struct pmx_dev pmx_gpio_pin5; | 73 | extern struct pmx_dev spear3xx_pmx_gpio_pin5; |
74 | extern struct pmx_dev pmx_uart0_modem; | 74 | extern struct pmx_dev spear3xx_pmx_uart0_modem; |
75 | extern struct pmx_dev pmx_uart0; | 75 | extern struct pmx_dev spear3xx_pmx_uart0; |
76 | extern struct pmx_dev pmx_timer_3_4; | 76 | extern struct pmx_dev spear3xx_pmx_timer_3_4; |
77 | extern struct pmx_dev pmx_timer_1_2; | 77 | extern struct pmx_dev spear3xx_pmx_timer_1_2; |
78 | 78 | ||
79 | #if defined(CONFIG_MACH_SPEAR310) || defined(CONFIG_MACH_SPEAR320) | 79 | #if defined(CONFIG_MACH_SPEAR310) || defined(CONFIG_MACH_SPEAR320) |
80 | /* padmux plgpio devices */ | 80 | /* padmux plgpio devices */ |
81 | extern struct pmx_dev pmx_plgpio_0_1; | 81 | extern struct pmx_dev spear3xx_pmx_plgpio_0_1; |
82 | extern struct pmx_dev pmx_plgpio_2_3; | 82 | extern struct pmx_dev spear3xx_pmx_plgpio_2_3; |
83 | extern struct pmx_dev pmx_plgpio_4_5; | 83 | extern struct pmx_dev spear3xx_pmx_plgpio_4_5; |
84 | extern struct pmx_dev pmx_plgpio_6_9; | 84 | extern struct pmx_dev spear3xx_pmx_plgpio_6_9; |
85 | extern struct pmx_dev pmx_plgpio_10_27; | 85 | extern struct pmx_dev spear3xx_pmx_plgpio_10_27; |
86 | extern struct pmx_dev pmx_plgpio_28; | 86 | extern struct pmx_dev spear3xx_pmx_plgpio_28; |
87 | extern struct pmx_dev pmx_plgpio_29; | 87 | extern struct pmx_dev spear3xx_pmx_plgpio_29; |
88 | extern struct pmx_dev pmx_plgpio_30; | 88 | extern struct pmx_dev spear3xx_pmx_plgpio_30; |
89 | extern struct pmx_dev pmx_plgpio_31; | 89 | extern struct pmx_dev spear3xx_pmx_plgpio_31; |
90 | extern struct pmx_dev pmx_plgpio_32; | 90 | extern struct pmx_dev spear3xx_pmx_plgpio_32; |
91 | extern struct pmx_dev pmx_plgpio_33; | 91 | extern struct pmx_dev spear3xx_pmx_plgpio_33; |
92 | extern struct pmx_dev pmx_plgpio_34_36; | 92 | extern struct pmx_dev spear3xx_pmx_plgpio_34_36; |
93 | extern struct pmx_dev pmx_plgpio_37_42; | 93 | extern struct pmx_dev spear3xx_pmx_plgpio_37_42; |
94 | extern struct pmx_dev pmx_plgpio_43_44_47_48; | 94 | extern struct pmx_dev spear3xx_pmx_plgpio_43_44_47_48; |
95 | extern struct pmx_dev pmx_plgpio_45_46_49_50; | 95 | extern struct pmx_dev spear3xx_pmx_plgpio_45_46_49_50; |
96 | #endif | 96 | #endif |
97 | 97 | ||
98 | extern struct pmx_driver pmx_driver; | ||
99 | |||
100 | /* spear300 declarations */ | 98 | /* spear300 declarations */ |
101 | #ifdef CONFIG_MACH_SPEAR300 | 99 | #ifdef CONFIG_MACH_SPEAR300 |
102 | /* Add spear300 machine device structure declarations here */ | 100 | /* Add spear300 machine device structure declarations here */ |
103 | extern struct amba_device gpio1_device; | 101 | extern struct amba_device gpio1_device; |
104 | 102 | ||
105 | /* pad mux modes */ | 103 | /* pad mux modes */ |
106 | extern struct pmx_mode nand_mode; | 104 | extern struct pmx_mode spear300_nand_mode; |
107 | extern struct pmx_mode nor_mode; | 105 | extern struct pmx_mode spear300_nor_mode; |
108 | extern struct pmx_mode photo_frame_mode; | 106 | extern struct pmx_mode spear300_photo_frame_mode; |
109 | extern struct pmx_mode lend_ip_phone_mode; | 107 | extern struct pmx_mode spear300_lend_ip_phone_mode; |
110 | extern struct pmx_mode hend_ip_phone_mode; | 108 | extern struct pmx_mode spear300_hend_ip_phone_mode; |
111 | extern struct pmx_mode lend_wifi_phone_mode; | 109 | extern struct pmx_mode spear300_lend_wifi_phone_mode; |
112 | extern struct pmx_mode hend_wifi_phone_mode; | 110 | extern struct pmx_mode spear300_hend_wifi_phone_mode; |
113 | extern struct pmx_mode ata_pabx_wi2s_mode; | 111 | extern struct pmx_mode spear300_ata_pabx_wi2s_mode; |
114 | extern struct pmx_mode ata_pabx_i2s_mode; | 112 | extern struct pmx_mode spear300_ata_pabx_i2s_mode; |
115 | extern struct pmx_mode caml_lcdw_mode; | 113 | extern struct pmx_mode spear300_caml_lcdw_mode; |
116 | extern struct pmx_mode camu_lcd_mode; | 114 | extern struct pmx_mode spear300_camu_lcd_mode; |
117 | extern struct pmx_mode camu_wlcd_mode; | 115 | extern struct pmx_mode spear300_camu_wlcd_mode; |
118 | extern struct pmx_mode caml_lcd_mode; | 116 | extern struct pmx_mode spear300_caml_lcd_mode; |
119 | 117 | ||
120 | /* pad mux devices */ | 118 | /* pad mux devices */ |
121 | extern struct pmx_dev pmx_fsmc_2_chips; | 119 | extern struct pmx_dev spear300_pmx_fsmc_2_chips; |
122 | extern struct pmx_dev pmx_fsmc_4_chips; | 120 | extern struct pmx_dev spear300_pmx_fsmc_4_chips; |
123 | extern struct pmx_dev pmx_keyboard; | 121 | extern struct pmx_dev spear300_pmx_keyboard; |
124 | extern struct pmx_dev pmx_clcd; | 122 | extern struct pmx_dev spear300_pmx_clcd; |
125 | extern struct pmx_dev pmx_telecom_gpio; | 123 | extern struct pmx_dev spear300_pmx_telecom_gpio; |
126 | extern struct pmx_dev pmx_telecom_tdm; | 124 | extern struct pmx_dev spear300_pmx_telecom_tdm; |
127 | extern struct pmx_dev pmx_telecom_spi_cs_i2c_clk; | 125 | extern struct pmx_dev spear300_pmx_telecom_spi_cs_i2c_clk; |
128 | extern struct pmx_dev pmx_telecom_camera; | 126 | extern struct pmx_dev spear300_pmx_telecom_camera; |
129 | extern struct pmx_dev pmx_telecom_dac; | 127 | extern struct pmx_dev spear300_pmx_telecom_dac; |
130 | extern struct pmx_dev pmx_telecom_i2s; | 128 | extern struct pmx_dev spear300_pmx_telecom_i2s; |
131 | extern struct pmx_dev pmx_telecom_boot_pins; | 129 | extern struct pmx_dev spear300_pmx_telecom_boot_pins; |
132 | extern struct pmx_dev pmx_telecom_sdhci_4bit; | 130 | extern struct pmx_dev spear300_pmx_telecom_sdhci_4bit; |
133 | extern struct pmx_dev pmx_telecom_sdhci_8bit; | 131 | extern struct pmx_dev spear300_pmx_telecom_sdhci_8bit; |
134 | extern struct pmx_dev pmx_gpio1; | 132 | extern struct pmx_dev spear300_pmx_gpio1; |
135 | 133 | ||
136 | /* Add spear300 machine function declarations here */ | 134 | /* Add spear300 machine function declarations here */ |
137 | void __init spear300_init(void); | 135 | void __init spear300_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, |
136 | u8 pmx_dev_count); | ||
138 | 137 | ||
139 | #endif /* CONFIG_MACH_SPEAR300 */ | 138 | #endif /* CONFIG_MACH_SPEAR300 */ |
140 | 139 | ||
@@ -143,17 +142,18 @@ void __init spear300_init(void); | |||
143 | /* Add spear310 machine device structure declarations here */ | 142 | /* Add spear310 machine device structure declarations here */ |
144 | 143 | ||
145 | /* pad mux devices */ | 144 | /* pad mux devices */ |
146 | extern struct pmx_dev pmx_emi_cs_0_1_4_5; | 145 | extern struct pmx_dev spear310_pmx_emi_cs_0_1_4_5; |
147 | extern struct pmx_dev pmx_emi_cs_2_3; | 146 | extern struct pmx_dev spear310_pmx_emi_cs_2_3; |
148 | extern struct pmx_dev pmx_uart1; | 147 | extern struct pmx_dev spear310_pmx_uart1; |
149 | extern struct pmx_dev pmx_uart2; | 148 | extern struct pmx_dev spear310_pmx_uart2; |
150 | extern struct pmx_dev pmx_uart3_4_5; | 149 | extern struct pmx_dev spear310_pmx_uart3_4_5; |
151 | extern struct pmx_dev pmx_fsmc; | 150 | extern struct pmx_dev spear310_pmx_fsmc; |
152 | extern struct pmx_dev pmx_rs485_0_1; | 151 | extern struct pmx_dev spear310_pmx_rs485_0_1; |
153 | extern struct pmx_dev pmx_tdm0; | 152 | extern struct pmx_dev spear310_pmx_tdm0; |
154 | 153 | ||
155 | /* Add spear310 machine function declarations here */ | 154 | /* Add spear310 machine function declarations here */ |
156 | void __init spear310_init(void); | 155 | void __init spear310_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, |
156 | u8 pmx_dev_count); | ||
157 | 157 | ||
158 | #endif /* CONFIG_MACH_SPEAR310 */ | 158 | #endif /* CONFIG_MACH_SPEAR310 */ |
159 | 159 | ||
@@ -162,37 +162,38 @@ void __init spear310_init(void); | |||
162 | /* Add spear320 machine device structure declarations here */ | 162 | /* Add spear320 machine device structure declarations here */ |
163 | 163 | ||
164 | /* pad mux modes */ | 164 | /* pad mux modes */ |
165 | extern struct pmx_mode auto_net_smii_mode; | 165 | extern struct pmx_mode spear320_auto_net_smii_mode; |
166 | extern struct pmx_mode auto_net_mii_mode; | 166 | extern struct pmx_mode spear320_auto_net_mii_mode; |
167 | extern struct pmx_mode auto_exp_mode; | 167 | extern struct pmx_mode spear320_auto_exp_mode; |
168 | extern struct pmx_mode small_printers_mode; | 168 | extern struct pmx_mode spear320_small_printers_mode; |
169 | 169 | ||
170 | /* pad mux devices */ | 170 | /* pad mux devices */ |
171 | extern struct pmx_dev pmx_clcd; | 171 | extern struct pmx_dev spear320_pmx_clcd; |
172 | extern struct pmx_dev pmx_emi; | 172 | extern struct pmx_dev spear320_pmx_emi; |
173 | extern struct pmx_dev pmx_fsmc; | 173 | extern struct pmx_dev spear320_pmx_fsmc; |
174 | extern struct pmx_dev pmx_spp; | 174 | extern struct pmx_dev spear320_pmx_spp; |
175 | extern struct pmx_dev pmx_sdhci; | 175 | extern struct pmx_dev spear320_pmx_sdhci; |
176 | extern struct pmx_dev pmx_i2s; | 176 | extern struct pmx_dev spear320_pmx_i2s; |
177 | extern struct pmx_dev pmx_uart1; | 177 | extern struct pmx_dev spear320_pmx_uart1; |
178 | extern struct pmx_dev pmx_uart1_modem; | 178 | extern struct pmx_dev spear320_pmx_uart1_modem; |
179 | extern struct pmx_dev pmx_uart2; | 179 | extern struct pmx_dev spear320_pmx_uart2; |
180 | extern struct pmx_dev pmx_touchscreen; | 180 | extern struct pmx_dev spear320_pmx_touchscreen; |
181 | extern struct pmx_dev pmx_can; | 181 | extern struct pmx_dev spear320_pmx_can; |
182 | extern struct pmx_dev pmx_sdhci_led; | 182 | extern struct pmx_dev spear320_pmx_sdhci_led; |
183 | extern struct pmx_dev pmx_pwm0; | 183 | extern struct pmx_dev spear320_pmx_pwm0; |
184 | extern struct pmx_dev pmx_pwm1; | 184 | extern struct pmx_dev spear320_pmx_pwm1; |
185 | extern struct pmx_dev pmx_pwm2; | 185 | extern struct pmx_dev spear320_pmx_pwm2; |
186 | extern struct pmx_dev pmx_pwm3; | 186 | extern struct pmx_dev spear320_pmx_pwm3; |
187 | extern struct pmx_dev pmx_ssp1; | 187 | extern struct pmx_dev spear320_pmx_ssp1; |
188 | extern struct pmx_dev pmx_ssp2; | 188 | extern struct pmx_dev spear320_pmx_ssp2; |
189 | extern struct pmx_dev pmx_mii1; | 189 | extern struct pmx_dev spear320_pmx_mii1; |
190 | extern struct pmx_dev pmx_smii0; | 190 | extern struct pmx_dev spear320_pmx_smii0; |
191 | extern struct pmx_dev pmx_smii1; | 191 | extern struct pmx_dev spear320_pmx_smii1; |
192 | extern struct pmx_dev pmx_i2c1; | 192 | extern struct pmx_dev spear320_pmx_i2c1; |
193 | 193 | ||
194 | /* Add spear320 machine function declarations here */ | 194 | /* Add spear320 machine function declarations here */ |
195 | void __init spear320_init(void); | 195 | void __init spear320_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, |
196 | u8 pmx_dev_count); | ||
196 | 197 | ||
197 | #endif /* CONFIG_MACH_SPEAR320 */ | 198 | #endif /* CONFIG_MACH_SPEAR320 */ |
198 | 199 | ||
diff --git a/arch/arm/mach-spear3xx/spear300.c b/arch/arm/mach-spear3xx/spear300.c index 81a57ce67176..67349b50b18e 100644 --- a/arch/arm/mach-spear3xx/spear300.c +++ b/arch/arm/mach-spear3xx/spear300.c | |||
@@ -40,86 +40,86 @@ | |||
40 | #define CAML_LCD_MODE (1 << 12) | 40 | #define CAML_LCD_MODE (1 << 12) |
41 | #define ALL_MODES 0x1FFF | 41 | #define ALL_MODES 0x1FFF |
42 | 42 | ||
43 | struct pmx_mode nand_mode = { | 43 | struct pmx_mode spear300_nand_mode = { |
44 | .id = NAND_MODE, | 44 | .id = NAND_MODE, |
45 | .name = "nand mode", | 45 | .name = "nand mode", |
46 | .mask = 0x00, | 46 | .mask = 0x00, |
47 | }; | 47 | }; |
48 | 48 | ||
49 | struct pmx_mode nor_mode = { | 49 | struct pmx_mode spear300_nor_mode = { |
50 | .id = NOR_MODE, | 50 | .id = NOR_MODE, |
51 | .name = "nor mode", | 51 | .name = "nor mode", |
52 | .mask = 0x01, | 52 | .mask = 0x01, |
53 | }; | 53 | }; |
54 | 54 | ||
55 | struct pmx_mode photo_frame_mode = { | 55 | struct pmx_mode spear300_photo_frame_mode = { |
56 | .id = PHOTO_FRAME_MODE, | 56 | .id = PHOTO_FRAME_MODE, |
57 | .name = "photo frame mode", | 57 | .name = "photo frame mode", |
58 | .mask = 0x02, | 58 | .mask = 0x02, |
59 | }; | 59 | }; |
60 | 60 | ||
61 | struct pmx_mode lend_ip_phone_mode = { | 61 | struct pmx_mode spear300_lend_ip_phone_mode = { |
62 | .id = LEND_IP_PHONE_MODE, | 62 | .id = LEND_IP_PHONE_MODE, |
63 | .name = "lend ip phone mode", | 63 | .name = "lend ip phone mode", |
64 | .mask = 0x03, | 64 | .mask = 0x03, |
65 | }; | 65 | }; |
66 | 66 | ||
67 | struct pmx_mode hend_ip_phone_mode = { | 67 | struct pmx_mode spear300_hend_ip_phone_mode = { |
68 | .id = HEND_IP_PHONE_MODE, | 68 | .id = HEND_IP_PHONE_MODE, |
69 | .name = "hend ip phone mode", | 69 | .name = "hend ip phone mode", |
70 | .mask = 0x04, | 70 | .mask = 0x04, |
71 | }; | 71 | }; |
72 | 72 | ||
73 | struct pmx_mode lend_wifi_phone_mode = { | 73 | struct pmx_mode spear300_lend_wifi_phone_mode = { |
74 | .id = LEND_WIFI_PHONE_MODE, | 74 | .id = LEND_WIFI_PHONE_MODE, |
75 | .name = "lend wifi phone mode", | 75 | .name = "lend wifi phone mode", |
76 | .mask = 0x05, | 76 | .mask = 0x05, |
77 | }; | 77 | }; |
78 | 78 | ||
79 | struct pmx_mode hend_wifi_phone_mode = { | 79 | struct pmx_mode spear300_hend_wifi_phone_mode = { |
80 | .id = HEND_WIFI_PHONE_MODE, | 80 | .id = HEND_WIFI_PHONE_MODE, |
81 | .name = "hend wifi phone mode", | 81 | .name = "hend wifi phone mode", |
82 | .mask = 0x06, | 82 | .mask = 0x06, |
83 | }; | 83 | }; |
84 | 84 | ||
85 | struct pmx_mode ata_pabx_wi2s_mode = { | 85 | struct pmx_mode spear300_ata_pabx_wi2s_mode = { |
86 | .id = ATA_PABX_WI2S_MODE, | 86 | .id = ATA_PABX_WI2S_MODE, |
87 | .name = "ata pabx wi2s mode", | 87 | .name = "ata pabx wi2s mode", |
88 | .mask = 0x07, | 88 | .mask = 0x07, |
89 | }; | 89 | }; |
90 | 90 | ||
91 | struct pmx_mode ata_pabx_i2s_mode = { | 91 | struct pmx_mode spear300_ata_pabx_i2s_mode = { |
92 | .id = ATA_PABX_I2S_MODE, | 92 | .id = ATA_PABX_I2S_MODE, |
93 | .name = "ata pabx i2s mode", | 93 | .name = "ata pabx i2s mode", |
94 | .mask = 0x08, | 94 | .mask = 0x08, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | struct pmx_mode caml_lcdw_mode = { | 97 | struct pmx_mode spear300_caml_lcdw_mode = { |
98 | .id = CAML_LCDW_MODE, | 98 | .id = CAML_LCDW_MODE, |
99 | .name = "caml lcdw mode", | 99 | .name = "caml lcdw mode", |
100 | .mask = 0x0C, | 100 | .mask = 0x0C, |
101 | }; | 101 | }; |
102 | 102 | ||
103 | struct pmx_mode camu_lcd_mode = { | 103 | struct pmx_mode spear300_camu_lcd_mode = { |
104 | .id = CAMU_LCD_MODE, | 104 | .id = CAMU_LCD_MODE, |
105 | .name = "camu lcd mode", | 105 | .name = "camu lcd mode", |
106 | .mask = 0x0D, | 106 | .mask = 0x0D, |
107 | }; | 107 | }; |
108 | 108 | ||
109 | struct pmx_mode camu_wlcd_mode = { | 109 | struct pmx_mode spear300_camu_wlcd_mode = { |
110 | .id = CAMU_WLCD_MODE, | 110 | .id = CAMU_WLCD_MODE, |
111 | .name = "camu wlcd mode", | 111 | .name = "camu wlcd mode", |
112 | .mask = 0x0E, | 112 | .mask = 0x0E, |
113 | }; | 113 | }; |
114 | 114 | ||
115 | struct pmx_mode caml_lcd_mode = { | 115 | struct pmx_mode spear300_caml_lcd_mode = { |
116 | .id = CAML_LCD_MODE, | 116 | .id = CAML_LCD_MODE, |
117 | .name = "caml lcd mode", | 117 | .name = "caml lcd mode", |
118 | .mask = 0x0F, | 118 | .mask = 0x0F, |
119 | }; | 119 | }; |
120 | 120 | ||
121 | /* devices */ | 121 | /* devices */ |
122 | struct pmx_dev_mode pmx_fsmc_2_chips_modes[] = { | 122 | static struct pmx_dev_mode pmx_fsmc_2_chips_modes[] = { |
123 | { | 123 | { |
124 | .ids = NAND_MODE | NOR_MODE | PHOTO_FRAME_MODE | | 124 | .ids = NAND_MODE | NOR_MODE | PHOTO_FRAME_MODE | |
125 | ATA_PABX_WI2S_MODE | ATA_PABX_I2S_MODE, | 125 | ATA_PABX_WI2S_MODE | ATA_PABX_I2S_MODE, |
@@ -127,14 +127,14 @@ struct pmx_dev_mode pmx_fsmc_2_chips_modes[] = { | |||
127 | }, | 127 | }, |
128 | }; | 128 | }; |
129 | 129 | ||
130 | struct pmx_dev pmx_fsmc_2_chips = { | 130 | struct pmx_dev spear300_pmx_fsmc_2_chips = { |
131 | .name = "fsmc_2_chips", | 131 | .name = "fsmc_2_chips", |
132 | .modes = pmx_fsmc_2_chips_modes, | 132 | .modes = pmx_fsmc_2_chips_modes, |
133 | .mode_count = ARRAY_SIZE(pmx_fsmc_2_chips_modes), | 133 | .mode_count = ARRAY_SIZE(pmx_fsmc_2_chips_modes), |
134 | .enb_on_reset = 1, | 134 | .enb_on_reset = 1, |
135 | }; | 135 | }; |
136 | 136 | ||
137 | struct pmx_dev_mode pmx_fsmc_4_chips_modes[] = { | 137 | static struct pmx_dev_mode pmx_fsmc_4_chips_modes[] = { |
138 | { | 138 | { |
139 | .ids = NAND_MODE | NOR_MODE | PHOTO_FRAME_MODE | | 139 | .ids = NAND_MODE | NOR_MODE | PHOTO_FRAME_MODE | |
140 | ATA_PABX_WI2S_MODE | ATA_PABX_I2S_MODE, | 140 | ATA_PABX_WI2S_MODE | ATA_PABX_I2S_MODE, |
@@ -142,14 +142,14 @@ struct pmx_dev_mode pmx_fsmc_4_chips_modes[] = { | |||
142 | }, | 142 | }, |
143 | }; | 143 | }; |
144 | 144 | ||
145 | struct pmx_dev pmx_fsmc_4_chips = { | 145 | struct pmx_dev spear300_pmx_fsmc_4_chips = { |
146 | .name = "fsmc_4_chips", | 146 | .name = "fsmc_4_chips", |
147 | .modes = pmx_fsmc_4_chips_modes, | 147 | .modes = pmx_fsmc_4_chips_modes, |
148 | .mode_count = ARRAY_SIZE(pmx_fsmc_4_chips_modes), | 148 | .mode_count = ARRAY_SIZE(pmx_fsmc_4_chips_modes), |
149 | .enb_on_reset = 1, | 149 | .enb_on_reset = 1, |
150 | }; | 150 | }; |
151 | 151 | ||
152 | struct pmx_dev_mode pmx_keyboard_modes[] = { | 152 | static struct pmx_dev_mode pmx_keyboard_modes[] = { |
153 | { | 153 | { |
154 | .ids = LEND_IP_PHONE_MODE | HEND_IP_PHONE_MODE | | 154 | .ids = LEND_IP_PHONE_MODE | HEND_IP_PHONE_MODE | |
155 | LEND_WIFI_PHONE_MODE | HEND_WIFI_PHONE_MODE | | 155 | LEND_WIFI_PHONE_MODE | HEND_WIFI_PHONE_MODE | |
@@ -159,14 +159,14 @@ struct pmx_dev_mode pmx_keyboard_modes[] = { | |||
159 | }, | 159 | }, |
160 | }; | 160 | }; |
161 | 161 | ||
162 | struct pmx_dev pmx_keyboard = { | 162 | struct pmx_dev spear300_pmx_keyboard = { |
163 | .name = "keyboard", | 163 | .name = "keyboard", |
164 | .modes = pmx_keyboard_modes, | 164 | .modes = pmx_keyboard_modes, |
165 | .mode_count = ARRAY_SIZE(pmx_keyboard_modes), | 165 | .mode_count = ARRAY_SIZE(pmx_keyboard_modes), |
166 | .enb_on_reset = 1, | 166 | .enb_on_reset = 1, |
167 | }; | 167 | }; |
168 | 168 | ||
169 | struct pmx_dev_mode pmx_clcd_modes[] = { | 169 | static struct pmx_dev_mode pmx_clcd_modes[] = { |
170 | { | 170 | { |
171 | .ids = PHOTO_FRAME_MODE, | 171 | .ids = PHOTO_FRAME_MODE, |
172 | .mask = PMX_TIMER_1_2_MASK | PMX_TIMER_3_4_MASK , | 172 | .mask = PMX_TIMER_1_2_MASK | PMX_TIMER_3_4_MASK , |
@@ -177,14 +177,14 @@ struct pmx_dev_mode pmx_clcd_modes[] = { | |||
177 | }, | 177 | }, |
178 | }; | 178 | }; |
179 | 179 | ||
180 | struct pmx_dev pmx_clcd = { | 180 | struct pmx_dev spear300_pmx_clcd = { |
181 | .name = "clcd", | 181 | .name = "clcd", |
182 | .modes = pmx_clcd_modes, | 182 | .modes = pmx_clcd_modes, |
183 | .mode_count = ARRAY_SIZE(pmx_clcd_modes), | 183 | .mode_count = ARRAY_SIZE(pmx_clcd_modes), |
184 | .enb_on_reset = 1, | 184 | .enb_on_reset = 1, |
185 | }; | 185 | }; |
186 | 186 | ||
187 | struct pmx_dev_mode pmx_telecom_gpio_modes[] = { | 187 | static struct pmx_dev_mode pmx_telecom_gpio_modes[] = { |
188 | { | 188 | { |
189 | .ids = PHOTO_FRAME_MODE | CAMU_LCD_MODE | CAML_LCD_MODE, | 189 | .ids = PHOTO_FRAME_MODE | CAMU_LCD_MODE | CAML_LCD_MODE, |
190 | .mask = PMX_MII_MASK, | 190 | .mask = PMX_MII_MASK, |
@@ -204,14 +204,14 @@ struct pmx_dev_mode pmx_telecom_gpio_modes[] = { | |||
204 | }, | 204 | }, |
205 | }; | 205 | }; |
206 | 206 | ||
207 | struct pmx_dev pmx_telecom_gpio = { | 207 | struct pmx_dev spear300_pmx_telecom_gpio = { |
208 | .name = "telecom_gpio", | 208 | .name = "telecom_gpio", |
209 | .modes = pmx_telecom_gpio_modes, | 209 | .modes = pmx_telecom_gpio_modes, |
210 | .mode_count = ARRAY_SIZE(pmx_telecom_gpio_modes), | 210 | .mode_count = ARRAY_SIZE(pmx_telecom_gpio_modes), |
211 | .enb_on_reset = 1, | 211 | .enb_on_reset = 1, |
212 | }; | 212 | }; |
213 | 213 | ||
214 | struct pmx_dev_mode pmx_telecom_tdm_modes[] = { | 214 | static struct pmx_dev_mode pmx_telecom_tdm_modes[] = { |
215 | { | 215 | { |
216 | .ids = PHOTO_FRAME_MODE | LEND_IP_PHONE_MODE | | 216 | .ids = PHOTO_FRAME_MODE | LEND_IP_PHONE_MODE | |
217 | HEND_IP_PHONE_MODE | LEND_WIFI_PHONE_MODE | 217 | HEND_IP_PHONE_MODE | LEND_WIFI_PHONE_MODE |
@@ -222,14 +222,14 @@ struct pmx_dev_mode pmx_telecom_tdm_modes[] = { | |||
222 | }, | 222 | }, |
223 | }; | 223 | }; |
224 | 224 | ||
225 | struct pmx_dev pmx_telecom_tdm = { | 225 | struct pmx_dev spear300_pmx_telecom_tdm = { |
226 | .name = "telecom_tdm", | 226 | .name = "telecom_tdm", |
227 | .modes = pmx_telecom_tdm_modes, | 227 | .modes = pmx_telecom_tdm_modes, |
228 | .mode_count = ARRAY_SIZE(pmx_telecom_tdm_modes), | 228 | .mode_count = ARRAY_SIZE(pmx_telecom_tdm_modes), |
229 | .enb_on_reset = 1, | 229 | .enb_on_reset = 1, |
230 | }; | 230 | }; |
231 | 231 | ||
232 | struct pmx_dev_mode pmx_telecom_spi_cs_i2c_clk_modes[] = { | 232 | static struct pmx_dev_mode pmx_telecom_spi_cs_i2c_clk_modes[] = { |
233 | { | 233 | { |
234 | .ids = LEND_IP_PHONE_MODE | HEND_IP_PHONE_MODE | | 234 | .ids = LEND_IP_PHONE_MODE | HEND_IP_PHONE_MODE | |
235 | LEND_WIFI_PHONE_MODE | HEND_WIFI_PHONE_MODE | 235 | LEND_WIFI_PHONE_MODE | HEND_WIFI_PHONE_MODE |
@@ -239,14 +239,14 @@ struct pmx_dev_mode pmx_telecom_spi_cs_i2c_clk_modes[] = { | |||
239 | }, | 239 | }, |
240 | }; | 240 | }; |
241 | 241 | ||
242 | struct pmx_dev pmx_telecom_spi_cs_i2c_clk = { | 242 | struct pmx_dev spear300_pmx_telecom_spi_cs_i2c_clk = { |
243 | .name = "telecom_spi_cs_i2c_clk", | 243 | .name = "telecom_spi_cs_i2c_clk", |
244 | .modes = pmx_telecom_spi_cs_i2c_clk_modes, | 244 | .modes = pmx_telecom_spi_cs_i2c_clk_modes, |
245 | .mode_count = ARRAY_SIZE(pmx_telecom_spi_cs_i2c_clk_modes), | 245 | .mode_count = ARRAY_SIZE(pmx_telecom_spi_cs_i2c_clk_modes), |
246 | .enb_on_reset = 1, | 246 | .enb_on_reset = 1, |
247 | }; | 247 | }; |
248 | 248 | ||
249 | struct pmx_dev_mode pmx_telecom_camera_modes[] = { | 249 | static struct pmx_dev_mode pmx_telecom_camera_modes[] = { |
250 | { | 250 | { |
251 | .ids = CAML_LCDW_MODE | CAML_LCD_MODE, | 251 | .ids = CAML_LCDW_MODE | CAML_LCD_MODE, |
252 | .mask = PMX_MII_MASK, | 252 | .mask = PMX_MII_MASK, |
@@ -256,14 +256,14 @@ struct pmx_dev_mode pmx_telecom_camera_modes[] = { | |||
256 | }, | 256 | }, |
257 | }; | 257 | }; |
258 | 258 | ||
259 | struct pmx_dev pmx_telecom_camera = { | 259 | struct pmx_dev spear300_pmx_telecom_camera = { |
260 | .name = "telecom_camera", | 260 | .name = "telecom_camera", |
261 | .modes = pmx_telecom_camera_modes, | 261 | .modes = pmx_telecom_camera_modes, |
262 | .mode_count = ARRAY_SIZE(pmx_telecom_camera_modes), | 262 | .mode_count = ARRAY_SIZE(pmx_telecom_camera_modes), |
263 | .enb_on_reset = 1, | 263 | .enb_on_reset = 1, |
264 | }; | 264 | }; |
265 | 265 | ||
266 | struct pmx_dev_mode pmx_telecom_dac_modes[] = { | 266 | static struct pmx_dev_mode pmx_telecom_dac_modes[] = { |
267 | { | 267 | { |
268 | .ids = ATA_PABX_I2S_MODE | CAML_LCDW_MODE | CAMU_LCD_MODE | 268 | .ids = ATA_PABX_I2S_MODE | CAML_LCDW_MODE | CAMU_LCD_MODE |
269 | | CAMU_WLCD_MODE | CAML_LCD_MODE, | 269 | | CAMU_WLCD_MODE | CAML_LCD_MODE, |
@@ -271,14 +271,14 @@ struct pmx_dev_mode pmx_telecom_dac_modes[] = { | |||
271 | }, | 271 | }, |
272 | }; | 272 | }; |
273 | 273 | ||
274 | struct pmx_dev pmx_telecom_dac = { | 274 | struct pmx_dev spear300_pmx_telecom_dac = { |
275 | .name = "telecom_dac", | 275 | .name = "telecom_dac", |
276 | .modes = pmx_telecom_dac_modes, | 276 | .modes = pmx_telecom_dac_modes, |
277 | .mode_count = ARRAY_SIZE(pmx_telecom_dac_modes), | 277 | .mode_count = ARRAY_SIZE(pmx_telecom_dac_modes), |
278 | .enb_on_reset = 1, | 278 | .enb_on_reset = 1, |
279 | }; | 279 | }; |
280 | 280 | ||
281 | struct pmx_dev_mode pmx_telecom_i2s_modes[] = { | 281 | static struct pmx_dev_mode pmx_telecom_i2s_modes[] = { |
282 | { | 282 | { |
283 | .ids = LEND_IP_PHONE_MODE | HEND_IP_PHONE_MODE | 283 | .ids = LEND_IP_PHONE_MODE | HEND_IP_PHONE_MODE |
284 | | LEND_WIFI_PHONE_MODE | HEND_WIFI_PHONE_MODE | | 284 | | LEND_WIFI_PHONE_MODE | HEND_WIFI_PHONE_MODE | |
@@ -288,14 +288,14 @@ struct pmx_dev_mode pmx_telecom_i2s_modes[] = { | |||
288 | }, | 288 | }, |
289 | }; | 289 | }; |
290 | 290 | ||
291 | struct pmx_dev pmx_telecom_i2s = { | 291 | struct pmx_dev spear300_pmx_telecom_i2s = { |
292 | .name = "telecom_i2s", | 292 | .name = "telecom_i2s", |
293 | .modes = pmx_telecom_i2s_modes, | 293 | .modes = pmx_telecom_i2s_modes, |
294 | .mode_count = ARRAY_SIZE(pmx_telecom_i2s_modes), | 294 | .mode_count = ARRAY_SIZE(pmx_telecom_i2s_modes), |
295 | .enb_on_reset = 1, | 295 | .enb_on_reset = 1, |
296 | }; | 296 | }; |
297 | 297 | ||
298 | struct pmx_dev_mode pmx_telecom_boot_pins_modes[] = { | 298 | static struct pmx_dev_mode pmx_telecom_boot_pins_modes[] = { |
299 | { | 299 | { |
300 | .ids = NAND_MODE | NOR_MODE, | 300 | .ids = NAND_MODE | NOR_MODE, |
301 | .mask = PMX_UART0_MODEM_MASK | PMX_TIMER_1_2_MASK | | 301 | .mask = PMX_UART0_MODEM_MASK | PMX_TIMER_1_2_MASK | |
@@ -303,14 +303,14 @@ struct pmx_dev_mode pmx_telecom_boot_pins_modes[] = { | |||
303 | }, | 303 | }, |
304 | }; | 304 | }; |
305 | 305 | ||
306 | struct pmx_dev pmx_telecom_boot_pins = { | 306 | struct pmx_dev spear300_pmx_telecom_boot_pins = { |
307 | .name = "telecom_boot_pins", | 307 | .name = "telecom_boot_pins", |
308 | .modes = pmx_telecom_boot_pins_modes, | 308 | .modes = pmx_telecom_boot_pins_modes, |
309 | .mode_count = ARRAY_SIZE(pmx_telecom_boot_pins_modes), | 309 | .mode_count = ARRAY_SIZE(pmx_telecom_boot_pins_modes), |
310 | .enb_on_reset = 1, | 310 | .enb_on_reset = 1, |
311 | }; | 311 | }; |
312 | 312 | ||
313 | struct pmx_dev_mode pmx_telecom_sdhci_4bit_modes[] = { | 313 | static struct pmx_dev_mode pmx_telecom_sdhci_4bit_modes[] = { |
314 | { | 314 | { |
315 | .ids = PHOTO_FRAME_MODE | LEND_IP_PHONE_MODE | | 315 | .ids = PHOTO_FRAME_MODE | LEND_IP_PHONE_MODE | |
316 | HEND_IP_PHONE_MODE | LEND_WIFI_PHONE_MODE | | 316 | HEND_IP_PHONE_MODE | LEND_WIFI_PHONE_MODE | |
@@ -323,14 +323,14 @@ struct pmx_dev_mode pmx_telecom_sdhci_4bit_modes[] = { | |||
323 | }, | 323 | }, |
324 | }; | 324 | }; |
325 | 325 | ||
326 | struct pmx_dev pmx_telecom_sdhci_4bit = { | 326 | struct pmx_dev spear300_pmx_telecom_sdhci_4bit = { |
327 | .name = "telecom_sdhci_4bit", | 327 | .name = "telecom_sdhci_4bit", |
328 | .modes = pmx_telecom_sdhci_4bit_modes, | 328 | .modes = pmx_telecom_sdhci_4bit_modes, |
329 | .mode_count = ARRAY_SIZE(pmx_telecom_sdhci_4bit_modes), | 329 | .mode_count = ARRAY_SIZE(pmx_telecom_sdhci_4bit_modes), |
330 | .enb_on_reset = 1, | 330 | .enb_on_reset = 1, |
331 | }; | 331 | }; |
332 | 332 | ||
333 | struct pmx_dev_mode pmx_telecom_sdhci_8bit_modes[] = { | 333 | static struct pmx_dev_mode pmx_telecom_sdhci_8bit_modes[] = { |
334 | { | 334 | { |
335 | .ids = PHOTO_FRAME_MODE | LEND_IP_PHONE_MODE | | 335 | .ids = PHOTO_FRAME_MODE | LEND_IP_PHONE_MODE | |
336 | HEND_IP_PHONE_MODE | LEND_WIFI_PHONE_MODE | | 336 | HEND_IP_PHONE_MODE | LEND_WIFI_PHONE_MODE | |
@@ -342,14 +342,14 @@ struct pmx_dev_mode pmx_telecom_sdhci_8bit_modes[] = { | |||
342 | }, | 342 | }, |
343 | }; | 343 | }; |
344 | 344 | ||
345 | struct pmx_dev pmx_telecom_sdhci_8bit = { | 345 | struct pmx_dev spear300_pmx_telecom_sdhci_8bit = { |
346 | .name = "telecom_sdhci_8bit", | 346 | .name = "telecom_sdhci_8bit", |
347 | .modes = pmx_telecom_sdhci_8bit_modes, | 347 | .modes = pmx_telecom_sdhci_8bit_modes, |
348 | .mode_count = ARRAY_SIZE(pmx_telecom_sdhci_8bit_modes), | 348 | .mode_count = ARRAY_SIZE(pmx_telecom_sdhci_8bit_modes), |
349 | .enb_on_reset = 1, | 349 | .enb_on_reset = 1, |
350 | }; | 350 | }; |
351 | 351 | ||
352 | struct pmx_dev_mode pmx_gpio1_modes[] = { | 352 | static struct pmx_dev_mode pmx_gpio1_modes[] = { |
353 | { | 353 | { |
354 | .ids = PHOTO_FRAME_MODE, | 354 | .ids = PHOTO_FRAME_MODE, |
355 | .mask = PMX_UART0_MODEM_MASK | PMX_TIMER_1_2_MASK | | 355 | .mask = PMX_UART0_MODEM_MASK | PMX_TIMER_1_2_MASK | |
@@ -357,7 +357,7 @@ struct pmx_dev_mode pmx_gpio1_modes[] = { | |||
357 | }, | 357 | }, |
358 | }; | 358 | }; |
359 | 359 | ||
360 | struct pmx_dev pmx_gpio1 = { | 360 | struct pmx_dev spear300_pmx_gpio1 = { |
361 | .name = "arm gpio1", | 361 | .name = "arm gpio1", |
362 | .modes = pmx_gpio1_modes, | 362 | .modes = pmx_gpio1_modes, |
363 | .mode_count = ARRAY_SIZE(pmx_gpio1_modes), | 363 | .mode_count = ARRAY_SIZE(pmx_gpio1_modes), |
@@ -365,7 +365,7 @@ struct pmx_dev pmx_gpio1 = { | |||
365 | }; | 365 | }; |
366 | 366 | ||
367 | /* pmx driver structure */ | 367 | /* pmx driver structure */ |
368 | struct pmx_driver pmx_driver = { | 368 | static struct pmx_driver pmx_driver = { |
369 | .mode_reg = {.offset = MODE_CONFIG_REG, .mask = 0x0000000f}, | 369 | .mode_reg = {.offset = MODE_CONFIG_REG, .mask = 0x0000000f}, |
370 | .mux_reg = {.offset = PAD_MUX_CONFIG_REG, .mask = 0x00007fff}, | 370 | .mux_reg = {.offset = PAD_MUX_CONFIG_REG, .mask = 0x00007fff}, |
371 | }; | 371 | }; |
@@ -444,7 +444,8 @@ struct amba_device gpio1_device = { | |||
444 | }; | 444 | }; |
445 | 445 | ||
446 | /* spear300 routines */ | 446 | /* spear300 routines */ |
447 | void __init spear300_init(void) | 447 | void __init spear300_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, |
448 | u8 pmx_dev_count) | ||
448 | { | 449 | { |
449 | int ret = 0; | 450 | int ret = 0; |
450 | 451 | ||
@@ -460,6 +461,10 @@ void __init spear300_init(void) | |||
460 | } | 461 | } |
461 | 462 | ||
462 | /* pmx initialization */ | 463 | /* pmx initialization */ |
464 | pmx_driver.mode = pmx_mode; | ||
465 | pmx_driver.devs = pmx_devs; | ||
466 | pmx_driver.devs_count = pmx_dev_count; | ||
467 | |||
463 | pmx_driver.base = ioremap(SPEAR300_SOC_CONFIG_BASE, SZ_4K); | 468 | pmx_driver.base = ioremap(SPEAR300_SOC_CONFIG_BASE, SZ_4K); |
464 | if (pmx_driver.base) { | 469 | if (pmx_driver.base) { |
465 | ret = pmx_register(&pmx_driver); | 470 | ret = pmx_register(&pmx_driver); |
diff --git a/arch/arm/mach-spear3xx/spear300_evb.c b/arch/arm/mach-spear3xx/spear300_evb.c index 42d2253ef540..405ae098cc87 100644 --- a/arch/arm/mach-spear3xx/spear300_evb.c +++ b/arch/arm/mach-spear3xx/spear300_evb.c | |||
@@ -19,17 +19,17 @@ | |||
19 | /* padmux devices to enable */ | 19 | /* padmux devices to enable */ |
20 | static struct pmx_dev *pmx_devs[] = { | 20 | static struct pmx_dev *pmx_devs[] = { |
21 | /* spear3xx specific devices */ | 21 | /* spear3xx specific devices */ |
22 | &pmx_i2c, | 22 | &spear3xx_pmx_i2c, |
23 | &pmx_ssp_cs, | 23 | &spear3xx_pmx_ssp_cs, |
24 | &pmx_ssp, | 24 | &spear3xx_pmx_ssp, |
25 | &pmx_mii, | 25 | &spear3xx_pmx_mii, |
26 | &pmx_uart0, | 26 | &spear3xx_pmx_uart0, |
27 | 27 | ||
28 | /* spear300 specific devices */ | 28 | /* spear300 specific devices */ |
29 | &pmx_fsmc_2_chips, | 29 | &spear300_pmx_fsmc_2_chips, |
30 | &pmx_clcd, | 30 | &spear300_pmx_clcd, |
31 | &pmx_telecom_sdhci_4bit, | 31 | &spear300_pmx_telecom_sdhci_4bit, |
32 | &pmx_gpio1, | 32 | &spear300_pmx_gpio1, |
33 | }; | 33 | }; |
34 | 34 | ||
35 | static struct amba_device *amba_devs[] __initdata = { | 35 | static struct amba_device *amba_devs[] __initdata = { |
@@ -51,13 +51,9 @@ static void __init spear300_evb_init(void) | |||
51 | { | 51 | { |
52 | unsigned int i; | 52 | unsigned int i; |
53 | 53 | ||
54 | /* padmux initialization, must be done before spear300_init */ | ||
55 | pmx_driver.mode = &photo_frame_mode; | ||
56 | pmx_driver.devs = pmx_devs; | ||
57 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); | ||
58 | |||
59 | /* call spear300 machine init function */ | 54 | /* call spear300 machine init function */ |
60 | spear300_init(); | 55 | spear300_init(&spear300_photo_frame_mode, pmx_devs, |
56 | ARRAY_SIZE(pmx_devs)); | ||
61 | 57 | ||
62 | /* Add Platform Devices */ | 58 | /* Add Platform Devices */ |
63 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); | 59 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); |
diff --git a/arch/arm/mach-spear3xx/spear310.c b/arch/arm/mach-spear3xx/spear310.c index 826c166a76a5..9004cf9f01bf 100644 --- a/arch/arm/mach-spear3xx/spear310.c +++ b/arch/arm/mach-spear3xx/spear310.c | |||
@@ -22,112 +22,112 @@ | |||
22 | #define PAD_MUX_CONFIG_REG 0x08 | 22 | #define PAD_MUX_CONFIG_REG 0x08 |
23 | 23 | ||
24 | /* devices */ | 24 | /* devices */ |
25 | struct pmx_dev_mode pmx_emi_cs_0_1_4_5_modes[] = { | 25 | static struct pmx_dev_mode pmx_emi_cs_0_1_4_5_modes[] = { |
26 | { | 26 | { |
27 | .ids = 0x00, | 27 | .ids = 0x00, |
28 | .mask = PMX_TIMER_3_4_MASK, | 28 | .mask = PMX_TIMER_3_4_MASK, |
29 | }, | 29 | }, |
30 | }; | 30 | }; |
31 | 31 | ||
32 | struct pmx_dev pmx_emi_cs_0_1_4_5 = { | 32 | struct pmx_dev spear310_pmx_emi_cs_0_1_4_5 = { |
33 | .name = "emi_cs_0_1_4_5", | 33 | .name = "emi_cs_0_1_4_5", |
34 | .modes = pmx_emi_cs_0_1_4_5_modes, | 34 | .modes = pmx_emi_cs_0_1_4_5_modes, |
35 | .mode_count = ARRAY_SIZE(pmx_emi_cs_0_1_4_5_modes), | 35 | .mode_count = ARRAY_SIZE(pmx_emi_cs_0_1_4_5_modes), |
36 | .enb_on_reset = 1, | 36 | .enb_on_reset = 1, |
37 | }; | 37 | }; |
38 | 38 | ||
39 | struct pmx_dev_mode pmx_emi_cs_2_3_modes[] = { | 39 | static struct pmx_dev_mode pmx_emi_cs_2_3_modes[] = { |
40 | { | 40 | { |
41 | .ids = 0x00, | 41 | .ids = 0x00, |
42 | .mask = PMX_TIMER_1_2_MASK, | 42 | .mask = PMX_TIMER_1_2_MASK, |
43 | }, | 43 | }, |
44 | }; | 44 | }; |
45 | 45 | ||
46 | struct pmx_dev pmx_emi_cs_2_3 = { | 46 | struct pmx_dev spear310_pmx_emi_cs_2_3 = { |
47 | .name = "emi_cs_2_3", | 47 | .name = "emi_cs_2_3", |
48 | .modes = pmx_emi_cs_2_3_modes, | 48 | .modes = pmx_emi_cs_2_3_modes, |
49 | .mode_count = ARRAY_SIZE(pmx_emi_cs_2_3_modes), | 49 | .mode_count = ARRAY_SIZE(pmx_emi_cs_2_3_modes), |
50 | .enb_on_reset = 1, | 50 | .enb_on_reset = 1, |
51 | }; | 51 | }; |
52 | 52 | ||
53 | struct pmx_dev_mode pmx_uart1_modes[] = { | 53 | static struct pmx_dev_mode pmx_uart1_modes[] = { |
54 | { | 54 | { |
55 | .ids = 0x00, | 55 | .ids = 0x00, |
56 | .mask = PMX_FIRDA_MASK, | 56 | .mask = PMX_FIRDA_MASK, |
57 | }, | 57 | }, |
58 | }; | 58 | }; |
59 | 59 | ||
60 | struct pmx_dev pmx_uart1 = { | 60 | struct pmx_dev spear310_pmx_uart1 = { |
61 | .name = "uart1", | 61 | .name = "uart1", |
62 | .modes = pmx_uart1_modes, | 62 | .modes = pmx_uart1_modes, |
63 | .mode_count = ARRAY_SIZE(pmx_uart1_modes), | 63 | .mode_count = ARRAY_SIZE(pmx_uart1_modes), |
64 | .enb_on_reset = 1, | 64 | .enb_on_reset = 1, |
65 | }; | 65 | }; |
66 | 66 | ||
67 | struct pmx_dev_mode pmx_uart2_modes[] = { | 67 | static struct pmx_dev_mode pmx_uart2_modes[] = { |
68 | { | 68 | { |
69 | .ids = 0x00, | 69 | .ids = 0x00, |
70 | .mask = PMX_TIMER_1_2_MASK, | 70 | .mask = PMX_TIMER_1_2_MASK, |
71 | }, | 71 | }, |
72 | }; | 72 | }; |
73 | 73 | ||
74 | struct pmx_dev pmx_uart2 = { | 74 | struct pmx_dev spear310_pmx_uart2 = { |
75 | .name = "uart2", | 75 | .name = "uart2", |
76 | .modes = pmx_uart2_modes, | 76 | .modes = pmx_uart2_modes, |
77 | .mode_count = ARRAY_SIZE(pmx_uart2_modes), | 77 | .mode_count = ARRAY_SIZE(pmx_uart2_modes), |
78 | .enb_on_reset = 1, | 78 | .enb_on_reset = 1, |
79 | }; | 79 | }; |
80 | 80 | ||
81 | struct pmx_dev_mode pmx_uart3_4_5_modes[] = { | 81 | static struct pmx_dev_mode pmx_uart3_4_5_modes[] = { |
82 | { | 82 | { |
83 | .ids = 0x00, | 83 | .ids = 0x00, |
84 | .mask = PMX_UART0_MODEM_MASK, | 84 | .mask = PMX_UART0_MODEM_MASK, |
85 | }, | 85 | }, |
86 | }; | 86 | }; |
87 | 87 | ||
88 | struct pmx_dev pmx_uart3_4_5 = { | 88 | struct pmx_dev spear310_pmx_uart3_4_5 = { |
89 | .name = "uart3_4_5", | 89 | .name = "uart3_4_5", |
90 | .modes = pmx_uart3_4_5_modes, | 90 | .modes = pmx_uart3_4_5_modes, |
91 | .mode_count = ARRAY_SIZE(pmx_uart3_4_5_modes), | 91 | .mode_count = ARRAY_SIZE(pmx_uart3_4_5_modes), |
92 | .enb_on_reset = 1, | 92 | .enb_on_reset = 1, |
93 | }; | 93 | }; |
94 | 94 | ||
95 | struct pmx_dev_mode pmx_fsmc_modes[] = { | 95 | static struct pmx_dev_mode pmx_fsmc_modes[] = { |
96 | { | 96 | { |
97 | .ids = 0x00, | 97 | .ids = 0x00, |
98 | .mask = PMX_SSP_CS_MASK, | 98 | .mask = PMX_SSP_CS_MASK, |
99 | }, | 99 | }, |
100 | }; | 100 | }; |
101 | 101 | ||
102 | struct pmx_dev pmx_fsmc = { | 102 | struct pmx_dev spear310_pmx_fsmc = { |
103 | .name = "fsmc", | 103 | .name = "fsmc", |
104 | .modes = pmx_fsmc_modes, | 104 | .modes = pmx_fsmc_modes, |
105 | .mode_count = ARRAY_SIZE(pmx_fsmc_modes), | 105 | .mode_count = ARRAY_SIZE(pmx_fsmc_modes), |
106 | .enb_on_reset = 1, | 106 | .enb_on_reset = 1, |
107 | }; | 107 | }; |
108 | 108 | ||
109 | struct pmx_dev_mode pmx_rs485_0_1_modes[] = { | 109 | static struct pmx_dev_mode pmx_rs485_0_1_modes[] = { |
110 | { | 110 | { |
111 | .ids = 0x00, | 111 | .ids = 0x00, |
112 | .mask = PMX_MII_MASK, | 112 | .mask = PMX_MII_MASK, |
113 | }, | 113 | }, |
114 | }; | 114 | }; |
115 | 115 | ||
116 | struct pmx_dev pmx_rs485_0_1 = { | 116 | struct pmx_dev spear310_pmx_rs485_0_1 = { |
117 | .name = "rs485_0_1", | 117 | .name = "rs485_0_1", |
118 | .modes = pmx_rs485_0_1_modes, | 118 | .modes = pmx_rs485_0_1_modes, |
119 | .mode_count = ARRAY_SIZE(pmx_rs485_0_1_modes), | 119 | .mode_count = ARRAY_SIZE(pmx_rs485_0_1_modes), |
120 | .enb_on_reset = 1, | 120 | .enb_on_reset = 1, |
121 | }; | 121 | }; |
122 | 122 | ||
123 | struct pmx_dev_mode pmx_tdm0_modes[] = { | 123 | static struct pmx_dev_mode pmx_tdm0_modes[] = { |
124 | { | 124 | { |
125 | .ids = 0x00, | 125 | .ids = 0x00, |
126 | .mask = PMX_MII_MASK, | 126 | .mask = PMX_MII_MASK, |
127 | }, | 127 | }, |
128 | }; | 128 | }; |
129 | 129 | ||
130 | struct pmx_dev pmx_tdm0 = { | 130 | struct pmx_dev spear310_pmx_tdm0 = { |
131 | .name = "tdm0", | 131 | .name = "tdm0", |
132 | .modes = pmx_tdm0_modes, | 132 | .modes = pmx_tdm0_modes, |
133 | .mode_count = ARRAY_SIZE(pmx_tdm0_modes), | 133 | .mode_count = ARRAY_SIZE(pmx_tdm0_modes), |
@@ -135,7 +135,7 @@ struct pmx_dev pmx_tdm0 = { | |||
135 | }; | 135 | }; |
136 | 136 | ||
137 | /* pmx driver structure */ | 137 | /* pmx driver structure */ |
138 | struct pmx_driver pmx_driver = { | 138 | static struct pmx_driver pmx_driver = { |
139 | .mux_reg = {.offset = PAD_MUX_CONFIG_REG, .mask = 0x00007fff}, | 139 | .mux_reg = {.offset = PAD_MUX_CONFIG_REG, .mask = 0x00007fff}, |
140 | }; | 140 | }; |
141 | 141 | ||
@@ -258,7 +258,8 @@ static struct spear_shirq shirq_intrcomm_ras = { | |||
258 | /* Add spear310 specific devices here */ | 258 | /* Add spear310 specific devices here */ |
259 | 259 | ||
260 | /* spear310 routines */ | 260 | /* spear310 routines */ |
261 | void __init spear310_init(void) | 261 | void __init spear310_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, |
262 | u8 pmx_dev_count) | ||
262 | { | 263 | { |
263 | void __iomem *base; | 264 | void __iomem *base; |
264 | int ret = 0; | 265 | int ret = 0; |
@@ -296,6 +297,10 @@ void __init spear310_init(void) | |||
296 | 297 | ||
297 | /* pmx initialization */ | 298 | /* pmx initialization */ |
298 | pmx_driver.base = base; | 299 | pmx_driver.base = base; |
300 | pmx_driver.mode = pmx_mode; | ||
301 | pmx_driver.devs = pmx_devs; | ||
302 | pmx_driver.devs_count = pmx_dev_count; | ||
303 | |||
299 | ret = pmx_register(&pmx_driver); | 304 | ret = pmx_register(&pmx_driver); |
300 | if (ret) | 305 | if (ret) |
301 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", | 306 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", |
diff --git a/arch/arm/mach-spear3xx/spear310_evb.c b/arch/arm/mach-spear3xx/spear310_evb.c index 2d7f333bd67b..9d4aadbe24e9 100644 --- a/arch/arm/mach-spear3xx/spear310_evb.c +++ b/arch/arm/mach-spear3xx/spear310_evb.c | |||
@@ -19,25 +19,25 @@ | |||
19 | /* padmux devices to enable */ | 19 | /* padmux devices to enable */ |
20 | static struct pmx_dev *pmx_devs[] = { | 20 | static struct pmx_dev *pmx_devs[] = { |
21 | /* spear3xx specific devices */ | 21 | /* spear3xx specific devices */ |
22 | &pmx_i2c, | 22 | &spear3xx_pmx_i2c, |
23 | &pmx_ssp, | 23 | &spear3xx_pmx_ssp, |
24 | &pmx_gpio_pin0, | 24 | &spear3xx_pmx_gpio_pin0, |
25 | &pmx_gpio_pin1, | 25 | &spear3xx_pmx_gpio_pin1, |
26 | &pmx_gpio_pin2, | 26 | &spear3xx_pmx_gpio_pin2, |
27 | &pmx_gpio_pin3, | 27 | &spear3xx_pmx_gpio_pin3, |
28 | &pmx_gpio_pin4, | 28 | &spear3xx_pmx_gpio_pin4, |
29 | &pmx_gpio_pin5, | 29 | &spear3xx_pmx_gpio_pin5, |
30 | &pmx_uart0, | 30 | &spear3xx_pmx_uart0, |
31 | 31 | ||
32 | /* spear310 specific devices */ | 32 | /* spear310 specific devices */ |
33 | &pmx_emi_cs_0_1_4_5, | 33 | &spear310_pmx_emi_cs_0_1_4_5, |
34 | &pmx_emi_cs_2_3, | 34 | &spear310_pmx_emi_cs_2_3, |
35 | &pmx_uart1, | 35 | &spear310_pmx_uart1, |
36 | &pmx_uart2, | 36 | &spear310_pmx_uart2, |
37 | &pmx_uart3_4_5, | 37 | &spear310_pmx_uart3_4_5, |
38 | &pmx_fsmc, | 38 | &spear310_pmx_fsmc, |
39 | &pmx_rs485_0_1, | 39 | &spear310_pmx_rs485_0_1, |
40 | &pmx_tdm0, | 40 | &spear310_pmx_tdm0, |
41 | }; | 41 | }; |
42 | 42 | ||
43 | static struct amba_device *amba_devs[] __initdata = { | 43 | static struct amba_device *amba_devs[] __initdata = { |
@@ -58,13 +58,8 @@ static void __init spear310_evb_init(void) | |||
58 | { | 58 | { |
59 | unsigned int i; | 59 | unsigned int i; |
60 | 60 | ||
61 | /* padmux initialization, must be done before spear310_init */ | ||
62 | pmx_driver.mode = NULL; | ||
63 | pmx_driver.devs = pmx_devs; | ||
64 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); | ||
65 | |||
66 | /* call spear310 machine init function */ | 61 | /* call spear310 machine init function */ |
67 | spear310_init(); | 62 | spear310_init(NULL, pmx_devs, ARRAY_SIZE(pmx_devs)); |
68 | 63 | ||
69 | /* Add Platform Devices */ | 64 | /* Add Platform Devices */ |
70 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); | 65 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); |
diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c index ccb745b60106..ee29bef43074 100644 --- a/arch/arm/mach-spear3xx/spear320.c +++ b/arch/arm/mach-spear3xx/spear320.c | |||
@@ -29,88 +29,88 @@ | |||
29 | #define SMALL_PRINTERS_MODE (1 << 3) | 29 | #define SMALL_PRINTERS_MODE (1 << 3) |
30 | #define ALL_MODES 0xF | 30 | #define ALL_MODES 0xF |
31 | 31 | ||
32 | struct pmx_mode auto_net_smii_mode = { | 32 | struct pmx_mode spear320_auto_net_smii_mode = { |
33 | .id = AUTO_NET_SMII_MODE, | 33 | .id = AUTO_NET_SMII_MODE, |
34 | .name = "Automation Networking SMII Mode", | 34 | .name = "Automation Networking SMII Mode", |
35 | .mask = 0x00, | 35 | .mask = 0x00, |
36 | }; | 36 | }; |
37 | 37 | ||
38 | struct pmx_mode auto_net_mii_mode = { | 38 | struct pmx_mode spear320_auto_net_mii_mode = { |
39 | .id = AUTO_NET_MII_MODE, | 39 | .id = AUTO_NET_MII_MODE, |
40 | .name = "Automation Networking MII Mode", | 40 | .name = "Automation Networking MII Mode", |
41 | .mask = 0x01, | 41 | .mask = 0x01, |
42 | }; | 42 | }; |
43 | 43 | ||
44 | struct pmx_mode auto_exp_mode = { | 44 | struct pmx_mode spear320_auto_exp_mode = { |
45 | .id = AUTO_EXP_MODE, | 45 | .id = AUTO_EXP_MODE, |
46 | .name = "Automation Expanded Mode", | 46 | .name = "Automation Expanded Mode", |
47 | .mask = 0x02, | 47 | .mask = 0x02, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | struct pmx_mode small_printers_mode = { | 50 | struct pmx_mode spear320_small_printers_mode = { |
51 | .id = SMALL_PRINTERS_MODE, | 51 | .id = SMALL_PRINTERS_MODE, |
52 | .name = "Small Printers Mode", | 52 | .name = "Small Printers Mode", |
53 | .mask = 0x03, | 53 | .mask = 0x03, |
54 | }; | 54 | }; |
55 | 55 | ||
56 | /* devices */ | 56 | /* devices */ |
57 | struct pmx_dev_mode pmx_clcd_modes[] = { | 57 | static struct pmx_dev_mode pmx_clcd_modes[] = { |
58 | { | 58 | { |
59 | .ids = AUTO_NET_SMII_MODE, | 59 | .ids = AUTO_NET_SMII_MODE, |
60 | .mask = 0x0, | 60 | .mask = 0x0, |
61 | }, | 61 | }, |
62 | }; | 62 | }; |
63 | 63 | ||
64 | struct pmx_dev pmx_clcd = { | 64 | struct pmx_dev spear320_pmx_clcd = { |
65 | .name = "clcd", | 65 | .name = "clcd", |
66 | .modes = pmx_clcd_modes, | 66 | .modes = pmx_clcd_modes, |
67 | .mode_count = ARRAY_SIZE(pmx_clcd_modes), | 67 | .mode_count = ARRAY_SIZE(pmx_clcd_modes), |
68 | .enb_on_reset = 1, | 68 | .enb_on_reset = 1, |
69 | }; | 69 | }; |
70 | 70 | ||
71 | struct pmx_dev_mode pmx_emi_modes[] = { | 71 | static struct pmx_dev_mode pmx_emi_modes[] = { |
72 | { | 72 | { |
73 | .ids = AUTO_EXP_MODE, | 73 | .ids = AUTO_EXP_MODE, |
74 | .mask = PMX_TIMER_1_2_MASK | PMX_TIMER_3_4_MASK, | 74 | .mask = PMX_TIMER_1_2_MASK | PMX_TIMER_3_4_MASK, |
75 | }, | 75 | }, |
76 | }; | 76 | }; |
77 | 77 | ||
78 | struct pmx_dev pmx_emi = { | 78 | struct pmx_dev spear320_pmx_emi = { |
79 | .name = "emi", | 79 | .name = "emi", |
80 | .modes = pmx_emi_modes, | 80 | .modes = pmx_emi_modes, |
81 | .mode_count = ARRAY_SIZE(pmx_emi_modes), | 81 | .mode_count = ARRAY_SIZE(pmx_emi_modes), |
82 | .enb_on_reset = 1, | 82 | .enb_on_reset = 1, |
83 | }; | 83 | }; |
84 | 84 | ||
85 | struct pmx_dev_mode pmx_fsmc_modes[] = { | 85 | static struct pmx_dev_mode pmx_fsmc_modes[] = { |
86 | { | 86 | { |
87 | .ids = ALL_MODES, | 87 | .ids = ALL_MODES, |
88 | .mask = 0x0, | 88 | .mask = 0x0, |
89 | }, | 89 | }, |
90 | }; | 90 | }; |
91 | 91 | ||
92 | struct pmx_dev pmx_fsmc = { | 92 | struct pmx_dev spear320_pmx_fsmc = { |
93 | .name = "fsmc", | 93 | .name = "fsmc", |
94 | .modes = pmx_fsmc_modes, | 94 | .modes = pmx_fsmc_modes, |
95 | .mode_count = ARRAY_SIZE(pmx_fsmc_modes), | 95 | .mode_count = ARRAY_SIZE(pmx_fsmc_modes), |
96 | .enb_on_reset = 1, | 96 | .enb_on_reset = 1, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | struct pmx_dev_mode pmx_spp_modes[] = { | 99 | static struct pmx_dev_mode pmx_spp_modes[] = { |
100 | { | 100 | { |
101 | .ids = SMALL_PRINTERS_MODE, | 101 | .ids = SMALL_PRINTERS_MODE, |
102 | .mask = 0x0, | 102 | .mask = 0x0, |
103 | }, | 103 | }, |
104 | }; | 104 | }; |
105 | 105 | ||
106 | struct pmx_dev pmx_spp = { | 106 | struct pmx_dev spear320_pmx_spp = { |
107 | .name = "spp", | 107 | .name = "spp", |
108 | .modes = pmx_spp_modes, | 108 | .modes = pmx_spp_modes, |
109 | .mode_count = ARRAY_SIZE(pmx_spp_modes), | 109 | .mode_count = ARRAY_SIZE(pmx_spp_modes), |
110 | .enb_on_reset = 1, | 110 | .enb_on_reset = 1, |
111 | }; | 111 | }; |
112 | 112 | ||
113 | struct pmx_dev_mode pmx_sdhci_modes[] = { | 113 | static struct pmx_dev_mode pmx_sdhci_modes[] = { |
114 | { | 114 | { |
115 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE | | 115 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE | |
116 | SMALL_PRINTERS_MODE, | 116 | SMALL_PRINTERS_MODE, |
@@ -118,42 +118,42 @@ struct pmx_dev_mode pmx_sdhci_modes[] = { | |||
118 | }, | 118 | }, |
119 | }; | 119 | }; |
120 | 120 | ||
121 | struct pmx_dev pmx_sdhci = { | 121 | struct pmx_dev spear320_pmx_sdhci = { |
122 | .name = "sdhci", | 122 | .name = "sdhci", |
123 | .modes = pmx_sdhci_modes, | 123 | .modes = pmx_sdhci_modes, |
124 | .mode_count = ARRAY_SIZE(pmx_sdhci_modes), | 124 | .mode_count = ARRAY_SIZE(pmx_sdhci_modes), |
125 | .enb_on_reset = 1, | 125 | .enb_on_reset = 1, |
126 | }; | 126 | }; |
127 | 127 | ||
128 | struct pmx_dev_mode pmx_i2s_modes[] = { | 128 | static struct pmx_dev_mode pmx_i2s_modes[] = { |
129 | { | 129 | { |
130 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, | 130 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, |
131 | .mask = PMX_UART0_MODEM_MASK, | 131 | .mask = PMX_UART0_MODEM_MASK, |
132 | }, | 132 | }, |
133 | }; | 133 | }; |
134 | 134 | ||
135 | struct pmx_dev pmx_i2s = { | 135 | struct pmx_dev spear320_pmx_i2s = { |
136 | .name = "i2s", | 136 | .name = "i2s", |
137 | .modes = pmx_i2s_modes, | 137 | .modes = pmx_i2s_modes, |
138 | .mode_count = ARRAY_SIZE(pmx_i2s_modes), | 138 | .mode_count = ARRAY_SIZE(pmx_i2s_modes), |
139 | .enb_on_reset = 1, | 139 | .enb_on_reset = 1, |
140 | }; | 140 | }; |
141 | 141 | ||
142 | struct pmx_dev_mode pmx_uart1_modes[] = { | 142 | static struct pmx_dev_mode pmx_uart1_modes[] = { |
143 | { | 143 | { |
144 | .ids = ALL_MODES, | 144 | .ids = ALL_MODES, |
145 | .mask = PMX_GPIO_PIN0_MASK | PMX_GPIO_PIN1_MASK, | 145 | .mask = PMX_GPIO_PIN0_MASK | PMX_GPIO_PIN1_MASK, |
146 | }, | 146 | }, |
147 | }; | 147 | }; |
148 | 148 | ||
149 | struct pmx_dev pmx_uart1 = { | 149 | struct pmx_dev spear320_pmx_uart1 = { |
150 | .name = "uart1", | 150 | .name = "uart1", |
151 | .modes = pmx_uart1_modes, | 151 | .modes = pmx_uart1_modes, |
152 | .mode_count = ARRAY_SIZE(pmx_uart1_modes), | 152 | .mode_count = ARRAY_SIZE(pmx_uart1_modes), |
153 | .enb_on_reset = 1, | 153 | .enb_on_reset = 1, |
154 | }; | 154 | }; |
155 | 155 | ||
156 | struct pmx_dev_mode pmx_uart1_modem_modes[] = { | 156 | static struct pmx_dev_mode pmx_uart1_modem_modes[] = { |
157 | { | 157 | { |
158 | .ids = AUTO_EXP_MODE, | 158 | .ids = AUTO_EXP_MODE, |
159 | .mask = PMX_TIMER_1_2_MASK | PMX_TIMER_3_4_MASK | | 159 | .mask = PMX_TIMER_1_2_MASK | PMX_TIMER_3_4_MASK | |
@@ -165,42 +165,42 @@ struct pmx_dev_mode pmx_uart1_modem_modes[] = { | |||
165 | }, | 165 | }, |
166 | }; | 166 | }; |
167 | 167 | ||
168 | struct pmx_dev pmx_uart1_modem = { | 168 | struct pmx_dev spear320_pmx_uart1_modem = { |
169 | .name = "uart1_modem", | 169 | .name = "uart1_modem", |
170 | .modes = pmx_uart1_modem_modes, | 170 | .modes = pmx_uart1_modem_modes, |
171 | .mode_count = ARRAY_SIZE(pmx_uart1_modem_modes), | 171 | .mode_count = ARRAY_SIZE(pmx_uart1_modem_modes), |
172 | .enb_on_reset = 1, | 172 | .enb_on_reset = 1, |
173 | }; | 173 | }; |
174 | 174 | ||
175 | struct pmx_dev_mode pmx_uart2_modes[] = { | 175 | static struct pmx_dev_mode pmx_uart2_modes[] = { |
176 | { | 176 | { |
177 | .ids = ALL_MODES, | 177 | .ids = ALL_MODES, |
178 | .mask = PMX_FIRDA_MASK, | 178 | .mask = PMX_FIRDA_MASK, |
179 | }, | 179 | }, |
180 | }; | 180 | }; |
181 | 181 | ||
182 | struct pmx_dev pmx_uart2 = { | 182 | struct pmx_dev spear320_pmx_uart2 = { |
183 | .name = "uart2", | 183 | .name = "uart2", |
184 | .modes = pmx_uart2_modes, | 184 | .modes = pmx_uart2_modes, |
185 | .mode_count = ARRAY_SIZE(pmx_uart2_modes), | 185 | .mode_count = ARRAY_SIZE(pmx_uart2_modes), |
186 | .enb_on_reset = 1, | 186 | .enb_on_reset = 1, |
187 | }; | 187 | }; |
188 | 188 | ||
189 | struct pmx_dev_mode pmx_touchscreen_modes[] = { | 189 | static struct pmx_dev_mode pmx_touchscreen_modes[] = { |
190 | { | 190 | { |
191 | .ids = AUTO_NET_SMII_MODE, | 191 | .ids = AUTO_NET_SMII_MODE, |
192 | .mask = PMX_SSP_CS_MASK, | 192 | .mask = PMX_SSP_CS_MASK, |
193 | }, | 193 | }, |
194 | }; | 194 | }; |
195 | 195 | ||
196 | struct pmx_dev pmx_touchscreen = { | 196 | struct pmx_dev spear320_pmx_touchscreen = { |
197 | .name = "touchscreen", | 197 | .name = "touchscreen", |
198 | .modes = pmx_touchscreen_modes, | 198 | .modes = pmx_touchscreen_modes, |
199 | .mode_count = ARRAY_SIZE(pmx_touchscreen_modes), | 199 | .mode_count = ARRAY_SIZE(pmx_touchscreen_modes), |
200 | .enb_on_reset = 1, | 200 | .enb_on_reset = 1, |
201 | }; | 201 | }; |
202 | 202 | ||
203 | struct pmx_dev_mode pmx_can_modes[] = { | 203 | static struct pmx_dev_mode pmx_can_modes[] = { |
204 | { | 204 | { |
205 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE | AUTO_EXP_MODE, | 205 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE | AUTO_EXP_MODE, |
206 | .mask = PMX_GPIO_PIN2_MASK | PMX_GPIO_PIN3_MASK | | 206 | .mask = PMX_GPIO_PIN2_MASK | PMX_GPIO_PIN3_MASK | |
@@ -208,28 +208,28 @@ struct pmx_dev_mode pmx_can_modes[] = { | |||
208 | }, | 208 | }, |
209 | }; | 209 | }; |
210 | 210 | ||
211 | struct pmx_dev pmx_can = { | 211 | struct pmx_dev spear320_pmx_can = { |
212 | .name = "can", | 212 | .name = "can", |
213 | .modes = pmx_can_modes, | 213 | .modes = pmx_can_modes, |
214 | .mode_count = ARRAY_SIZE(pmx_can_modes), | 214 | .mode_count = ARRAY_SIZE(pmx_can_modes), |
215 | .enb_on_reset = 1, | 215 | .enb_on_reset = 1, |
216 | }; | 216 | }; |
217 | 217 | ||
218 | struct pmx_dev_mode pmx_sdhci_led_modes[] = { | 218 | static struct pmx_dev_mode pmx_sdhci_led_modes[] = { |
219 | { | 219 | { |
220 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, | 220 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, |
221 | .mask = PMX_SSP_CS_MASK, | 221 | .mask = PMX_SSP_CS_MASK, |
222 | }, | 222 | }, |
223 | }; | 223 | }; |
224 | 224 | ||
225 | struct pmx_dev pmx_sdhci_led = { | 225 | struct pmx_dev spear320_pmx_sdhci_led = { |
226 | .name = "sdhci_led", | 226 | .name = "sdhci_led", |
227 | .modes = pmx_sdhci_led_modes, | 227 | .modes = pmx_sdhci_led_modes, |
228 | .mode_count = ARRAY_SIZE(pmx_sdhci_led_modes), | 228 | .mode_count = ARRAY_SIZE(pmx_sdhci_led_modes), |
229 | .enb_on_reset = 1, | 229 | .enb_on_reset = 1, |
230 | }; | 230 | }; |
231 | 231 | ||
232 | struct pmx_dev_mode pmx_pwm0_modes[] = { | 232 | static struct pmx_dev_mode pmx_pwm0_modes[] = { |
233 | { | 233 | { |
234 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, | 234 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, |
235 | .mask = PMX_UART0_MODEM_MASK, | 235 | .mask = PMX_UART0_MODEM_MASK, |
@@ -239,14 +239,14 @@ struct pmx_dev_mode pmx_pwm0_modes[] = { | |||
239 | }, | 239 | }, |
240 | }; | 240 | }; |
241 | 241 | ||
242 | struct pmx_dev pmx_pwm0 = { | 242 | struct pmx_dev spear320_pmx_pwm0 = { |
243 | .name = "pwm0", | 243 | .name = "pwm0", |
244 | .modes = pmx_pwm0_modes, | 244 | .modes = pmx_pwm0_modes, |
245 | .mode_count = ARRAY_SIZE(pmx_pwm0_modes), | 245 | .mode_count = ARRAY_SIZE(pmx_pwm0_modes), |
246 | .enb_on_reset = 1, | 246 | .enb_on_reset = 1, |
247 | }; | 247 | }; |
248 | 248 | ||
249 | struct pmx_dev_mode pmx_pwm1_modes[] = { | 249 | static struct pmx_dev_mode pmx_pwm1_modes[] = { |
250 | { | 250 | { |
251 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, | 251 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, |
252 | .mask = PMX_UART0_MODEM_MASK, | 252 | .mask = PMX_UART0_MODEM_MASK, |
@@ -256,14 +256,14 @@ struct pmx_dev_mode pmx_pwm1_modes[] = { | |||
256 | }, | 256 | }, |
257 | }; | 257 | }; |
258 | 258 | ||
259 | struct pmx_dev pmx_pwm1 = { | 259 | struct pmx_dev spear320_pmx_pwm1 = { |
260 | .name = "pwm1", | 260 | .name = "pwm1", |
261 | .modes = pmx_pwm1_modes, | 261 | .modes = pmx_pwm1_modes, |
262 | .mode_count = ARRAY_SIZE(pmx_pwm1_modes), | 262 | .mode_count = ARRAY_SIZE(pmx_pwm1_modes), |
263 | .enb_on_reset = 1, | 263 | .enb_on_reset = 1, |
264 | }; | 264 | }; |
265 | 265 | ||
266 | struct pmx_dev_mode pmx_pwm2_modes[] = { | 266 | static struct pmx_dev_mode pmx_pwm2_modes[] = { |
267 | { | 267 | { |
268 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, | 268 | .ids = AUTO_NET_SMII_MODE | AUTO_NET_MII_MODE, |
269 | .mask = PMX_SSP_CS_MASK, | 269 | .mask = PMX_SSP_CS_MASK, |
@@ -273,105 +273,105 @@ struct pmx_dev_mode pmx_pwm2_modes[] = { | |||
273 | }, | 273 | }, |
274 | }; | 274 | }; |
275 | 275 | ||
276 | struct pmx_dev pmx_pwm2 = { | 276 | struct pmx_dev spear320_pmx_pwm2 = { |
277 | .name = "pwm2", | 277 | .name = "pwm2", |
278 | .modes = pmx_pwm2_modes, | 278 | .modes = pmx_pwm2_modes, |
279 | .mode_count = ARRAY_SIZE(pmx_pwm2_modes), | 279 | .mode_count = ARRAY_SIZE(pmx_pwm2_modes), |
280 | .enb_on_reset = 1, | 280 | .enb_on_reset = 1, |
281 | }; | 281 | }; |
282 | 282 | ||
283 | struct pmx_dev_mode pmx_pwm3_modes[] = { | 283 | static struct pmx_dev_mode pmx_pwm3_modes[] = { |
284 | { | 284 | { |
285 | .ids = AUTO_EXP_MODE | SMALL_PRINTERS_MODE | AUTO_NET_SMII_MODE, | 285 | .ids = AUTO_EXP_MODE | SMALL_PRINTERS_MODE | AUTO_NET_SMII_MODE, |
286 | .mask = PMX_MII_MASK, | 286 | .mask = PMX_MII_MASK, |
287 | }, | 287 | }, |
288 | }; | 288 | }; |
289 | 289 | ||
290 | struct pmx_dev pmx_pwm3 = { | 290 | struct pmx_dev spear320_pmx_pwm3 = { |
291 | .name = "pwm3", | 291 | .name = "pwm3", |
292 | .modes = pmx_pwm3_modes, | 292 | .modes = pmx_pwm3_modes, |
293 | .mode_count = ARRAY_SIZE(pmx_pwm3_modes), | 293 | .mode_count = ARRAY_SIZE(pmx_pwm3_modes), |
294 | .enb_on_reset = 1, | 294 | .enb_on_reset = 1, |
295 | }; | 295 | }; |
296 | 296 | ||
297 | struct pmx_dev_mode pmx_ssp1_modes[] = { | 297 | static struct pmx_dev_mode pmx_ssp1_modes[] = { |
298 | { | 298 | { |
299 | .ids = SMALL_PRINTERS_MODE | AUTO_NET_SMII_MODE, | 299 | .ids = SMALL_PRINTERS_MODE | AUTO_NET_SMII_MODE, |
300 | .mask = PMX_MII_MASK, | 300 | .mask = PMX_MII_MASK, |
301 | }, | 301 | }, |
302 | }; | 302 | }; |
303 | 303 | ||
304 | struct pmx_dev pmx_ssp1 = { | 304 | struct pmx_dev spear320_pmx_ssp1 = { |
305 | .name = "ssp1", | 305 | .name = "ssp1", |
306 | .modes = pmx_ssp1_modes, | 306 | .modes = pmx_ssp1_modes, |
307 | .mode_count = ARRAY_SIZE(pmx_ssp1_modes), | 307 | .mode_count = ARRAY_SIZE(pmx_ssp1_modes), |
308 | .enb_on_reset = 1, | 308 | .enb_on_reset = 1, |
309 | }; | 309 | }; |
310 | 310 | ||
311 | struct pmx_dev_mode pmx_ssp2_modes[] = { | 311 | static struct pmx_dev_mode pmx_ssp2_modes[] = { |
312 | { | 312 | { |
313 | .ids = AUTO_NET_SMII_MODE, | 313 | .ids = AUTO_NET_SMII_MODE, |
314 | .mask = PMX_MII_MASK, | 314 | .mask = PMX_MII_MASK, |
315 | }, | 315 | }, |
316 | }; | 316 | }; |
317 | 317 | ||
318 | struct pmx_dev pmx_ssp2 = { | 318 | struct pmx_dev spear320_pmx_ssp2 = { |
319 | .name = "ssp2", | 319 | .name = "ssp2", |
320 | .modes = pmx_ssp2_modes, | 320 | .modes = pmx_ssp2_modes, |
321 | .mode_count = ARRAY_SIZE(pmx_ssp2_modes), | 321 | .mode_count = ARRAY_SIZE(pmx_ssp2_modes), |
322 | .enb_on_reset = 1, | 322 | .enb_on_reset = 1, |
323 | }; | 323 | }; |
324 | 324 | ||
325 | struct pmx_dev_mode pmx_mii1_modes[] = { | 325 | static struct pmx_dev_mode pmx_mii1_modes[] = { |
326 | { | 326 | { |
327 | .ids = AUTO_NET_MII_MODE, | 327 | .ids = AUTO_NET_MII_MODE, |
328 | .mask = 0x0, | 328 | .mask = 0x0, |
329 | }, | 329 | }, |
330 | }; | 330 | }; |
331 | 331 | ||
332 | struct pmx_dev pmx_mii1 = { | 332 | struct pmx_dev spear320_pmx_mii1 = { |
333 | .name = "mii1", | 333 | .name = "mii1", |
334 | .modes = pmx_mii1_modes, | 334 | .modes = pmx_mii1_modes, |
335 | .mode_count = ARRAY_SIZE(pmx_mii1_modes), | 335 | .mode_count = ARRAY_SIZE(pmx_mii1_modes), |
336 | .enb_on_reset = 1, | 336 | .enb_on_reset = 1, |
337 | }; | 337 | }; |
338 | 338 | ||
339 | struct pmx_dev_mode pmx_smii0_modes[] = { | 339 | static struct pmx_dev_mode pmx_smii0_modes[] = { |
340 | { | 340 | { |
341 | .ids = AUTO_NET_SMII_MODE | AUTO_EXP_MODE | SMALL_PRINTERS_MODE, | 341 | .ids = AUTO_NET_SMII_MODE | AUTO_EXP_MODE | SMALL_PRINTERS_MODE, |
342 | .mask = PMX_MII_MASK, | 342 | .mask = PMX_MII_MASK, |
343 | }, | 343 | }, |
344 | }; | 344 | }; |
345 | 345 | ||
346 | struct pmx_dev pmx_smii0 = { | 346 | struct pmx_dev spear320_pmx_smii0 = { |
347 | .name = "smii0", | 347 | .name = "smii0", |
348 | .modes = pmx_smii0_modes, | 348 | .modes = pmx_smii0_modes, |
349 | .mode_count = ARRAY_SIZE(pmx_smii0_modes), | 349 | .mode_count = ARRAY_SIZE(pmx_smii0_modes), |
350 | .enb_on_reset = 1, | 350 | .enb_on_reset = 1, |
351 | }; | 351 | }; |
352 | 352 | ||
353 | struct pmx_dev_mode pmx_smii1_modes[] = { | 353 | static struct pmx_dev_mode pmx_smii1_modes[] = { |
354 | { | 354 | { |
355 | .ids = AUTO_NET_SMII_MODE | SMALL_PRINTERS_MODE, | 355 | .ids = AUTO_NET_SMII_MODE | SMALL_PRINTERS_MODE, |
356 | .mask = PMX_MII_MASK, | 356 | .mask = PMX_MII_MASK, |
357 | }, | 357 | }, |
358 | }; | 358 | }; |
359 | 359 | ||
360 | struct pmx_dev pmx_smii1 = { | 360 | struct pmx_dev spear320_pmx_smii1 = { |
361 | .name = "smii1", | 361 | .name = "smii1", |
362 | .modes = pmx_smii1_modes, | 362 | .modes = pmx_smii1_modes, |
363 | .mode_count = ARRAY_SIZE(pmx_smii1_modes), | 363 | .mode_count = ARRAY_SIZE(pmx_smii1_modes), |
364 | .enb_on_reset = 1, | 364 | .enb_on_reset = 1, |
365 | }; | 365 | }; |
366 | 366 | ||
367 | struct pmx_dev_mode pmx_i2c1_modes[] = { | 367 | static struct pmx_dev_mode pmx_i2c1_modes[] = { |
368 | { | 368 | { |
369 | .ids = AUTO_EXP_MODE, | 369 | .ids = AUTO_EXP_MODE, |
370 | .mask = 0x0, | 370 | .mask = 0x0, |
371 | }, | 371 | }, |
372 | }; | 372 | }; |
373 | 373 | ||
374 | struct pmx_dev pmx_i2c1 = { | 374 | struct pmx_dev spear320_pmx_i2c1 = { |
375 | .name = "i2c1", | 375 | .name = "i2c1", |
376 | .modes = pmx_i2c1_modes, | 376 | .modes = pmx_i2c1_modes, |
377 | .mode_count = ARRAY_SIZE(pmx_i2c1_modes), | 377 | .mode_count = ARRAY_SIZE(pmx_i2c1_modes), |
@@ -379,7 +379,7 @@ struct pmx_dev pmx_i2c1 = { | |||
379 | }; | 379 | }; |
380 | 380 | ||
381 | /* pmx driver structure */ | 381 | /* pmx driver structure */ |
382 | struct pmx_driver pmx_driver = { | 382 | static struct pmx_driver pmx_driver = { |
383 | .mode_reg = {.offset = MODE_CONFIG_REG, .mask = 0x00000007}, | 383 | .mode_reg = {.offset = MODE_CONFIG_REG, .mask = 0x00000007}, |
384 | .mux_reg = {.offset = PAD_MUX_CONFIG_REG, .mask = 0x00007fff}, | 384 | .mux_reg = {.offset = PAD_MUX_CONFIG_REG, .mask = 0x00007fff}, |
385 | }; | 385 | }; |
@@ -511,7 +511,8 @@ static struct spear_shirq shirq_intrcomm_ras = { | |||
511 | /* Add spear320 specific devices here */ | 511 | /* Add spear320 specific devices here */ |
512 | 512 | ||
513 | /* spear320 routines */ | 513 | /* spear320 routines */ |
514 | void __init spear320_init(void) | 514 | void __init spear320_init(struct pmx_mode *pmx_mode, struct pmx_dev **pmx_devs, |
515 | u8 pmx_dev_count) | ||
515 | { | 516 | { |
516 | void __iomem *base; | 517 | void __iomem *base; |
517 | int ret = 0; | 518 | int ret = 0; |
@@ -543,6 +544,10 @@ void __init spear320_init(void) | |||
543 | 544 | ||
544 | /* pmx initialization */ | 545 | /* pmx initialization */ |
545 | pmx_driver.base = base; | 546 | pmx_driver.base = base; |
547 | pmx_driver.mode = pmx_mode; | ||
548 | pmx_driver.devs = pmx_devs; | ||
549 | pmx_driver.devs_count = pmx_dev_count; | ||
550 | |||
546 | ret = pmx_register(&pmx_driver); | 551 | ret = pmx_register(&pmx_driver); |
547 | if (ret) | 552 | if (ret) |
548 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", | 553 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", |
diff --git a/arch/arm/mach-spear3xx/spear320_evb.c b/arch/arm/mach-spear3xx/spear320_evb.c index 8213e4b66c14..7e5f17f66b62 100644 --- a/arch/arm/mach-spear3xx/spear320_evb.c +++ b/arch/arm/mach-spear3xx/spear320_evb.c | |||
@@ -19,22 +19,22 @@ | |||
19 | /* padmux devices to enable */ | 19 | /* padmux devices to enable */ |
20 | static struct pmx_dev *pmx_devs[] = { | 20 | static struct pmx_dev *pmx_devs[] = { |
21 | /* spear3xx specific devices */ | 21 | /* spear3xx specific devices */ |
22 | &pmx_i2c, | 22 | &spear3xx_pmx_i2c, |
23 | &pmx_ssp, | 23 | &spear3xx_pmx_ssp, |
24 | &pmx_mii, | 24 | &spear3xx_pmx_mii, |
25 | &pmx_uart0, | 25 | &spear3xx_pmx_uart0, |
26 | 26 | ||
27 | /* spear320 specific devices */ | 27 | /* spear320 specific devices */ |
28 | &pmx_fsmc, | 28 | &spear320_pmx_fsmc, |
29 | &pmx_sdhci, | 29 | &spear320_pmx_sdhci, |
30 | &pmx_i2s, | 30 | &spear320_pmx_i2s, |
31 | &pmx_uart1, | 31 | &spear320_pmx_uart1, |
32 | &pmx_uart2, | 32 | &spear320_pmx_uart2, |
33 | &pmx_can, | 33 | &spear320_pmx_can, |
34 | &pmx_pwm0, | 34 | &spear320_pmx_pwm0, |
35 | &pmx_pwm1, | 35 | &spear320_pmx_pwm1, |
36 | &pmx_pwm2, | 36 | &spear320_pmx_pwm2, |
37 | &pmx_mii1, | 37 | &spear320_pmx_mii1, |
38 | }; | 38 | }; |
39 | 39 | ||
40 | static struct amba_device *amba_devs[] __initdata = { | 40 | static struct amba_device *amba_devs[] __initdata = { |
@@ -55,13 +55,9 @@ static void __init spear320_evb_init(void) | |||
55 | { | 55 | { |
56 | unsigned int i; | 56 | unsigned int i; |
57 | 57 | ||
58 | /* padmux initialization, must be done before spear320_init */ | ||
59 | pmx_driver.mode = &auto_net_mii_mode; | ||
60 | pmx_driver.devs = pmx_devs; | ||
61 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); | ||
62 | |||
63 | /* call spear320 machine init function */ | 58 | /* call spear320 machine init function */ |
64 | spear320_init(); | 59 | spear320_init(&spear320_auto_net_mii_mode, pmx_devs, |
60 | ARRAY_SIZE(pmx_devs)); | ||
65 | 61 | ||
66 | /* Add Platform Devices */ | 62 | /* Add Platform Devices */ |
67 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); | 63 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); |
diff --git a/arch/arm/mach-spear3xx/spear3xx.c b/arch/arm/mach-spear3xx/spear3xx.c index 35cb8c72d899..b4378a056294 100644 --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c | |||
@@ -102,210 +102,210 @@ void __init spear3xx_map_io(void) | |||
102 | 102 | ||
103 | /* pad multiplexing support */ | 103 | /* pad multiplexing support */ |
104 | /* devices */ | 104 | /* devices */ |
105 | struct pmx_dev_mode pmx_firda_modes[] = { | 105 | static struct pmx_dev_mode pmx_firda_modes[] = { |
106 | { | 106 | { |
107 | .ids = 0xffffffff, | 107 | .ids = 0xffffffff, |
108 | .mask = PMX_FIRDA_MASK, | 108 | .mask = PMX_FIRDA_MASK, |
109 | }, | 109 | }, |
110 | }; | 110 | }; |
111 | 111 | ||
112 | struct pmx_dev pmx_firda = { | 112 | struct pmx_dev spear3xx_pmx_firda = { |
113 | .name = "firda", | 113 | .name = "firda", |
114 | .modes = pmx_firda_modes, | 114 | .modes = pmx_firda_modes, |
115 | .mode_count = ARRAY_SIZE(pmx_firda_modes), | 115 | .mode_count = ARRAY_SIZE(pmx_firda_modes), |
116 | .enb_on_reset = 0, | 116 | .enb_on_reset = 0, |
117 | }; | 117 | }; |
118 | 118 | ||
119 | struct pmx_dev_mode pmx_i2c_modes[] = { | 119 | static struct pmx_dev_mode pmx_i2c_modes[] = { |
120 | { | 120 | { |
121 | .ids = 0xffffffff, | 121 | .ids = 0xffffffff, |
122 | .mask = PMX_I2C_MASK, | 122 | .mask = PMX_I2C_MASK, |
123 | }, | 123 | }, |
124 | }; | 124 | }; |
125 | 125 | ||
126 | struct pmx_dev pmx_i2c = { | 126 | struct pmx_dev spear3xx_pmx_i2c = { |
127 | .name = "i2c", | 127 | .name = "i2c", |
128 | .modes = pmx_i2c_modes, | 128 | .modes = pmx_i2c_modes, |
129 | .mode_count = ARRAY_SIZE(pmx_i2c_modes), | 129 | .mode_count = ARRAY_SIZE(pmx_i2c_modes), |
130 | .enb_on_reset = 0, | 130 | .enb_on_reset = 0, |
131 | }; | 131 | }; |
132 | 132 | ||
133 | struct pmx_dev_mode pmx_ssp_cs_modes[] = { | 133 | static struct pmx_dev_mode pmx_ssp_cs_modes[] = { |
134 | { | 134 | { |
135 | .ids = 0xffffffff, | 135 | .ids = 0xffffffff, |
136 | .mask = PMX_SSP_CS_MASK, | 136 | .mask = PMX_SSP_CS_MASK, |
137 | }, | 137 | }, |
138 | }; | 138 | }; |
139 | 139 | ||
140 | struct pmx_dev pmx_ssp_cs = { | 140 | struct pmx_dev spear3xx_pmx_ssp_cs = { |
141 | .name = "ssp_chip_selects", | 141 | .name = "ssp_chip_selects", |
142 | .modes = pmx_ssp_cs_modes, | 142 | .modes = pmx_ssp_cs_modes, |
143 | .mode_count = ARRAY_SIZE(pmx_ssp_cs_modes), | 143 | .mode_count = ARRAY_SIZE(pmx_ssp_cs_modes), |
144 | .enb_on_reset = 0, | 144 | .enb_on_reset = 0, |
145 | }; | 145 | }; |
146 | 146 | ||
147 | struct pmx_dev_mode pmx_ssp_modes[] = { | 147 | static struct pmx_dev_mode pmx_ssp_modes[] = { |
148 | { | 148 | { |
149 | .ids = 0xffffffff, | 149 | .ids = 0xffffffff, |
150 | .mask = PMX_SSP_MASK, | 150 | .mask = PMX_SSP_MASK, |
151 | }, | 151 | }, |
152 | }; | 152 | }; |
153 | 153 | ||
154 | struct pmx_dev pmx_ssp = { | 154 | struct pmx_dev spear3xx_pmx_ssp = { |
155 | .name = "ssp", | 155 | .name = "ssp", |
156 | .modes = pmx_ssp_modes, | 156 | .modes = pmx_ssp_modes, |
157 | .mode_count = ARRAY_SIZE(pmx_ssp_modes), | 157 | .mode_count = ARRAY_SIZE(pmx_ssp_modes), |
158 | .enb_on_reset = 0, | 158 | .enb_on_reset = 0, |
159 | }; | 159 | }; |
160 | 160 | ||
161 | struct pmx_dev_mode pmx_mii_modes[] = { | 161 | static struct pmx_dev_mode pmx_mii_modes[] = { |
162 | { | 162 | { |
163 | .ids = 0xffffffff, | 163 | .ids = 0xffffffff, |
164 | .mask = PMX_MII_MASK, | 164 | .mask = PMX_MII_MASK, |
165 | }, | 165 | }, |
166 | }; | 166 | }; |
167 | 167 | ||
168 | struct pmx_dev pmx_mii = { | 168 | struct pmx_dev spear3xx_pmx_mii = { |
169 | .name = "mii", | 169 | .name = "mii", |
170 | .modes = pmx_mii_modes, | 170 | .modes = pmx_mii_modes, |
171 | .mode_count = ARRAY_SIZE(pmx_mii_modes), | 171 | .mode_count = ARRAY_SIZE(pmx_mii_modes), |
172 | .enb_on_reset = 0, | 172 | .enb_on_reset = 0, |
173 | }; | 173 | }; |
174 | 174 | ||
175 | struct pmx_dev_mode pmx_gpio_pin0_modes[] = { | 175 | static struct pmx_dev_mode pmx_gpio_pin0_modes[] = { |
176 | { | 176 | { |
177 | .ids = 0xffffffff, | 177 | .ids = 0xffffffff, |
178 | .mask = PMX_GPIO_PIN0_MASK, | 178 | .mask = PMX_GPIO_PIN0_MASK, |
179 | }, | 179 | }, |
180 | }; | 180 | }; |
181 | 181 | ||
182 | struct pmx_dev pmx_gpio_pin0 = { | 182 | struct pmx_dev spear3xx_pmx_gpio_pin0 = { |
183 | .name = "gpio_pin0", | 183 | .name = "gpio_pin0", |
184 | .modes = pmx_gpio_pin0_modes, | 184 | .modes = pmx_gpio_pin0_modes, |
185 | .mode_count = ARRAY_SIZE(pmx_gpio_pin0_modes), | 185 | .mode_count = ARRAY_SIZE(pmx_gpio_pin0_modes), |
186 | .enb_on_reset = 0, | 186 | .enb_on_reset = 0, |
187 | }; | 187 | }; |
188 | 188 | ||
189 | struct pmx_dev_mode pmx_gpio_pin1_modes[] = { | 189 | static struct pmx_dev_mode pmx_gpio_pin1_modes[] = { |
190 | { | 190 | { |
191 | .ids = 0xffffffff, | 191 | .ids = 0xffffffff, |
192 | .mask = PMX_GPIO_PIN1_MASK, | 192 | .mask = PMX_GPIO_PIN1_MASK, |
193 | }, | 193 | }, |
194 | }; | 194 | }; |
195 | 195 | ||
196 | struct pmx_dev pmx_gpio_pin1 = { | 196 | struct pmx_dev spear3xx_pmx_gpio_pin1 = { |
197 | .name = "gpio_pin1", | 197 | .name = "gpio_pin1", |
198 | .modes = pmx_gpio_pin1_modes, | 198 | .modes = pmx_gpio_pin1_modes, |
199 | .mode_count = ARRAY_SIZE(pmx_gpio_pin1_modes), | 199 | .mode_count = ARRAY_SIZE(pmx_gpio_pin1_modes), |
200 | .enb_on_reset = 0, | 200 | .enb_on_reset = 0, |
201 | }; | 201 | }; |
202 | 202 | ||
203 | struct pmx_dev_mode pmx_gpio_pin2_modes[] = { | 203 | static struct pmx_dev_mode pmx_gpio_pin2_modes[] = { |
204 | { | 204 | { |
205 | .ids = 0xffffffff, | 205 | .ids = 0xffffffff, |
206 | .mask = PMX_GPIO_PIN2_MASK, | 206 | .mask = PMX_GPIO_PIN2_MASK, |
207 | }, | 207 | }, |
208 | }; | 208 | }; |
209 | 209 | ||
210 | struct pmx_dev pmx_gpio_pin2 = { | 210 | struct pmx_dev spear3xx_pmx_gpio_pin2 = { |
211 | .name = "gpio_pin2", | 211 | .name = "gpio_pin2", |
212 | .modes = pmx_gpio_pin2_modes, | 212 | .modes = pmx_gpio_pin2_modes, |
213 | .mode_count = ARRAY_SIZE(pmx_gpio_pin2_modes), | 213 | .mode_count = ARRAY_SIZE(pmx_gpio_pin2_modes), |
214 | .enb_on_reset = 0, | 214 | .enb_on_reset = 0, |
215 | }; | 215 | }; |
216 | 216 | ||
217 | struct pmx_dev_mode pmx_gpio_pin3_modes[] = { | 217 | static struct pmx_dev_mode pmx_gpio_pin3_modes[] = { |
218 | { | 218 | { |
219 | .ids = 0xffffffff, | 219 | .ids = 0xffffffff, |
220 | .mask = PMX_GPIO_PIN3_MASK, | 220 | .mask = PMX_GPIO_PIN3_MASK, |
221 | }, | 221 | }, |
222 | }; | 222 | }; |
223 | 223 | ||
224 | struct pmx_dev pmx_gpio_pin3 = { | 224 | struct pmx_dev spear3xx_pmx_gpio_pin3 = { |
225 | .name = "gpio_pin3", | 225 | .name = "gpio_pin3", |
226 | .modes = pmx_gpio_pin3_modes, | 226 | .modes = pmx_gpio_pin3_modes, |
227 | .mode_count = ARRAY_SIZE(pmx_gpio_pin3_modes), | 227 | .mode_count = ARRAY_SIZE(pmx_gpio_pin3_modes), |
228 | .enb_on_reset = 0, | 228 | .enb_on_reset = 0, |
229 | }; | 229 | }; |
230 | 230 | ||
231 | struct pmx_dev_mode pmx_gpio_pin4_modes[] = { | 231 | static struct pmx_dev_mode pmx_gpio_pin4_modes[] = { |
232 | { | 232 | { |
233 | .ids = 0xffffffff, | 233 | .ids = 0xffffffff, |
234 | .mask = PMX_GPIO_PIN4_MASK, | 234 | .mask = PMX_GPIO_PIN4_MASK, |
235 | }, | 235 | }, |
236 | }; | 236 | }; |
237 | 237 | ||
238 | struct pmx_dev pmx_gpio_pin4 = { | 238 | struct pmx_dev spear3xx_pmx_gpio_pin4 = { |
239 | .name = "gpio_pin4", | 239 | .name = "gpio_pin4", |
240 | .modes = pmx_gpio_pin4_modes, | 240 | .modes = pmx_gpio_pin4_modes, |
241 | .mode_count = ARRAY_SIZE(pmx_gpio_pin4_modes), | 241 | .mode_count = ARRAY_SIZE(pmx_gpio_pin4_modes), |
242 | .enb_on_reset = 0, | 242 | .enb_on_reset = 0, |
243 | }; | 243 | }; |
244 | 244 | ||
245 | struct pmx_dev_mode pmx_gpio_pin5_modes[] = { | 245 | static struct pmx_dev_mode pmx_gpio_pin5_modes[] = { |
246 | { | 246 | { |
247 | .ids = 0xffffffff, | 247 | .ids = 0xffffffff, |
248 | .mask = PMX_GPIO_PIN5_MASK, | 248 | .mask = PMX_GPIO_PIN5_MASK, |
249 | }, | 249 | }, |
250 | }; | 250 | }; |
251 | 251 | ||
252 | struct pmx_dev pmx_gpio_pin5 = { | 252 | struct pmx_dev spear3xx_pmx_gpio_pin5 = { |
253 | .name = "gpio_pin5", | 253 | .name = "gpio_pin5", |
254 | .modes = pmx_gpio_pin5_modes, | 254 | .modes = pmx_gpio_pin5_modes, |
255 | .mode_count = ARRAY_SIZE(pmx_gpio_pin5_modes), | 255 | .mode_count = ARRAY_SIZE(pmx_gpio_pin5_modes), |
256 | .enb_on_reset = 0, | 256 | .enb_on_reset = 0, |
257 | }; | 257 | }; |
258 | 258 | ||
259 | struct pmx_dev_mode pmx_uart0_modem_modes[] = { | 259 | static struct pmx_dev_mode pmx_uart0_modem_modes[] = { |
260 | { | 260 | { |
261 | .ids = 0xffffffff, | 261 | .ids = 0xffffffff, |
262 | .mask = PMX_UART0_MODEM_MASK, | 262 | .mask = PMX_UART0_MODEM_MASK, |
263 | }, | 263 | }, |
264 | }; | 264 | }; |
265 | 265 | ||
266 | struct pmx_dev pmx_uart0_modem = { | 266 | struct pmx_dev spear3xx_pmx_uart0_modem = { |
267 | .name = "uart0_modem", | 267 | .name = "uart0_modem", |
268 | .modes = pmx_uart0_modem_modes, | 268 | .modes = pmx_uart0_modem_modes, |
269 | .mode_count = ARRAY_SIZE(pmx_uart0_modem_modes), | 269 | .mode_count = ARRAY_SIZE(pmx_uart0_modem_modes), |
270 | .enb_on_reset = 0, | 270 | .enb_on_reset = 0, |
271 | }; | 271 | }; |
272 | 272 | ||
273 | struct pmx_dev_mode pmx_uart0_modes[] = { | 273 | static struct pmx_dev_mode pmx_uart0_modes[] = { |
274 | { | 274 | { |
275 | .ids = 0xffffffff, | 275 | .ids = 0xffffffff, |
276 | .mask = PMX_UART0_MASK, | 276 | .mask = PMX_UART0_MASK, |
277 | }, | 277 | }, |
278 | }; | 278 | }; |
279 | 279 | ||
280 | struct pmx_dev pmx_uart0 = { | 280 | struct pmx_dev spear3xx_pmx_uart0 = { |
281 | .name = "uart0", | 281 | .name = "uart0", |
282 | .modes = pmx_uart0_modes, | 282 | .modes = pmx_uart0_modes, |
283 | .mode_count = ARRAY_SIZE(pmx_uart0_modes), | 283 | .mode_count = ARRAY_SIZE(pmx_uart0_modes), |
284 | .enb_on_reset = 0, | 284 | .enb_on_reset = 0, |
285 | }; | 285 | }; |
286 | 286 | ||
287 | struct pmx_dev_mode pmx_timer_3_4_modes[] = { | 287 | static struct pmx_dev_mode pmx_timer_3_4_modes[] = { |
288 | { | 288 | { |
289 | .ids = 0xffffffff, | 289 | .ids = 0xffffffff, |
290 | .mask = PMX_TIMER_3_4_MASK, | 290 | .mask = PMX_TIMER_3_4_MASK, |
291 | }, | 291 | }, |
292 | }; | 292 | }; |
293 | 293 | ||
294 | struct pmx_dev pmx_timer_3_4 = { | 294 | struct pmx_dev spear3xx_pmx_timer_3_4 = { |
295 | .name = "timer_3_4", | 295 | .name = "timer_3_4", |
296 | .modes = pmx_timer_3_4_modes, | 296 | .modes = pmx_timer_3_4_modes, |
297 | .mode_count = ARRAY_SIZE(pmx_timer_3_4_modes), | 297 | .mode_count = ARRAY_SIZE(pmx_timer_3_4_modes), |
298 | .enb_on_reset = 0, | 298 | .enb_on_reset = 0, |
299 | }; | 299 | }; |
300 | 300 | ||
301 | struct pmx_dev_mode pmx_timer_1_2_modes[] = { | 301 | static struct pmx_dev_mode pmx_timer_1_2_modes[] = { |
302 | { | 302 | { |
303 | .ids = 0xffffffff, | 303 | .ids = 0xffffffff, |
304 | .mask = PMX_TIMER_1_2_MASK, | 304 | .mask = PMX_TIMER_1_2_MASK, |
305 | }, | 305 | }, |
306 | }; | 306 | }; |
307 | 307 | ||
308 | struct pmx_dev pmx_timer_1_2 = { | 308 | struct pmx_dev spear3xx_pmx_timer_1_2 = { |
309 | .name = "timer_1_2", | 309 | .name = "timer_1_2", |
310 | .modes = pmx_timer_1_2_modes, | 310 | .modes = pmx_timer_1_2_modes, |
311 | .mode_count = ARRAY_SIZE(pmx_timer_1_2_modes), | 311 | .mode_count = ARRAY_SIZE(pmx_timer_1_2_modes), |
@@ -314,210 +314,210 @@ struct pmx_dev pmx_timer_1_2 = { | |||
314 | 314 | ||
315 | #if defined(CONFIG_MACH_SPEAR310) || defined(CONFIG_MACH_SPEAR320) | 315 | #if defined(CONFIG_MACH_SPEAR310) || defined(CONFIG_MACH_SPEAR320) |
316 | /* plgpios devices */ | 316 | /* plgpios devices */ |
317 | struct pmx_dev_mode pmx_plgpio_0_1_modes[] = { | 317 | static struct pmx_dev_mode pmx_plgpio_0_1_modes[] = { |
318 | { | 318 | { |
319 | .ids = 0x00, | 319 | .ids = 0x00, |
320 | .mask = PMX_FIRDA_MASK, | 320 | .mask = PMX_FIRDA_MASK, |
321 | }, | 321 | }, |
322 | }; | 322 | }; |
323 | 323 | ||
324 | struct pmx_dev pmx_plgpio_0_1 = { | 324 | struct pmx_dev spear3xx_pmx_plgpio_0_1 = { |
325 | .name = "plgpio 0 and 1", | 325 | .name = "plgpio 0 and 1", |
326 | .modes = pmx_plgpio_0_1_modes, | 326 | .modes = pmx_plgpio_0_1_modes, |
327 | .mode_count = ARRAY_SIZE(pmx_plgpio_0_1_modes), | 327 | .mode_count = ARRAY_SIZE(pmx_plgpio_0_1_modes), |
328 | .enb_on_reset = 1, | 328 | .enb_on_reset = 1, |
329 | }; | 329 | }; |
330 | 330 | ||
331 | struct pmx_dev_mode pmx_plgpio_2_3_modes[] = { | 331 | static struct pmx_dev_mode pmx_plgpio_2_3_modes[] = { |
332 | { | 332 | { |
333 | .ids = 0x00, | 333 | .ids = 0x00, |
334 | .mask = PMX_UART0_MASK, | 334 | .mask = PMX_UART0_MASK, |
335 | }, | 335 | }, |
336 | }; | 336 | }; |
337 | 337 | ||
338 | struct pmx_dev pmx_plgpio_2_3 = { | 338 | struct pmx_dev spear3xx_pmx_plgpio_2_3 = { |
339 | .name = "plgpio 2 and 3", | 339 | .name = "plgpio 2 and 3", |
340 | .modes = pmx_plgpio_2_3_modes, | 340 | .modes = pmx_plgpio_2_3_modes, |
341 | .mode_count = ARRAY_SIZE(pmx_plgpio_2_3_modes), | 341 | .mode_count = ARRAY_SIZE(pmx_plgpio_2_3_modes), |
342 | .enb_on_reset = 1, | 342 | .enb_on_reset = 1, |
343 | }; | 343 | }; |
344 | 344 | ||
345 | struct pmx_dev_mode pmx_plgpio_4_5_modes[] = { | 345 | static struct pmx_dev_mode pmx_plgpio_4_5_modes[] = { |
346 | { | 346 | { |
347 | .ids = 0x00, | 347 | .ids = 0x00, |
348 | .mask = PMX_I2C_MASK, | 348 | .mask = PMX_I2C_MASK, |
349 | }, | 349 | }, |
350 | }; | 350 | }; |
351 | 351 | ||
352 | struct pmx_dev pmx_plgpio_4_5 = { | 352 | struct pmx_dev spear3xx_pmx_plgpio_4_5 = { |
353 | .name = "plgpio 4 and 5", | 353 | .name = "plgpio 4 and 5", |
354 | .modes = pmx_plgpio_4_5_modes, | 354 | .modes = pmx_plgpio_4_5_modes, |
355 | .mode_count = ARRAY_SIZE(pmx_plgpio_4_5_modes), | 355 | .mode_count = ARRAY_SIZE(pmx_plgpio_4_5_modes), |
356 | .enb_on_reset = 1, | 356 | .enb_on_reset = 1, |
357 | }; | 357 | }; |
358 | 358 | ||
359 | struct pmx_dev_mode pmx_plgpio_6_9_modes[] = { | 359 | static struct pmx_dev_mode pmx_plgpio_6_9_modes[] = { |
360 | { | 360 | { |
361 | .ids = 0x00, | 361 | .ids = 0x00, |
362 | .mask = PMX_SSP_MASK, | 362 | .mask = PMX_SSP_MASK, |
363 | }, | 363 | }, |
364 | }; | 364 | }; |
365 | 365 | ||
366 | struct pmx_dev pmx_plgpio_6_9 = { | 366 | struct pmx_dev spear3xx_pmx_plgpio_6_9 = { |
367 | .name = "plgpio 6 to 9", | 367 | .name = "plgpio 6 to 9", |
368 | .modes = pmx_plgpio_6_9_modes, | 368 | .modes = pmx_plgpio_6_9_modes, |
369 | .mode_count = ARRAY_SIZE(pmx_plgpio_6_9_modes), | 369 | .mode_count = ARRAY_SIZE(pmx_plgpio_6_9_modes), |
370 | .enb_on_reset = 1, | 370 | .enb_on_reset = 1, |
371 | }; | 371 | }; |
372 | 372 | ||
373 | struct pmx_dev_mode pmx_plgpio_10_27_modes[] = { | 373 | static struct pmx_dev_mode pmx_plgpio_10_27_modes[] = { |
374 | { | 374 | { |
375 | .ids = 0x00, | 375 | .ids = 0x00, |
376 | .mask = PMX_MII_MASK, | 376 | .mask = PMX_MII_MASK, |
377 | }, | 377 | }, |
378 | }; | 378 | }; |
379 | 379 | ||
380 | struct pmx_dev pmx_plgpio_10_27 = { | 380 | struct pmx_dev spear3xx_pmx_plgpio_10_27 = { |
381 | .name = "plgpio 10 to 27", | 381 | .name = "plgpio 10 to 27", |
382 | .modes = pmx_plgpio_10_27_modes, | 382 | .modes = pmx_plgpio_10_27_modes, |
383 | .mode_count = ARRAY_SIZE(pmx_plgpio_10_27_modes), | 383 | .mode_count = ARRAY_SIZE(pmx_plgpio_10_27_modes), |
384 | .enb_on_reset = 1, | 384 | .enb_on_reset = 1, |
385 | }; | 385 | }; |
386 | 386 | ||
387 | struct pmx_dev_mode pmx_plgpio_28_modes[] = { | 387 | static struct pmx_dev_mode pmx_plgpio_28_modes[] = { |
388 | { | 388 | { |
389 | .ids = 0x00, | 389 | .ids = 0x00, |
390 | .mask = PMX_GPIO_PIN0_MASK, | 390 | .mask = PMX_GPIO_PIN0_MASK, |
391 | }, | 391 | }, |
392 | }; | 392 | }; |
393 | 393 | ||
394 | struct pmx_dev pmx_plgpio_28 = { | 394 | struct pmx_dev spear3xx_pmx_plgpio_28 = { |
395 | .name = "plgpio 28", | 395 | .name = "plgpio 28", |
396 | .modes = pmx_plgpio_28_modes, | 396 | .modes = pmx_plgpio_28_modes, |
397 | .mode_count = ARRAY_SIZE(pmx_plgpio_28_modes), | 397 | .mode_count = ARRAY_SIZE(pmx_plgpio_28_modes), |
398 | .enb_on_reset = 1, | 398 | .enb_on_reset = 1, |
399 | }; | 399 | }; |
400 | 400 | ||
401 | struct pmx_dev_mode pmx_plgpio_29_modes[] = { | 401 | static struct pmx_dev_mode pmx_plgpio_29_modes[] = { |
402 | { | 402 | { |
403 | .ids = 0x00, | 403 | .ids = 0x00, |
404 | .mask = PMX_GPIO_PIN1_MASK, | 404 | .mask = PMX_GPIO_PIN1_MASK, |
405 | }, | 405 | }, |
406 | }; | 406 | }; |
407 | 407 | ||
408 | struct pmx_dev pmx_plgpio_29 = { | 408 | struct pmx_dev spear3xx_pmx_plgpio_29 = { |
409 | .name = "plgpio 29", | 409 | .name = "plgpio 29", |
410 | .modes = pmx_plgpio_29_modes, | 410 | .modes = pmx_plgpio_29_modes, |
411 | .mode_count = ARRAY_SIZE(pmx_plgpio_29_modes), | 411 | .mode_count = ARRAY_SIZE(pmx_plgpio_29_modes), |
412 | .enb_on_reset = 1, | 412 | .enb_on_reset = 1, |
413 | }; | 413 | }; |
414 | 414 | ||
415 | struct pmx_dev_mode pmx_plgpio_30_modes[] = { | 415 | static struct pmx_dev_mode pmx_plgpio_30_modes[] = { |
416 | { | 416 | { |
417 | .ids = 0x00, | 417 | .ids = 0x00, |
418 | .mask = PMX_GPIO_PIN2_MASK, | 418 | .mask = PMX_GPIO_PIN2_MASK, |
419 | }, | 419 | }, |
420 | }; | 420 | }; |
421 | 421 | ||
422 | struct pmx_dev pmx_plgpio_30 = { | 422 | struct pmx_dev spear3xx_pmx_plgpio_30 = { |
423 | .name = "plgpio 30", | 423 | .name = "plgpio 30", |
424 | .modes = pmx_plgpio_30_modes, | 424 | .modes = pmx_plgpio_30_modes, |
425 | .mode_count = ARRAY_SIZE(pmx_plgpio_30_modes), | 425 | .mode_count = ARRAY_SIZE(pmx_plgpio_30_modes), |
426 | .enb_on_reset = 1, | 426 | .enb_on_reset = 1, |
427 | }; | 427 | }; |
428 | 428 | ||
429 | struct pmx_dev_mode pmx_plgpio_31_modes[] = { | 429 | static struct pmx_dev_mode pmx_plgpio_31_modes[] = { |
430 | { | 430 | { |
431 | .ids = 0x00, | 431 | .ids = 0x00, |
432 | .mask = PMX_GPIO_PIN3_MASK, | 432 | .mask = PMX_GPIO_PIN3_MASK, |
433 | }, | 433 | }, |
434 | }; | 434 | }; |
435 | 435 | ||
436 | struct pmx_dev pmx_plgpio_31 = { | 436 | struct pmx_dev spear3xx_pmx_plgpio_31 = { |
437 | .name = "plgpio 31", | 437 | .name = "plgpio 31", |
438 | .modes = pmx_plgpio_31_modes, | 438 | .modes = pmx_plgpio_31_modes, |
439 | .mode_count = ARRAY_SIZE(pmx_plgpio_31_modes), | 439 | .mode_count = ARRAY_SIZE(pmx_plgpio_31_modes), |
440 | .enb_on_reset = 1, | 440 | .enb_on_reset = 1, |
441 | }; | 441 | }; |
442 | 442 | ||
443 | struct pmx_dev_mode pmx_plgpio_32_modes[] = { | 443 | static struct pmx_dev_mode pmx_plgpio_32_modes[] = { |
444 | { | 444 | { |
445 | .ids = 0x00, | 445 | .ids = 0x00, |
446 | .mask = PMX_GPIO_PIN4_MASK, | 446 | .mask = PMX_GPIO_PIN4_MASK, |
447 | }, | 447 | }, |
448 | }; | 448 | }; |
449 | 449 | ||
450 | struct pmx_dev pmx_plgpio_32 = { | 450 | struct pmx_dev spear3xx_pmx_plgpio_32 = { |
451 | .name = "plgpio 32", | 451 | .name = "plgpio 32", |
452 | .modes = pmx_plgpio_32_modes, | 452 | .modes = pmx_plgpio_32_modes, |
453 | .mode_count = ARRAY_SIZE(pmx_plgpio_32_modes), | 453 | .mode_count = ARRAY_SIZE(pmx_plgpio_32_modes), |
454 | .enb_on_reset = 1, | 454 | .enb_on_reset = 1, |
455 | }; | 455 | }; |
456 | 456 | ||
457 | struct pmx_dev_mode pmx_plgpio_33_modes[] = { | 457 | static struct pmx_dev_mode pmx_plgpio_33_modes[] = { |
458 | { | 458 | { |
459 | .ids = 0x00, | 459 | .ids = 0x00, |
460 | .mask = PMX_GPIO_PIN5_MASK, | 460 | .mask = PMX_GPIO_PIN5_MASK, |
461 | }, | 461 | }, |
462 | }; | 462 | }; |
463 | 463 | ||
464 | struct pmx_dev pmx_plgpio_33 = { | 464 | struct pmx_dev spear3xx_pmx_plgpio_33 = { |
465 | .name = "plgpio 33", | 465 | .name = "plgpio 33", |
466 | .modes = pmx_plgpio_33_modes, | 466 | .modes = pmx_plgpio_33_modes, |
467 | .mode_count = ARRAY_SIZE(pmx_plgpio_33_modes), | 467 | .mode_count = ARRAY_SIZE(pmx_plgpio_33_modes), |
468 | .enb_on_reset = 1, | 468 | .enb_on_reset = 1, |
469 | }; | 469 | }; |
470 | 470 | ||
471 | struct pmx_dev_mode pmx_plgpio_34_36_modes[] = { | 471 | static struct pmx_dev_mode pmx_plgpio_34_36_modes[] = { |
472 | { | 472 | { |
473 | .ids = 0x00, | 473 | .ids = 0x00, |
474 | .mask = PMX_SSP_CS_MASK, | 474 | .mask = PMX_SSP_CS_MASK, |
475 | }, | 475 | }, |
476 | }; | 476 | }; |
477 | 477 | ||
478 | struct pmx_dev pmx_plgpio_34_36 = { | 478 | struct pmx_dev spear3xx_pmx_plgpio_34_36 = { |
479 | .name = "plgpio 34 to 36", | 479 | .name = "plgpio 34 to 36", |
480 | .modes = pmx_plgpio_34_36_modes, | 480 | .modes = pmx_plgpio_34_36_modes, |
481 | .mode_count = ARRAY_SIZE(pmx_plgpio_34_36_modes), | 481 | .mode_count = ARRAY_SIZE(pmx_plgpio_34_36_modes), |
482 | .enb_on_reset = 1, | 482 | .enb_on_reset = 1, |
483 | }; | 483 | }; |
484 | 484 | ||
485 | struct pmx_dev_mode pmx_plgpio_37_42_modes[] = { | 485 | static struct pmx_dev_mode pmx_plgpio_37_42_modes[] = { |
486 | { | 486 | { |
487 | .ids = 0x00, | 487 | .ids = 0x00, |
488 | .mask = PMX_UART0_MODEM_MASK, | 488 | .mask = PMX_UART0_MODEM_MASK, |
489 | }, | 489 | }, |
490 | }; | 490 | }; |
491 | 491 | ||
492 | struct pmx_dev pmx_plgpio_37_42 = { | 492 | struct pmx_dev spear3xx_pmx_plgpio_37_42 = { |
493 | .name = "plgpio 37 to 42", | 493 | .name = "plgpio 37 to 42", |
494 | .modes = pmx_plgpio_37_42_modes, | 494 | .modes = pmx_plgpio_37_42_modes, |
495 | .mode_count = ARRAY_SIZE(pmx_plgpio_37_42_modes), | 495 | .mode_count = ARRAY_SIZE(pmx_plgpio_37_42_modes), |
496 | .enb_on_reset = 1, | 496 | .enb_on_reset = 1, |
497 | }; | 497 | }; |
498 | 498 | ||
499 | struct pmx_dev_mode pmx_plgpio_43_44_47_48_modes[] = { | 499 | static struct pmx_dev_mode pmx_plgpio_43_44_47_48_modes[] = { |
500 | { | 500 | { |
501 | .ids = 0x00, | 501 | .ids = 0x00, |
502 | .mask = PMX_TIMER_1_2_MASK, | 502 | .mask = PMX_TIMER_1_2_MASK, |
503 | }, | 503 | }, |
504 | }; | 504 | }; |
505 | 505 | ||
506 | struct pmx_dev pmx_plgpio_43_44_47_48 = { | 506 | struct pmx_dev spear3xx_pmx_plgpio_43_44_47_48 = { |
507 | .name = "plgpio 43, 44, 47 and 48", | 507 | .name = "plgpio 43, 44, 47 and 48", |
508 | .modes = pmx_plgpio_43_44_47_48_modes, | 508 | .modes = pmx_plgpio_43_44_47_48_modes, |
509 | .mode_count = ARRAY_SIZE(pmx_plgpio_43_44_47_48_modes), | 509 | .mode_count = ARRAY_SIZE(pmx_plgpio_43_44_47_48_modes), |
510 | .enb_on_reset = 1, | 510 | .enb_on_reset = 1, |
511 | }; | 511 | }; |
512 | 512 | ||
513 | struct pmx_dev_mode pmx_plgpio_45_46_49_50_modes[] = { | 513 | static struct pmx_dev_mode pmx_plgpio_45_46_49_50_modes[] = { |
514 | { | 514 | { |
515 | .ids = 0x00, | 515 | .ids = 0x00, |
516 | .mask = PMX_TIMER_3_4_MASK, | 516 | .mask = PMX_TIMER_3_4_MASK, |
517 | }, | 517 | }, |
518 | }; | 518 | }; |
519 | 519 | ||
520 | struct pmx_dev pmx_plgpio_45_46_49_50 = { | 520 | struct pmx_dev spear3xx_pmx_plgpio_45_46_49_50 = { |
521 | .name = "plgpio 45, 46, 49 and 50", | 521 | .name = "plgpio 45, 46, 49 and 50", |
522 | .modes = pmx_plgpio_45_46_49_50_modes, | 522 | .modes = pmx_plgpio_45_46_49_50_modes, |
523 | .mode_count = ARRAY_SIZE(pmx_plgpio_45_46_49_50_modes), | 523 | .mode_count = ARRAY_SIZE(pmx_plgpio_45_46_49_50_modes), |