aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/mach-mx27_3ds.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/mach-mx27_3ds.c')
-rw-r--r--arch/arm/mach-imx/mach-mx27_3ds.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c
index 117ce0a50f4..eb663102376 100644
--- a/arch/arm/mach-imx/mach-mx27_3ds.c
+++ b/arch/arm/mach-imx/mach-mx27_3ds.c
@@ -42,10 +42,11 @@
42 42
43#include "devices-imx27.h" 43#include "devices-imx27.h"
44 44
45#define SD1_EN_GPIO (GPIO_PORTB + 25) 45#define SD1_EN_GPIO IMX_GPIO_NR(2, 25)
46#define OTG_PHY_RESET_GPIO (GPIO_PORTB + 23) 46#define OTG_PHY_RESET_GPIO IMX_GPIO_NR(2, 23)
47#define SPI2_SS0 (GPIO_PORTD + 21) 47#define SPI2_SS0 IMX_GPIO_NR(4, 21)
48#define EXPIO_PARENT_INT (MXC_INTERNAL_IRQS + GPIO_PORTC + 28) 48#define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(3, 28))
49#define PMIC_INT IMX_GPIO_NR(3, 14)
49 50
50static const int mx27pdk_pins[] __initconst = { 51static const int mx27pdk_pins[] __initconst = {
51 /* UART1 */ 52 /* UART1 */
@@ -98,9 +99,12 @@ static const int mx27pdk_pins[] __initconst = {
98 PD22_PF_CSPI2_SCLK, 99 PD22_PF_CSPI2_SCLK,
99 PD23_PF_CSPI2_MISO, 100 PD23_PF_CSPI2_MISO,
100 PD24_PF_CSPI2_MOSI, 101 PD24_PF_CSPI2_MOSI,
102 SPI2_SS0 | GPIO_GPIO | GPIO_OUT,
101 /* I2C1 */ 103 /* I2C1 */
102 PD17_PF_I2C_DATA, 104 PD17_PF_I2C_DATA,
103 PD18_PF_I2C_CLK, 105 PD18_PF_I2C_CLK,
106 /* PMIC INT */
107 PMIC_INT | GPIO_GPIO | GPIO_IN,
104}; 108};
105 109
106static const struct imxuart_platform_data uart_pdata __initconst = { 110static const struct imxuart_platform_data uart_pdata __initconst = {
@@ -193,6 +197,13 @@ static int __init mx27_3ds_otg_mode(char *options)
193__setup("otg_mode=", mx27_3ds_otg_mode); 197__setup("otg_mode=", mx27_3ds_otg_mode);
194 198
195/* Regulators */ 199/* Regulators */
200static struct regulator_init_data gpo_init = {
201 .constraints = {
202 .boot_on = 1,
203 .always_on = 1,
204 }
205};
206
196static struct regulator_consumer_supply vmmc1_consumers[] = { 207static struct regulator_consumer_supply vmmc1_consumers[] = {
197 REGULATOR_SUPPLY("lcd_2v8", NULL), 208 REGULATOR_SUPPLY("lcd_2v8", NULL),
198}; 209};
@@ -201,7 +212,9 @@ static struct regulator_init_data vmmc1_init = {
201 .constraints = { 212 .constraints = {
202 .min_uV = 2800000, 213 .min_uV = 2800000,
203 .max_uV = 2800000, 214 .max_uV = 2800000,
204 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE, 215 .apply_uV = 1,
216 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
217 REGULATOR_CHANGE_STATUS,
205 }, 218 },
206 .num_consumer_supplies = ARRAY_SIZE(vmmc1_consumers), 219 .num_consumer_supplies = ARRAY_SIZE(vmmc1_consumers),
207 .consumer_supplies = vmmc1_consumers, 220 .consumer_supplies = vmmc1_consumers,
@@ -228,6 +241,12 @@ static struct mc13xxx_regulator_init_data mx27_3ds_regulators[] = {
228 }, { 241 }, {
229 .id = MC13783_REG_VGEN, 242 .id = MC13783_REG_VGEN,
230 .init_data = &vgen_init, 243 .init_data = &vgen_init,
244 }, {
245 .id = MC13783_REG_GPO1, /* Turn on 1.8V */
246 .init_data = &gpo_init,
247 }, {
248 .id = MC13783_REG_GPO3, /* Turn on 3.3V */
249 .init_data = &gpo_init,
231 }, 250 },
232}; 251};
233 252