static struct at91_usbh_data __initdata onearm_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata onearm_udc_data = {
 
  */
 static struct at91_usbh_data __initdata afeb9260_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata afeb9260_udc_data = {
        .vbus_pin       = AT91_PIN_PC5,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
        .bus_width_16   = 0,
        .parts          = afeb9260_nand_partition,
        .num_parts      = ARRAY_SIZE(afeb9260_nand_partition),
+       .det_pin        = -EINVAL,
 };
 
 
        .wp_pin         = AT91_PIN_PC4,
        .slot_b         = 1,
        .wire4          = 1,
+       .vcc_pin        = -EINVAL,
 };
 
 
 static struct at91_cf_data afeb9260_cf_data = {
        .chipselect = 4,
        .irq_pin    = AT91_PIN_PA6,
+       .det_pin        = -EINVAL,
+       .vcc_pin        = -EINVAL,
        .rst_pin    = AT91_PIN_PA7,
        .flags      = AT91_CF_TRUE_IDE,
 };
 
  */
 static struct at91_usbh_data __initdata cam60_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 
 static struct atmel_nand_data __initdata cam60_nand_data = {
        .ale            = 21,
        .cle            = 22,
-       // .det_pin     = ... not there
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PA9,
        .enable_pin     = AT91_PIN_PA7,
        .parts          = cam60_nand_partition,
 
  */
 static struct at91_usbh_data __initdata cap9adk_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_mmc_data __initdata cap9adk_mmc_data = {
        .wire4          = 1,
-//     .det_pin        = ... not connected
-//     .wp_pin         = ... not connected
-//     .vcc_pin        = ... not connected
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 
  * MACB Ethernet device
  */
 static struct macb_platform_data __initdata cap9adk_macb_data = {
+       .phy_irq_pin    = -EINVAL,
        .is_rmii        = 1,
 };
 
 static struct atmel_nand_data __initdata cap9adk_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
-//     .rdy_pin        = ... not connected
+       .det_pin        = -EINVAL,
+       .rdy_pin        = -EINVAL,
        .enable_pin     = AT91_PIN_PD15,
        .parts          = cap9adk_nand_partitions,
        .num_parts      = ARRAY_SIZE(cap9adk_nand_partitions),
  * AC97
  */
 static struct ac97c_platform_data cap9adk_ac97_data = {
-//     .reset_pin      = ... not connected
+       .reset_pin      = -EINVAL,
 };
 
 
 
 
 static struct at91_usbh_data __initdata carmeva_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata carmeva_udc_data = {
 // static struct at91_cf_data __initdata carmeva_cf_data = {
 //     .det_pin        = AT91_PIN_PB0,
 //     .rst_pin        = AT91_PIN_PC5,
-       // .irq_pin     = ... not connected
-       // .vcc_pin     = ... always powered
+       // .irq_pin     = -EINVAL,
+       // .vcc_pin     = -EINVAL,
 // };
 
 static struct at91_mmc_data __initdata carmeva_mmc_data = {
        .wire4          = 1,
        .det_pin        = AT91_PIN_PB10,
        .wp_pin         = AT91_PIN_PC14,
+       .vcc_pin        = -EINVAL,
 };
 
 static struct spi_board_info carmeva_spi_devices[] = {
 
  */
 static struct at91_usbh_data __initdata cpu9krea_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata cpu9krea_udc_data = {
        .vbus_pin       = AT91_PIN_PC8,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 /*
  * MACB Ethernet device
  */
 static struct macb_platform_data __initdata cpu9krea_macb_data = {
+       .phy_irq_pin    = -EINVAL,
        .is_rmii        = 1,
 };
 
        .rdy_pin        = AT91_PIN_PC13,
        .enable_pin     = AT91_PIN_PC14,
        .bus_width_16   = 0,
+       .det_pin        = -EINVAL,
 };
 
 #ifdef CONFIG_MACH_CPU9260
        .slot_b         = 0,
        .wire4          = 1,
        .det_pin        = AT91_PIN_PA29,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 static void __init cpu9krea_board_init(void)
 
 }
 
 static struct macb_platform_data __initdata cpuat91_eth_data = {
+       .phy_irq_pin    = -EINVAL,
        .is_rmii        = 1,
 };
 
 static struct at91_usbh_data __initdata cpuat91_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata cpuat91_udc_data = {
 static struct at91_mmc_data __initdata cpuat91_mmc_data = {
        .det_pin        = AT91_PIN_PC2,
        .wire4          = 1,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 static struct physmap_flash_data cpuat91_flash_data = {
 
 
 static struct at91_usbh_data __initdata csb337_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata csb337_udc_data = {
-       // this has no VBUS sensing pin
        .pullup_pin     = AT91_PIN_PA24,
+       .vbus_pin       = -EINVAL,
 };
 
 static struct i2c_board_info __initdata csb337_i2c_devices[] = {
        .slot_b         = 0,
        .wire4          = 1,
        .wp_pin         = AT91_PIN_PD6,
+       .vcc_pin        = -EINVAL,
 };
 
 static struct spi_board_info csb337_spi_devices[] = {
 
 
 static struct at91_usbh_data __initdata csb637_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata csb637_udc_data = {
 
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC8,
        .enable_pin     = AT91_PIN_PC14,
 };
 
 
 static struct at91_usbh_data __initdata eb9200_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata eb9200_udc_data = {
 };
 
 static struct at91_cf_data __initdata eb9200_cf_data = {
+       .irq_pin        = -EINVAL,
        .det_pin        = AT91_PIN_PB0,
+       .vcc_pin        = -EINVAL,
        .rst_pin        = AT91_PIN_PC5,
-       // .irq_pin     = ... not connected
-       // .vcc_pin     = ... always powered
 };
 
 static struct at91_mmc_data __initdata eb9200_mmc_data = {
        .slot_b         = 0,
        .wire4          = 1,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 static struct i2c_board_info __initdata eb9200_i2c_devices[] = {
 
 
 static struct at91_usbh_data __initdata ecb_at91usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_mmc_data __initdata ecb_at91mmc_data = {
        .slot_b         = 0,
        .wire4          = 1,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 
 
 
 static struct at91_usbh_data __initdata eco920_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata eco920_udc_data = {
 static struct at91_mmc_data __initdata eco920_mmc_data = {
        .slot_b         = 0,
        .wire4          = 0,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 static struct physmap_flash_data eco920_flash_data = {
 
 /* USB Host port */
 static struct at91_usbh_data __initdata flexibity_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /* USB Device port */
 static struct at91_udc_data __initdata flexibity_udc_data = {
        .vbus_pin       = AT91_PIN_PC5,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 /* SPI devices */
        .wire4          = 1,
        .det_pin        = AT91_PIN_PC9,
        .wp_pin         = AT91_PIN_PC4,
+       .vcc_pin        = -EINVAL,
 };
 
 /* LEDs */
 
  */
 static struct at91_usbh_data __initdata foxg20_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata foxg20_udc_data = {
        .vbus_pin       = AT91_PIN_PC6,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
 static struct at91_mmc_data __initdata foxg20_mmc_data = {
        .slot_b         = 1,
        .wire4          = 1,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 
 
  */
 static struct at91_usbh_data __initdata usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata udc_data = {
        .vbus_pin       = AT91_PIN_PA22,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 /*
 static struct at91_cf_data __initdata gsia18s_cf1_data = {
        .irq_pin        = AT91_PIN_PA27,
        .det_pin        = AT91_PIN_PB30,
+       .vcc_pin        = -EINVAL,
        .rst_pin        = AT91_PIN_PB31,
        .chipselect     = 5,
        .flags          = AT91_CF_TRUE_IDE,
 
 
 static struct at91_usbh_data __initdata kafa_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata kafa_udc_data = {
 
 
 static struct at91_usbh_data __initdata kb9202_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata kb9202_udc_data = {
        .det_pin        = AT91_PIN_PB2,
        .slot_b         = 0,
        .wire4          = 1,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 static struct mtd_partition __initdata kb9202_nand_partition[] = {
 static struct atmel_nand_data __initdata kb9202_nand_data = {
        .ale            = 22,
        .cle            = 21,
-       // .det_pin     = ... not there
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC29,
        .enable_pin     = AT91_PIN_PC28,
        .parts          = kb9202_nand_partition,
 
 static struct at91_usbh_data __initdata neocore926_usbh_data = {
        .ports          = 2,
        .vbus_pin       = { AT91_PIN_PA24, AT91_PIN_PA21 },
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata neocore926_udc_data = {
        .vbus_pin       = AT91_PIN_PA25,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
        .wire4          = 1,
        .det_pin        = AT91_PIN_PE18,
        .wp_pin         = AT91_PIN_PE19,
+       .vcc_pin        = -EINVAL,
 };
 
 
        .enable_pin             = AT91_PIN_PD15,
        .parts                  = neocore926_nand_partition,
        .num_parts              = ARRAY_SIZE(neocore926_nand_partition),
+       .det_pin                = -EINVAL,
 };
 
 static struct sam9_smc_config __initdata neocore926_nand_smc_config = {
 
  */
 static struct at91_usbh_data __initdata usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 
 
 
 static struct at91_usbh_data __initdata picotux200_usbh_data = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_mmc_data __initdata picotux200_mmc_data = {
        .slot_b         = 0,
        .wire4          = 1,
        .wp_pin         = AT91_PIN_PA17,
+       .vcc_pin        = -EINVAL,
 };
 
 #define PICOTUX200_FLASH_BASE  AT91_CHIPSELECT_0
 
  */
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PC5,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 /*
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC13,
        .enable_pin     = AT91_PIN_PC14,
        .parts          = ek_nand_partition,
 static struct at91_mmc_data __initdata ek_mmc_data = {
        .slot_b         = 0,
        .wire4          = 1,
-//     .det_pin        = ... not connected
-//     .wp_pin         = ... not connected
-//     .vcc_pin        = ... not connected
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 /*
 
 
 static struct at91_usbh_data __initdata dk_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata dk_udc_data = {
 };
 
 static struct at91_cf_data __initdata dk_cf_data = {
+       .irq_pin        = -EINVAL,
        .det_pin        = AT91_PIN_PB0,
+       .vcc_pin        = -EINVAL,
        .rst_pin        = AT91_PIN_PC5,
-       // .irq_pin     = ... not connected
-       // .vcc_pin     = ... always powered
 };
 
 #ifndef CONFIG_MTD_AT91_DATAFLASH_CARD
 static struct at91_mmc_data __initdata dk_mmc_data = {
        .slot_b         = 0,
        .wire4          = 1,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 #endif
 
        .cle            = 21,
        .det_pin        = AT91_PIN_PB1,
        .rdy_pin        = AT91_PIN_PC2,
-       // .enable_pin  = ... not there
+       .enable_pin     = -EINVAL,
        .parts          = dk_nand_partition,
        .num_parts      = ARRAY_SIZE(dk_nand_partition),
 };
 
 
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata ek_udc_data = {
        .slot_b         = 0,
        .wire4          = 1,
        .wp_pin         = AT91_PIN_PA17,
+       .vcc_pin        = -EINVAL,
 };
 #endif
 
 
  */
 static struct at91_usbh_data rsi_ews_usbh_data __initdata = {
        .ports          = 1,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
 
  */
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PC5,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC13,
        .enable_pin     = AT91_PIN_PC14,
        .parts          = ek_nand_partition,
        .wire4          = 1,
        .det_pin        = AT91_PIN_PC8,
        .wp_pin         = AT91_PIN_PC4,
-//     .vcc_pin        = ... not connected
+       .vcc_pin        = -EINVAL,
 };
 
 static void __init ek_board_init(void)
 
  */
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PC5,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC13,
        .enable_pin     = AT91_PIN_PC14,
        .parts          = ek_nand_partition,
 static struct at91_mmc_data __initdata ek_mmc_data = {
        .slot_b         = 1,
        .wire4          = 1,
-//     .det_pin        = ... not connected
-//     .wp_pin         = ... not connected
-//     .vcc_pin        = ... not connected
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 
 
  */
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PB29,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 22,
        .cle            = 21,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC15,
        .enable_pin     = AT91_PIN_PC14,
        .parts          = ek_nand_partition,
  */
 static struct at91_mmc_data __initdata ek_mmc_data = {
        .wire4          = 1,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 #endif /* CONFIG_SPI_ATMEL_* */
 
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
        .vbus_pin       = { AT91_PIN_PA24, AT91_PIN_PA21 },
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PA25,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
        .wire4          = 1,
        .det_pin        = AT91_PIN_PE18,
        .wp_pin         = AT91_PIN_PE19,
-//     .vcc_pin        = ... not connected
+       .vcc_pin        = -EINVAL,
 };
 
 
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PA22,
        .enable_pin     = AT91_PIN_PD15,
        .parts          = ek_nand_partition,
  * reset_pin is not connected: NRST
  */
 static struct ac97c_platform_data ek_ac97_data = {
+       .reset_pin      = -EINVAL,
 };
 
 
 
  */
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PC5,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
        .cle            = 22,
        .rdy_pin        = AT91_PIN_PC13,
        .enable_pin     = AT91_PIN_PC14,
+       .det_pin        = -EINVAL,
        .parts          = ek_nand_partition,
        .num_parts      = ARRAY_SIZE(ek_nand_partition),
 };
        .slot[1] = {
                .bus_width      = 4,
                .detect_pin     = AT91_PIN_PC9,
+               .wp_pin         = -EINVAL,
        },
 
 };
        .slot_b         = 1,    /* Only one slot so use slot B */
        .wire4          = 1,
        .det_pin        = AT91_PIN_PC9,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 #endif
 
        if (ek_have_2mmc()) {
                ek_mmc_data.slot[0].bus_width = 4;
                ek_mmc_data.slot[0].detect_pin = AT91_PIN_PC2;
+               ek_mmc_data.slot[0].wp_pin = -1;
        }
        at91_add_device_mci(0, &ek_mmc_data);
 #else
 
 static struct at91_usbh_data __initdata ek_usbh_hs_data = {
        .ports          = 2,
        .vbus_pin       = {AT91_PIN_PD1, AT91_PIN_PD3},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 
        .slot[0] = {
                .bus_width      = 4,
                .detect_pin     = AT91_PIN_PD10,
+               .wp_pin         = -EINVAL,
        },
 };
 
        .cle            = 22,
        .rdy_pin        = AT91_PIN_PC8,
        .enable_pin     = AT91_PIN_PC14,
+       .det_pin        = -EINVAL,
        .parts          = ek_nand_partition,
        .num_parts      = ARRAY_SIZE(ek_nand_partition),
 };
  * reset_pin is not connected: NRST
  */
 static struct ac97c_platform_data ek_ac97_data = {
+       .reset_pin      = -EINVAL,
 };
 
 
 
 static struct at91_mmc_data __initdata ek_mmc_data = {
        .wire4          = 1,
        .det_pin        = AT91_PIN_PA15,
-//     .wp_pin         = ... not connected
-//     .vcc_pin        = ... not connected
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PD17,
        .enable_pin     = AT91_PIN_PB6,
        .parts          = ek_nand_partition,
  * reset_pin is not connected: NRST
  */
 static struct ac97c_platform_data ek_ac97_data = {
+       .reset_pin      = -EINVAL,
 };
 
 
 
 
 static struct at91_usbh_data __initdata snapper9260_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 static struct at91_udc_data __initdata snapper9260_udc_data = {
        .vbus_pin               = SNAPPER9260_IO_EXP_GPIO(5),
        .vbus_active_low        = 1,
        .vbus_polled            = 1,
+       .pullup_pin             = -EINVAL,
 };
 
 static struct macb_platform_data snapper9260_macb_data = {
+       .phy_irq_pin    = -EINVAL,
        .is_rmii        = 1,
 };
 
        .parts          = snapper9260_nand_partitions,
        .num_parts      = ARRAY_SIZE(snapper9260_nand_partitions),
        .bus_width_16   = 0,
+       .enable_pin     = -EINVAL,
+       .det_pin        = -EINVAL,
 };
 
 static struct sam9_smc_config __initdata snapper9260_nand_smc_config = {
 
        .rdy_pin        = AT91_PIN_PC13,
        .enable_pin     = AT91_PIN_PC14,
        .bus_width_16   = 0,
+       .det_pin        = -EINVAL,
 };
 
 static struct sam9_smc_config __initdata nand_smc_config = {
 static struct mci_platform_data __initdata mmc_data = {
        .slot[0] = {
                .bus_width      = 4,
+               .detect_pin     = -1;
+               .wp_pin         = -1;
        },
 };
 #else
 static struct at91_mmc_data __initdata mmc_data = {
        .slot_b         = 0,
        .wire4          = 1,
+       .det_pin        = -EINVAL,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 #endif
 
  */
 static struct at91_usbh_data __initdata usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 
  */
 static struct at91_udc_data __initdata portuxg20_udc_data = {
        .vbus_pin       = AT91_PIN_PC7,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 static struct at91_udc_data __initdata stamp9g20evb_udc_data = {
        .vbus_pin       = AT91_PIN_PA22,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 
 
  */
 static struct at91_usbh_data __initdata ek_usbh_data = {
        .ports          = 2,
+       .vbus_pin       = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_udc_data __initdata ek_udc_data = {
        .vbus_pin       = AT91_PIN_PB11,
-       .pullup_pin     = 0,            /* pull-up driven by UDC */
+       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
 };
 
 static void __init ek_add_device_udc(void)
 static struct atmel_nand_data __initdata ek_nand_data = {
        .ale            = 21,
        .cle            = 22,
-//     .det_pin        = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PA22,
        .enable_pin     = AT91_PIN_PD15,
        .parts          = ek_nand_partition,
 
  */
 static struct at91_usbh_data __initdata yl9200_usbh_data = {
        .ports                  = 1,    /* PQFP version of AT91RM9200 */
+       .vbus_pin               = {-EINVAL, -EINVAL},
+       .overcurrent_pin= {-EINVAL, -EINVAL},
 };
 
 /*
  */
 static struct at91_mmc_data __initdata yl9200_mmc_data = {
        .det_pin        = AT91_PIN_PB9,
-       // .wp_pin      = ... not connected
        .wire4          = 1,
+       .wp_pin         = -EINVAL,
+       .vcc_pin        = -EINVAL,
 };
 
 /*
 static struct atmel_nand_data __initdata yl9200_nand_data = {
        .ale            = 6,
        .cle            = 7,
-       // .det_pin     = ... not connected
+       .det_pin        = -EINVAL,
        .rdy_pin        = AT91_PIN_PC14,        /* R/!B (Sheet10) */
        .enable_pin     = AT91_PIN_PC15,        /* !CE  (Sheet10) */
        .parts          = yl9200_nand_partition,
 
 
  /* USB Device */
 struct at91_udc_data {
-       u8      vbus_pin;               /* high == host powering us */
+       int     vbus_pin;               /* high == host powering us */
        u8      vbus_active_low;        /* vbus polarity */
        u8      vbus_polled;            /* Use polling, not interrupt */
-       u8      pullup_pin;             /* active == D+ pulled up */
+       int     pullup_pin;             /* active == D+ pulled up */
        u8      pullup_active_low;      /* true == pullup_pin is active low */
 };
 extern void __init at91_add_device_udc(struct at91_udc_data *data);
 
  /* Compact Flash */
 struct at91_cf_data {
-       u8      irq_pin;                /* I/O IRQ */
-       u8      det_pin;                /* Card detect */
-       u8      vcc_pin;                /* power switching */
-       u8      rst_pin;                /* card reset */
+       int     irq_pin;                /* I/O IRQ */
+       int     det_pin;                /* Card detect */
+       int     vcc_pin;                /* power switching */
+       int     rst_pin;                /* card reset */
        u8      chipselect;             /* EBI Chip Select number */
        u8      flags;
 #define AT91_CF_TRUE_IDE       0x01
  /* MMC / SD */
   /* at91_mci platform config */
 struct at91_mmc_data {
-       u8              det_pin;        /* card detect IRQ */
+       int             det_pin;        /* card detect IRQ */
        unsigned        slot_b:1;       /* uses Slot B */
        unsigned        wire4:1;        /* (SD) supports DAT0..DAT3 */
-       u8              wp_pin;         /* (SD) writeprotect detect */
-       u8              vcc_pin;        /* power switching (high == on) */
+       int             wp_pin;         /* (SD) writeprotect detect */
+       int             vcc_pin;        /* power switching (high == on) */
 };
 extern void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data);
 
  /* USB Host */
 struct at91_usbh_data {
        u8              ports;          /* number of ports on root hub */
-       u8              vbus_pin[2];    /* port power-control pin */
+       int             vbus_pin[2];    /* port power-control pin */
        u8              vbus_pin_inverted;
        u8              overcurrent_supported;
-       u8              overcurrent_pin[2];
+       int             overcurrent_pin[2];
        u8              overcurrent_status[2];
        u8              overcurrent_changed[2];
 };
 
  /* NAND / SmartMedia */
 struct atmel_nand_data {
-       u8              enable_pin;     /* chip enable */
-       u8              det_pin;        /* card detect */
-       u8              rdy_pin;        /* ready/busy */
+       int             enable_pin;     /* chip enable */
+       int             det_pin;        /* card detect */
+       int             rdy_pin;        /* ready/busy */
        u8              rdy_pin_active_low;     /* rdy_pin value is inverted */
        u8              ale;            /* address line number connected to ALE */
        u8              cle;            /* address line number connected to CLE */
 
 
 struct macb_platform_data {
        u32             phy_mask;
-       u8              phy_irq_pin;    /* PHY IRQ */
+       int             phy_irq_pin;    /* PHY IRQ */
        u8              is_rmii;        /* using RMII interface? */
 };