Hi all,
I'm running a customized deriviative of the MCF5485EVB board with the 2.6.25 linux BSP (with many mods for our hardware). I've got an ADS7846 touch screen encoder tied to my spi bus and this is working fine. Now I'm trying to add a rtc-ds1306 real time clock device to the SPI bus and I cannot get it to run the probe function. The "ds1305_init()" function gets called but never the probe. It's making me crazy. I can't even debug it without it getting that far. So far the mods I've made to the 547x_8x-devices.c file look like the attached file.
My biggest confusion is with the following:
static int ads7846_get_pendown_state ( void )
static struct resource coldfire_spi_resources[] = {
[0] = {
.name = "spi-par",
.start = MCF_MBAR + 0x00000a50, /* PAR_DSPI */
.end = MCF_MBAR + 0x00000a50, /* PAR_DSPI */
.flags = IORESOURCE_MEM
},
[1] = {
.name = "spi-module",
.start = MCF_MBAR + 0x00008a00, /* DSPI MCR Base */
.end = MCF_MBAR + 0x00008ab8, /* DSPI mem map end */
.flags = IORESOURCE_MEM
},
[2] = {
.name = "spi-int-level",
.start = MCF_MBAR + 0x740, /* ICR start */
.end = MCF_MBAR + 0x740 + ISC_DSPI_EOQF, /* ICR end */
.flags = IORESOURCE_MEM
},
[3] = {
.name = "spi-int-mask",
.start = MCF_MBAR + 0x70c, /* IMRL */
.end = MCF_MBAR + 0x70c, /* IMRL */
.flags = IORESOURCE_MEM
}
};
static struct platform_device coldfire_spi = {
.name = "spi_coldfire",
.id = -1,
.resource = coldfire_spi_resources,
.num_resources = ARRAY_SIZE(coldfire_spi_resources),
.dev = {
.platform_data = &coldfire_master_info,
}
};
In the end I do a:
retval = platform_device_register(&coldfire_spi);
And then:
retval = spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
With the set of devices configured in the spi_board_info array I just don't get why probe doesn't get called. I thought the call to spi_register_board_info would do that. It does do it for my touchscreen device so how the heck can it "not" do it for the RTC device!!
Clearly I'm missing something important here. Any help much appreciated...
Hi,
I know this is an old thread and you may have solved this already but recently I've been playing around with another RTC chip and devices.c (yes, devices.c, not m547x_8x_devices.c). The thing that I noticed from your entry for the ds1305 was that you have the modalias as "ds1305". For me the RTC chip is rtc9701 and the modalias is "rtc-r9701". So maybe you should try to change that into "rtc-ds1305" because that is what the module is called. Good luck.
Hi jkimble!
Did you communicate with this device? I noticed that touch controller is 8-bits, and I'm problems to communicate with this type of device (Ethernet switch). I have AD converter that use 16-bits, and this work fine.
Thanks!
Poloni