diff --git a/board/manroland/uc100/pcmcia.c b/board/manroland/uc100/pcmcia.c
index ad25678..db3821a 100644
--- a/board/manroland/uc100/pcmcia.c
+++ b/board/manroland/uc100/pcmcia.c
@@ -27,8 +27,8 @@
 	immap = (immap_t *)CONFIG_SYS_IMMR;
 
 	/*
-	* Configure Port A for MAX1602 PC-Card Power-Interface Switch
-	*/
+	 * Configure Port A for MAX1602 PC-Card Power-Interface Switch
+	 */
 	immap->im_ioport.iop_padat &= ~0x8000;	/* set port x output to low */
 	immap->im_ioport.iop_padir |= 0x8000;	/* enable port x as output */
 
@@ -40,7 +40,6 @@
 int pcmcia_hardware_enable(int slot)
 {
 	volatile immap_t	*immap;
-	volatile cpm8xx_t	*cp;
 	volatile pcmconf8xx_t	*pcmp;
 	volatile sysconf8xx_t	*sysp;
 	uint reg, mask;
@@ -52,15 +51,14 @@
 	immap = (immap_t *)CONFIG_SYS_IMMR;
 	sysp  = (sysconf8xx_t *)(&(((immap_t *)CONFIG_SYS_IMMR)->im_siu_conf));
 	pcmp  = (pcmconf8xx_t *)(&(((immap_t *)CONFIG_SYS_IMMR)->im_pcmcia));
-	cp    = (cpm8xx_t *)(&(((immap_t *)CONFIG_SYS_IMMR)->im_cpm));
 
 	/* Configure Ports for TPS2211A PC-Card Power-Interface Switch */
 	cfg_ports ();
 
 	/*
-	* Configure SIUMCR to enable PCMCIA port B
-	* (VFLS[0:1] are not used for debugging, we connect FRZ# instead)
-	*/
+	 * Configure SIUMCR to enable PCMCIA port B
+	 * (VFLS[0:1] are not used for debugging, we connect FRZ# instead)
+	 */
 	sysp->sc_siumcr &= ~SIUMCR_DBGC11;	/* set DBGC to 00 */
 
 	/* clear interrupt state, and disable interrupts */
@@ -68,9 +66,9 @@
 	pcmp->pcmc_per &= ~PCMCIA_MASK(_slot_);
 
 	/*
-	* Disable interrupts, DMA, and PCMCIA buffers
-	* (isolate the interface) and assert RESET signal
-	*/
+	 * Disable interrupts, DMA, and PCMCIA buffers
+	 * (isolate the interface) and assert RESET signal
+	 */
 	debug ("Disable PCMCIA buffers and assert RESET\n");
 	reg  = 0;
 	reg |= __MY_PCMCIA_GCRX_CXRESET;	/* active high */
@@ -78,8 +76,8 @@
 	udelay(500);
 
 	/*
-	* Make sure there is a card in the slot, then configure the interface.
-	*/
+	 * Make sure there is a card in the slot, then configure the interface.
+	 */
 	udelay(10000);
 	debug ("[%d] %s: PIPR(%p)=0x%x\n",
 	       __LINE__,__FUNCTION__,
@@ -90,19 +88,19 @@
 	}
 
 	/*
-	* Power On.
-	*/
+	 * Power On.
+	 */
 	mask = PCMCIA_VS1(slot) | PCMCIA_VS2(slot);
 	reg  = pcmp->pcmc_pipr;
 	debug ("PIPR: 0x%x ==> VS1=o%s, VS2=o%s\n",
 	       reg,
 	       (reg&PCMCIA_VS1(slot))?"n":"ff",
 	       (reg&PCMCIA_VS2(slot))?"n":"ff");
-	if ((reg & mask) == mask) {
+
+	if ((reg & mask) == mask)
 		puts (" 5.0V card found: ");
-	} else {
+	else
 		puts (" 3.3V card found: ");
-	}
 
 	/*  switch VCC on */
 	immap->im_ioport.iop_padat |= 0x8000; /* power enable 3.3V */
@@ -154,8 +152,6 @@
 
 int pcmcia_voltage_set(int slot, int vcc, int vpp)
 {
-	volatile immap_t	*immap;
-	volatile pcmconf8xx_t	*pcmp;
 	u_long reg;
 
 	debug ("voltage_set: "
@@ -163,12 +159,10 @@
 			" Slot %c, Vcc=%d.%d, Vpp=%d.%d\n",
 	'A'+slot, vcc/10, vcc%10, vpp/10, vcc%10);
 
-	immap = (immap_t *)CONFIG_SYS_IMMR;
-	pcmp  = (pcmconf8xx_t *)(&(((immap_t *)CONFIG_SYS_IMMR)->im_pcmcia));
 	/*
-	* Disable PCMCIA buffers (isolate the interface)
-	* and assert RESET signal
-	*/
+	 * Disable PCMCIA buffers (isolate the interface)
+	 * and assert RESET signal
+	 */
 	debug ("Disable PCMCIA buffers and assert RESET\n");
 	reg  = PCMCIA_PGCRX(_slot_);
 	reg |= __MY_PCMCIA_GCRX_CXRESET;	/* active high */
@@ -176,10 +170,10 @@
 	udelay(500);
 
 	/*
-	* Configure Port C pins for
-	* 5 Volts Enable and 3 Volts enable,
-	* Turn all power pins to Hi-Z
-	*/
+	 * Configure Port C pins for
+	 * 5 Volts Enable and 3 Volts enable,
+	 * Turn all power pins to Hi-Z
+	 */
 	debug ("PCMCIA power OFF\n");
 	cfg_ports ();	/* Enables switch, but all in Hi-Z */
 
