Silabs Si5340: как определить часы для одного из выходов микросхемы
Мы разрабатываем оборудование, которое использует Si5340 для обеспечения тактовой частоты для различных микросхем (АЦП, ЦАП).
Оборудование основано на Xilinx Zynq Ultrascale, а выбранная ОС - Petalinux 2018.3.
Мы используем драйвер clk-5341 (https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/clock/silabs,si5341.txt).
Документация по микросхеме часов содержит два фрагмента, как использовать выходы.
some-video-node {
/* Standard clock bindings */
clock-names = "pixel";
clocks = <&si5341 0 7>; /* Output 7 */
/* Set output 7 to use syntesizer 3 as its parent */
assigned-clocks = <&si5341 0 7>, <&si5341 1 3>;
assigned-clock-parents = <&si5341 1 3>;
/* Set output 7 to 148.5 MHz using a synth frequency of 594 MHz */
assigned-clock-rates = <148500000>, <594000000>;
};
some-audio-node {
clock-names = "i2s-clk";
clocks = <&si5341 0 0>;
/*
* since output 0 is a synth-master, the synth will be automatically set
* to an appropriate frequency when the audio driver requests another
* frequency. We give control over synth 2 to this output here.
*/
assigned-clocks = <&si5341 0 0>;
assigned-clock-parents = <&si5341 1 2>;
};
Используются два выхода от si5340:
- 1 ГГц для микросхем АЦП
- 250 МГц для микросхем ЦАП
Я хотел бы создать два тактовых узла, которые описывают тактовые выходы, на которые затем будут ссылаться узлы микросхем АЦП и ЦАП.
the_adc_clock: silabs-clock {
compatible = "fixed-clock"
/* Standard clock bindings */
clock-names = "silabs-out-1";
clocks = <&si5340 0 1>; /* Output 1 */
clock-output-names = "the-adc-clock";
/* Set output 1 to use syntesizer 3 as its parent */
assigned-clocks = <&si5340 0 1>, <&si5340 1 3>;
/* Set output 1 to 148.5 MHz using a synth frequency of 594 MHz */
assigned-clock-rates = <148500000>, <594000000>;
assigned-clock-parents = <&si5340 1 3>;
};
hmcad1510: the-hmcad1520@1 {
compatible = "adi,hmcad1520";
reg = <1>;
clocks = <&the_adc_clock>;
};
Это не работает должным образом. Я довольно новичок в деревьях устройств. К сожалению, я не нашел полезного примера.
Подскажите, пожалуйста, как правильно описывать выходы si5340 как источники синхронизации?