Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 106549
b: refs/heads/master
c: 3c26e17
h: refs/heads/master
i:
  106547: abd0d6d
v: v3
  • Loading branch information
David Brownell authored and Haavard Skinnemoen committed Jul 27, 2008
1 parent 6ce5690 commit 197d040
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 16 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: eda3d8f5604860aae1bb9996bb5efc4213778369
refs/heads/master: 3c26e17032e42cfbe606882288223ad6146e4c38
19 changes: 18 additions & 1 deletion trunk/arch/avr32/boards/atstk1000/atstk1002.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@

#include <asm/io.h>
#include <asm/setup.h>
#include <asm/atmel-mci.h>

#include <asm/arch/at32ap700x.h>
#include <asm/arch/board.h>
#include <asm/arch/init.h>
Expand Down Expand Up @@ -260,6 +262,21 @@ void __init setup_board(void)
at32_setup_serial_console(0);
}

#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM

/* MMC card detect requires MACB0 *NOT* be used */
#ifdef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM
static struct mci_platform_data __initdata mci0_data = {
.detect_pin = GPIO_PIN_PC(14), /* gpio30/sdcd */
.wp_pin = GPIO_PIN_PC(15), /* gpio31/sdwp */
};
#define MCI_PDATA &mci0_data
#else
#define MCI_PDATA NULL
#endif /* SW6 for sd{cd,wp} routing */

#endif /* SW2 for MMC signal routing */

static int __init atstk1002_init(void)
{
/*
Expand Down Expand Up @@ -309,7 +326,7 @@ static int __init atstk1002_init(void)
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM
at32_add_device_mci(0, NULL);
at32_add_device_mci(0, MCI_PDATA);
#endif
#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM
set_hw_addr(at32_add_device_eth(1, &eth_data[1]));
Expand Down
13 changes: 7 additions & 6 deletions trunk/arch/avr32/mach-at32ap/at32ap700x.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/gpio.h>
#include <linux/spi/spi.h>
#include <linux/usb/atmel_usba_udc.h>

Expand Down Expand Up @@ -1299,7 +1300,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)

if (!data) {
data = &_data;
memset(data, 0, sizeof(struct mci_platform_data));
memset(data, -1, sizeof(struct mci_platform_data));
data->detect_pin = GPIO_PIN_NONE;
data->wp_pin = GPIO_PIN_NONE;
}
Expand All @@ -1315,9 +1316,9 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
select_peripheral(PA(14), PERIPH_A, 0); /* DATA2 */
select_peripheral(PA(15), PERIPH_A, 0); /* DATA3 */

if (data->detect_pin != GPIO_PIN_NONE)
if (gpio_is_valid(data->detect_pin))
at32_select_gpio(data->detect_pin, 0);
if (data->wp_pin != GPIO_PIN_NONE)
if (gpio_is_valid(data->wp_pin))
at32_select_gpio(data->wp_pin, 0);

atmel_mci0_pclk.dev = &pdev->dev;
Expand Down Expand Up @@ -1852,11 +1853,11 @@ at32_add_device_cf(unsigned int id, unsigned int extint,
if (at32_init_ide_or_cf(pdev, data->cs, extint))
goto fail;

if (data->detect_pin != GPIO_PIN_NONE)
if (gpio_is_valid(data->detect_pin))
at32_select_gpio(data->detect_pin, AT32_GPIOF_DEGLITCH);
if (data->reset_pin != GPIO_PIN_NONE)
if (gpio_is_valid(data->reset_pin))
at32_select_gpio(data->reset_pin, 0);
if (data->vcc_pin != GPIO_PIN_NONE)
if (gpio_is_valid(data->vcc_pin))
at32_select_gpio(data->vcc_pin, 0);
/* READY is used as extint, so we can't select it as gpio */

Expand Down
16 changes: 8 additions & 8 deletions trunk/drivers/mmc/host/atmel-mci.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/gpio.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
Expand All @@ -28,7 +29,6 @@
#include <asm/unaligned.h>

#include <asm/arch/board.h>
#include <asm/arch/gpio.h>

#include "atmel-mci-regs.h"

Expand Down Expand Up @@ -574,7 +574,7 @@ static int atmci_get_ro(struct mmc_host *mmc)
int read_only = 0;
struct atmel_mci *host = mmc_priv(mmc);

if (host->wp_pin >= 0) {
if (gpio_is_valid(host->wp_pin)) {
read_only = gpio_get_value(host->wp_pin);
dev_dbg(&mmc->class_dev, "card is %s\n",
read_only ? "read-only" : "read-write");
Expand Down Expand Up @@ -636,7 +636,7 @@ static void atmci_detect_change(unsigned long data)
* been freed.
*/
smp_rmb();
if (host->detect_pin < 0)
if (!gpio_is_valid(host->detect_pin))
return;

enable_irq(gpio_to_irq(host->detect_pin));
Expand Down Expand Up @@ -1051,15 +1051,15 @@ static int __init atmci_probe(struct platform_device *pdev)

/* Assume card is present if we don't have a detect pin */
host->present = 1;
if (host->detect_pin >= 0) {
if (gpio_is_valid(host->detect_pin)) {
if (gpio_request(host->detect_pin, "mmc_detect")) {
dev_dbg(&mmc->class_dev, "no detect pin available\n");
host->detect_pin = -1;
} else {
host->present = !gpio_get_value(host->detect_pin);
}
}
if (host->wp_pin >= 0) {
if (gpio_is_valid(host->wp_pin)) {
if (gpio_request(host->wp_pin, "mmc_wp")) {
dev_dbg(&mmc->class_dev, "no WP pin available\n");
host->wp_pin = -1;
Expand All @@ -1070,7 +1070,7 @@ static int __init atmci_probe(struct platform_device *pdev)

mmc_add_host(mmc);

if (host->detect_pin >= 0) {
if (gpio_is_valid(host->detect_pin)) {
setup_timer(&host->detect_timer, atmci_detect_change,
(unsigned long)host);

Expand Down Expand Up @@ -1113,7 +1113,7 @@ static int __exit atmci_remove(struct platform_device *pdev)
if (host) {
/* Debugfs stuff is cleaned up by mmc core */

if (host->detect_pin >= 0) {
if (gpio_is_valid(host->detect_pin)) {
int pin = host->detect_pin;

/* Make sure the timer doesn't enable the interrupt */
Expand All @@ -1133,7 +1133,7 @@ static int __exit atmci_remove(struct platform_device *pdev)
mci_readl(host, SR);
clk_disable(host->mck);

if (host->wp_pin >= 0)
if (gpio_is_valid(host->wp_pin))
gpio_free(host->wp_pin);

free_irq(platform_get_irq(pdev, 0), host->mmc);
Expand Down

0 comments on commit 197d040

Please sign in to comment.