I2C を介して RTC デバイス (stm41t83) からデータを取得する必要があります。デバイスは、GPIO の 2 つのピンに直接接続されます。以下のコードで i2c-gpio ドライバーを使用しようとしましたが、
#include <linux/module.h>
#include <linux/init.h>
#include <linux/i2c-gpio.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
#include <linux/kernel.h>
#define GPIO_RTC_SDA 100
#define GPIO_RTC_SCL 99
MODULE_DESCRIPTION("i2c via gpio module");
MODULE_LICENSE("GPL");
static struct i2c_gpio_platform_data rtc_device_data = {
.sda_pin = GPIO_RTC_SDA,
.scl_pin = GPIO_RTC_SCL,
.udelay = 25
};
static struct platform_device i2c_gpio_bus_rtc = {
.name = "i2c-gpio",
.id = 0,
.dev = {
.platform_data = &rtc_device_data,
}
};
static int __init i2c_gpio_bus_init(void)
{
return platform_device_register(&i2c_gpio_bus_rtc);
}
static void __exit i2c_gpio_bus_exit(void)
{
platform_device_unregister(&i2c_gpio_bus_rtc);
}
module_init(i2c_gpio_bus_init);
module_exit(i2c_gpio_bus_exit);
しかし、i2c ツール パッケージの i2cdetect ユーティリティを使用すると、0x68 にある RTC デバイスが表示されません。それを機能させるために他のものを追加する必要がありますか?
答えてくれてありがとう!
jrm