diff --git a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c
index 734cc75810e4df8b99ca9428b30006b316c4f7bd..75dba98360c0702226b59f0758dd2564b9a12227 100644
--- a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c
+++ b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c
@@ -116,7 +116,12 @@ extern void lpd7a400_map_io (void);
 
 static void __init lpd7a40x_init (void)
 {
-	CPLD_CONTROL = 0x0;	/* Enable LAN (Disable LCD) */
+	CPLD_CONTROL |=     (1<<6); /* Mask USB1 connection IRQ */
+	CPLD_CONTROL &= ~(0
+			  | (1<<1) /* Disable LCD */
+			  | (1<<0) /* Enable WLAN */
+		);
+
 	platform_add_devices (lpd7a40x_devs, ARRAY_SIZE (lpd7a40x_devs));
 }
 
@@ -191,7 +196,7 @@ void __init lh7a40x_init_board_irq (void)
 	int pinCPLD = (cpld_version == 0x28) ? 7 : 3;
 
 #if defined CONFIG_MACH_LPD7A404
-	cpld_version = 0x34;	/* Override, for now */
+	cpld_version = 0x34;	/* Coerce LPD7A404 to RevB */
 #endif
 
 		/* First, configure user controlled GPIOF interrupts  */
@@ -204,7 +209,7 @@ void __init lh7a40x_init_board_irq (void)
 
 		/* Then, configure CPLD interrupt */
 
-	CPLD_INTERRUPTS	=   0x0c; /* Disable all CPLD interrupts */
+	CPLD_INTERRUPTS	=   0x9c; /* Disable all CPLD interrupts */
 	GPIO_PFDD	&= ~(1 << pinCPLD); /* Make input */
 	GPIO_INTTYPE1	|=  (1 << pinCPLD); /* Edge triggered */
 	GPIO_INTTYPE2	&= ~(1 << pinCPLD); /* Active low */