Как настроить часы через Дерево устройств?

Я пытался настроить часы для нового устройства, включенного в ядро. У меня более старая версия ядра, в которую уже включено устройство.

Поэтому я попытался внести аналогичные изменения в ядро ​​​​для часов. Но в старой версии ядра был файл C для настройки часов почти для всех устройств, но я не смог найти аналогичный файл в более новом ядре.

После моего расследования я обнаружил, что в более новых версиях ядра параметры для настройки часов передаются в ядро ​​​​через дерево устройств. Поэтому я попытался изменить DT, чтобы включить часы для нового устройства, но у меня не получилось полностью. Итак, мои вопросы:

1)Как ядро ​​получает параметры и адреса регистров для настройки часов для конкретного устройства

2) Можем ли мы получить доступ к этой информации (например, к регистровым сумматорам) в ядре или драйвере?

3) Есть ли другой способ, которым мы можем использовать регистры непосредственно в драйвере или ядре для установки часов (например, частоты)


person Vineesh    schedule 01.12.2014    source источник
comment
Укажите устройство и драйвер, которые вы используете. Некоторым устройствам частота может быть передана в параметр with clock-frequency, для других вам нужно будет определить часы.   -  person moorray    schedule 09.04.2015


Ответы (1)


В файле дерева устройств вы можете указать тактовую частоту устройства. Например, рассмотрим дерево устройств, в котором тактовая частота последовательного порта (UART) установлена ​​как «тактовая частота = ‹3686400>;». Что касается следующей части вашего вопроса, касающейся того, как ядро ​​​​получает параметры, драйверу так же легко использовать API «of_get_property» для получения любых данных из дерева устройств. В качестве примера см. файл legacy_serial.c, также взгляните на "Documentation/devicetree/bindings/serial" для приведенного выше примера.

person Vijay Katoch    schedule 02.12.2014
comment
спасибо за ваш ответ, я установил тактовую частоту в DT, как указано выше, но она не работала должным образом, какая-то другая частота, которую я получил в драйвере. Можем ли мы получить доступ к регистрам настройки часов и изменить тактовую частоту в драйвере? - person Vineesh; 03.12.2014
comment
Взгляните на Documentation/clk.txt. Это поможет вам понять, как драйвер of_serial в /drivers/tty/serial использует свойство тактовой частоты в дереве устройств. - person Vijay Katoch; 03.12.2014