2014-12-01 2 views
1

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

Итак, я попытался сделать аналогичные изменения в ядре для часов. Но в старой версии ядра был файл C для настройки часов почти для всех Устройств, , но я не смог найти ни одного подобного файла в новом ядре.

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

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

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

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

+0

Укажите устройство и драйвер, который вы используете. Некоторые устройства могут передавать частоту с параметром _clock-frequency_, для других вам нужно определить часы. – moorray

ответ

1

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

+0

спасибо за ваш ответ, я установил тактовую частоту в DT, как указано выше, но это не сработало правильно, какая-то другая частота, которую я получил в драйвере. Можем ли мы получить доступ к часам, настраивающим регистры, и изменить тактовую частоту в драйвере? – vin

+0

Взгляните на «Документация/clk.txt». Это поможет вам понять, как драйвер for_serial в/drivers/tty/serial использует свойство частотной частоты в дереве устройств. –

Смежные вопросы