diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 18:46:13 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 18:46:13 -0700 | 
| commit | 8f446a7a069e0af0639385f67c78ee2279bca04c (patch) | |
| tree | 580cf495616b36ca0af0826afa87c430cdc1e7cb /arch/arm/mach-at91/at91sam9rl_devices.c | |
| parent | 84be4ae2c038e2b03d650cbf2a7cfd9e8d6e9e51 (diff) | |
| parent | 04ef037c926ddb31088c976538e29eada4fd1490 (diff) | |
| download | olio-linux-3.10-8f446a7a069e0af0639385f67c78ee2279bca04c.tar.xz olio-linux-3.10-8f446a7a069e0af0639385f67c78ee2279bca04c.zip  | |
Merge tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc driver specific changes from Olof Johansson:
 - A long-coming conversion of various platforms to a common LED
   infrastructure
 - AT91 is moved over to use the newer MCI driver for MMC
 - Pincontrol conversions for samsung platforms
 - DT bindings for gscaler on samsung
 - i2c driver fixes for tegra, acked by i2c maintainer
Fix up conflicts as per Olof.
* tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
  drivers: bus: omap_l3: use resources instead of hardcoded irqs
  pinctrl: exynos: Fix wakeup IRQ domain registration check
  pinctrl: samsung: Uninline samsung_pinctrl_get_soc_data
  pinctrl: exynos: Correct the detection of wakeup-eint node
  pinctrl: exynos: Mark exynos_irq_demux_eint as inline
  pinctrl: exynos: Handle only unmasked wakeup interrupts
  pinctrl: exynos: Fix typos in gpio/wkup _irq_mask
  pinctrl: exynos: Set pin function to EINT in irq_set_type of GPIO EINTa
  drivers: bus: Move the OMAP interconnect driver to drivers/bus/
  i2c: tegra: dynamically control fast clk
  i2c: tegra: I2_M_NOSTART functionality not supported in Tegra20
  ARM: tegra: clock: remove unused clock entry for i2c
  ARM: tegra: clock: add connection name in i2c clock entry
  i2c: tegra: pass proper name for getting clock
  ARM: tegra: clock: add i2c fast clock entry in clock table
  ARM: EXYNOS: Adds G-Scaler device from Device Tree
  ARM: EXYNOS: Add clock support for G-Scaler
  ARM: EXYNOS: Enable pinctrl driver support for EXYNOS4 device tree enabled platform
  ARM: dts: Add pinctrl node entries for SAMSUNG EXYNOS4210 SoC
  ARM: EXYNOS: skip wakeup interrupt setup if pinctrl driver is used
  ...
Diffstat (limited to 'arch/arm/mach-at91/at91sam9rl_devices.c')
| -rw-r--r-- | arch/arm/mach-at91/at91sam9rl_devices.c | 54 | 
1 files changed, 27 insertions, 27 deletions
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c index b3d365dadef..1fad22f7e21 100644 --- a/arch/arm/mach-at91/at91sam9rl_devices.c +++ b/arch/arm/mach-at91/at91sam9rl_devices.c @@ -161,9 +161,9 @@ void __init at91_add_device_usba(struct usba_platform_data *data) {}   *  MMC / SD   * -------------------------------------------------------------------- */ -#if defined(CONFIG_MMC_AT91) || defined(CONFIG_MMC_AT91_MODULE) +#if IS_ENABLED(CONFIG_MMC_ATMELMCI)  static u64 mmc_dmamask = DMA_BIT_MASK(32); -static struct at91_mmc_data mmc_data; +static struct mci_platform_data mmc_data;  static struct resource mmc_resources[] = {  	[0] = { @@ -179,7 +179,7 @@ static struct resource mmc_resources[] = {  };  static struct platform_device at91sam9rl_mmc_device = { -	.name		= "at91_mci", +	.name		= "atmel_mci",  	.id		= -1,  	.dev		= {  				.dma_mask		= &mmc_dmamask, @@ -190,40 +190,40 @@ static struct platform_device at91sam9rl_mmc_device = {  	.num_resources	= ARRAY_SIZE(mmc_resources),  }; -void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) +void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)  {  	if (!data)  		return; -	/* input/irq */ -	if (gpio_is_valid(data->det_pin)) { -		at91_set_gpio_input(data->det_pin, 1); -		at91_set_deglitch(data->det_pin, 1); -	} -	if (gpio_is_valid(data->wp_pin)) -		at91_set_gpio_input(data->wp_pin, 1); -	if (gpio_is_valid(data->vcc_pin)) -		at91_set_gpio_output(data->vcc_pin, 0); +	if (data->slot[0].bus_width) { +		/* input/irq */ +		if (gpio_is_valid(data->slot[0].detect_pin)) { +			at91_set_gpio_input(data->slot[0].detect_pin, 1); +			at91_set_deglitch(data->slot[0].detect_pin, 1); +		} +		if (gpio_is_valid(data->slot[0].wp_pin)) +			at91_set_gpio_input(data->slot[0].wp_pin, 1); -	/* CLK */ -	at91_set_A_periph(AT91_PIN_PA2, 0); +		/* CLK */ +		at91_set_A_periph(AT91_PIN_PA2, 0); -	/* CMD */ -	at91_set_A_periph(AT91_PIN_PA1, 1); +		/* CMD */ +		at91_set_A_periph(AT91_PIN_PA1, 1); -	/* DAT0, maybe DAT1..DAT3 */ -	at91_set_A_periph(AT91_PIN_PA0, 1); -	if (data->wire4) { -		at91_set_A_periph(AT91_PIN_PA3, 1); -		at91_set_A_periph(AT91_PIN_PA4, 1); -		at91_set_A_periph(AT91_PIN_PA5, 1); -	} +		/* DAT0, maybe DAT1..DAT3 */ +		at91_set_A_periph(AT91_PIN_PA0, 1); +		if (data->slot[0].bus_width == 4) { +			at91_set_A_periph(AT91_PIN_PA3, 1); +			at91_set_A_periph(AT91_PIN_PA4, 1); +			at91_set_A_periph(AT91_PIN_PA5, 1); +		} -	mmc_data = *data; -	platform_device_register(&at91sam9rl_mmc_device); +		mmc_data = *data; +		platform_device_register(&at91sam9rl_mmc_device); +	}  }  #else -void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {} +void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data) {}  #endif  |