Changeset 10167


Ignore:
Timestamp:
2008-01-11T08:24:49+01:00 (10 years ago)
Author:
rwhitby
Message:

Renumbered the fsg patch into nslu2-linux managed numbering area

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ixp4xx/patches-2.6.23/030-ixp4xx_fsg_board_support.patch

    r10154 r10167  
    303303=================================================================== 
    304304--- linux-2.6.23.12-armeb.orig/arch/arm/mach-ixp4xx/Kconfig     2008-01-09 12:49:04.000000000 +1030 
    305 +++ linux-2.6.23.12-armeb/arch/arm/mach-ixp4xx/Kconfig  2008-01-09 12:49:07.000000000 +1030 
     305+++ linux-2.6.23.12-armeb/arch/arm/mach-ixp4xx/Kconfig  2008-01-11 13:24:01.000000000 +1030 
    306306@@ -125,6 +125,15 @@ 
    307307        depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435 
     
    314314+       help 
    315315+         Say 'Y' here if you want your kernel to support Freecom's 
    316 +         FSG-3 device. For more information on this platform 
     316+         FSG-3 device. For more information on this platform, 
    317317+         see http://www.nslu2-linux.org/wiki/FSG3/HomePage 
    318318+ 
     
    343343=================================================================== 
    344344--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    345 +++ linux-2.6.23.12-armeb/include/asm-arm/arch-ixp4xx/fsg.h     2008-01-09 12:49:07.000000000 +1030 
    346 @@ -0,0 +1,74 @@ 
     345+++ linux-2.6.23.12-armeb/include/asm-arm/arch-ixp4xx/fsg.h     2008-01-11 13:29:42.000000000 +1030 
     346@@ -0,0 +1,58 @@ 
    347347+/* 
    348348+ * include/asm-arm/arch-ixp4xx/fsg.h 
     
    397397+/* LEDs */ 
    398398+ 
    399 +#define FSG_LED_RING_GPIO      0 
    400 +#define FSG_LED_SYNC_GPIO      1 
    401 +#define FSG_LED_USB_GPIO       2 
    402 +#define FSG_LED_SATA_GPIO      3 
    403 +#define FSG_LED_WAN_GPIO       4 
    404 +#define FSG_LED_WLAN_GPIO      5 
    405 + 
    406 +/* %%% REMOVE %%% 
    407 +#define FSG_PCI_SLOT0_PIN      6 
    408 +#define FSG_PCI_SLOT1_PIN      7 
    409 + 
    410 +#define        FSG_PCI_SLOT0_DEVID     14 
    411 +#define        FSG_PCI_SLOT1_DEVID     15 
    412 + 
    413 +#define        FSG_IDE_BASE_PHYS       IXP4XX_EXP_BUS_BASE(3) 
    414 +#define        FSG_IDE_BASE_VIRT       0xFFFE1000 
    415 +#define        FSG_IDE_REGION_SIZE     0x1000 
    416 + 
    417 +#define        FSG_IDE_DATA_PORT       0xFFFE10E0 
    418 +#define        FSG_IDE_CTRL_PORT       0xFFFE10FC 
    419 +#define        FSG_IDE_ERROR_PORT      0xFFFE10E2 
    420 +*/ 
     399+#define FSG_LED_WLAN_BIT       0 
     400+#define FSG_LED_WAN_BIT                1 
     401+#define FSG_LED_SATA_BIT       2 
     402+#define FSG_LED_USB_BIT                4 
     403+#define FSG_LED_RING_BIT       5 
     404+#define FSG_LED_SYNC_BIT       7 
    421405Index: linux-2.6.23.12-armeb/include/asm-arm/arch-ixp4xx/hardware.h 
    422406=================================================================== 
     
    433417=================================================================== 
    434418--- linux-2.6.23.12-armeb.orig/include/asm-arm/arch-ixp4xx/irqs.h       2008-01-09 12:49:04.000000000 +1030 
    435 +++ linux-2.6.23.12-armeb/include/asm-arm/arch-ixp4xx/irqs.h    2008-01-09 12:49:07.000000000 +1030 
    436 @@ -128,4 +128,17 @@ 
     419+++ linux-2.6.23.12-armeb/include/asm-arm/arch-ixp4xx/irqs.h    2008-01-11 13:30:09.000000000 +1030 
     420@@ -128,4 +128,11 @@ 
    437421 #define        IRQ_DSMG600_PCI_INTE    IRQ_IXP4XX_GPIO7 
    438422 #define        IRQ_DSMG600_PCI_INTF    IRQ_IXP4XX_GPIO6 
     
    445429+#define        IRQ_FSG_PCI_INTC        IRQ_IXP4XX_GPIO5 
    446430+ 
    447 +/* %%% REMOVE %%% 
    448 +#define        IRQ_FSG_PCI_SLOT0       IRQ_IXP4XX_GPIO6 
    449 +#define        IRQ_FSG_PCI_SLOT1       IRQ_IXP4XX_GPIO7 
    450 +#define        IRQ_FSG_IDE             IRQ_IXP4XX_GPIO5 
    451 +*/ 
    452 + 
    453431 #endif 
    454432Index: linux-2.6.23.12-armeb/arch/arm/mach-ixp4xx/fsg-power.c 
    455433=================================================================== 
    456434--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    457 +++ linux-2.6.23.12-armeb/arch/arm/mach-ixp4xx/fsg-power.c      2008-01-09 12:49:07.000000000 +1030 
    458 @@ -0,0 +1,87 @@ 
     435+++ linux-2.6.23.12-armeb/arch/arm/mach-ixp4xx/fsg-power.c      2008-01-11 12:47:50.000000000 +1030 
     436@@ -0,0 +1,88 @@ 
    459437+/* 
    460438+ * arch/arm/mach-ixp4xx/fsg-power.c 
     
    475453+#include <linux/module.h> 
    476454+#include <linux/reboot.h> 
     455+#include <linux/interrupt.h> 
    477456+#include <linux/irq.h> 
    478 +#include <linux/interrupt.h> 
    479 +#include <linux/kernel.h> 
     457+#include <linux/jiffies.h> 
     458+#include <linux/timer.h> 
    480459+ 
    481460+#include <asm/mach-types.h> 
     
    544523+MODULE_DESCRIPTION("FSG Power/Reset driver"); 
    545524+MODULE_LICENSE("GPL"); 
     525Index: linux-2.6.23.12-armeb/drivers/leds/Kconfig 
     526=================================================================== 
     527--- linux-2.6.23.12-armeb.orig/drivers/leds/Kconfig     2008-01-11 13:30:47.000000000 +1030 
     528+++ linux-2.6.23.12-armeb/drivers/leds/Kconfig  2008-01-11 13:34:34.000000000 +1030 
     529@@ -48,6 +48,12 @@ 
     530          particular board must have LEDs and they must be connected 
     531          to the GPIO lines.  If unsure, say Y. 
     532  
     533+config LEDS_FSG 
     534+       tristate "LED Support for the Freecom FSG-3" 
     535+       depends on LEDS_CLASS && MACH_FSG 
     536+       help 
     537+         This option enables support for the LEDs on the Freecom FSG-3. 
     538+ 
     539 config LEDS_TOSA 
     540        tristate "LED Support for the Sharp SL-6000 series" 
     541        depends on LEDS_CLASS && PXA_SHARPSL 
     542Index: linux-2.6.23.12-armeb/drivers/leds/Makefile 
     543=================================================================== 
     544--- linux-2.6.23.12-armeb.orig/drivers/leds/Makefile    2008-01-11 13:30:50.000000000 +1030 
     545+++ linux-2.6.23.12-armeb/drivers/leds/Makefile 2008-01-11 13:34:34.000000000 +1030 
     546@@ -9,6 +9,7 @@ 
     547 obj-$(CONFIG_LEDS_LOCOMO)              += leds-locomo.o 
     548 obj-$(CONFIG_LEDS_SPITZ)               += leds-spitz.o 
     549 obj-$(CONFIG_LEDS_IXP4XX)              += leds-ixp4xx-gpio.o 
     550+obj-$(CONFIG_LEDS_FSG)                 += leds-fsg.o 
     551 obj-$(CONFIG_LEDS_TOSA)                        += leds-tosa.o 
     552 obj-$(CONFIG_LEDS_S3C24XX)             += leds-s3c24xx.o 
     553 obj-$(CONFIG_LEDS_AMS_DELTA)           += leds-ams-delta.o 
     554Index: linux-2.6.23.12-armeb/drivers/leds/leds-fsg.c 
     555=================================================================== 
     556--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
     557+++ linux-2.6.23.12-armeb/drivers/leds/leds-fsg.c       2008-01-11 13:34:34.000000000 +1030 
     558@@ -0,0 +1,243 @@ 
     559+/* 
     560+ * LED Driver for the Freecom FSG-3 
     561+ * 
     562+ * Copyright (c) 2008 Rod Whitby <rod@whitby.id.au> 
     563+ * 
     564+ * Author: Rod Whitby <rod@whitby.id.au> 
     565+ * 
     566+ * Based on leds-spitz.c 
     567+ * Copyright 2005-2006 Openedhand Ltd. 
     568+ * Author: Richard Purdie <rpurdie@openedhand.com> 
     569+ * 
     570+ * This program is free software; you can redistribute it and/or modify 
     571+ * it under the terms of the GNU General Public License version 2 as 
     572+ * published by the Free Software Foundation. 
     573+ * 
     574+ */ 
     575+ 
     576+#include <linux/kernel.h> 
     577+#include <linux/init.h> 
     578+#include <linux/platform_device.h> 
     579+#include <linux/leds.h> 
     580+#include <asm/arch/hardware.h> 
     581+#include <asm/io.h> 
     582+ 
     583+static short __iomem *latch_address; 
     584+static unsigned short latch_value; 
     585+ 
     586+ 
     587+static void fsg_led_wlan_set(struct led_classdev *led_cdev, enum led_brightness value) 
     588+{ 
     589+       if (value) { 
     590+               latch_value &= ~(1 << FSG_LED_WLAN_BIT); 
     591+               *latch_address = latch_value; 
     592+       } 
     593+       else { 
     594+               latch_value |=  (1 << FSG_LED_WLAN_BIT); 
     595+               *latch_address = latch_value; 
     596+       } 
     597+} 
     598+ 
     599+static void fsg_led_wan_set(struct led_classdev *led_cdev, enum led_brightness value) 
     600+{ 
     601+       if (value) { 
     602+               latch_value &= ~(1 << FSG_LED_WAN_BIT); 
     603+               *latch_address = latch_value; 
     604+       } 
     605+       else { 
     606+               latch_value |=  (1 << FSG_LED_WAN_BIT); 
     607+               *latch_address = latch_value; 
     608+       } 
     609+} 
     610+ 
     611+static void fsg_led_sata_set(struct led_classdev *led_cdev, enum led_brightness value) 
     612+{ 
     613+       if (value) { 
     614+               latch_value &= ~(1 << FSG_LED_SATA_BIT); 
     615+               *latch_address = latch_value; 
     616+       } 
     617+       else { 
     618+               latch_value |=  (1 << FSG_LED_SATA_BIT); 
     619+               *latch_address = latch_value; 
     620+       } 
     621+} 
     622+ 
     623+static void fsg_led_usb_set(struct led_classdev *led_cdev, enum led_brightness value) 
     624+{ 
     625+       if (value) { 
     626+               latch_value &= ~(1 << FSG_LED_USB_BIT); 
     627+               *latch_address = latch_value; 
     628+       } 
     629+       else { 
     630+               latch_value |=  (1 << FSG_LED_USB_BIT); 
     631+               *latch_address = latch_value; 
     632+       } 
     633+} 
     634+ 
     635+static void fsg_led_sync_set(struct led_classdev *led_cdev, enum led_brightness value) 
     636+{ 
     637+       if (value) { 
     638+               latch_value &= ~(1 << FSG_LED_SYNC_BIT); 
     639+               *latch_address = latch_value; 
     640+       } 
     641+       else { 
     642+               latch_value |=  (1 << FSG_LED_SYNC_BIT); 
     643+               *latch_address = latch_value; 
     644+       } 
     645+} 
     646+ 
     647+static void fsg_led_ring_set(struct led_classdev *led_cdev, enum led_brightness value) 
     648+{ 
     649+       if (value) { 
     650+               latch_value &= ~(1 << FSG_LED_RING_BIT); 
     651+               *latch_address = latch_value; 
     652+       } 
     653+       else { 
     654+               latch_value |=  (1 << FSG_LED_RING_BIT); 
     655+               *latch_address = latch_value; 
     656+       } 
     657+} 
     658+ 
     659+ 
     660+ 
     661+static struct led_classdev fsg_wlan_led = { 
     662+       .name                   = "fsg:wlan", 
     663+       .brightness_set         = fsg_led_wlan_set, 
     664+}; 
     665+ 
     666+static struct led_classdev fsg_wan_led = { 
     667+       .name                   = "fsg:wan", 
     668+       .brightness_set         = fsg_led_wan_set, 
     669+}; 
     670+ 
     671+static struct led_classdev fsg_sata_led = { 
     672+       .name                   = "fsg:sata", 
     673+       .brightness_set         = fsg_led_sata_set, 
     674+}; 
     675+ 
     676+static struct led_classdev fsg_usb_led = { 
     677+       .name                   = "fsg:usb", 
     678+       .brightness_set         = fsg_led_usb_set, 
     679+}; 
     680+ 
     681+static struct led_classdev fsg_sync_led = { 
     682+       .name                   = "fsg:sync", 
     683+       .brightness_set         = fsg_led_sync_set, 
     684+}; 
     685+ 
     686+static struct led_classdev fsg_ring_led = { 
     687+       .name                   = "fsg:ring", 
     688+       .brightness_set         = fsg_led_ring_set, 
     689+}; 
     690+ 
     691+ 
     692+ 
     693+#ifdef CONFIG_PM 
     694+static int fsg_led_suspend(struct platform_device *dev, pm_message_t state) 
     695+{ 
     696+       led_classdev_suspend(&fsg_wlan_led); 
     697+       led_classdev_suspend(&fsg_wan_led); 
     698+       led_classdev_suspend(&fsg_sata_led); 
     699+       led_classdev_suspend(&fsg_usb_led); 
     700+       led_classdev_suspend(&fsg_sync_led); 
     701+       led_classdev_suspend(&fsg_ring_led); 
     702+       return 0; 
     703+} 
     704+ 
     705+static int fsg_led_resume(struct platform_device *dev) 
     706+{ 
     707+       led_classdev_resume(&fsg_wlan_led); 
     708+       led_classdev_resume(&fsg_wan_led); 
     709+       led_classdev_resume(&fsg_sata_led); 
     710+       led_classdev_resume(&fsg_usb_led); 
     711+       led_classdev_resume(&fsg_sync_led); 
     712+       led_classdev_resume(&fsg_ring_led); 
     713+       return 0; 
     714+} 
     715+#endif 
     716+ 
     717+ 
     718+static int fsg_led_probe(struct platform_device *pdev) 
     719+{ 
     720+       int ret; 
     721+ 
     722+       /* FIXME: Need to work out how to handle failure below */ 
     723+ 
     724+       ret = led_classdev_register(&pdev->dev, &fsg_wlan_led); 
     725+       if (ret < 0) 
     726+               return ret; 
     727+ 
     728+       ret = led_classdev_register(&pdev->dev, &fsg_wan_led); 
     729+       if (ret < 0) 
     730+               return ret; 
     731+ 
     732+       ret = led_classdev_register(&pdev->dev, &fsg_sata_led); 
     733+       if (ret < 0) 
     734+               return ret; 
     735+ 
     736+       ret = led_classdev_register(&pdev->dev, &fsg_usb_led); 
     737+       if (ret < 0) 
     738+               return ret; 
     739+ 
     740+       ret = led_classdev_register(&pdev->dev, &fsg_sync_led); 
     741+       if (ret < 0) 
     742+               return ret; 
     743+ 
     744+       ret = led_classdev_register(&pdev->dev, &fsg_ring_led); 
     745+       if (ret < 0) 
     746+               return ret; 
     747+ 
     748+       return ret; 
     749+} 
     750+ 
     751+static int fsg_led_remove(struct platform_device *pdev) 
     752+{ 
     753+       led_classdev_unregister(&fsg_wlan_led); 
     754+       led_classdev_unregister(&fsg_wan_led); 
     755+       led_classdev_unregister(&fsg_sata_led); 
     756+       led_classdev_unregister(&fsg_usb_led); 
     757+       led_classdev_unregister(&fsg_sync_led); 
     758+       led_classdev_unregister(&fsg_ring_led); 
     759+ 
     760+       return 0; 
     761+} 
     762+ 
     763+ 
     764+static struct platform_driver fsg_led_driver = { 
     765+       .probe          = fsg_led_probe, 
     766+       .remove         = fsg_led_remove, 
     767+#ifdef CONFIG_PM 
     768+       .suspend        = fsg_led_suspend, 
     769+       .resume         = fsg_led_resume, 
     770+#endif 
     771+       .driver         = { 
     772+               .name           = "fsg-led", 
     773+       }, 
     774+}; 
     775+ 
     776+ 
     777+static int __init fsg_led_init(void) 
     778+{ 
     779+       /* Map the LED chip select address space */ 
     780+       latch_address = (unsigned short *) ioremap(IXP4XX_EXP_BUS_BASE(2), 512); 
     781+       if (!latch_address) 
     782+               return -ENOMEM; 
     783+       latch_value = 0xffff; 
     784+       *latch_address = latch_value; 
     785+       /* FIXME: We leak memory if the next line fails */ 
     786+       return platform_driver_register(&fsg_led_driver); 
     787+} 
     788+ 
     789+static void __exit fsg_led_exit(void) 
     790+{ 
     791+       platform_driver_unregister(&fsg_led_driver); 
     792+       iounmap(latch_address); 
     793+} 
     794+ 
     795+ 
     796+module_init(fsg_led_init); 
     797+module_exit(fsg_led_exit); 
     798+ 
     799+MODULE_AUTHOR("Rod Whitby <rod@whitby.id.au>"); 
     800+MODULE_DESCRIPTION("Freecom FSG-3 LED driver"); 
     801+MODULE_LICENSE("GPL"); 
Note: See TracChangeset for help on using the changeset viewer.