HSMMC: Fix boot crash on boards without gpio_cd set
Subsystems (3)
PATCH 1/1 HSMMC: Fix boot crash on boards without gpio_cd set
If .gpio_cd is -EINVAL, twl_mmc_late_init() is not called and hsmmc[x].mmc is not set, so don't use it in twl_mmc*_set_power().
--- arch/arm/mach-omap2/mmc-twl4030.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/mmc-twl4030.c +4 -3
@@ -239,6 +239,7 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,u32 reg;int ret =0 ;struct twl_mmc_controller *c = &hsmmc[0 ]; +struct omap_mmc_platform_data *mmc = dev->platform_data;if (power_on) {if (cpu_is_omap2430 ()) {
@@ -250,7 +251,7 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,omap_ctrl_writel (reg,OMAP243X_CONTROL_DEVCONF1 ); } -if (c->mmc->slots[0 ].internal_clock) { +if (mmc->slots[0 ].internal_clock) { reg =omap_ctrl_readl (OMAP2_CONTROL_DEVCONF0 ); reg |=OMAP2_MMCSDIO1ADPCLKISEL ;omap_ctrl_writel (reg,OMAP2_CONTROL_DEVCONF0 );
@@ -293,11 +294,11 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,static int twl_mmc2_set_power (struct device *dev,int slot,int power_on,int vdd) {int ret; -struct twl_mmc_controller *c = &hsmmc[1 ]; +struct omap_mmc_platform_data *mmc = dev->platform_data;if (power_on) { -if (c->mmc->slots[0 ].internal_clock) { +if (mmc->slots[0 ].internal_clock) {u32 reg; reg =omap_ctrl_readl (control_devconf1_offset);
Signature · 1 line
1.5.4.3
PATCH 1/1 HSMMC: Add MMC configuration for pandora
This patch enables both SD slots with support of card detect and write protect switch on OMAP3 Pandora.
--- arch/arm/mach-omap2/board-omap3pandora.c | 41 ++++++++++++++++++++++-------- 1 files changed, 30 insertions(+), 11 deletions(-)
arch/arm/mach-omap2/board-omap3pandora.c +30 -11
@@ -144,14 +144,44 @@ static void __init omap3pandora_flash_init(void) } } +static struct twl4030_hsmmc_info omap3pandora_mmc[] = { + { + .mmc =1 , + .wires =4 , + .gpio_cd = -EINVAL , + .gpio_wp =126 , + .ext_clock =0 , + }, + { + .mmc =2 , + .wires =4 , + .gpio_cd = -EINVAL , + .gpio_wp =127 , + .ext_clock =1 , + }, + {}/* Terminator */ +}; +static struct omap_uart_config omap3pandora_uart_config__initdata = { .enabled_uarts = (1 <<2 ),/* UART3 */ }; +static int omap3pandora_twl_gpio_setup (struct device *dev, +unsigned gpio,unsigned ngpio) +{ +/* gpio + {0,1} is "mmc{0,1}_cd" (input/IRQ) */ + omap3pandora_mmc[0 ].gpio_cd = gpio +0 ; + omap3pandora_mmc[1 ].gpio_cd = gpio +1 ; +hsmmc_init (omap3pandora_mmc); + +return 0 ; +} +static struct twl4030_gpio_platform_data omap3pandora_gpio_data = { .gpio_base =OMAP_MAX_GPIO_LINES , .irq_base =TWL4030_GPIO_IRQ_BASE , .irq_end =TWL4030_GPIO_IRQ_END , + .setup = omap3pandora_twl_gpio_setup, };static struct twl4030_usb_data omap3pandora_usb_data = {
@@ -257,16 +287,6 @@ static struct platform_device *omap3pandora_devices[] __initdata = { &omap3pandora_lcd_device, }; -static struct twl4030_hsmmc_info mmc[]__initdata = { - { - .mmc =1 , - .wires =4 , - .gpio_cd = -EINVAL , - .gpio_wp = -EINVAL , - }, - {}/* Terminator */ -}; -static void __init omap3pandora_init (void ) {omap3pandora_i2c_init ();
@@ -277,7 +297,6 @@ static void __init omap3pandora_init(void)omap_serial_init ();spi_register_board_info (omap3pandora_spi_board_info,ARRAY_SIZE (omap3pandora_spi_board_info)); -hsmmc_init (mmc);usb_musb_init ();usb_ehci_init ();omap3pandora_flash_init ();
Signature · 1 line
1.5.4.3
Re: [PATCH] HSMMC: Add MMC configuration for pandora
Quoted 2 lines · Grazvydas Ignotas
This patch enables both SD slots with support of card detect and write protect switch on OMAP3 Pandora.
Nice milestone for a Friday. :)
Weren't you working on getting the SDIO WLAN adapter on the third slot to behave too?
- Dave
Re: [PATCH] HSMMC: Add MMC configuration for pandora
Quoted 5 lines · David Brownell
Quoted 2 lines · Grazvydas Ignotas
This patch enables both SD slots with support of card detect and write protect switch on OMAP3 Pandora.
Nice milestone for a Friday. :)
May be, but it still needs some nasty hack in the host driver to work. The driver relies on voltage setting in the host controller register, but that is fixed to 1.8V for MMC2 and doesn't represent real voltage used for the card.
Quoted 2 lines
Weren't you working on getting the SDIO WLAN adapter on the third slot to behave too?
yeah, not much progress with that yet, though..
Re: [PATCH] HSMMC: Add MMC configuration for pandora
Quoted 6 lines · Grazvydas Ignotas
Quoted 5 lines · David Brownell
Quoted 2 lines · Grazvydas Ignotas
This patch enables both SD slots with support of card detect and write protect switch on OMAP3 Pandora.
Nice milestone for a Friday. :)
Quoted 8 lines
May be, but it still needs some nasty hack in the host driver to work. The driver relies on voltage setting in the host controller register, but that is fixed to 1.8V for MMC2 and doesn't represent real voltage used for the card.
Quoted 2 lines
Weren't you working on getting the SDIO WLAN adapter on the third slot to behave too?
yeah, not much progress with that yet, though..
Which adapter are you using? I've got the libertas_sdio driver working on mmc2.
Steve
Re: [PATCH] HSMMC: Add MMC configuration for pandora
Quoted 6 lines · Steve Sakoman
Quoted 4 lines
Quoted 2 lines
Weren't you working on getting the SDIO WLAN adapter on the third slot to behave too?
yeah, not much progress with that yet, though..
Which adapter are you using? I've got the
libertas_sdiodriver working on mmc2.
The issue I referred to was the way mmc3 isn't yet supported at all in that code ...
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Tony Lindgren
maintainerRe: [PATCH] HSMMC: Add MMC configuration for pandora
In reply to Grazvydas IgnotasQuoted 6 lines · Grazvydas Ignotas
Quoted 5 lines · David Brownell
Quoted 2 lines · Grazvydas Ignotas
This patch enables both SD slots with support of card detect and write protect switch on OMAP3 Pandora.
Nice milestone for a Friday. :)
Quoted 8 lines
May be, but it still needs some nasty hack in the host driver to work. The driver relies on voltage setting in the host controller register, but that is fixed to 1.8V for MMC2 and doesn't represent real voltage used for the card.
Quoted 2 lines
Weren't you working on getting the SDIO WLAN adapter on the third slot to behave too?
yeah, not much progress with that yet, though..
Pushed both.
Tony