diff options
Diffstat (limited to 'arch/arm/mach-at91/at91sam9261_devices.c')
| -rw-r--r-- | arch/arm/mach-at91/at91sam9261_devices.c | 33 | 
1 files changed, 21 insertions, 12 deletions
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index a178b58b0b9..fc59cbdb0e3 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c @@ -118,7 +118,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data)  	if (!data)  		return; -	if (data->vbus_pin) { +	if (gpio_is_valid(data->vbus_pin)) {  		at91_set_gpio_input(data->vbus_pin, 0);  		at91_set_deglitch(data->vbus_pin, 1);  	} @@ -171,13 +171,13 @@ void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data)  		return;  	/* input/irq */ -	if (data->det_pin) { +	if (gpio_is_valid(data->det_pin)) {  		at91_set_gpio_input(data->det_pin, 1);  		at91_set_deglitch(data->det_pin, 1);  	} -	if (data->wp_pin) +	if (gpio_is_valid(data->wp_pin))  		at91_set_gpio_input(data->wp_pin, 1); -	if (data->vcc_pin) +	if (gpio_is_valid(data->vcc_pin))  		at91_set_gpio_output(data->vcc_pin, 0);  	/* CLK */ @@ -240,15 +240,15 @@ void __init at91_add_device_nand(struct atmel_nand_data *data)  	at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);  	/* enable pin */ -	if (data->enable_pin) +	if (gpio_is_valid(data->enable_pin))  		at91_set_gpio_output(data->enable_pin, 1);  	/* ready/busy pin */ -	if (data->rdy_pin) +	if (gpio_is_valid(data->rdy_pin))  		at91_set_gpio_input(data->rdy_pin, 1);  	/* card detect pin */ -	if (data->det_pin) +	if (gpio_is_valid(data->det_pin))  		at91_set_gpio_input(data->det_pin, 1);  	at91_set_A_periph(AT91_PIN_PC0, 0);		/* NANDOE */ @@ -600,8 +600,8 @@ static void __init at91_add_device_tc(void) { }  static struct resource rtt_resources[] = {  	{ -		.start	= AT91_BASE_SYS + AT91_RTT, -		.end	= AT91_BASE_SYS + AT91_RTT + SZ_16 - 1, +		.start	= AT91SAM9261_BASE_RTT, +		.end	= AT91SAM9261_BASE_RTT + SZ_16 - 1,  		.flags	= IORESOURCE_MEM,  	}  }; @@ -624,10 +624,19 @@ static void __init at91_add_device_rtt(void)   * -------------------------------------------------------------------- */  #if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE) +static struct resource wdt_resources[] = { +	{ +		.start	= AT91SAM9261_BASE_WDT, +		.end	= AT91SAM9261_BASE_WDT + SZ_16 - 1, +		.flags	= IORESOURCE_MEM, +	} +}; +  static struct platform_device at91sam9261_wdt_device = {  	.name		= "at91_wdt",  	.id		= -1, -	.num_resources	= 0, +	.resource	= wdt_resources, +	.num_resources	= ARRAY_SIZE(wdt_resources),  };  static void __init at91_add_device_watchdog(void) @@ -816,8 +825,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {}  #if defined(CONFIG_SERIAL_ATMEL)  static struct resource dbgu_resources[] = {  	[0] = { -		.start	= AT91_BASE_SYS + AT91_DBGU, -		.end	= AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, +		.start	= AT91SAM9261_BASE_DBGU, +		.end	= AT91SAM9261_BASE_DBGU + SZ_512 - 1,  		.flags	= IORESOURCE_MEM,  	},  	[1] = {  |