OSDN Git Service

Blackfin: net2272: move pin setup to boards files
authorMike Frysinger <vapier@gentoo.org>
Wed, 4 May 2011 15:20:15 +0000 (11:20 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 23 Jul 2011 05:10:41 +0000 (01:10 -0400)
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/mach-bf527/boards/ezkit.c
arch/blackfin/mach-bf533/boards/stamp.c
arch/blackfin/mach-bf537/boards/cm_bf537e.c
arch/blackfin/mach-bf537/boards/cm_bf537u.c
arch/blackfin/mach-bf537/boards/stamp.c
arch/blackfin/mach-bf537/boards/tcm_bf537.c
arch/blackfin/mach-bf561/boards/cm_bf561.c
arch/blackfin/mach-bf561/boards/ezkit.c

index e67ac77..3f967b1 100644 (file)
@@ -409,6 +409,9 @@ static struct resource net2272_bfin_resources[] = {
                .end = 0x20300000 + 0x100,
                .flags = IORESOURCE_MEM,
        }, {
+               .start = 1,
+               .flags = IORESOURCE_BUS,
+       }, {
                .start = IRQ_PF7,
                .end = IRQ_PF7,
                .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
index 43224ef..eccb820 100644 (file)
@@ -80,6 +80,9 @@ static struct resource net2272_bfin_resources[] = {
                .end = 0x20300000 + 0x100,
                .flags = IORESOURCE_MEM,
        }, {
+               .start = 1,
+               .flags = IORESOURCE_BUS,
+       }, {
                .start = IRQ_PF10,
                .end = IRQ_PF10,
                .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
@@ -659,6 +662,41 @@ static struct platform_device *stamp_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       /* Set PF0 to 0, PF1 to 1 make /AMS3 work properly */
+       ret = gpio_request(GPIO_PF0, "net2272");
+       if (ret)
+               return ret;
+
+       ret = gpio_request(GPIO_PF1, "net2272");
+       if (ret) {
+               gpio_free(GPIO_PF0);
+               return ret;
+       }
+
+       ret = gpio_request(GPIO_PF11, "net2272");
+       if (ret) {
+               gpio_free(GPIO_PF0);
+               gpio_free(GPIO_PF1);
+               return ret;
+       }
+
+       gpio_direction_output(GPIO_PF0, 0);
+       gpio_direction_output(GPIO_PF1, 1);
+
+       /* Reset the USB chip */
+       gpio_direction_output(GPIO_PF11, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PF11, 1);
+#endif
+
+       return 0;
+}
+
 static int __init stamp_init(void)
 {
        int ret;
@@ -685,6 +723,9 @@ static int __init stamp_init(void)
        }
 #endif
 
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
        return 0;
 }
index d582b81..f3ff420 100644 (file)
@@ -766,6 +766,24 @@ static struct platform_device *cm_bf537e_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       ret = gpio_request(GPIO_PG14, "net2272");
+       if (ret)
+               return ret;
+
+       /* Reset USB Chip, PG14 */
+       gpio_direction_output(GPIO_PG14, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PG14, 1);
+#endif
+
+       return 0;
+}
+
 static int __init cm_bf537e_init(void)
 {
        printk(KERN_INFO "%s(): registering device resources\n", __func__);
@@ -777,6 +795,10 @@ static int __init cm_bf537e_init(void)
 #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
        irq_set_status_flags(PATA_INT, IRQ_NOAUTOEN);
 #endif
+
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        return 0;
 }
 
index cbb8098..e1b7287 100644 (file)
@@ -731,6 +731,36 @@ static struct platform_device *cm_bf537u_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       ret = gpio_request(GPIO_PH15, driver_name);
+       if (ret)
+               return ret;
+
+       ret = gpio_request(GPIO_PH13, "net2272");
+       if (ret) {
+               gpio_free(GPIO_PH15);
+               return ret;
+       }
+
+       /* Set PH15 Low make /AMS2 work properly */
+       gpio_direction_output(GPIO_PH15, 0);
+
+       /* enable CLKBUF output */
+       bfin_write_VR_CTL(bfin_read_VR_CTL() | CLKBUFOE);
+
+       /* Reset the USB chip */
+       gpio_direction_output(GPIO_PH13, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PH13, 1);
+#endif
+
+       return 0;
+}
+
 static int __init cm_bf537u_init(void)
 {
        printk(KERN_INFO "%s(): registering device resources\n", __func__);
@@ -742,6 +772,10 @@ static int __init cm_bf537u_init(void)
 #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
        irq_set_status_flags(PATA_INT, IRQ_NOAUTOEN);
 #endif
+
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        return 0;
 }
 
