Вопросы по 1-Wire на GPIO
rexy-craxy
Пункты: 272
Регистрация: 03.05.2017
1. На какой ножке какого разъема по умолчанию "заводится" w1-gpio?
2. Как указать w1-gpio другой GPIO?
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Цитата
1. На какой ножке какого разъема по умолчанию "заводится" w1-gpio?
насколько помню по умолчанию w1-gpio не используется
Цитата
2. Как указать w1-gpio другой GPIO?
прописать можно тут - это типа board-файл
arch/arm/mach-nuc970/dev.c
rexy-craxy
Пункты: 272
Регистрация: 03.05.2017
Цитата насколько помню по умолчанию w1-gpio не используется
Да, "в коробке" он не собран. Имелось в виду: какую ногу он будет использовать, если пересобрать ядро с включенными соотв. опциями.
Цитата прописать можно тут - это типа board-файл
arch/arm/mach-nuc970/dev.c
Спасибо, будем посмотреть.
rexy-craxy
Пункты: 272
Регистрация: 03.05.2017
Еще вопрос: где прописано соответствие номеров GPIO с т.з. LInux (напр., gpio319 ) физическим "ножкам" SoC (у которого всего 148 линий GPIO, согласно Technical Reference)?
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Посмотрите в исходниках ядра
arch/arm/mach-nuc970/include/mach/gpio.h
rexy-craxy
Пункты: 272
Регистрация: 03.05.2017
ЗЫ Может, пригодится кому. Diff для вышеупомянутого dev.c:
Код
62a63
> #include <linux/w1-gpio.h>
1379a1381,1401
>
> /*
> * w1-gpio support
> * see Documentation/driver-model/platform.txt
> */
> #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
> static struct w1_gpio_platform_data nuc970_w1_gpio_platform_data = {
> .pin = NUC970_PI11,
> .is_open_drain = 0,
> .ext_pullup_enable_pin = -1,
> // .enable_external_pullup = NULL,
> };
>
> static struct platform_device nuc970_device_w1_gpio = {
> .name = "w1-gpio",
> .id = -1,
> .dev.platform_data = &nuc970_w1_gpio_platform_data,
> };
> #endif
> /* ----- */
>
1535c1557,1562
< &nuc970_device_ge2d,
---
> &nuc970_device_ge2d,
> #endif
>
> /* w1-gpio support */
> #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
> &nuc970_device_w1_gpio,
> #endif
Jury093
Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата ЗЫ Может, пригодится кому. Diff для вышеупомянутого dev.c:
конечно пригодится. спасибо..
ЗЫ что в качестве слейва используете? как со стабильностью считывания на шине?
На любой вопрос есть любой ответ.
rexy-craxy
Пункты: 272
Регистрация: 03.05.2017
Цитата Цитата ЗЫ Может, пригодится кому. Diff для вышеупомянутого dev.c:
конечно пригодится. спасибо..
ЗЫ что в качестве слейва используете? как со стабильностью считывания на шине?
Слэйв-драйвер -- Thermal family implementation. Железо -- короткий (ок. 20 см) трехпроводной шлейфик с двумя DS18B20, линия данных подтянута к +3,3 В резистором 4,7 кОм. Ошибок чтения не заметил, но и специально на них не охотился.
ЗЫ На днях, кстати, собрали ядро с двумя 1-Wire мастерами. Примерно так:
Код
...
#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
static struct w1_gpio_platform_data nuc970_w1_gpio_platform_data[] = {
{
.pin = NUC970_PI11,
.is_open_drain = 0,
.ext_pullup_enable_pin = -1,
},
{
.pin = NUC970_PI9,
.is_open_drain = 0,
.ext_pullup_enable_pin = -1,
}
};
static struct platform_device nuc970_device_w1_gpio0 = {
.name = "w1-gpio",
.id = 0,
.dev.platform_data = &nuc970_w1_gpio_platform_data[0],
};
static struct platform_device nuc970_device_w1_gpio1 = {
.name = "w1-gpio",
.id = 1,
.dev.platform_data = &nuc970_w1_gpio_platform_data[1],
};
#endif
...
static struct platform_device *nuc970_public_dev[] __initdata = {
&nuc970_serial_device0,
...
#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
&nuc970_device_w1_gpio0,
&nuc970_device_w1_gpio1,
#endif
}
...
Jury093
Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата ЗЫ На днях, кстати, собрали ядро с двумя 1-Wire мастерами. Примерно так:
отлично, спасибо что поделились..
у меня заложены два канала w1 на nuc976, всё руки не доходили дописать, а тут так в тему..
зы: на небыстрых процах (9260/9g45) я изредка видел timeout-ы по шине, что связываю с софтовой реализацией и таймингами..
впрочем, посмотрим..
На любой вопрос есть любой ответ.