summaryrefslogtreecommitdiff
path: root/target/linux/at91/patches-2.6.21/016-v1-15-detect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/at91/patches-2.6.21/016-v1-15-detect.patch')
-rw-r--r--target/linux/at91/patches-2.6.21/016-v1-15-detect.patch207
1 files changed, 0 insertions, 207 deletions
diff --git a/target/linux/at91/patches-2.6.21/016-v1-15-detect.patch b/target/linux/at91/patches-2.6.21/016-v1-15-detect.patch
deleted file mode 100644
index ccdb579..0000000
--- a/target/linux/at91/patches-2.6.21/016-v1-15-detect.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-Index: linux-2.6.21.7/arch/arm/mach-at91/at91rm9200_devices.c
-===================================================================
---- linux-2.6.21.7.orig/arch/arm/mach-at91/at91rm9200_devices.c
-+++ linux-2.6.21.7/arch/arm/mach-at91/at91rm9200_devices.c
-@@ -840,9 +840,9 @@ static inline void configure_usart3_pins
- at91_set_B_periph(AT91_PIN_PA6, 0); /* RXD3 */
- at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */
- at91_set_B_periph(AT91_PIN_PB1, 0); /* CTS3 */
-- at91_set_gpio_output(AT91_PIN_PB29, 1); /* DTR0 */
-- at91_set_gpio_output(AT91_PIN_PB2, 1); /* RI0 */
-- at91_set_gpio_input(AT91_PIN_PA24, 1); /* DCD0 */
-+ at91_set_gpio_output(AT91_PIN_PB29, 1); /* DTR3 */
-+ at91_set_gpio_output(AT91_PIN_PB2, 1); /* RI3 */
-+ at91_set_gpio_input(AT91_PIN_PA24, 1); /* DCD3 */
- at91_set_deglitch(AT91_PIN_PA24, 1);
- }
-
-Index: linux-2.6.21.7/arch/arm/mach-at91/board-vlink.c
-===================================================================
---- linux-2.6.21.7.orig/arch/arm/mach-at91/board-vlink.c
-+++ linux-2.6.21.7/arch/arm/mach-at91/board-vlink.c
-@@ -126,6 +126,7 @@ static struct spi_board_info vlink_spi_d
-
- static void __init vlink_board_init(void)
- {
-+ int v100;
- /* Serial */
- at91_add_device_serial();
- /* Ethernet */
-@@ -147,6 +148,10 @@ static void __init vlink_board_init(void
- // at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */
- at91_add_device_mmc(0, &vlink_mmc_data);
- #endif
-+// Set VLink version PIN as an input with pull up (V1.5 = GND)
-+ at91_set_gpio_input(AT91_PIN_PC2, 1);
-+ v100 = at91_get_gpio_value(AT91_PIN_PC2);
-+
- /* LEDs */
- // at91_gpio_leds(vlink_leds, ARRAY_SIZE(vlink_leds));
-
-@@ -164,10 +169,16 @@ static void __init vlink_board_init(void
- /* SIM Cards */
- if (at91_get_gpio_value(AT91_PIN_PB8)) {
- at91_set_gpio_output(AT91_PIN_PB11, 0);
-- at91_set_gpio_output(AT91_PIN_PB9, 1);
-+ if (v100)
-+ at91_set_gpio_output(AT91_PIN_PB9, 1);
-+ else
-+ at91_set_gpio_output(AT91_PIN_PC13, 1);
- } else {
- at91_set_gpio_output(AT91_PIN_PB11, 1);
-- at91_set_gpio_output(AT91_PIN_PB9, 0);
-+ if (v100)
-+ at91_set_gpio_output(AT91_PIN_PB9, 0);
-+ else
-+ at91_set_gpio_output(AT91_PIN_PC13, 0);
- }
-
- at91_set_gpio_output(AT91_PIN_PB10, 1); // ENBSC2
-@@ -182,7 +193,18 @@ static void __init vlink_board_init(void
- at91_set_gpio_input(AT91_PIN_PB27, 1); // UDB_CNX
- at91_set_gpio_output(AT91_PIN_PB28, 1); // UDB_PUP
- at91_set_multi_drive(AT91_PIN_PB28, 1); // Set to multi-drive
--
-+
-+ if (v100)
-+ { // V100
-+ at91_set_gpio_input (AT91_PIN_PC12, 1); // SD Card present
-+ }
-+ else
-+ { // DO special things for V1.5
-+ at91_set_gpio_output(AT91_PIN_PB9 , 0); // USB suspend
-+ at91_set_gpio_input (AT91_PIN_PC10, 1); // SD Card present
-+ at91_set_gpio_output(AT91_PIN_PC11, 0); // USB Vin CTRL for modules onboard
-+ at91_set_gpio_output(AT91_PIN_PC12, 0); // SIM control
-+ }
- }
-
- MACHINE_START(VLINK, "FDL VersaLink")
-Index: linux-2.6.21.7/drivers/char/vlink_giu.c
-===================================================================
---- linux-2.6.21.7.orig/drivers/char/vlink_giu.c
-+++ linux-2.6.21.7/drivers/char/vlink_giu.c
-@@ -41,8 +41,7 @@ static int major; /* default is dynamic
- module_param(major, int, 0);
- MODULE_PARM_DESC(major, "Major device number");
-
--#define VIO_NR_DEVS 96
--
-+#define VIO_NR_DEVS 96
- struct vio_dev {
- struct cdev cdev;
- };
-@@ -50,6 +49,53 @@ struct vio_dev {
- struct vio_dev *vio_devices;
- static struct class *vio_class;
-
-+// KWJ + AJE
-+#define MAX_VIO_NAMES 24
-+typedef struct
-+{
-+ char port;
-+ char pin;
-+ char name100[10];
-+ char name150[10];
-+} VIO_NAMES;
-+
-+VIO_NAMES VioName[MAX_VIO_NAMES] = { //Port,PIN, V100 , V150
-+ {'A',19,"port1DTR" ,"port1DTR"},
-+ {'A',24,"port2DTR" ,"port2DTR"},
-+ {'B',8, "jigOn" ,"jigOn"} ,
-+ {'B',9, "enbSC3" ,"usbSUSPND"},
-+ {'B',10,"enbSC2" ,"enbSC2"},
-+ {'B',11,"enbSC1" ,"enbSC1"},
-+ {'B',12,"gsmONOFF" ,"gsmONOFF"},
-+ {'B',14,"ledBAP1" ,"ledBAP1"},
-+ {'B',15,"ledBBP1" ,"ledBBP1"},
-+ {'B',16,"ledBAP2" ,"ledBAP2"},
-+ {'B',17,"ledBBP2" ,"ledBBP2"},
-+ {'B',27,"udpCNX" ,"udpCNX"},
-+ {'B',28,"udpPUP" ,"udpPUP"},
-+ {'B',29,"port2DCD" ,"port2DCD"},
-+ {'C',2, "vlVer100" ,"vlVer150"},
-+ {'C',7, "ledFAP1" ,"ledFAP1"},
-+ {'C',8, "ledFBP1" ,"ledFBP1"},
-+ {'C',10,"vioC10" ,"sdCardON"},
-+ {'C',11,"vioC11" ,"vusbCTRL"},
-+ {'C',12,"sdCardON" ,"simCTRL"},
-+ {'C',13,"vioC13" ,"enbSC3"},
-+ {'C',14,"ledFBP2" ,"ledFBP2"},
-+ {'C',15,"ledFAP2" ,"ledFAP2"},
-+ {0,0,"",""}
-+ };
-+/* {'B',18,"gsmRIO" ,"gsmRIO"},
-+ {'B',20,"gsmTX" ,"gsmTX"},
-+ {'B',21,"gsmRX" ,"gsmRX"},
-+ {'B',22,"gsmPIND" ,"gsmPIND"},
-+ {'B',23,"gsmDCD" ,"gsmDCD"},
-+ {'B',24,"gsmCTS" ,"gsmCTS"},
-+ {'B',25,"gsmDSR" ,"gsmDSR"},
-+ {'B',26,"gsmRTS" ,"gsmRTS"},*/
-+static void lookupPINName(char version100, char *devName, char port, char pin);
-+// EOF KWJ + AJE
-+
- static ssize_t gpio_read(struct file *file, char __user *buf, size_t len,
- loff_t *ppos)
- {
-@@ -160,6 +206,8 @@ static int vio_probe(struct platform_dev
- {
- int retval, i, j;
- dev_t vdev = 0;
-+ char devName[30];
-+ int vlinkV100;
-
- if (major) {
- vdev = MKDEV(major, 0);
-@@ -185,6 +233,7 @@ static int vio_probe(struct platform_dev
- vio_remove(dev);
- return PTR_ERR(vio_class);
- }
-+ vlinkV100 = at91_get_gpio_value(AT91_PIN_PC2); // Denotes V1.5 if ground
-
- vio_devices = kmalloc(VIO_NR_DEVS * sizeof(struct vio_dev), GFP_KERNEL);
- if (!vio_devices) {
-@@ -198,8 +247,10 @@ static int vio_probe(struct platform_dev
- int iodev = at91_is_pin_gpio(PIN_BASE + i*32 + j);
- if (iodev) {
- vio_setup_cdev(&vio_devices[i*32 + j], i*32 + j);
-- class_device_create(vio_class, NULL, MKDEV(major, i*32 + j), NULL,
-- "vio%c%d", i + 'A', j);
-+ // Lookup name of vio to create
-+ lookupPINName(vlinkV100, devName, i, j);
-+ class_device_create(vio_class, NULL, MKDEV(major, i*32 + j), NULL, devName);
-+// "vio%c%d", i + 'A', j);
- }
- }
-
-@@ -212,6 +263,29 @@ fail:
- return retval;
- }
-
-+static void lookupPINName(char version100, char *devName, char port, char pin)
-+{
-+ int i = -1;
-+ char found = 0;
-+ while (!found)
-+ {
-+ i++;
-+ if (i >= MAX_VIO_NAMES)
-+ break;
-+ if (VioName[i].port == port+'A' && VioName[i].pin == pin)
-+ {
-+ printk(KERN_ERR "vio++: %c%d=%s\n",VioName[i].port,VioName[i].pin,VioName[i].name150);
-+ if (version100)
-+ strcpy(devName, VioName[i].name100);
-+ else
-+ strcpy(devName, VioName[i].name150);
-+ found = 1;
-+ }
-+ }
-+ if (!found)
-+ sprintf(devName, "vio%c%d", port + 'A', pin);
-+}
-+
- static struct platform_device *vio_platform_device;
-
- static struct platform_driver vio_driver = {