Не определяются часы ds3231
enji
Регистрация: 09.03.2010
Ядро 2.6.32.9, плата SK-AT91SAM9260
Включил I2C, I2C чере GPIO
grep I2C < .config
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_GPIO=y
Включил драйвер ds1307
grep RTC < .config
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_DS1307=y
В board-sam9260ek.c прописал
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{ I2C_BOARD_INFO("rtc-ds1307", 0x68) },
};
При загрузке вижу:
i2c /dev entries driver
i2c-gpio i2c-gpio: using pins 55 (SDA) and 56 (SCL)
...
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Попробовал вставить отладочный вывод в ds1307_probe; при загрузке я его не увидел. Т.е. по ходу эта функция вообще почему-то не дергается...
Осциллограф на SDA\SCL никаких движений при загрузке не видит
Strijar
Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Попробуйте не прописывать в board-sam9260ek.c и пошевелить его через i2ctools
sasamy
Пункты: 76182
Регистрация: 14.08.2009
Цитата
В board-sam9260ek.c прописал
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{ I2C_BOARD_INFO("rtc-ds1307", 0x68) },
};
Попробуйте так:
Код
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-ds1307", 0x68),
.type = "ds3231",
},
};
И проверьте что устройства регистрируются - в конце файла приутствует
Код
static void __init ek_board_init(void)
{
....................
/* I2C */
at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
.....................
Если все равно все глухо - включите отладочную информацию для i2c в ядре:
Цитата
[ ] I2C Core debugging messages
[ ] I2C Algorithm debugging messages
[ ] I2C Bus debugging messages
[ ] I2C Chip debugging messages
enji
Регистрация: 09.03.2010
[quote]
Попробуйте так:
Код
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-ds1307", 0x68),
.type = "ds3231",
},
};
[/quote]
Код
#define I2C_BOARD_INFO(dev_type, dev_addr) .type = dev_type, .addr = (dev_addr)
Цитата
И проверьте что устройства регистрируются - в конце файла приутствует
Да, вызов at91_add_device_i2c есть
enji
Регистрация: 09.03.2010
Включил отладочную инфу:
# dmesg | grep i2c
i2c-core: driver [dummy] registered
add i2c
i2c-core: driver [rtc-ds1307] registered
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
i2c i2c-0: adapter [i2c-gpio-1] registered
i2c 0-0068: uevent
i2c i2c-0: client [rtc-ds1307] registered with bus id 0-0068
i2c-dev: adapter [i2c-gpio-1] registered as minor 0
i2c-gpio i2c-gpio: using pins 55 (SDA) and 56 (SCL)
enji
Регистрация: 09.03.2010
Пошло дело!
Надо было указать имя ds3231:
{ I2C_BOARD_INFO("ds3231", 0x68) }
Спасибо всем!