SPI rtc-ds1305 不显示 /dev/rtc,也不绑定到我的 spi2.1



我需要一些帮助来找出为什么我的rtc-ds1306驱动程序没有绑定到spi2.1设备

我正在嵌入式linux(3.2.0)平台上工作,我想使用spi与RTC DS1306和其他spi设备进行通信。该平台默认为spi1.0与nor-flash对话,我可以将spidev驱动程序添加到/dev/spi1.1和/dev/spi2.0中并与之通信。rtc-ds1305驱动程序在/sys/bus/spi/drivers/(rtc-ds130106)下可用,但它不绑定到任何spi(例如:spi2.1)。Spi1.1和spi2.0自动绑定。我在启动时没有看到任何错误消息。。。

你能告诉我少了什么吗?

//---板xxxx.c文件----

static const struct flash_platform_data am335x_spi_flash = {
.type      = "w25q64",
.name      = "spi_flash",
};

/*
* SPI Flash works at 80Mhz however SPI Controller works at 48MHz.
* So setup Max speed to be less than that of Controller speed
*/
static struct spi_board_info am335x_spi0_slave_info[] = {
{
.modalias      = "m25p80",
.platform_data = &am335x_spi_flash,
.irq           = -1,
.max_speed_hz  = 24000000,
.bus_num       = 1,
.chip_select   = 0,
},
//PH140107 add spidev driver for the spi0_cs1
{
.modalias       = "spidev",
.max_speed_hz   = 12000000,
.bus_num        = 1,
.chip_select    = 1,
.mode       = SPI_MODE_0,
},
};
//PH140110 add this platform_data
static const struct ds1305_platform_data am335x_spi_rtc = {
.is_ds1306 = true,
.en_1hz    = false,
};
/* PH140109
* SPI RTC DS1306 (use RTC-ds1305 driver) and add SPI1_CS0 incase need it for spi1_dsp
* So setup Max speed to be less than that of Controller speed
*/
static struct spi_board_info am335x_spi1_slave_info[] = {
{
.modalias       = "rtc-ds1305",
.platform_data  = &am335x_spi_rtc,
.max_speed_hz   = 1000000,
.bus_num        = 2,
.chip_select    = 1,
.mode       = SPI_CS_HIGH | SPI_CPOL | SPI_CPHA,
},
{
.modalias       = "spidev",
.max_speed_hz   = 48000000,
.bus_num        = 2,
.chip_select    = 0,
.mode       = SPI_MODE_0,
},
};

edit:我在/dev/rtcX中找不到rtc,但在/sys/bus/spi/devices中我可以看到spi1.0、spi1.1、spi2.0和spi2.1。另外,我可以在/sys/bus/spi/drivers中找到m25p80、rtc-ds1305和spidev。如果我进入/sys/bus/spi/drivers/spidev,我可以看到spi1.1和spi2.0(+bind、uevent和unbind),但如果我进入/sys/bus/stpi/drivers/rtc-ds1305,则只有bind、ue vent和unsbind。

我想我应该看到/dev/rtc0,在/sys/bus/spi/drivers/rtc-ds1305中我应该看到spi2.1

我在开发板上工作,所以ds1306没有被填充,所以不能响应rtc-ds1305驱动程序健全性检查。当连接到实际板时,它显示在/dev/rtc0下。

解决问题!

最新更新