diff options
-rw-r--r-- | arch/arm/boot/dts/snowball.dts | 19 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-sdi.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.h | 3 |
4 files changed, 24 insertions, 5 deletions
diff --git a/arch/arm/boot/dts/snowball.dts b/arch/arm/boot/dts/snowball.dts index ec3c33975110..68f66f3096a0 100644 --- a/arch/arm/boot/dts/snowball.dts +++ b/arch/arm/boot/dts/snowball.dts | |||
@@ -101,15 +101,30 @@ | |||
101 | }; | 101 | }; |
102 | }; | 102 | }; |
103 | 103 | ||
104 | // External Micro SD slot | ||
104 | sdi@80126000 { | 105 | sdi@80126000 { |
105 | status = "enabled"; | 106 | arm,primecell-periphid = <0x10480180>; |
107 | max-frequency = <50000000>; | ||
108 | bus-width = <8>; | ||
109 | mmc-cap-mmc-highspeed; | ||
106 | vmmc-supply = <&ab8500_ldo_aux3_reg>; | 110 | vmmc-supply = <&ab8500_ldo_aux3_reg>; |
111 | |||
112 | #gpio-cells = <1>; | ||
107 | cd-gpios = <&gpio6 26 0x4>; // 218 | 113 | cd-gpios = <&gpio6 26 0x4>; // 218 |
114 | cd-inverted; | ||
115 | |||
116 | status = "okay"; | ||
108 | }; | 117 | }; |
109 | 118 | ||
119 | // On-board eMMC | ||
110 | sdi@80114000 { | 120 | sdi@80114000 { |
111 | status = "enabled"; | 121 | arm,primecell-periphid = <0x10480180>; |
122 | max-frequency = <50000000>; | ||
123 | bus-width = <8>; | ||
124 | mmc-cap-mmc-highspeed; | ||
112 | vmmc-supply = <&ab8500_ldo_aux2_reg>; | 125 | vmmc-supply = <&ab8500_ldo_aux2_reg>; |
126 | |||
127 | status = "okay"; | ||
113 | }; | 128 | }; |
114 | 129 | ||
115 | uart@80120000 { | 130 | uart@80120000 { |
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index 920251cf834c..18ff781cfbe4 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
@@ -80,7 +80,7 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = { | |||
80 | }; | 80 | }; |
81 | #endif | 81 | #endif |
82 | 82 | ||
83 | static struct mmci_platform_data mop500_sdi0_data = { | 83 | struct mmci_platform_data mop500_sdi0_data = { |
84 | .ios_handler = mop500_sdi0_ios_handler, | 84 | .ios_handler = mop500_sdi0_ios_handler, |
85 | .ocr_mask = MMC_VDD_29_30, | 85 | .ocr_mask = MMC_VDD_29_30, |
86 | .f_max = 50000000, | 86 | .f_max = 50000000, |
@@ -227,7 +227,7 @@ static struct stedma40_chan_cfg mop500_sdi4_dma_cfg_tx = { | |||
227 | }; | 227 | }; |
228 | #endif | 228 | #endif |
229 | 229 | ||
230 | static struct mmci_platform_data mop500_sdi4_data = { | 230 | struct mmci_platform_data mop500_sdi4_data = { |
231 | .ocr_mask = MMC_VDD_29_30, | 231 | .ocr_mask = MMC_VDD_29_30, |
232 | .f_max = 50000000, | 232 | .f_max = 50000000, |
233 | .capabilities = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA | | 233 | .capabilities = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA | |
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 4fd93f5c49ec..1bf179e91eab 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -776,6 +776,8 @@ struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { | |||
776 | OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", &uart2_plat), | 776 | OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", &uart2_plat), |
777 | /* Requires DMA bindings. */ | 777 | /* Requires DMA bindings. */ |
778 | OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0", &ssp0_plat), | 778 | OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0", &ssp0_plat), |
779 | OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0", &mop500_sdi0_data), | ||
780 | OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4", &mop500_sdi4_data), | ||
779 | /* Requires clock name bindings. */ | 781 | /* Requires clock name bindings. */ |
780 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL), | 782 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL), |
781 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL), | 783 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL), |
@@ -851,7 +853,6 @@ static void __init u8500_init_machine(void) | |||
851 | platform_add_devices(snowball_of_platform_devs, | 853 | platform_add_devices(snowball_of_platform_devs, |
852 | ARRAY_SIZE(snowball_of_platform_devs)); | 854 | ARRAY_SIZE(snowball_of_platform_devs)); |
853 | 855 | ||
854 | snowball_sdi_init(parent); | ||
855 | } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) { | 856 | } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) { |
856 | /* | 857 | /* |
857 | * The HREFv60 board removed a GPIO expander and routed | 858 | * The HREFv60 board removed a GPIO expander and routed |
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h index 2f87b25a908a..b5bfc1a78b1a 100644 --- a/arch/arm/mach-ux500/board-mop500.h +++ b/arch/arm/mach-ux500/board-mop500.h | |||
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | /* For NOMADIK_NR_GPIO */ | 10 | /* For NOMADIK_NR_GPIO */ |
11 | #include <mach/irqs.h> | 11 | #include <mach/irqs.h> |
12 | #include <linux/amba/mmci.h> | ||
12 | 13 | ||
13 | /* Snowball specific GPIO assignments, this board has no GPIO expander */ | 14 | /* Snowball specific GPIO assignments, this board has no GPIO expander */ |
14 | #define SNOWBALL_ACCEL_INT1_GPIO 163 | 15 | #define SNOWBALL_ACCEL_INT1_GPIO 163 |
@@ -78,6 +79,8 @@ | |||
78 | 79 | ||
79 | struct device; | 80 | struct device; |
80 | struct i2c_board_info; | 81 | struct i2c_board_info; |
82 | extern struct mmci_platform_data mop500_sdi0_data; | ||
83 | extern struct mmci_platform_data mop500_sdi4_data; | ||
81 | 84 | ||
82 | extern void mop500_sdi_init(struct device *parent); | 85 | extern void mop500_sdi_init(struct device *parent); |
83 | extern void snowball_sdi_init(struct device *parent); | 86 | extern void snowball_sdi_init(struct device *parent); |