Re: [PATCH 6/6] ARM: OMAP3: Initialize more devices for LDP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 22, 2009 at 03:45:41PM -0700, Tony Lindgren wrote:
> +static struct regulator_consumer_supply ldp_vmmc1_supply = {
> +	.supply			= "vmmc",
> +};
> +
> +/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
> +static struct regulator_init_data ldp_vmmc1 = {
> +	.consumer_supplies	= &ldp_vmmc1_supply,
> +};
> +
>  static struct twl4030_platform_data ldp_twldata = {
> +	.vmmc1		= &ldp_vmmc1,
>  };
>  
>  static struct i2c_board_info __initdata ldp_i2c_boardinfo[] = {

> @@ -185,9 +379,17 @@ static void __init omap_ldp_init(void)
>  	platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
>  	omap_board_config = ldp_config;
>  	omap_board_config_size = ARRAY_SIZE(ldp_config);
> +	ts_gpio = 54;
> +	ldp_spi_board_info[0].irq = gpio_to_irq(ts_gpio);
> +	spi_register_board_info(ldp_spi_board_info,
> +				ARRAY_SIZE(ldp_spi_board_info));
> +	ads7846_dev_init();
>  	omap_serial_init();
> -	twl4030_mmc_init(mmc);
>  	usb_musb_init();
> +
> +	twl4030_mmc_init(mmc);
> +	/* link regulators to MMC adapters */
> +	ldp_vmmc1_supply.dev = mmc[0].dev;

This feels wrong - setup after registering devices.  All it takes is to
have to move various device drivers to be earlier in the initialization
ordering and things start breaking in unexpected ways.

If MMC controls the Vmmc1 supply, then why does the Vmmc1 supply need
the struct device pointer for the MMC controller?
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux