diff options
Diffstat (limited to 'arch/arm/mach-shmobile/board-ape6evm.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-ape6evm.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-ape6evm.c b/arch/arm/mach-shmobile/board-ape6evm.c index af6dd39d3758..8c7529cc4860 100644 --- a/arch/arm/mach-shmobile/board-ape6evm.c +++ b/arch/arm/mach-shmobile/board-ape6evm.c | |||
@@ -21,6 +21,8 @@ | |||
21 | #include <linux/gpio.h> | 21 | #include <linux/gpio.h> |
22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
23 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
24 | #include <linux/mmc/host.h> | ||
25 | #include <linux/mmc/sh_mmcif.h> | ||
24 | #include <linux/pinctrl/machine.h> | 26 | #include <linux/pinctrl/machine.h> |
25 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
26 | #include <linux/regulator/fixed.h> | 28 | #include <linux/regulator/fixed.h> |
@@ -54,6 +56,25 @@ static const struct smsc911x_platform_config lan9220_data = { | |||
54 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH, | 56 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH, |
55 | }; | 57 | }; |
56 | 58 | ||
59 | /* | ||
60 | * On APE6EVM power is supplied to MMCIF by a tps80032 regulator. For now we | ||
61 | * model a VDD supply to MMCIF, using a fixed 3.3V regulator. | ||
62 | */ | ||
63 | static struct regulator_consumer_supply fixed3v3_power_consumers[] = | ||
64 | { | ||
65 | REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"), | ||
66 | }; | ||
67 | |||
68 | /* MMCIF */ | ||
69 | static struct sh_mmcif_plat_data mmcif0_pdata = { | ||
70 | .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE, | ||
71 | }; | ||
72 | |||
73 | static struct resource mmcif0_resources[] = { | ||
74 | DEFINE_RES_MEM_NAMED(0xee200000, 0x100, "MMCIF0"), | ||
75 | DEFINE_RES_IRQ(gic_spi(169)), | ||
76 | }; | ||
77 | |||
57 | static const struct pinctrl_map ape6evm_pinctrl_map[] = { | 78 | static const struct pinctrl_map ape6evm_pinctrl_map[] = { |
58 | /* SCIFA0 console */ | 79 | /* SCIFA0 console */ |
59 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4", | 80 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a73a4", |
@@ -61,6 +82,11 @@ static const struct pinctrl_map ape6evm_pinctrl_map[] = { | |||
61 | /* SMSC */ | 82 | /* SMSC */ |
62 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a73a4", | 83 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a73a4", |
63 | "irqc_irq40", "irqc"), | 84 | "irqc_irq40", "irqc"), |
85 | /* MMCIF0 */ | ||
86 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4", | ||
87 | "mmc0_data8", "mmc0"), | ||
88 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-r8a73a4", | ||
89 | "mmc0_ctrl", "mmc0"), | ||
64 | }; | 90 | }; |
65 | 91 | ||
66 | static void __init ape6evm_add_standard_devices(void) | 92 | static void __init ape6evm_add_standard_devices(void) |
@@ -93,6 +119,11 @@ static void __init ape6evm_add_standard_devices(void) | |||
93 | platform_device_register_resndata(&platform_bus, "smsc911x", -1, | 119 | platform_device_register_resndata(&platform_bus, "smsc911x", -1, |
94 | lan9220_res, ARRAY_SIZE(lan9220_res), | 120 | lan9220_res, ARRAY_SIZE(lan9220_res), |
95 | &lan9220_data, sizeof(lan9220_data)); | 121 | &lan9220_data, sizeof(lan9220_data)); |
122 | regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers, | ||
123 | ARRAY_SIZE(fixed3v3_power_consumers), 3300000); | ||
124 | platform_device_register_resndata(&platform_bus, "sh_mmcif", 0, | ||
125 | mmcif0_resources, ARRAY_SIZE(mmcif0_resources), | ||
126 | &mmcif0_pdata, sizeof(mmcif0_pdata)); | ||
96 | } | 127 | } |
97 | 128 | ||
98 | static const char *ape6evm_boards_compat_dt[] __initdata = { | 129 | static const char *ape6evm_boards_compat_dt[] __initdata = { |