index 76db1d4..3d166e3 100644 (file)
@@ -367,6 +367,9 @@ static struct resource net2272_bfin_resources[] = {
                .end = 0x20300000 + 0x100,
                .flags = IORESOURCE_MEM,
        }, {
+               .start = 1,
+               .flags = IORESOURCE_BUS,
+       }, {
                .start = IRQ_PF7,
                .end = IRQ_PF7,
                .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
@@ -2916,6 +2919,24 @@ static struct platform_device *stamp_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       ret = gpio_request(GPIO_PF6, "net2272");
+       if (ret)
+               return ret;
+
+       /* Reset the USB chip */
+       gpio_direction_output(GPIO_PF6, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PF6, 1);
+#endif
+
+       return 0;
+}
+
 static int __init stamp_init(void)
 {
        printk(KERN_INFO "%s(): registering device resources\n", __func__);
@@ -2926,6 +2947,9 @@ static int __init stamp_init(void)
                                ARRAY_SIZE(bfin_i2c_board_info));
        spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
 
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        return 0;
 }
 
index 164a7e0..6d4c1ca 100644 (file)
@@ -733,6 +733,24 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       ret = gpio_request(GPIO_PG14, "net2272");
+       if (ret)
+               return ret;
+
+       /* Reset USB Chip, PG14 */
+       gpio_direction_output(GPIO_PG14, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PG14, 1);
+#endif
+
+       return 0;
+}
+
 static int __init tcm_bf537_init(void)
 {
        printk(KERN_INFO "%s(): registering device resources\n", __func__);
@@ -744,6 +762,10 @@ static int __init tcm_bf537_init(void)
 #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
        irq_set_status_flags(PATA_INT, IRQ_NOAUTOEN);
 #endif
+
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        return 0;
 }
 
index 87595cd..2e48136 100644 (file)
@@ -532,6 +532,24 @@ static struct platform_device *cm_bf561_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       ret = gpio_request(GPIO_PF46, "net2272");
+       if (ret)
+               return ret;
+
+       /* Reset USB Chip, PF46 */
+       gpio_direction_output(GPIO_PF46, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PF46, 1);
+#endif
+
+       return 0;
+}
+
 static int __init cm_bf561_init(void)
 {
        printk(KERN_INFO "%s(): registering device resources\n", __func__);
@@ -543,6 +561,10 @@ static int __init cm_bf561_init(void)
 #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
        irq_set_status_flags(PATA_INT, IRQ_NOAUTOEN);
 #endif
+
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        return 0;
 }
 
index 5067984..ba81498 100644 (file)
@@ -108,6 +108,9 @@ static struct resource net2272_bfin_resources[] = {
                .end = 0x2C000000 + 0x7F,
                .flags = IORESOURCE_MEM,
        }, {
+               .start = 1,
+               .flags = IORESOURCE_BUS,
+       }, {
                .start = IRQ_PF10,
                .end = IRQ_PF10,
                .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
@@ -516,6 +519,24 @@ static struct platform_device *ezkit_devices[] __initdata = {
 #endif
 };
 
+static int __init net2272_init(void)
+{
+#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
+       int ret;
+
+       ret = gpio_request(GPIO_PF11, "net2272");
+       if (ret)
+               return ret;
+
+       /* Reset the USB chip */
+       gpio_direction_output(GPIO_PF11, 0);
+       mdelay(2);
+       gpio_set_value(GPIO_PF11, 1);
+#endif
+
+       return 0;
+}
+
 static int __init ezkit_init(void)
 {
        int ret;
@@ -542,6 +563,9 @@ static int __init ezkit_init(void)
        udelay(400);
 #endif
 
+       if (net2272_init())
+               pr_warning("unable to configure net2272; it probably won't work\n");
+
        spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
        return 0;
 }