projects
/
librecmc
/
librecmc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
772c648
)
CF driver cleanup
author
Florian Fainelli
<florian@openwrt.org>
Thu, 1 Nov 2007 17:11:16 +0000
(17:11 +0000)
committer
Florian Fainelli
<florian@openwrt.org>
Thu, 1 Nov 2007 17:11:16 +0000
(17:11 +0000)
SVN-Revision: 9473
target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c
patch
|
blob
|
history
target/linux/adm5120/files/drivers/block/rb1xx/ata.c
patch
|
blob
|
history
target/linux/adm5120/files/drivers/block/rb1xx/bdev.c
patch
|
blob
|
history
diff --git
a/target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c
b/target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c
index 41004964bd26a2cd1392f20827b8228bb295424e..1af14ab9081eb97d142c65406a97d80bdbd869c1 100644
(file)
--- a/
target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c
+++ b/
target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c
@@
-59,6
+59,9
@@
#define RB150_NAND_WRITE(v) \
writeb((v), (void __iomem *)KSEG1ADDR(RB150_NAND_BASE))
#define RB150_NAND_WRITE(v) \
writeb((v), (void __iomem *)KSEG1ADDR(RB150_NAND_BASE))
+#define RB153_GPIO_CF_RDY ADM5120_GPIO_P1L1
+#define RB153_GPIO_CF_WT ADM5120_GPIO_P0L0
+
/*--------------------------------------------------------------------------*/
static struct adm5120_pci_irq rb1xx_pci_irqs[] __initdata = {
/*--------------------------------------------------------------------------*/
static struct adm5120_pci_irq rb1xx_pci_irqs[] __initdata = {
@@
-233,6
+236,15
@@
static void __init rb1xx_flash_setup(void)
adm5120_nand_data.chip.options = NAND_NO_AUTOINCR;
}
adm5120_nand_data.chip.options = NAND_NO_AUTOINCR;
}
+static void __init rb153_cf_setup(void)
+{
+ gpio_request(RB153_GPIO_CF_RDY, "cf-ready");
+ gpio_direction_input(RB153_GPIO_CF_RDY);
+ gpio_request(RB153_GPIO_CF_WT, "cf-wait");
+ gpio_direction_output(RB153_GPIO_CF_WT, 1);
+ gpio_direction_input(RB153_GPIO_CF_WT);
+}
+
static void __init rb1xx_setup(void)
{
/* enable NAND flash interface */
static void __init rb1xx_setup(void)
{
/* enable NAND flash interface */
@@
-269,6
+281,12
@@
static void __init rb150_setup(void)
rb1xx_mac_setup();
}
rb1xx_mac_setup();
}
+static void __init rb153_setup(void)
+{
+ rb150_setup();
+ rb153_cf_setup();
+}
+
/*--------------------------------------------------------------------------*/
ADM5120_BOARD_START(RB_111, "Mikrotik RouterBOARD 111")
/*--------------------------------------------------------------------------*/
ADM5120_BOARD_START(RB_111, "Mikrotik RouterBOARD 111")
@@
-320,7
+338,7
@@
ADM5120_BOARD_START(RB_150, "Mikrotik RouterBOARD 150")
ADM5120_BOARD_END
ADM5120_BOARD_START(RB_153, "Mikrotik RouterBOARD 153")
ADM5120_BOARD_END
ADM5120_BOARD_START(RB_153, "Mikrotik RouterBOARD 153")
- .board_setup = rb1
xx
_setup,
+ .board_setup = rb1
53
_setup,
.eth_num_ports = 5,
.eth_vlans = rb15x_vlans,
.num_devices = ARRAY_SIZE(rb153_devices),
.eth_num_ports = 5,
.eth_vlans = rb15x_vlans,
.num_devices = ARRAY_SIZE(rb153_devices),
diff --git
a/target/linux/adm5120/files/drivers/block/rb1xx/ata.c
b/target/linux/adm5120/files/drivers/block/rb1xx/ata.c
index b396317f5f2ca2c690b0114cbafb7e48305ac31e..5447be52197f7fb73aa9766d900567194a60dc46 100644
(file)
--- a/
target/linux/adm5120/files/drivers/block/rb1xx/ata.c
+++ b/
target/linux/adm5120/files/drivers/block/rb1xx/ata.c
@@
-16,8
+16,9
@@
#include <linux/pci.h>
#include <linux/ioport.h> /* request_mem_region() */
#include <linux/pci.h>
#include <linux/ioport.h> /* request_mem_region() */
-#include <asm/unaligned.h> /* ioremap() */
-#include <asm/io.h> /* ioremap() */
+#include <asm/unaligned.h>
+#include <asm/io.h>
+#include <asm/gpio.h>
#include <gpio.h>
#include <adm5120_defs.h>
#include <gpio.h>
#include <adm5120_defs.h>
@@
-69,7
+70,7
@@
static inline u8 rareg(unsigned reg, struct cf_mips_dev* dev)
static inline int cfrdy(struct cf_mips_dev *dev)
{
static inline int cfrdy(struct cf_mips_dev *dev)
{
- return
(SW_READ_REG(GPIO_CONF0) & (1 << 12)
);
+ return
gpio_get_value(12
);
}
static inline void prepare_cf_irq(struct cf_mips_dev *dev)
}
static inline void prepare_cf_irq(struct cf_mips_dev *dev)
@@
-92,7
+93,7
@@
static inline int cf_present(struct cf_mips_dev* dev)
int i;
/* on RB100 WAIT is LOW all the time => read will hang */
int i;
/* on RB100 WAIT is LOW all the time => read will hang */
- if (
SW_READ_REG(GPIO_CONF0) & (1 <<
8))
+ if (
gpio_read_value(
8))
cmd |= EXTIO_WAIT_EN;
SW_WRITE_REG(GPIO_CONF2, cmd);
cmd |= EXTIO_WAIT_EN;
SW_WRITE_REG(GPIO_CONF2, cmd);
diff --git
a/target/linux/adm5120/files/drivers/block/rb1xx/bdev.c
b/target/linux/adm5120/files/drivers/block/rb1xx/bdev.c
index 12c938505befa2fb03c9cbf70e54a3dfbcca6d8c..bf63d206b138c65b83cfd3664fdc22e2edf361c9 100644
(file)
--- a/
target/linux/adm5120/files/drivers/block/rb1xx/bdev.c
+++ b/
target/linux/adm5120/files/drivers/block/rb1xx/bdev.c
@@
-93,10
+93,10
@@
int cf_mips_probe(struct platform_device *pdev)
return reg_result;
}
return reg_result;
}
- dev = (struct cf_mips_dev *)k
m
alloc(sizeof(struct cf_mips_dev),GFP_KERNEL);
+ dev = (struct cf_mips_dev *)k
z
alloc(sizeof(struct cf_mips_dev),GFP_KERNEL);
if (!dev)
goto out_err;
if (!dev)
goto out_err;
- memset(dev, 0, sizeof(struct cf_mips_dev));
+
cdev->dev = dev;
dev->pin = cdev->gpio_pin;
cdev->dev = dev;
dev->pin = cdev->gpio_pin;
@@
-104,8
+104,9
@@
int cf_mips_probe(struct platform_device *pdev)
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cf_membase");
dev->base = (void *) r->start;
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cf_membase");
dev->base = (void *) r->start;
- if (cf_init(dev)) goto out_err;
- printk("init done");
+ if (cf_init(dev))
+ goto out_err;
+ printk(KERN_INFO "cf-mips: init done");
spin_lock_init(&dev->lock);
dev->queue = blk_init_queue(cf_request,&dev->lock);
spin_lock_init(&dev->lock);
dev->queue = blk_init_queue(cf_request,&dev->lock);
@@
-125,7
+126,9
@@
int cf_mips_probe(struct platform_device *pdev)
dev->gd = alloc_disk(CF_MAX_PART);
cf_gendisk = dev->gd;
cdev->gd = dev->gd;
dev->gd = alloc_disk(CF_MAX_PART);
cf_gendisk = dev->gd;
cdev->gd = dev->gd;
- if (!cf_gendisk) goto out_err; /* Last of these goto's */
+
+ if (!cf_gendisk)
+ goto out_err; /* Last of these goto's */
cf_gendisk->major = MAJOR_NR;
cf_gendisk->first_minor = 0;
cf_gendisk->major = MAJOR_NR;
cf_gendisk->first_minor = 0;