Subject: mpc83xx SPI driver never calls its probe function

From: Joakim Tjernlund <[email-masked]>
Date: Thu, 02 Nov 2006 14:23:13 +0100

I am trying to get the driver/spi/spi_mpc83xx.c driver going and I am stuck.

I have tried to add spi_board_info and a platform_device:

static struct fsl_spi_platform_data bcm_platform_data = {
    .initial_spmode = 0,
    .bus_num = 1,
    .max_chipselect = 1,
/* board specific information */
    .activate_cs = bcm_cs_activate,
    .deactivate_cs = bcm_cs_deactivate,
    .sysclk =    266,
};
static struct spi_board_info spi_board_info[] __initdata = { {
    .modalias    = "bcm5322",
    .platform_data    = &bcm_platform_data,
    .max_speed_hz    = 120000,
    .bus_num    = 1,
    .chip_select    = 0,
},
};

struct platform_device bcm_5322 = {
    .name        = "bcm5322",
    .id        = 1,
    .dev        = {
        .platform_data = &bcm_platform_data,
    },
};
and register that with
 platform_device_register(&bcm_5322);
 spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info))

I also got a protocol driver that does:
static struct spi_driver bcm_driver = {
    .driver = {
        .name    = "bcm5322",
        .owner    = THIS_MODULE,
    },
    .probe    = bcm_probe,
    .remove    = __devexit_p(bcm_remove),
};
and then calls  spi_register_driver(&bcm_driver);
and I can't get the into the *probe functions. No matter what
combination I try,
the *probe functions for both the protocol driver and the spi_mpc83xx
driver are
never called.

I need some advice on how to enable my
protocol driver and the spi_mpc83xx driver.

 Jocke